Subject: truncated packet numbers

From: marcelo bagnulo braun <[email-masked]>
Date: Tue, 24 Jan 2017 08:29:49 +0100

Hi,

I have a question about truncated packet numbers described in 
draft-ietf-quic-transport-01

I understand that while the packet sequence numbers cannot be reused in 
a single quic connection, the truncated packet sequence number carried 
in the quic header can wrap around and it is possible that two packets 
in the same connection carry the same value in the Packet number field, 
correct?

If this is the case, then would it be possible the following situation?

A quic endpoint is using let's say 8 bits for the packet number carried 
in the quic header. Because it cannot send more than 2^6 packets per 
RTT, the truncated packet sequence number can repeat after 4 RRTs.

So suppose that the sender sends a packet with sequence number n and the 
packet is stored in some buffer along the path. The received deems the 
packet lost after a while. Now 4 RTTs later, the truncated packet number 
n is within the the packets that the receiver is expecting and the old 
packet is finally released from the buffer where it was held and 
delivered to the receiver. Would the receiver accept it as the new 
packet? Would any test detect that this is the old packet and not the 
new one? (the draft says that the full packet sequence number is used 
for the crypto operation, but i dont know if this means that it would be 
able to detect this situation or not).

Thanks, marcelo

---

From: Ian Swett <[email-masked]>
Date: Tue, 24 Jan 2017 07:46:26 -0500

In this situation, the receiver would attempt to decrypt with the larger
packet number, that would fail, and it would be dropped.

On Tue, Jan 24, 2017 at 2:29 AM, marcelo bagnulo braun <[email-masked]>
wrote:

> I understand that while the packet sequence numbers cannot be reused in a
> single quic connection, the truncated packet sequence number carried in the
> quic header can wrap around and it is possible that two packets in the same
> connection carry the same value in the Packet number field, correct?
>
> A quic endpoint is using let's say 8 bits for the packet number carried in
> the quic header. Because it cannot send more than 2^6 packets per RTT, the
> truncated packet sequence number can repeat after 4 RRTs.
>
> packet lost after a while. Now 4 RTTs later, the truncated packet number n
> is within the the packets that the receiver is expecting and the old packet
> is finally released from the buffer where it was held and delivered to the
> receiver. Would the receiver accept it as the new packet? Would any test
> detect that this is the old packet and not the new one? (the draft says
> that the full packet sequence number is used for the crypto operation, but
> i dont know if this means that it would be able to detect this situation or
> not).
>
> Thanks, marcelo
>
>