Computer Networks

Tutorial #2

  1. What are the characteristics of a reliable stream service as implemented in TCP?

  2. The TCP protocol is commonly used in the context of a client-server model of communication. Describe briefly what is meant by this term. In particular, what characterises a server process? How does a client process use the facilities provided by a server?

  3. The TCP segment header contains both a sequence number and an acknowledgement number. Discuss the significance of this.

  4. Lost TCP acknowledgements do not necessarily force retransmissions. Explain why.

  5. It is (usually) possible, by examining the contents of the two "port" fields of a TCP segment to discover whether this particular segment came from a server process or a client. How?

  6. The complexity of the TCP connection (and disconnection) mechanism is due, in part, to what is sometimes referred to as the "Red Army - Blue Army" problem. Discuss this problem in the tutorial session, and explain why TCP takes the approach it does.

  7. When a segment (or its corresponding acknowledgement) is lost, the sender will time out and resend. Participate in a discussion in the tutorial about how long the sender should wait before resending.

  8. The following gives the contents of a TCP segment, obtained using a network analyser. The values are given in hexadecimal.
        09 6c 00 19 45 6d 70 01 3c 32 28 7d 50 18 10 00
        a6 bd 00 00 45 48 4c 4f 20 72 65 64 67 75 6d 2e
        62 65 6e 64 69 67 6f 2e 6c 61 74 72 6f 62 65 2e
        65 64 75 2e 61 75 0d 0a
    
    What are the source and destination port numbers, the sequence and acknowledgement numbers and the contents of the data area? Did this segment probably originate from a client or a server process?
    Note that if you are unfamiliar with hexadecimal notation you may skip this question.

Practical exercises:


[Previous Tutorial] [Tutorial Index] [Next Tutorial]
Phil Scott