I just uploaded the picture to a wiki page. Please refer to the page if you don't see the picture on my last email. https://cwiki.apache.org/confluence/display/TS/QUIC? preview=/70257417/74684712/Screen%20Shot%202017-10-24%20at%2013.39.21.png
Thanks, Masakazu On Tue, Oct 24, 2017 at 1:59 PM, Masakazu Kitajo <mas...@apache.org> wrote: > For those who are interested in relation between QUICStream and > HQClientTransaction, > > I draw a rough picture to help your understanding. > > From protocol perspective, HTTP is on top of TCP or QUIC. From ATS design > perspective, Transactions are on top of a Session. A difference between TCP > and QUIC is transport layer multiplexing, QUIC streams. > > QUIC applications (e.g. HTTP, DNS, FTP) need to use QUIC streams to > transfer data (use of multiplexed transport is not optional, applications > may transfer all data on a stream though). Since current HTTP/QUIC spec > uses 1 stream for 1 request, we simply mapped Transactions to Streams 1:1. > However, it was 2 streams for 1 request previously. Number of streams for 1 > request / query is up to QUIC applications. > > Also, QUIC applications may use specific streams for specific purpose. > HTTP/QUIC uses stream 1 for control frames, like stream 0 of HTTP/2, and > HTTP/QUIC uses even number stream IDs for server initiated streams. So, > QUIC applications need to be aware of QUIC streams. > > As for Session, it's the same as HTTP/1.1 over TCP. QUICConnection and > ClientSession is 1:1. You can see a QUIC connection as a persistent TCP > connection. > > Thanks, > Masakazu > > [image: Inline image 1] >