제 20 장

27
1 Computer Network Lab. 제 20 제 TCP 제제제 제제제 제제

Upload: burke

Post on 05-Jan-2016

49 views

Category:

Documents


0 download

DESCRIPTION

제 20 장. TCP 대용량 데이터 흐름. 목 차. 개요 일반적인 데이터 흐름 슬라이딩 윈도우 윈도우 크기 PUSH 플래그 저속 출발 대용량 데이터 처리율 긴급모드. 1. 개요. 슬라이딩 윈도우 프로토콜 PUSH 플래그 저속시작 (slow start) 대용량 데이터 처리율. 2. 일반적인 데이터 흐름. 두가지의 전송예제 및 전송절차 고속송신자 , 저속송신자. bsdi. .7777. svr. .1056. SYN 1305814529:1305814529(0). 0.0. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 제  20  장

1Computer Network Lab.

제 20 장

TCP 대용량 데이터 흐름

Page 2: 제  20  장

2Computer Network Lab.

목 차 개요 일반적인 데이터 흐름 슬라이딩 윈도우 윈도우 크기 PUSH 플래그 저속 출발 대용량 데이터 처리율 긴급모드

Page 3: 제  20  장

3Computer Network Lab.

1. 개요

• 슬라이딩 윈도우 프로토콜

• PUSH 플래그

• 저속시작 (slow start)

• 대용량 데이터 처리율

Page 4: 제  20  장

4Computer Network Lab.

2. 일반적인 데이터 흐름

• 두가지의 전송예제 및 전송절차

• 고속송신자 , 저속송신자

Page 5: 제  20  장

5Computer Network Lab.

svr .1056 bsdi .7777

SYN 1305814529:1305814529(0)

win 4096,<mss 1024>

SYN 1367249409:1367249409(0)

ack 1305814530,win 4096<mss 1024>

ack 1, win 4096

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

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

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

ack 2049, win 4096

ack 6145, win 4096

1

2

7

8

3

4

5

9

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

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

ack 3073, win 3072

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

PSH 5121:6145(1024) ack 1, win 4096

PSH 6145:7169(1024) ack 1, win 4096

ack 4097, win 4096

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

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

Ack 2, win 4096

15

20

19

18

17

16

PSH 7169:8193(1024) ack 1, win 4096

Ack 8193, win 4096

10

13

12

11

0.0

0.002185 (0.0022)

0.007295 (0.0051)

0.017868 (0.0106)

0.022699 (0.0048)

0.027650 (0.0050)

0.027799 (0.0001)

0.031881 (0.0041)

0.034789 (0.0029)

0.039276 (0.0045)

0.044618 (0.0053)

0.050326 (0.0057)

0.055286 (0.0050)

14 0.055441 (0.0002) 0.061742 (0.0063)

0.066206 (0.0045)

0.066850 (0.0006)

0.068216 (0.0014)

0.069358 (0.0011)

0.075414 (0.0061)

6

Timer 작동

Page 6: 제  20  장

6Computer Network Lab.

전송절차1. 송신자는 먼저 3 개의 데이터 세그먼트 (4 부터 6) 를 전송2. 3 개의 세그먼트 4, 5, 6 은 차례로 도착하여 , 수신된 순서대로 IP 의

입력 큐에 놓여진다3. TCP 가 세그먼트 4 를 처리할 때 연결은 지연된 ACK 를 생성하기

위해 표시4. TCP 는 다음 세그먼트 (5) 를 처리하고 , 이 시점에서 , TCP 에는 2

개의 해결되지 않은 세그먼트를 가지고 있으므로 2049 의 응답이 생성 ( 세그먼트 7) 되고 이 연결에 대한 지연된 ACK 플래그는 해제 .

5. TCP 가 다음 입력 세그먼트 (6) 을 처리하고 , 연결은 다시 지연된 ACK 를 위해 표시

6. 세그먼트 9 가 도착하기 전에 ACK 타이머가 작동하여 3073 에 대한 ACK( 세그먼트 8) 가 생성

Page 7: 제  20  장

7Computer Network Lab.

