15
1 성성성 성성성 SungKyunKwan Univ. 정정정정정정정 22 22 TCP Persist Timer

제 22 장

Embed Size (px)

DESCRIPTION

제 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 상태 - PowerPoint PPT Presentation

Citation preview

Page 1: 제  22  장

1성균관 대학교SungKyunKwan Univ.

정보통신연구실

제 제 22 22 장장

TCP Persist Timer

Page 2: 제  22  장

2성균관 대학교SungKyunKwan Univ.

정보통신연구실

ContentsContents

Introduction

TCP Persist Timer

Silly Window Syndrome

Summary

Page 3: 제  22  장

3성균관 대학교SungKyunKwan Univ.

정보통신연구실

IntroductionIntroduction

Window 를 기반으로 한 TCP 흐름 제어

데이터 패킷 전송 시 수신 가능한 Window Size 를 지정 (Receiver)

Window Size 가 “ 0” 이면 ?• 데이터 전송을 중지하고 대기 상태 (Sender)

TCP 의 Dead Lock 상태

Sender/Receiver 모두 대기 상태 데이터 패킷에 대한 Ack 메시지가 분실될 경우 발생 Ack 패킷에 대한 응답확인패킷이 없음

Page 4: 제  22  장

4성균관 대학교SungKyunKwan Univ.

정보통신연구실

TCP Persist TimerTCP Persist Timer

정의

Receiver 의 Window Size 증가 여부를 확인하기 위해 일정 간격으로 Sender 측에서 구동하는 Timer

Window Size 가 0 인 패킷을 수신할 때 동작

Window Probes 특성

Persist Timer 종료 후 Window 증가 여부 확인 패킷을 전송(Window Probing)

1 byte 의 데이터 포함 Window Size 가 증가 될 때까지 반복 ( 재전송 Timeout 과

다른점 )

Page 5: 제  22  장

5성균관 대학교SungKyunKwan Univ.

정보통신연구실

TCP Persist Timer TCP Persist Timer 예예 (1)(1)

bsdi % sock -i -s -P100000 5555 1 0.0 bsdi.1027 > svr4.5555: P 1:1025(1024) ack 1 win 40962 0.191961(0.1920) svr4.5555 > bsdi.1027: . ack 1025 win 40963 0.196950(0.0050) bsdi.1027 > svr4.5555: . 1025:2049(1024) ack 1 win 40964 0.200340(0.0034) bsdi.1027 > svr4.5555: . 2049:3073(1024) ack 1 win 40965 0.207506(0.0072) svr4.5555 > bsdi.1027: . ack 3073 win 40966 0.212676(0.0052) bsdi.1027 > svr4.5555: . 3073:4097(1024) ack 1 win 40967 0.216113(0.0034) bsdi.1027 > svr4.5555: P 4097:5121(1024) ack 1 win 40968 0.219997(0.0039) bsdi.1027 > svr4.5555: P 5121:6145(1024) ack 1 win 40969 0.227882(0.0079) svr4.5555 > bsdi.1027: . ack 5121 win 4096

