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

Senders need to have some actions acknowledged before they take effect #413

Closed
martinthomson opened this issue Mar 23, 2017 · 1 comment
Closed
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@martinthomson
Copy link
Member

There is a common problem throughout the draft whereby the document talks about state transitions triggered by sending a packet. This is necessary when the state causes resources to be committed, but when resources are freed it is invariably wrong.

Thus, we have two classes situations for a sender that need to be clearly distinguished:

  1. Actions that reserve resources take effect as soon as the first packet is sent. This includes:

    • sending the first STREAM frame on a stream (which consumes a concurrent stream),
    • the first transmission of and STREAM data (which moves the flow control offset),
    • sending a packet that adds to the header table (which reduces the available space there),
    • etc...
  2. Actions that release resources take effect when they are acknowledged. This includes:

    • sending a STREAM frame with the FIN flag set (which can release a stream),
    • sending a RST_STREAM frame (which can release a stream),
    • deleting a header table entry (which eventually frees space),
    • etc...

When describing these, we need to be careful to be very precise about these things. In particular, STREAM frames with a FIN flag can both consume resource and release them. The consumption happens immediately, but the release depends on acknowledgment.

@martinthomson martinthomson added editorial An issue that does not affect the design of the protocol; does not require consensus. -transport labels Mar 23, 2017
@martinthomson
Copy link
Member Author

Recent changes make this less necessary.

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

No branches or pull requests

1 participant