7. 세그먼트 8 은 3072 바이트의 윈도우를 광고한다 . 이것은 TCP 수신 버퍼에 응용이 아직 읽지 않은 1024 바이트의 데이터가 남아있다는 것을 의미

8. 세그먼트 11, 12, 13 이 도착해서 IP 입력 큐에 놓여진다 .

9. 세그먼트 11 이 TCP 에 의해 처리될 때 연결은 지연 ACK 에 대해 표시 10. 세그먼트 12 가 처리될 때 , 세그먼트 11 과 12 의 ACK 가

생성되고 ( 세그먼트 14), 이 연결을 표시하는 ACK 플래그는 해제11. 세그먼트 13 은 다시 연결의 지연 ACK 를 설정하지만 , 타이머가

작동하기 전에 세그먼트 15 가 처리되고 , 이것에 의해 즉시 ACK가 송신된다 ( 세그먼트 16).

전송절차 ( 계속 )

Page 8: 제  20  장

8Computer Network Lab.

6

1

2

3

4

5

7

8

9

10

11

12

13

14

15

16

ack7169, win 4096

ack8194, win 409617

18

19

svr4.1057 bsdi .8888

0.0

0.002159 (0.0022) 0.007097 (0.0049)

0.017558 (0.0105)

0.022519 (0.0050)

0.027456 (0.0049)

0.027595 (0.0001)

0.035231 (0.0076)

0.040258(0.0050)

0.040402 (0.0001)

0.046791 (0.0064)

0.046930 (0.0001)

0.055466 (0.0085)

0.060522 (0.0051)

0.060662 (0.0001)

0.066479 (0.0058)

0.067878 (0.0014)

0.068994 (0.0011)0.087556 (0.0186)

Page 9: 제  20  장

9Computer Network Lab.

고속 송신자 , 저속 수신자

• 고속 송신자 (sparc 시스템 )와 저속 수신자 (80386 과 저속 이더넷 ) 간의 전송

Page 10: 제  20  장

10Computer Network Lab.

17

16

15

14

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

ack 8194, win 4096

ack 8194, win 0

13

12

11

10

9

8

ack 4097, win 4096

ack 4097, win 0

7

6

5

4

3

2

1win 4096,<mss 1460>

SYN 690560000:690560000(0)

sun.1181 bsdi .siscard

0.0

0.002238 (0.0022)

0.003020 (0.0008)

0.006806 (0.0038)

0.008838 (0.0020)

0.010490 (0.0017)

0.012057 (0.0016)

0.038562 (0.0265)

0.055994 (0.0174)

0.057815 (0.0018)

0.059777 (0.0020)

0.062992 (0.0016)

0.061439 (0.0017)

0.071915 (0.0089)

0.074313 (0.0024)

0.076439 (0.0007)

0.075746 (0.0014)

윈도우 갱신(window update)

Page 11: 제  20  장

11Computer Network Lab.

3. 슬라이딩 윈도우

1 2 3 4 5 6 7 8 9 10 11 ...

송신됐지만확인 응답되지 않은

제공된 윈도우(수신자가 광고 )

이용가능하지 않는 윈도우

송신되고확인 응답된 즉시 송신가능

송신할 수 없다윈도우가 이동될때 까지

Page 12: 제  20  장

12Computer Network Lab.

3. 슬라이딩 윈도우 ( 계속 )

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

닫힘 열림줄어듬

Page 13: 제  20  장

13Computer Network Lab.

1 1024 1025 2048 2049 3072 3073 4096 5121 61444097 5120 7169 81926145 7168

세그먼트 2에서 광고된 윈도우

세그먼트 4, 5, 6 에서송신된 데이터

세그먼트 7에서 광고된 윈도우세그먼트 7에서 확인응답

세그먼트 8에서 광고된 윈도우세그먼트 8에서

확인응답세그먼트 9에서

송신된 데이터

세그먼트 10에서 광고된 윈도우세그먼트 10에서

확인응답세그먼트 11, 12, 13 에서

송신된 데이터세그먼트 14에서

확인응답세그먼트 14에서 광고된 윈도우

세그먼트 15에서

송신된 데이터

세그먼트 16에서

확인응답

Page 14: 제  20  장

14Computer Network Lab.

4. 윈도우 크기

• 수신 프로세스에 의해 제어• 4.2BSD : 2,048 BYTE • 4.3BSD : 4,096 BYTE• SunOS 4.1.3, BSD/386,

SVR4 : 4,096 BYTE• Solaris 2.2, 4.4BSD,

AIX3.2 :8192 ~ 16,384 BYTE

Page 15: 제  20  장

15Computer Network Lab.

5. PUSH 플래그

• 버퍼에 저장된 데이터가 MSS 보다도 작아도 TCP 는 데이터를 전송

• 수신측에서도 이 데이터를 신속하게 응용 프로세스에게 전달

• 오늘날에는 사용하지 않는다 .

Page 16: 제  20  장

16Computer Network Lab.

6. 저속출발

• 다른 LAN 상의 호스트간 데이터 전송시

• 또다른 하나의 윈도우가 필요 : 밀집 윈도우

• 밀집 윈도우는 송신자에 의한 흐름 제어

• 밀집윈도우는 기하급수적으로 증가

Page 17: 제  20  장

17Computer Network Lab.

sun.1118 vangogh .discard

1

2

3

4

5

6

7

8

9

10

11

12

13

ack 2, win 8192

14

15

16

17

18

cwnd = 5

cwnd = 1

cwnd = 2

cwnd = 3

cwnd = 4

cwnd = 6

0.0

0.716330 (0.7163)

0.716967 (0.0006)

0.717640 (0.0007)

1.466086 (0.7484)

1.466778(0.0007)

1.467425 (0.0006)

1.947350 (0.0006)

1.946065 (0.4786)

1.946709 (0.0006)

2.576084 (0.6287)

2.576294 (0.0002)

2.576841 (0.0005)

2.906014 (0.3292)

3.085978 (0.1800)

3.326275 (0.2403)

3.356106 (0.0298)3.356543 (0.0004)

Page 18: 제  20  장

18Computer Network Lab.

7. 대용량 데이터 처리율시간 8 :

수신자

수신자

송신자

수신자

수신자

ack 3ack 2

ack 2 ack 3

ack 3ack 2

ack 2

ack 1

ack 1

ack 1

ack 1수신자

시간 7 :

시간 14 :

송신자

시간 15 :

시간 13 :

시간 6 :

시간 5:

수신자

시간 12 :

시간 11 :

시간 4:

시간 3:

시간 10 :

시간 9 :

송신자

송신자송신자

시간 2:

시간 1:

시간 0:

3

3 21

2

23

3 2

1

1

1

Page 19: 제  20  장

19Computer Network Lab.

시간 24 :

수신자

수신자

송신자

수신자

수신자

ack 9ack 8

ack 8 ack 9

ack 9ack 8

ack 8

ack 4

ack 4

ack 4

ack 4수신자

시간 23 :

시간 30 :

송신자

시간 31 :

시간 29 :

시간 22 :

시간 21:

수신자

시간 28 :

시간 27 :

시간 20:

시간 19:

시간 26 :

시간 25 :

송신자

송신자송신자

시간 18:

시간 17:

시간 16: 4

ack3송신자

45

456

ack 7송신자

ack 5 ack 6

송신자ack 6 ack 7

송신자송신자

ack 7

수신자

수신자수신자

ack 10

송신자

송신자

송신자

송신자

수신자수신자

송신자

ack 10 ack 11수신자

ack 5 ack 6 ack7

수신자수신자

ack 5 ack 6

ack 5

수신자수신자

8

89

8910

11 10 9 8

9101112

4567

567

10111213

11121314

67

7

12131415

Page 20: 제  20  장

20Computer Network Lab.

대역폭 - 지연 산출

• 파이프 용량 ( 비트 ) = 대역폭 ( 비트 / 초 ) x 왕복시간 ( 초 )

• 문제- 미국지역 (RTT 는 약 60ms) 을 연결하고 있는 T1 전화회선 (1,544,000 비트 / 초 ) 의 대역폭 - 지연 산출은 ?

• 해답 - 11,580byte = T1(1,544 비트 / 초 ) x 0.06( 초 )