10 0.233012(0.0051) bsdi.1027 > svr4.5555: P 6145:7169(1024) ack 1 win 409611 0.237014(0.0040) bsdi.1027 > svr4.5555: P 7169:8193(1024) ack 1 win 409612 0.240961(0.0039) bsdi.1027 > svr4.5555: P 8193:9217(1024) ack 1 win 409613 0.402143(0.1612) svr4.5555 > bsdi.1027: . ack 9217 win 014 5.351561(4.9494) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409615 5.355571(0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 0

Page 6: 제  22  장

6성균관 대학교SungKyunKwan Univ.

정보통신연구실

TCP Persist Timer TCP Persist Timer 예예 (2)(2)

14 5.351561( 4.9494) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409615 5.355571( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 016 10.351714( 4.9961) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409617 10.355670( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 018 16.351881( 5.9962) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409619 16.355849( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 020 28.352213(11.9964) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409621 28.356178( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 022 52.352874(23.9967) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409623 52.356839( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 024 100.354224(47.9974) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409625 100.358207( 0.0040) svr4.5555 > bsdi.1027: . ack 9217 win 026 160.355914(59.9977) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409627 160.359835( 0.0039) svr4.5555 > bsdi.1027: . ack 9217 win 028 220.357575(59.9977) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409629 220.361668( 0.0041) svr4.5555 > bsdi.1027: . ack 9217 win 030 280.359254(59.9976) bsdi.1027 > svr4.5555: . 9217: 9218(1) ack 1 win 409631 280.363315( 0.0041) svr4.5555 > bsdi.1027: . ack 9217 win 0

Page 7: 제  22  장

7성균관 대학교SungKyunKwan Univ.

정보통신연구실

Spacing of Window ProbesSpacing 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 배수로 계속 )

Page 8: 제  22  장

8성균관 대학교SungKyunKwan Univ.

정보통신연구실

Silly Window SyndromeSilly Window Syndrome

정의 full-sized segment 대신에 적은 양의 data 가 connection 을 통해

교환되는 현상

CASE Receiver: 작은 Window 를 통지 Sender : 적은 양의 데이터를 송신

Page 9: 제  22  장

9성균관 대학교SungKyunKwan Univ.

정보통신연구실

Avoidance of Silly Window SyndromeAvoidance 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 되어 있는 상태가 아닐 때

Page 10: 제  22  장

10성균관 대학교SungKyunKwan Univ.

정보통신연구실

SWS SWS 회피를 위한 데이터 전송 시나리오회피를 위한 데이터 전송 시나리오 (1)(1)

sun % sock -i -n6 bsdi 7777bsdi % sock -i -s -P4 -p2 -r256 7777

sun.1069

PSH 1:1025(1024) ack 1, win 4096

PSH 1025:2049(1024) ack 1, win 4096

bsdi.7777

PSH 2049:3073(1024) ack 1, win 4096

PSH 3073:4097(1024) ack 1, win 4096

ack 4097, win 0

1 2

3

4

54097:4098(1) ack 1, win 40966

ack 4098, win 0 74098:4099(1) ack 1, win 40968

ack 4099, win 0 94099:4100(1) ack 1, win 409610

ack 4100, win 1533 11

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)

Page 11: 제  22  장

11성균관 대학교SungKyunKwan Univ.

정보통신연구실

SWS SWS 회피를 위한 데이터 전송 시나리오회피를 위한 데이터 전송 시나리오 (2)(2)

12

13

14

15

16

17

18

19

20

21

4100:5124(1024) ack 1, win 4096

ack 5124, win 509

5124:5633(509) ack 1, win 4096

ack 5633, win 0

5633:5634(1) ack 1, win 4096

ack 5634, win 1279

FIN, PSH 5634:6145(511) ack 1, win 4096

ack 6146, win 767

ack 6146, win 2816

FIN 1:1(0) ack 6146, win 4096

ack 2, win 409622

sun.1069 bsdi.7777

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)

Page 12: 제  22  장

12성균관 대학교SungKyunKwan Univ.

정보통신연구실

ReceiverReceiver 에 의한 에 의한 SWS SWS 회피회피 EventEvent

Action Receiver bufferTime Segment#

(Fig. 22.2) Send TCP Receive TCP Application data available

0.000 1 1:1025(1024) 1024 30720.002 2 1025:2049(1024) 2048 2048

0.003 3 2049:3073(1024) 3072 1024

0.005 4 3073:4097(1024) 4096 0

0.170 5 ACK 4097, win 0

3.99 read 256 3840 256

5.151 6 4097:4098(1) 3841 255

5.17 7 ACK 4098, win 0

5.99 read 256 3585 511

7.99 read 256 3329 767

9.99 read 256 3073 1023

10.151 8 4098:4099(1) 3074 1022

10.170 9 ACK 4099, win 0

11.99 read 256 2818 1278

13.99 read 256 2562 1534

15.151 10 4099:4100(1) 2563 1533

15.170 11 ACK 4100, win 1533

15.172 12 4100:5124(1024) 3587 509

15.370 13 ACK 5124, win 509

Page 13: 제  22  장

13성균관 대학교SungKyunKwan Univ.

정보통신연구실

SenderSender 에 의한 에 의한 SWS SWS 회피회피 EventEvent

Action Receiver bufferTime Segment#

(Fig. 22.2) Send TCP Receive TCP Application Data Available

15.370 13 ACK 5124, win 50915.99 read 256 3331 765

17.99 read 256 3075 1021

19.99 read 256 2819 1277

20.151 14 5124:5633(509) 3328 768

20.17 15 ACK 5633, win 0

21.99 read 256 3072 1024

23.99 read 256 2816 1280

25.151 16 5633:5634(1) 2817 1279

25.170 17 ACK 5634, win 1279

25.171 18 5634:6145(511) 3328 768

25.174 19 ACK 6146, win 767

25.99 read 256 3072 1024

39.99 read 256 1280 2816

39.99 20 ACK 6146, win 2816

51.99 read 256(EOF) 0 4096

51.991 21 ACK 6146, win 4096

51.992 22 ACK 2

Page 14: 제  22  장

14성균관 대학교SungKyunKwan Univ.

정보통신연구실

Silly Window Syndrome AvoidanceSilly 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 초간 대기 )

Page 15: 제  22  장

15성균관 대학교SungKyunKwan Univ.

정보통신연구실

SummarySummary

Window 를 기반으로 하는 TCP 에서 데이터 흐름 제어를 원활하게 하기 위해 receiver 가 zero-sized window 를 advertise 할 때 set 된다 .

Sender 는 retransmission interval 을 이용해서 closed window probing 을 계속한다 .

Silly window syndrome 회피는 TCP 가 small window 를 advertise 하거나 small segment 를 전송하는 것을 방지한다 .