Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.

Similar presentations


Presentation on theme: "CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina."— Presentation transcript:

1 CSCE 515: Computer Network Programming Chin-Tser Huang huangct@cse.sc.edu University of South Carolina

2 3/17/20052 Midterm Exam Grade Before adjustment Graduate: Avg 10, Highest 12.5 Undergrad: Avg 12.4, Highest 18 After adjustment Graduate: +5 to everyone Undergrad: +2 to everyone

3 3/17/20053 Final Exam Guide Problems similar to those in midterm exam Will have one more programming problem that asks you to debug a piece of code In each section, the one who makes most progress in final exam compared to midterm exam grade will get 2 bonus points!

4 3/17/20054 Bulk Data Flow With bulk of data to send, it is desired that sender is allowed to transmit multiple packets before it stops and waits for acknowledgment However, cannot keep sending without pause, otherwise receiver may run out of buffer Use sliding window protocol to control data flow

5 3/17/20055 Sliding Window Protocol Receiver advertises a window to notify sender how much data it can send Window closes as left edge moves to right When data is sent and acknowledged Window opens as right edge moves to right When receiving process reads acknowledged data and freeing up space in TCP receive buffer Window shrinks as right edge moves to left (discouraged)

6 3/17/20056 Sliding Window 1234567891011… offered window (advertised by receiver) usable window sent, not ACKed acknowledged sent and can send ASAP can’t send until window moves

7 3/17/20057 TCP Options A variable-length list of optional information for TCP segments Some options defined in TCP include End of option list No operation Maximum segment size Window scale factor Timestamp Selective acknowledgment

8 3/17/20058 TCP SACK Permitted and SACK Option When establishing a connection, either end can use SACK permitted option to let the other end know that it can accept SACK option When some segment is lost, can use SACK option to acknowledge received bytes to avoid redundant retransmission

9 3/17/20059 TCP SACK Option Examples Assume left window edge is 5000 and sender sends a burst of 8 segments, each containing 500 data bytes Case 1: first 4 segments are received but the last 4 are dropped receiver will return a normal TCP ACK segment acknowledging sequence number 7000, with no SACK option

10 3/17/200510 TCP SACK Option Examples Case 2: first segment is dropped but the remaining 7 are received Upon receiving each of the last seven packets, receiver will return a TCP ACK segment that acknowledges sequence number 5000 and contains a SACK option specifying one block of queued data Triggering SegmentACKLeft EdgeRight Edge 5000 (lost) 5500500055006000 6000500055006500 6500500055007000 7000500055007500 7500500055008000 8000500055008500 8500500055009000

11 3/17/200511 TCP SACK Option Examples Case 3: 2nd, 4th, 6th, and 8th (last) segments are dropped receiver ACKs the first packet normally, and the 3rd, 5th, and 7th packets trigger SACK options Triggering SegmentACK1st Block2nd Block3rd Block Left RightLeft RightLeft Right 50005500 5500 (lost) 600055006000 6500 6500 (lost) 700055007000 75006000 6500 7500 (lost) 800055008000 85007000 75006000 6500 8500 (lost)

12 3/17/200512 TCP PUSH Flag Sender uses PUSH flag to notify receiver to pass all data it has to the receiving process Some cases where PUSH is set Send buffer is emptied by sending this segment This segment is final data segment

13 3/17/200513 Urgent Mode One end notifies the other end that some “urgent data” is in data stream What action to take is up to receiver Two fields in TCP header needs to be set URG flag set to 1 Urgent pointer set to a positive offset that is added to ISN to get seq# of last byte of urgent data

14 3/17/200514 TCP Timeout and Retransmission TCP handles lost data segments and acknowledgments by setting a timeout when it sends data If data isn’t acknowledged when timeout expires, TCP retransmits data Two implementation issues to consider How to determine timeout interval How frequently to retransmit data

15 3/17/200515 Round-Trip Time Measurement RTT changes over time due to route changes and network traffic changes TCP should track RTT changes and modify its timeout accordingly R   R+(1-  )M, where  =0.9 RTO = R , where  =2

16 3/17/200516 Improved RTT Measurement Previous approach can’t keep up with wide fluctuations in RTT and may cause unnecessary retransmissions Err = M-A A  A+gErr, where g=0.125 D  D+h(|Err|-D), where h=0.25 RTO = A+4D

17 3/17/200517 Karn’s Algorithm When receiving an ACK after retransmission, TCP can’t tell this ACK is for original transmission or for retransmission Hence can’t update RTT estimators using received ACK when a timeout and retransmission occur

18 3/17/200518 TCP Congestion Control Assume packet loss is largely due to congestion Two indications of packet loss: timeout and receipt of duplicate ACKs When congestion occurs, slow down transmission rate, and gradually come back if congestion is relieved Use two algorithms Slow start Congestion avoidance

19 3/17/200519 Slow Start The rate at which new packets should be injected into network is the rate at which acknowledgments are returned Use a congestion window (cwnd) in sender’s TCP Initialized to one segment when new connection is established Increased by one segment each time an ACK is received until packet loss occurs: exponential increase Congestion window is flow control by sender while advertised window is flow control by receiver

20 3/17/200520 Congestion Avoidance Use a slow start threshold (ssthresh) When receiving 3 dup ACKs, cwnd is cut in half, and window grows linearly 3 dup ACKs indicates network capable of delivering some segments When timeout occurs, cwnd instead set to 1 MSS, and window first grows exponentially until reach ssthresh, then grows linearly Timeout before 3 dup ACKs implies severe congestion

21 3/17/200521 Congestion Control Algorithm When cwnd is below ssthresh, sender in slow- start phase, window grows exponentially When cwnd is above ssthresh, sender is in congestion-avoidance phase, window grows linearly When a triple duplicate ACK occurs, ssthresh set to cwnd/2 and cwnd set to ssthresh When timeout occurs, ssthresh set to cwnd/2 and cwnd is set to 1 MSS

22 3/17/200522 Fast Retransmit and Fast Recovery Used when receiving 3 dup ACKs Receiving 3 dup ACKs means data can still flow, so no need to reduce rate abruptly Fast retransmit: when receiving 3 dup ACKs, retransmit without waiting for retransmission timeout Fast recovery: perform congestion avoidance, not slow start

23 3/17/200523 Repacketization When TCP times out and retransmits, it does not have to retransmit the identical segment again Instead, TCP is allowed to send a bigger segment (not exceeding MSS) to increase performance Because TCP identifies data by byte number, not segment number

24 3/17/200524 Next Class TCP persist and keepalive timers Other TCP options Read TI Ch. 22, 23, 24


Download ppt "CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina."

Similar presentations


Ads by Google