140 likes | 359 Views
Error Control in TCP. Jean Walrand U.C. Berkeley www.eecs.berkeley.edu/~wlr. Outline. ARQ versus FEC Link vs. End-to-end ARQ TCP’s version of Go Back N. # | data | ED. Seq # | ACK | ED. data | EC. Network. ARQ versus FEC. FEC: Forward Error Correction
E N D
Error Control in TCP Jean Walrand U.C. Berkeley www.eecs.berkeley.edu/~wlr
Outline • ARQ versus FEC • Link vs. End-to-end ARQ • TCP’s version of Go Back N
# | data | ED Seq # | ACK | ED data | EC Network ARQ versus FEC • FEC: Forward Error Correction • ARQ: Automatic Repeat Request Network
ARQ FEC ARQ versus FEC (c’d) • Comparison: Longer delays More extra bits
ARQ versus FEC (c’d) • Tradeoff: Efficiency vs. Delay • FEC requires more extra bits than ARQ • FEC has smaller delays than ARQ • Example • PER = 1%, RTT = 40ms, R = 100Mbps • FEC = 10% extra bits • FEC = about 90% efficient, delay = 20ms • ARQ = 2% extra bits (e.g.) • ARQ = about 99% efficient, delay = 20ms (99%) or 60ms (1%)
Link ARQ vs. End-to-End ARQ • Question: Should every link perform ARQ? • Link ARQ:
Link ARQ vs. End-to-End ARQ (c’d) • End-to-End ARQ:
Link ARQ vs. End-to-End ARQ (c’d) • Two Extreme Cases. Case (1): Noisy Links Link ARQ is faster than E-2-E ARQ when there are many errors
Link ARQ vs. End-to-End ARQ (c’d) • Case (2): Reliable Links Link ARQ is slower than E-2-E ARQ when there are few errors
TCP’s version of Go Back N • End-to-End ARQ • Uses Go Back N; N adjusted to control congestion • Numbering scheme:ACK number = seq. number of next byte expected in correct order
data # 2000 | LEN = 200 | P1 P1 ack # 2200 # 2200 | LEN = 300 | P2 P2 # 2500 # 2500 | LEN = 100 | P3 # 2600 | LEN = 100 | P4 # 2500 # 2500 | LEN = 100 | P3 # 2700 P3 P4 TCP’s version of Go Back N (c’d) • Example Store P4
TCP’s version of Go Back N (c’d) • Buffers: Last Sent Last ACK SENDER RECEIVER MAX