1 / 16

제 19 장

제 19 장. TCP 대화식 데이터 흐름. 차례. 서론 대화식 입력 지연된 확인응답 Nagle 알고리즘 윈도우 크기 정보 요약. 19.1 서론. TCP 세그먼트 (TCP 트래픽에 관한 연구에 따르면 ) 패킷 - 카운트를 기준으로 분류 대용량 데이터 : 50% (FTP, 전자우편 , 유즈넷 뉴스 ) 대화식 데이터 : 50% (Telnet, Rlogin) 바이트 카운트 기준으로 분류 대용량 데이터 : 90% 대화식 데이터 : 10% 이유

flann
Télécharger la présentation

제 19 장

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. 제 19 장 TCP 대화식 데이터 흐름 정보통신연구실

  2. 차례 • 서론 • 대화식 입력 • 지연된 확인응답 • Nagle 알고리즘 • 윈도우 크기 정보 • 요약 정보통신연구실

  3. 19.1 서론 • TCP 세그먼트 (TCP 트래픽에 관한 연구에 따르면) • 패킷-카운트를 기준으로 분류 • 대용량 데이터 : 50% (FTP, 전자우편, 유즈넷 뉴스) • 대화식 데이터 : 50% (Telnet, Rlogin) • 바이트 카운트 기준으로 분류 • 대용량 데이터 : 90% • 대화식 데이터 : 10% • 이유 • 대용량 데이터 세그먼트는 최대 길이가 되는 반면, 대화식 데이터는 훨씬 작기 때문. 정보통신연구실

  4. 클라이언트 서버 키보드 입력 데이터 바이트 서버 데이터 바이트의 ack 에코 데이터 바이트의 에코 디스플레이 에코된 바이트의 ack 19.2 대화식 입력 • Rlogin 연결에서의 데이터 흐름 • 한 번에 한 바이트씩 전송 • 4가지 세그먼트 생성 (1) 클라이언트로부터 대화식 키보드 입력 (2) 서버로부터 키보드 입력에 대한 확인응답 (3) 서버로부터 키보드 입력에 대한 에코 (4) 클라이언트로부터 에코에 대한 확인응답 정보통신연구실

  5. 예제 • 5개의 문자(date\n)를 키보드로 입력했을 때의 TCP 세그먼트 svr4 % date svr4 % Sat Feb 6 07:52:17 MST 1993 svr4 % 1 0.0 bsdi.1023 > svr4.login:P 0:1(1) ack 1 win 4096 2 0.016497 (0.0165) svr4.login > bsdi.1023:P 1:2(1) ack 1 win 4096 3 0.139955 (0.1235) bsdi.1023 > svr4.login: . ack 2 win 4096 4 0.458037 (0.3181) bsdi.1023 > svr4.login:P 1:2(1) ack 2 win 4096 5 0.474386 (0.0163) svr4.login > bsdi.1023:P 2:3(1) ack 3 win 4096 6 0.539943 (0.0656) bsdi.1023 > svr4.login: . ack 3 win 4096 정보통신연구실

  6. 예제 (Cont’d) 7 0.814582 (0.2746) bsdi.1023 > svr4.login:P 2:3(1) ack 3 win 4096 8 0.831108 (0.0165) svr4.login > bsdi.1023:P 3:4(1) ack 3 win 4096 9 0.940112 (0.1090) bsdi.1023 > svr4.login: . ack 4 win 4096 10 1.191287 (0.2512) bsdi.1023 > svr4.login:P 3:4(1) ack 4 win 4096 11 1.207701 (0.0164) svr4.login > bsdi.1023:P 4:5(1) ack 4 win 4096 12 1.339994 (0.1323) bsdi.1023 > svr4.login: . ack 5 win 4096 13 1.680646 (0.3407) bsdi.1023 > svr4.login:P 4:5(1) ack 5 win 4096 14 1.697977 (0.0173) svr4.login > bsdi.1023:P 5:7(2) ack 5 win 4096 15 1.739974 (0.0420) bsdi.1023 > svr4.login: . ack 7 win 4096 16 1.799841 (0.0599) svr4.login > bsdi.1023:P 7:37(30) ack 5 win 4096 17 1.940176 (0.1403) bsdi.1023 > svr4.login: . ack 37 win 4096 18 1.944338 (0.0042) svr4.login > bsdi.1023:P 37:44(7) ack 5 win 4096 19 2.140110 (0.1958) bsdi.1023 > svr4.login: . ack 44 win 4096 정보통신연구실

  7. 19.3 지연된 확인응답 • 보통 TCP는 데이터를 받는 즉시 ACK를 보내지 않고, ACK를 지연시켜서 같은 방향으로 향하는 데이터와 함께 전송되도록 한다. bsdi.1023 Svr4.login PSH 0:1(1) ack 1(d) 0.0 0.016497 (0.0165) *0.139955 (0.1235) 0.458037 (0.3181) 0.474386 (0.0163) *0.539943 (0.0656) 0.814582 (0.2746) 0.831108 (0.0165) *0.940112 (0.1090) 1.191287 (0.2512) 1.20770 (0.0164) *1.339994 (0.1323) 1 PSH 1:2(1) ack 1 (echo of d) 2 지연된 ACK ack 2 3 4 PSH 1:2(1) ack 2(a) • 시간의 간격은 • 200ms의 배수 • 139.9 ms • 539.9 ms • 940.1ms • 1339.9 ms PSH 2:3(1) ack 2 (echo of a) 5 지연된 ACK ack 3 6 PSH 2:3(1) ack 3(t) 7 PSH 3:4(1) ack 3 (echo of t) 8 지연된 ACK ack 4 9 PSH 3:4(1) ack 4(e) 10 PSH 4:5(1) ack 4 (echo of e) 11 지연된 ACK ack 5 12 정보통신연구실

  8. 19.4 Nagle 알고리즘 • 발생배경 • 작은 패킷은 WAN에서는 혼잡에 영향을 줄 수 있다. • 방법 • 작은 양의 데이터가 TCP에 의해 모아져서 확인응답이 도착할 때에 보낸다. • 장점 • 자기-클럭 조정(self-clocking) • ACK가 빨리 돌아오면 데이터도 빨리 보내게 된다. 정보통신연구실

  9. Slip.0123 Vangogh.login PSH 5:6(1) ack 47, win 4096 0.0 0.197694 (0.1977) 0.232457 (0.0348) 0.437593 (0.2051) 0.464257 (0.0267) 0.677658 (0.2134) 0.707709 (0.0301) 0.917762 (0.2101) 0.945862 (0.0281) 1.157640 (0.2118) 1.187501 (0.0299) 1.427852 (0.2404) 1.428025 (0.0002) 1.47191 (0.0292) 1.478429 (0.0212) 1.727608 (0.2492) 1.762913 (0.0353) 1.997900 (0.2350) 1 2 PSH 47:48(1) ack 6, win 8192 PSH 6:7(1) ack 48, win 4096 3 4 PSH 48:49(1) ack 7, win 8192 PSH 7:9(2) ack 49, win 4095 5 6 PSH 49:51(2) ack 9, win 8192 PSH 9:10(1) ack 49, win 4094 7 8 PSH 51:52(1) ack10, win 8192 9 PSH 10:12(2) ack 52, win 4095 PSH 52:54(2) ack12, win 8192 10 PSH 12:14(2) ack 54, win 4094 11 12 Ack14, , win 8190 13 PSH 54:56(2) ack14, win 8192 PSH 14:17(3) ack 54, win 8192 14 PSH 17:18(1) ack 56, win 4096 15 16 PSH 56:59(3) ack18, win 8191 PSH 18:21(3) ack 59, win 4093 17 PSH 59:60(1) ack21, win 8189 18 19.4 Nagle 알고리즘 (cont’d) • slip과 vangogh.cs.berkeley.edu간에 rlogin을 이용한 데이터 흐름 정보통신연구실

  10. 19.4 Nagle 알고리즘 (cont’d) • Nagle 알고리즘 기능 억제가 필요한 경우 • 마우스 이동 • 특수한 Function key를 입력한 경우 • Function key는 보통 복수 바이트의 데이터 생성 정보통신연구실

  11. 예제 • 복수 바이트 데이터를 생성하는 문자를 눌렀을 때 Nagle 알고리즘의 관찰 F1 키를 누른다. 1 0.0 slip.1023 > vangogh.login: P 1:2(1) ack 2 2 0.250520 (0.2505) vangogh.login > slip.1023: P 2:4(2) ack 2 3 0.251709 (0.0012) slip.1023 > vangogh.login: P 2:4(2) ack 4 4 0.490344 (0.2386) vangogh.login > slip.1023: P 4:6(2) ack 4 5 0.588694 (0.0984) slip.1023 > vangogh.login: . ack 6 F2 키를 누른다. 6 2.836830 (2.2481) slip.1023 > vangogh.login: P 4:5(1) ack 6 7 3.132388 (0.2956) vangogh.login > slip.1023: P 6:8(2) ack 5 8 3.133573 (0.0012) slip.1023 > vangogh.login: P 5:7(2) ack 8 9 3.370346 (0.2368) vangogh.login > slip.1023: P 8:10(2) ack 7 10 3.388692 (0.0183) slip.1023 > vangogh.login : . ack 10 정보통신연구실

  12. Vangogh.login Slip.1023 PSH 1:2(1) ack 2 1 F1키 누름 F2키 F1키 1 1 PSH 2:4(2) ack 2 2 N [ ESC M [ ESC 3 PSH 2:4(2) ack 4 순서#: 6 5 4 3 2 1 4 PSH 4:6(2) ack 4 ack 6 5 PSH 4:5(1) ack 6 F1 에코 F2 에코 F2키 누름 6 7 ^ [ [ M ^ [ [ N PSH 6:8(2) ack 5 8 PSH 5:7(2) ack 8 2 3 4 5 6 7 8 9 PSH 8:10(2) ack 7 9 10 ack 10 예제 (cont’d) • Nagle 알고리즘의 타임 라인 0.0 0.250520 (0.2505) 0.251709 (0.0012) 0.490344 (0.2386) 0.588694 (0.0984) 2.836830 (2.2481) 3.3132388 (0.2956) 3.3133573 (0.0012) 3.370346 (0.2368) 3.388692 (0.0183) 정보통신연구실

  13. 예제 (cont’d) • Nagle 알고리즘이 동작하지 않도록 수정된 예 F1 키를 누른다. 1 0.0 slip.1023 > vangogh.login: P 1:2(1) 2 0.002163 (0.0022) slip.1023 > vangogh.login: P 2:3(2) ack 2 3 0.004218 (0.0021) slip.1023 > vangogh.login: P 2:3(1) ack 2 4 0.280621 (0.2764) vangogh.login > slip.1023: P 5:6(1) ack 4 5 0.281738 (0.0011) slip.1023 > vangogh.login: . ack 2 6 2.477561 (2.1958) vangogh.login > slip.1023: P 2:6(4) ack 4 7 2.478735 (0.0012) slip.1023 > vangogh.login: . ack 6 F2 키를 누른다. 8 3.217023 (0.7383) slip.1023 > vangogh.login: P 4:5(1) ack 6 9 3.219165 (0.0021) slip.1023 > vangogh.login: P 5:6(1) ack 6 10 3.221688 (0.0025) slip.1023 > vangogh.login: P 6:7(1) ack 6 11 3.460626 (0.2389) vangogh.login > slip.1023: P 6:8(2) ack 5 12 3.489414 (0.0288) vangogh.login > slip.1023: P 8:10(2) ack 7 13 3.640356 (0.1509) slip.1023 > vangogh.login : . ack 10 정보통신연구실

  14. Vangogh.login Slip.1023 PSH 1:2(1) ack 2 1 0.0 0.002163 (0.0022) 0.004218 (0.0021) 0.280621 (0.2764) 0.281738 (0.0011) 2.477561 (2.1958) 2.478735 (0.0012) 3.217023 (0.7383) 3.219165 (0.0021) 3.221688 (0.0025) 3.460626 (0.2389) 3.489414 (0.0288) 3.640356 (0.1509) F1키 누름 2 PSH 2:3(1) ack 2 F2키 F1키 PSH 3:4(1) ack 2 3 PSH 2:5(3) ack 3 (LOST) N [ ESC M [ ESC 4 PSH 5:6(1) ack 4 순서#: 6 5 4 3 2 1 5 ack 2 6 F1 에코 F2 에코 ack 6 7 F2키 누름 PSH 4:5(1) ack 6 8 ^ [ [ M ^ [ [ N 9 PSH 5:6(1) ack 6 11 10 PSH 6:7(1) ack 6 2 3 4 5 6 7 8 9 PSH 6:8(2) ack 5 PSH 8:10(2) ack 7 12 13 ack 10 예제 (cont’d) • Nagle 알고리즘의 타임 라인 PSH 2:6(4) ack 4 정보통신연구실

  15. 19.5 윈도우 크기 정보 • 서버 • 보통 8,192 바이트의 윈도우 광고 • 서버가 클라이언트로부터 입력을 읽고, 그것을 에코할 때까지 서버의 TCP는 보낼 것이 아무 것도 없기 때문 • 클라이언트 • ACK가 도착할 때에 보낼 데이터를 가지고 있다. • ACK를 기다리는 수신 문자를 버퍼에 저장하고 있기 때문에, 윈도우 광고는 4,096보다 적게 든다. 정보통신연구실

  16. 19.6 요약 • 대화식 방식의 데이터 • 보통 1바이트 데이터가 클라이언트에서 서버로 전송 • 지연된 확인응답 • 송신자에게 돌려줄 데이터를 확인응답에 편승해서 보내는 가를 알아보기 위해 사용 • Nagle 알고리즘 • 비교적 저속의 WAN에서 작은 세그먼트 수를 줄이기 위해 사용 정보통신연구실

More Related