Page 21: 제  20  장

21Computer Network Lab.

대역폭 - 지연 산출 ( 계속 )

2배의 RRT

RRT

1 2 3 4

1 2 3 4 5 6 7 8

RRT

4321

4321

• RTT 와 파이프용량 관계

• 대역폭과 파이프용량 관계

Page 22: 제  20  장

22Computer Network Lab.

밀집 (Congestion)

송신자

송신자

수신자라우터 R1

라우터 R2

라우터 R3

라우터 R4ack 3 ack 5ack 4 ack 6

20 19 18 17 16 15병목현상

14 13 12 11

10 9

ack 1 ack 2 ack 7 ack 8

수신자

• 큰파이프에서 작은 파이프로 보내질때 발생

Page 23: 제  20  장

23Computer Network Lab.

긴급모드

• 일반 데이터 스트림에 긴급 데이터를 보내는 것

- telnet, rlogin 으로서 대화식 사용자가 인터럽트 키를 눌렀을때 (26 장 )

- ftp 로서 인터럽트 키가 파일 전송을 중지시킬때 (27 장 )

Page 24: 제  20  장

24Computer Network Lab.

긴급모드 ( 계속 )

15 16

20 바이트

0 31

16 비트 발신지 포트 번호 16 비트 목적지 포트 번호

32 비트 순서 번호

4비트 헤더 길이

32 비트 확인 응답 번호

예약됨(6 비트 )

URG

ACK

PSH

RST

SYN

FIN

16 비트 윈도우 길이

16 비트 TCP 검사합

옵션 ( 만약 있다면 )

데이터 ( 만약 있다면 )

16 비트 긴급 포인트

Page 25: 제  20  장

25Computer Network Lab.

긴급모드 ( 계속 )

sun % sock -v -i -n6 -S8192 -U5 bsdi 5555SO_SNDBUF = 8192TCP_MAXSEG = 1024wrote 1024 byteswrote 1024 byteswrote 1024 byteswrote 1024 byteswrote 1 bytes of urgent datawrote 1024 byteswrote 1024 bytes

Page 26: 제  20  장

26Computer Network Lab.

긴급모드 ( 계속 )

1 sun.1035 > bsdi.5555: P 1:1025(1024) ack 1 win 40962 sun.1035 > bsdi.5555: P 1025:2049(1024) ack 1 win 40963 sun.1035 > bsdi.5555: P 2049:3073(1024) ack 1 win 40964 bsdi.5555 > sun.1305: . ack 3073 win 10245 sun.1035 > bsdi.5555: P 3073:4097(1024) ack 1 win 4096

6 sun.1035 > bsdi.5555: . ack 1 win 4096 urg 40987 sun.1035 > bsdi.5555: . ack 1 win 4096 urg 40988 sun.1035 > bsdi.5555: . ack 1 win 4096 urg 40989 sun.1035 > bsdi.5555: . ack 1 win 4096 urg 409810 sun.1035 > bsdi.5555: . ack 1 win 4096 urg 4098

11 bsdi.5555 > sun.1305: . ack 4097 win 012 sun.1305 > bsdi.5555: . ack 1 win 4096 urg 4098

13 bsdi.5555 > sun.1305: . ack 4097 win 204814 sun.1305 > bsdi.55555: . 4097:5121(1024) ack 1 win 4096

urg 409815 sun.1305 > bsdi.55555: . 5121:6145(1024) ack 1 win 409616 bsdi.5555 > sun.1305: . ack 4097 win 4096

긴급모드로 들어갈때

마지막 2 개의 세그먼트를 쓴 후

종단의 연결을 종료할때

4 번째줄의 ACK 에 대한

수신에 의해 생성

Page 27: 제  20  장

27Computer Network Lab.

긴급포인트

쓰기 쓰기 쓰기 쓰기 쓰기 쓰기

순서 번호 #

세그먼트 세그먼트 세그먼트 세그먼트 세그먼트 세그먼트

1 1024 1025 2048 2049 3072 3073 4096 4097 4098 5121 5122 6145

긴급모드 ( 계속 )