1 / 24

TCP Timers

TCP Timers. Chia-tai Tsai tai@cis.nctu.edu.tw. Introduction. The 7 Timers for each Connection Connection-Establishment Timer Establish a new connection. If a response isn ’ t received within 75 seconds, the connection establishment is aborted. Retransmission Timer

jcarpenter
Download Presentation

TCP Timers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP Timers Chia-tai Tsai tai@cis.nctu.edu.tw

  2. Introduction • The 7 Timers for each Connection • Connection-Establishment Timer • Establish a new connection. • If a response isn’t received within 75 seconds, the connection establishment is aborted. • Retransmission Timer • Based on Round-Trip Time (RTT). • TCP sends data. • When this timer expires, TCP retransmit the data.

  3. Introduction cont. • Delay ACK Timer • Need not be acknowledged immediately. • TCP waits up to 200 ms. • Piggybacking • Persist Timer • Based on RTT • Triggered when a null window is advertised • If timer expires, sender issues a probe (between 5 and 60 s, never gives up)

  4. Introduction cont. • Keepalive Timer • socket option SO_KEEPALIVE. • Tests if the other end is still up and running • Expires after 2 hours • FIN_WAIT_2 Timer • FIN_WAIT_1 -> FIN_WAIT_2 • Avoid a connection in the FIN_WAIT_2 state forever.

  5. Introduction cont. • 2MSL Timer (TIME_WAIT Timer) • MSL (Maximum Segment Life) 30s to 4 min • Triggered when connection (client) enters TIME_WAIT state • During 2MSL, the socket pair cannot be reused. (packets arriving during this state are discarded) • Timer Function • Fast timer • Triggered every 200 ms • Delay ACK Timer • Slow timer • Triggered every 500 ms

  6. Implements of the 7 TCP timers

  7. tcp_canceltimers Function • tcp_timer.c • Triggered when enters TIME_WAIT state. • All 4 timers counters are set to 0.

  8. tcp_fasttime Function • tcp_timer.c • Delay ACK Timer • If TF_DELACK flag is set, it is cleared and TF_ACKNOW flag is set instead.

  9. tcp_slowtime Function • tcp_timer.c • Handle the other 6 Timers • Connection establishment、retransmission、persist、keepalive、FIN_WAIT_2、2MSL • Check each timer counter in all TCPCB • Check if TCPCB has been deleted

  10. tcp_slowtime Function cont. • Count idle time • Keepalive • FIN_WAIT_2 • Increment RTT counter • Increment RFC 1323 timestamp value • tcp_now

  11. tcp_timers Function • tcp_timer.c • Called by TCP’s PRU_SLOWTIMO request

  12. tcp_timers Function cont. • Case TCPT_2MSL(FIN_WAIT_2 and 2MSL Timers) • 2MSL Timers

  13. tcp_timers Function cont. • FIN_WAIT_2 timer

  14. tcp_timers Function cont. • Case TCPT_PERSIST (Persist Timer) • Force window probe segment • Time line of persist time

  15. tcp_timers Function cont. • Case TCPT_KEEP (Connection Establishment and Keepalive Timers) • Connection establishment timer and retransmission timer after SYN is sent

  16. tcp_timers Function cont. • Keepalive timer • Expired after 2 hours of idle time • Drop connection who no response • Send a keepalive probe • Reset keepalive timer

  17. Retransmission Timer Calculations

  18. Retransmission Timer Calculations

  19. tcp_setpersist Function • tcp_output.c • Check retransmission timer not enabled • Calculate RTO

  20. tcp_setpersist Function cont. • Exponential backoff array • {1, 2, 4, 8, 16, 32, 64, 64, 64, 64, 64, 64, 64}

  21. tcp_xmit_timer Function • tcp_input.c • rtt is the RTT measurement to be applied • Timestamp option (tcp_now) • RTT counter (t_rtt)

  22. tcp_xmit_timer Function cont. • Update smoothed estimators and RTO

  23. Retransmission Timeout(tcp_timers Function cont.) • tcp_timer.c

  24. Retransmission Timeout cont. • Source introduction • Increment shift count (t_rxtshift) • Calculate new RTO • Ask IP to find a new route • Clear estimators • Force retransmission of oldest unacknowledged data

More Related