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
>>>
>>
>>
>

Reply via email to