Skip to content

[Connect-TCP WGLC] Edge cases for FINAL_DATA #3422

@ekinnear

Description

@ekinnear

A few (potentially editorial) questions about FINAL_DATA that might be worth clarifying in the document text:

  1. What happens if I get duplicate FINAL_DATA. We say:

After sending a FINAL_DATA capsule, an endpoint MUST NOT send any more DATA or FINAL_DATA capsules on this data stream. (See Section 3.4 for related requirements.)

But there is nothing that says what to do as a receiver if you receive a second FINAL_DATA. Is that an error? Do you ignore it?

  1. HTTP stream FIN, but no FINAL_DATA. We say:

When the receive stream is closed abruptly or without a FINAL_DATA capsule received, the endpoint SHOULD send a TCP RST if the TCP subsystem permits it.

Given that this potentially means data is truncated, should we upgrade this to a "MUST, if", rather than a "SHOULD, if"? It'd be nice if this signal were as likely as possible to propagate.

  1. FINAL_DATA, but no HTTP stream closure.

We say that an endpoint "MUST close its send stream", but what do I do as a receiver if I get FINAL_DATA but the HTTP stream stays open? Should I have a timeout? Is that an error? Do I just ignore it and decide the other endpoint is taking up some of its stream flow control credit, so it probably shouldn't do that, but it's fine if it does (I like this last one, personally)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    connect-tcpdraft-ietf-httpbis-connect-tcp

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions