Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A day in the life #3225

Merged
merged 5 commits into from
Dec 3, 2019
Merged

A day in the life #3225

merged 5 commits into from
Dec 3, 2019

Conversation

martinthomson
Copy link
Member

...and now we know how many holes it takes to fill the Albert Hall.

This section has existed for a long time as "TBD". No longer. It also
takes the opportunity to explain a little bit about what 0-RTT is for.

Closes #2856.
Closes #2843.

...and now we know how many holes it takes to fill the Albert Hall.

This section has existed for a long time as "TBD".  No longer.  It also
takes the opportunity to explain a little bit about what 0-RTT is for.

Closes #2856.
Closes #2843.
@martinthomson martinthomson added editorial An issue that does not affect the design of the protocol; does not require consensus. -transport labels Nov 12, 2019
Copy link
Contributor

@marten-seemann marten-seemann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed you didn't write anything about Retry. Was that intentional?

protocol. Streams ({{streams}}) is the primary mechanism by which an
application protocol exchanges information.

Each connection starts with an handshake phase, during which client and server
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/an/a

-->
A QUIC connection is a stateful interaction between a client and server, the
primary purpose of which is to support the exchange of data by an application
protocol. Streams ({{streams}}) is the primary mechanism by which an
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/is/are?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really didn't know which here. But I think that you are right.

securely without adversely affecting privacy.

For connections that are no longer needed or desired, there are several ways for
a client and server to agree to remove connection state ({{termination}}).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph feels incomplete. What are those different ways? Are you referring to silent close vs. immediate close?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I had that in the first cut, but then removed it. The referenced section has enough information about closing. It's not super-important to duplicate all that text when it is so succinctly stated later.

@martinthomson
Copy link
Member Author

I noticed you didn't write anything about Retry. Was that intentional?

Retry is there, but at one level higher up (confirms that endpoints are willing to communicate ({{validate-handshake}})).

Copy link
Contributor

@mikkelfj mikkelfj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps also some discussion on termination - silent idle timeout vs connection close, and risk of loss of close packet.

draft-ietf-quic-transport.md Show resolved Hide resolved
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
The use of connection IDs ({{connection-id}}) allows connections to migrate to a
new network path, both as a direct choice of an endpoint and when forced by a
change in a middlebox. {{migration}} describes how a migration can be performed
securely without adversely affecting privacy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a strong claim. "... with as little impact on privacy as practically possible" would be more precise.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm surprised that you aren't also contesting the security claim as well :) Because that too is in question.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We all know that security is an illusion :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{{migration}} describes potential mitigations for the security and privacy implications of migration.


Each connection starts with an handshake phase, during which client and server
Each connection starts with a handshake phase, during which client and server
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unless of course your intended audience is primarily from East End

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MikeBishop Cockney an 'andshake

Co-Authored-By: MikkelFJ <mikkelfj@gmail.com>
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
Co-Authored-By: ianswett <ianswett@users.noreply.github.com>
draft-ietf-quic-transport.md Show resolved Hide resolved
An application protocol can also operate in a limited fashion during the
handshake phase. 0-RTT allows application messages to be sent by a client
before receiving any messages from the server. However, 0-RTT lacks certain key
security guarantees. In particular, there is no protection against replay
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
security guarantees. In particular, there is no protection against replay
security guarantees. In particular, there is no protection against replay

The use of connection IDs ({{connection-id}}) allows connections to migrate to a
new network path, both as a direct choice of an endpoint and when forced by a
change in a middlebox. {{migration}} describes how a migration can be performed
securely without adversely affecting privacy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{{migration}} describes potential mitigations for the security and privacy implications of migration.

Comment on lines +1163 to +1164
For connections that are no longer needed or desired, there are several ways for
a client and server to terminate a connection ({{termination}}).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR talks about birth, marriage, divorce and death.

Perhaps it is pertinent to have a paragraph the mentions the connection's role in the steady-state between some of these things. In fact, mentioning that it is mainly the application mapping's responsibility to define the specifics might help.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a suggestion? I hit that briefly in the first paragraph with the "this is for sending stuff by application protocols", but I realize that might not be satisfactory.

@agrover
Copy link

agrover commented Nov 20, 2019

So we have little diagrams for send and receive stream states. Any chance this section could include a state diagram and transitions for the overall connection state?

@martinthomson martinthomson merged commit 621cc6f into master Dec 3, 2019
@martinthomson martinthomson deleted the life branch December 3, 2019 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Early Data isn't explained Section 5.3 "Life of a QUIC Connection" needs writing
8 participants