Upload
alice-cortez
View
28
Download
1
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
1성균관 대학교SungKyunKwan Univ.
정보통신연구실
제 제 22 22 장장
TCP Persist Timer
2성균관 대학교SungKyunKwan Univ.
정보통신연구실
ContentsContents
Introduction
TCP Persist Timer
Silly Window Syndrome
Summary
3성균관 대학교SungKyunKwan Univ.
정보통신연구실
IntroductionIntroduction
Window 를 기반으로 한 TCP 흐름 제어
데이터 패킷 전송 시 수신 가능한 Window Size 를 지정 (Receiver)
Window Size 가 “ 0” 이면 ?• 데이터 전송을 중지하고 대기 상태 (Sender)
TCP 의 Dead Lock 상태
Sender/Receiver 모두 대기 상태 데이터 패킷에 대한 Ack 메시지가 분실될 경우 발생 Ack 패킷에 대한 응답확인패킷이 없음
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 과
다른점 )
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
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
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 배수로 계속 )
8성균관 대학교SungKyunKwan Univ.
정보통신연구실
Silly Window SyndromeSilly Window Syndrome
정의 full-sized segment 대신에 적은 양의 data 가 connection 을 통해
교환되는 현상
CASE Receiver: 작은 Window 를 통지 Sender : 적은 양의 데이터를 송신
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 되어 있는 상태가 아닐 때
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)
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)
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
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
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 초간 대기 )
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 를 전송하는 것을 방지한다 .