:::: MENU ::::

Friday, December 4, 2020

Description of the dilemma of selective repeat protocol of the transport layer.

Introduction of Selective Repeat Protocol:

Selective Repeat protocol (SRP) is most similar to Go Back-N (GBN) protocol, except that senders and receiver both maintain buffer and sliding window.

The main difference between SRP and GBN is that

 When the sender sends 1,2,3,4,5 packets, but after sending receiver responses with NAK (Negative Acknowledgement) for no. 2 packets. In GBN protocol, the sender tries to retransmit 2,3,4,5 again, though 3,4,5 packets are accepted successfully by the receiver.

But in SRP protocol, the sender only tries to retransmit no. 2 packet and slide window for the next packet.

               

Selective Repeat dilemma Problem:

If the window size of SRP is greater than the sequence number of SRP, then a situation can arrive where the receiver side cannot be able to recognize the correct packet sequence. That situation is called the Selective Repeat Dilemma problem.

 

Here is an example of a Selective Repeat dilemma with graphical representation below:

Let,

Sequence number’s: 0,1,2,3

Window size = 3






Both cases (a), (b) have appeared that the receiver gets no difference in two scenarios.  In figure (a), packets 0,1,2 are sent successfully by the sender. The receiver sends ACK of 0,1 packets. On the other hand, in figure (b), all ACKs are lost.

Consequently, duplicate data accepted as new data in figure (b).

SRP protocol has to obey one important rule for avoiding selective repeat dilemma/packet being recognized incorrectly.

Rule: window size of SRP must have to be at most half of sequence number in SRP.


Description of the diagram of TCP half-close termination

The scenario which is known as TCP Half-Open Connection used to refer when the TCP sends a FIN packet to finish the transmission, and at the receiver end ACK (ACK + FIN) as FIN has to be sent. 


While this the scenario shows that there are still have to transfer the data between connection, so it sends FIN_WAIT_2 (for the receiving end) and CLOSE_WAIT (for the sending end). This type of connection known as HALF-OPEN & HALF-CLOSED CONNECTION.





4 comments: