[e2e] sctp window deadlock

Arun Prasad arun at netlab.hcltech.com
Mon Feb 4 22:35:22 PST 2002


Hi all,
    The question might be more of  SCTP implementation specific....   According
to the SCTP rfc2960, the data sender should not send any data packets if it doesnt
have enough Send-Windown (Peer Rwnd).... Just take the below example....

The Peer's Rwnd (at the Init time ) is 1500 bytes.
The Sender receivies a data buffer of size 6000 from its upper layer to be sent
to the Peer.... The Sender will then fragment the packets to fragments A,B,C,D of
size 1500 bytes (because the local mtu size is 1500bytes)....
Now the Sender sends the frag A to the Peer... Upon receiving the frag A, the
Peer's Rwnd will be zero.... This is informed to the Sender by sending a SACK with
rwnd as 0. The Sender which would have queued the frags B,C,D... will then
send frag B as the probing data to the Peer... The peer again will respond with
a SACK of rwnd 0 .  Now the deadlock situation occurs,  as the
    * Sender cant send any more data packets as the Peer's rwnd is zero....
    * Peer cant increase its rwnd till it releases the data chunks which it had
already
       received,  but to release that it needs to reassemble the frags (ABCD) and
      deliver it to the above layer, only then it can release the buffers..... Since
its
      waiting for the frags C and D...  this will never release the buffers.... so
      will not increase the rwnd.....


This situation can be avoided if the Sender doesnt sent Data messages of size
greater than the Peer's rwnd.... But the Rfc doesnt say anything about this.....
Or there should be some timers, to get out of the Deadlock situation.....

Any suggestions........

Thanks
-arun








More information about the end2end-interest mailing list