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/18/20042 Midterm Exam Grade Before adjustment Graduate: Avg 11.56, Highest 18 Undergrad: Avg 9.5, Highest 14 After adjustment Graduate: +2 to everyone Undergrad: +4 to everyone

3 3/18/20043 Final Exam Guide Problems similar to those in midterm exam Might 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 3 bonus points!

4 3/18/20044 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 Use sliding window protocol to control data flow

5 3/18/20045 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/18/20046 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/18/20047 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/18/20048 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/18/20049 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

10 3/18/200410 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

11 3/18/200411 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

12 3/18/200412 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

13 3/18/200413 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

14 3/18/200414 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

15 3/18/200415 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

16 3/18/200416 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

17 3/18/200417 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

18 3/18/200418 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

19 3/18/200419 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