One question regarding the SCTP write buffer free mechanism

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Linux SCTP experts. 

Recently we found a SCTP problem in our product, the scenario can be described as follow

Endpoint A                                                                                     Endpoint Z 
{App sends 3 messages; strm 0} DATA [TSN=6] ---------------> (ack) 
                                                     DATA [TSN=7] ---------------> (lost)
                                                     DATA [TSN=8] ---------------> (gap detected,immediately send ack)
                                                                                              /----- SACK [TSN Ack=6,Block=1, Start=2,End=2]
                                                                                    <-----/ 
                                                                                     ......
                                                   DATA [TSN=10] ---------------> (gap detected,immediately send ack)
                                                                                               /----- SACK [TSN Ack=6,Block=1, Start=2,End=4]
                                                                                    <-----/       (3 SACK to indicate that TSN=7 lost, fast re-trans triggered)
                                       Re-trans DATA [TSN=7] ---------------> (also lost)
                                                    DATA [TSN=11] ---------------> (gap detected,immediately send ack)
                                                                                               /----- SACK [TSN Ack=6,Block=1, Start=2,End=5]
                                                                                     <-----/       
                                                                                       ......
                                                  DATA [TSN=340] ---------------> (gap detected,immediately send ack)
                                                                                                /----- SACK [TSN Ack=6,Block=1, Start=2,End=334]
                                                                                      <-----/       
                       Error happened on Endpoint A when calling SCTP sendmsg to send more to Endpoint B, the error is "Resource temporarily unavailable". Association is not destroyed at this time. 
1 second later RTO Timeout 2nd Re-trans DATA [TSN=7] ---------------> (Acked)


So could you please help to comments on the following question?
-	Does this means that if an gap is found in the SACK, those packages sent after this lost packet will stay in the write buffer until the gap is filled? Even if they are successfully SACKed?

Thanks a lot!

Best Regards!

Mao Jinhui



[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux