TCP Transmission Control Protocol Overview Connection setup and

  • Slides: 42
Download presentation
TCP: Transmission Control Protocol • Overview • Connection set-up and termination • Interactive •

TCP: Transmission Control Protocol • Overview • Connection set-up and termination • Interactive • Bulk transfer • Timers • Improvements

TCP: Overview • Connection oriented, byte stream service • Full or half duplex service

TCP: Overview • Connection oriented, byte stream service • Full or half duplex service • Reliability (ARQ) – Sliding window with variable sized window – Stream is sent in segments (IP datagrams) – SN for bytes – Receiver buffer reorders bytes – Checksum on header and data – Discards duplicate data – Flow control

65535 -20 -20=65495 TCP: Overview TCP segment IP Header TCP Data Source port #

65535 -20 -20=65495 TCP: Overview TCP segment IP Header TCP Data Source port # Destination port # Sequence # Acknowledgement # HL reserv flags Window size Checksum Urgent pointer Options if any

TCP: Flags • URG: The urgent pointer is used • ACK: The acknowledgement number

TCP: Flags • URG: The urgent pointer is used • ACK: The acknowledgement number is valid • PSH: The receiver should pass this data to the application as soon as possible • RST: Reset the connection • SYN: Synchronize sequence numbers to initiate a connection. • FIN: The sender is finished sending data

TCP: Set-Up Syn=1 Ack = 0 A: SYN, MSS, SN=ISN A Full duplex B:

TCP: Set-Up Syn=1 Ack = 0 A: SYN, MSS, SN=ISN A Full duplex B: SYN, MSS, SN=ISN Syn 1 ack 1 B: ACK A: ACK B

TCP: Termination A: FIN A B: ack of FIN B: FIN A: ack of

TCP: Termination A: FIN A B: ack of FIN B: FIN A: ack of FIN B Both sides close

TCP windows Actually, min{offered window from receiver, cwnd} usable window 1 2 3 sent

TCP windows Actually, min{offered window from receiver, cwnd} usable window 1 2 3 sent and acked 4 5 6 sent but not acked 7 8 can send asap 9 10 11

Transmission window: cwnd 1 1 ack 1 2 4 2 3 4 5 6

Transmission window: cwnd 1 1 ack 1 2 4 2 3 4 5 6 7 ack 2 ack 3 Doubling every RT!

TCP Timeout and Retransmission Each packet has a retransmission timer • It is initialized

TCP Timeout and Retransmission Each packet has a retransmission timer • It is initialized by the retransmission time out (RTO) value • When the timer expires, a time out occurs and the data is retransmitted • If a retransmission fails then the time-out doubles i. e. , exponential backoff. It’s important to find a good RTO value

TCP • Slow start: cwnd =1 cwnd exponentially increasing • Congestion avoidance: cwnd reaches

TCP • Slow start: cwnd =1 cwnd exponentially increasing • Congestion avoidance: cwnd reaches ssthresh, cwnd linearly increasing

TCP: Tahoe and Reno Tahoe: slow start + congestion avoidance Reno: fast retransmit +

TCP: Tahoe and Reno Tahoe: slow start + congestion avoidance Reno: fast retransmit + fast recovery