"Upon receiving notice that a data packet is cannot be processed by the recipient, the sender SHOULD consider the bytestream to be closed and invalid but MAY attempt to correct the error and re-send the offending data packet using the same sequence number (the recipient MUST NOT consider a sequence number to have been used until the data packet has been successfully processed)."
The sender must either resend data or explicitly close the stream by sending the "close" query. Otherwise the recipient doesn't know whether the sender wants to resend or not. Right? What confuses me it that in the case of invalid sequence number, the one responsible for closing of the stream is the receiver: "The recipient MUST NOT process the data of such an out-of-sequence packet, nor any that follow it within the same bytestream; instead, the recipient MUST consider the bytestream invalid and SHOULD close the bytestream as described in the next section." But that's also "SHOULD", not "MUST"... what happens if the recipient doesn't close it? Can this part be clarified and made sure that stream invalidation is in all cases obvious to both entities? Thanks :)