Vect0rZ / Quic.NET

A .NET C# Implementation of QUIC protocol - Google's experimental transport layer.
BSD 2-Clause "Simplified" License
375 stars 58 forks source link

Base ideology of connections #7

Open Vect0rZ opened 5 years ago

Vect0rZ commented 5 years ago

What does that mean Currently the Server acts as a continuously running entity on a single connection, awaiting packets.

What is the expectation The connection should be handled exactly as HTTP/2's idea of "reusing" connections, rather than a long-running instance.

Example

You open up a website, that needs to load a html page and a css file and a logo. How should QUIC handle this:

  1. Connection has been opened

    • A bidirectional stream is opened for the HTML
    • A bidirectional stream is opened for the CSS
    • A bidirectional stream is opened for the logo
  2. All of those are interleaved in a single connection. Each of the streams is being closed by RESET_SREAM frames in the last data packets or immediately in a single packet. After all of the streams are closed, a CONNECTION_CLOSE is being send by the server to disband the client/server connection.