CS455 Syllabus

### Finite sequence numbers do not always cause ambiguity

• Example of a scenario wthere there is no ambiguity

• Operational parameters:

• Sender and receiver use 2 bits sequence numbers

 Sequence numbers = 0, 1, 2, 3

The data frames are identified as follows:

 ``` Frame: #1 #2 #3 #4 #5 #6 #7 #8 #9 ..... Seq. No.: 0 1 2 3 0 1 2 3 0 ..... ```

Notice that:

 Frame #1 and frame #5 are both identified by sequence number 0 !!!

• Suppose:

 Send window size = 2         (in previous example, it was 3) Receive window size = 2     (in previous example, it was 3)

• Consider the following scenario:

• Sender sends 2 frames (#1, #2) (due to its window size = 2) identified with sequence numbers 0 and 1 to the receiver

 All frames has been received (correctly)

• Receiver sends ACK 0 and ACK 1

 The fate of the ACK frames are unknown

Graphically:

Notice that:

Notice:

 The seq. no. 0 is not part of the receiver window !!!

• Suppose the receiver received a data frame with sequence number = 0:

Note:

• The receive window = [2,3]:

The receive window has not wrapped around yet !!!

• Therefore:

 The sequence number 0 (to the receiver) identifies the old frame #1 !!!

• \$64,000 question:

• Is the second frame with sequence number 0:

 always (i.e., for sure) the frame #1 from the sender ??????

(Or can it be frame #5 under some circumstances ????)

• Answer to the \$64,000 question:

 The second frame with sequence number 0 is always the frame #1 !!!

• Reason why the second frame with sequence number 0 is always the frame #1

• Recall that:

I.e.:

 The send window can never get ahead of the receive window !!!

• The receive window is [2,3]:

• Therefore:

• If the sender is using the sequence number 0 to identify the frame #5, then we have this situation:

This situation is not possible because: