1 / 15

제 22 장

제 22 장. TCP Persist Timer. Contents. Introduction TCP Persist Timer Silly Window Syndrome Summary. Introduction. Window 를 기반으로 한 TCP 흐름 제어 데이터 패킷 전송 시 수신 가능한 Window Size 를 지정 (Receiver) Window Size 가 “ 0” 이면 ? 데이터 전송을 중지하고 대기 상태 (Sender) TCP 의 Dead Lock 상태

tuan
Download Presentation

제 22 장

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. 제 22 장 TCP Persist Timer

  2. Contents • Introduction • TCP Persist Timer • Silly Window Syndrome • Summary

  3. Introduction • Window를 기반으로 한 TCP 흐름 제어 • 데이터 패킷 전송 시 수신 가능한 Window Size를 지정(Receiver) • Window Size가 “0” 이면? • 데이터 전송을 중지하고 대기 상태(Sender) • TCP의 Dead Lock 상태 • Sender/Receiver 모두 대기 상태 • 데이터 패킷에 대한 Ack 메시지가 분실될 경우 발생 • Ack 패킷에 대한 응답확인패킷이 없음

  4. TCP Persist Timer • 정의 • Receiver의 Window Size 증가 여부를 확인하기 위해 일정 간격으로 Sender 측에서 구동하는 Timer • Window Size가 0 인 패킷을 수신할 때 동작 • Window Probes 특성 • Persist Timer 종료 후 Window 증가 여부 확인 패킷을 전송(Window Probing) • 1 byte의 데이터 포함 • Window Size가 증가 될 때까지 반복(재전송 Timeout과 다른점)

  5. TCP Persist Timer 예(1) • bsdi % sock -i -s -P100000 5555

  6. TCP Persist Timer 예(2)

  7. Spacing of Window Probes • Spacing of Window Probes • 약 5, 6, 12, 24, 48, 60 초 간격으로 전송 • TCP는 500ms 타이머에 의존 • 다음 클럭 주기까지 시간 : 500ms - 응답시간(4ms) • Persist Timer 계산 : • TCP의 지수 backoff 사용 • 항상 5~60초 사이에 Timeout • LAN Connection의 timeout : 1.5초( 2,4,8 배수로 계속)

  8. Silly Window Syndrome • 정의 • full-sized segment 대신에 적은 양의 data가 connection을 통해 교환되는 현상 • CASE • Receiver: 작은 Window를 통지 • Sender : 적은 양의 데이터를 송신

  9. Avoidance of Silly Window Syndrome • Receiver는 small segment를 통보해서는 안됨. • Window가 one-full-sized segment로 증가할 때 통보 • Receiver의 buffer space의 1/2로 증가 할 때 통보 • Sender는 다음 조건을 만족할 때 data를 전송함. • Full-sized segment를 전송할 수 있을 때 • Receiver에 의해 통보된 maximum sized window의 1/2 이상을 전송할 수 있을 때 • 모든 데이터를 전송할 수 있고 Ack를 기대하지 않을 때 • Nagle algorithm이 enable 되어 있는 상태가 아닐 때

  10. sun.1069 bsdi.7777 PSH 1:1025(1024) ack 1, win 4096 0.0 0.002026(0.0020) 0.003737(0.0017) 0.005361(0.0016) 0.170306(0.1649) 5.151768(4.9815) 5.170308(0.0185) 10.151592(4.9813) 10.170299(0.0187) 15.151466(4.9812) 15.170296(0.0188) 1 PSH 1025:2049(1024) ack 1, win 4096 2 PSH 2049:3073(1024) ack 1, win 4096 3 PSH 3073:4097(1024) ack 1, win 4096 4 ack 4097,win 0 5   4097:4098(1) ack 1, win 4096 6 ack 4098, win 0 7   4098:4099(1) ack 1, win 4096 8 ack 4099, win 0 9   4099:4100(1) ack 1, win 4096 10 ack 4100, win 1533 11 SWS 회피를 위한 데이터 전송 시나리오(1) sun % sock -i -n6 bsdi 7777 bsdi % sock -i -s -P4 -p2 -r256 7777

  11. bsdi.7777 sun.1069 4100:5124(1024) ack 1, win 4096 15.172006(0.0017) 15.370307(0.1983) 20.151782(4.7815) 20.170297(0.0185) 25.151162(4.9809) 25.170302(0.0191) 25.171801(0.0015) 25.174401(0.0026) 39.991658(14.8173) 51.991775(12.0001) 51.992665(0.0009) 12 ack 5124, win 509 13   5124:5633(509) ack 1, win 4096 14 ack 5633, win 0 15   5633:5634(1) ack 1, win 4096 16 ack 5634, win 1279 17 FIN, PSH 5634:6145(511) ack 1, win 4096 18 ack 6146, win 767 19   ack 6146, win 2816 20 FIN 1:1(0) ack 6146, win 4096 21   ack 2, win 4096 22 SWS 회피를 위한 데이터 전송 시나리오(2)

  12. Receiver에 의한 SWS 회피Event

  13. Sender에 의한 SWS 회피Event

  14. Silly Window Syndrome Avoidance • Receiver에 의한 silly window syndrome avoidance • 세그먼트 7에서 receiver는 window를 0으로 advertise 함 • Receiver는 full-sized segment 혹은 그 buffer의 1/2을 위한 공간을 가지고 있지 않기 때문이다. • Sender에 의한 silly window syndrome avoidance • 세그먼트 13에서 window size가 509 byte인데 바로 전송하지 않음 • Sender는 Persist Timer가 종료된 후 14번 segment에서 509byte를 전송 (window를 계속 open 할 것인가를 확인하기 위해 약 5초간 대기)

  15. Summary • Window를 기반으로 하는 TCP에서 데이터 흐름 제어를 원활하게 하기 위해 receiver가 zero-sized window를 advertise할 때 set된다. • Sender는 retransmission interval을 이용해서 closed window probing을 계속한다. • Silly window syndrome 회피는 TCP가 small window를 advertise하거나 small segment를 전송하는 것을 방지한다.

More Related