Here is a diagram for UDP core :
http://people.apache.org/~oknet/quic_and_udp.2017102020.png

- Oknet

2017-10-17 15:33 GMT+08:00 Masaori Koshiba <masa...@apache.org>:

> Thank you for ideas around QUICNetVConnection. It looks like well organized
> design!
>
> > 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.
>
> I'm worry about this. Because current QUIC specs (tls-mapping) says
> handshake use stream 0.
> So handshake needs to be build on frame reordering (stream) and loss
> detection. This is why current quic-latest branch implements QUICHandshake
> as a QUIC Application.
>
> - Masaori
>
> I'm glad to hear that you'll come to Tokyo :)
>
> 2017年10月17日(火) 15:33 Chao Xu <ok...@apache.org>:
>
> > 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