Starting with QUIC

1,319 views
Skip to first unread message

Kk Bk

unread,
Jul 17, 2015, 9:46:17 AM7/17/15
to proto...@chromium.org
I am new to QUIC and would like get started. Require pointers for following

1) A simple QUIC client-server program, the way i would write for TCP program. 

2) Pointers to show that QUIC is way better than TCP+TLS+SPDY

-KK

Robbie Shade

unread,
Jul 17, 2015, 9:51:09 AM7/17/15
to proto...@chromium.org
Hey,

1) A simple QUIC client-server program, the way i would write for TCP program. 

There's an example QUIC client and server in the Chromium source.
Instructions for running these are here: https://www.chromium.org/quic/playing-with-quic
 
2) Pointers to show that QUIC is way better than TCP+TLS+SPDY

We recently published some performance comparisons on the Chromium blog:

Best,

Robbie

Kk Bk

unread,
Jul 17, 2015, 9:59:38 AM7/17/15
to proto...@chromium.org
Robbie. Thanks for the pointers.

WRT QUIC client and server, can you these pointers to write my own client and server ?



--
You received this message because you are subscribed to the Google Groups "QUIC Prototype Protocol Discussion group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to proto-quic+...@chromium.org.
To post to this group, send email to proto...@chromium.org.
For more options, visit https://groups.google.com/a/chromium.org/d/optout.

Robbie Shade

unread,
Jul 17, 2015, 10:07:14 AM7/17/15
to proto...@chromium.org
Sure, if you look at the Chromium source, you'll get a pretty good idea of how to use the QUIC code in your own client/server. For example the client code here:


The flow is something like:

1) Create a UDP socket (QuicClient::CreateUDPSocket)
2) Create a QuicClientSession and start the handshake (QuicClient::StartConnect())
3) Create a QUIC stream, and send a request to the server (QuicClient::SendRequest)

The server code is here:

and is simpler: it reads from a UDP socket, and hands off packets to a QuicDispatcher, which does all the harder work of parsing contents, creating Sessions, etc.

Wesley Davison

unread,
Jul 17, 2015, 1:30:42 PM7/17/15
to proto-quic
Does someone knows when Google is going to release a full version of QUIC server? I mean, the same version that they use in their infrastructure? 

Ryan Hamilton

unread,
Jul 17, 2015, 1:34:19 PM7/17/15
to proto...@chromium.org
The server the Google uses to serve production traffic is an internal server which we will not be releasing. However, that server does use the same core QUIC code that we have released.

Cheers,

Ryan

Kk Bk

unread,
Jul 18, 2015, 6:51:25 PM7/18/15
to proto...@chromium.org
I am trying to run my own QUIC_Server and QUIC_Client ie, "ninja -C out/Debug quic_server quic_client"

Did the following to get to get started


mkdir ~/chromium && cd $_
fetch --nohooks chromium 
./build/install-build-deps.sh
gclient runhooks

Could see following directories
===============================

.gclient
.gclient_entries
src --> 0ut --> Debug
            --> Release

Ran following
=============

./build/gyp_chromium -Goutput_dir=out_cros


Finally, ninja -C out/Debug chrome

Nothing seem to happen, got stuck in following


ninja -C out/Debug chrome
log: ninja version 0.1.3 initializing
log: magic group: gid=0 (root)
log: entering main loop
log: generating initial pid array..
log: now monitoring process activity


Wondering what should i do ?

-KK

Arash Molavi

unread,
Jul 19, 2015, 1:15:47 PM7/19/15
to proto...@chromium.org
I don't believe you need to build the whole thing. I am also a newbie and this is all I did:

- checked out and installed depot_tools (explained here)
- checked out the git repo of Chromium (seems like you've already did that)
- built the binaries for quic client and server by running: ninja -C out/Debug quic_server quic_client
Reply all
Reply to author
Forward
0 new messages