Here is the url for the diagram : http://home.apache.org/~oknet/ QUIC.201710171429.png
2017-10-17 14:33 GMT+08:00 Chao Xu <ok...@apache.org>: > Here is the url for the diagram : http://home.apache.org/~oknet/ > QUIC.201710171429.png > > 2017-10-17 14:25 GMT+08:00 Chao Xu <ok...@apache.org>: > >> /cc dev >> >> @Masaori , I will join the QUIC Hack-a-thon in next January at Tokyo and >> apply my visa right way. >> >> Attached the new diagram. In my opinion, it is the comparison between >> TCP and QUIC. >> >> - The `QUIC Connection` is the same as `TCP Connection` >> - A tcp socket fd is allocated by linux kernel for `TCP Connection` >> - A QUICConnection object is allocated by iocore for `QUIC Connection` >> - The `QUICConnection qcon` is equivalent to `int tcp_socket_fd` >> >> The QUIC has a handshake progress that is just like the TCP has the >> 3-ways handshake progress. >> The tcp socket fd is returned by accept() only after handshake done. >> Thus, the QUICConnection should be created and returned after handshake >> done. >> >> The QUICConnection handle the quic transaction as a State Machine to . It >> is managed by QUICNetHandler. >> >> There is a acceptQueue inside the QUICNetHandler, a QUICNetVC is created >> and initialized with a QUICConnection from the acceptQueue one by one. >> >> If a packet attached to an existing QUICConnection, it will be pushed >> into the readyQueue. >> >> Similar to PollCont, it returns a set of QUICNetVC from readyQueue to >> implement a `QUICPollCont`. >> >> Override the `net_read_io` and `load_buffer_and_write` in the QUICNetVC, >> it will be managed by NetHandler just like SSLNetVC. >> >> >> [image: 内嵌图片 3] >> >> >> Oknet Xu >> >> ---------- Forwarded message ---------- >> From: Masaori Koshiba <masa...@apache.org> >> Date: 2017-10-13 20:01 GMT+08:00 >> Subject: Re: Talk about the QUICNetVConnection >> To: Chao Xu <ok...@apache.org>, Masakazu Kitajo <mas...@apache.org>, >> sc...@apache.org >> >> >> Would you mind if I add dev@trafficserver.apache.org to CC? >> This should be discuss in public :) >> >> BTW, do you guys come to next ATS summit in this month or QUIC >> Hack-a-thon in next January? >> >> - Masaori >> >> 2017年10月13日(金) 20:41 Chao Xu <ok...@apache.org>: >> >>> Hi Masaori and Masakazu, >>> >>> I have talked with @scw00, in my opinion, it is better to make the >>> QUIConnection as a member of QUICNetVConnection. >>> >>> According to the design of UnixNetVConnection and NetVConnection, the >>> `get_socket()` return the physical socket descriptor and a `Connection` >>> object as a member of UnixNetVConnection. >>> >>> The class Connection is a interface for the physical socket descriptor. >>> >>> [image: image.png] >>> >>> >>> To the design of QUICNetVConnection, the `QUICConnection` object is the >>> physical socket descriptor. >>> >>> And the `UDPConnection` object is the physical socket descriptor of >>> `QUICConnection`. >>> >>> >>> ``` >>> class QUICNetVConnection : public UnixNetVConnection, public >>> QUICConnection >>> ``` >>> >>> to >>> >>> ``` >>> class QUICNetVConnection : public UnixNetVConnection >>> { >>> QUICConnection _qconn; >>> ... >>> ``` >>> >>> and >>> >>> ``` >>> class QUICConnection : public QUICPacketTransmitter, public >>> QUICFrameTransmitter, public QUICFrameHandler >>> { >>> UDPConnection *_udp_con; >>> ... >>> ``` >>> >>> Finally, the QUICNetVConnection will inherits NetVConnection directly >>> and managed by QUICNetHandler. >>> >>> Oknet Xu >>> >> >> >