1 / 32

제 21 장

제 21 장. TCP 타임아웃과 재전송. 목차. 개요 TCP 간단한 타임아웃과 재전송 예 왕복 시간 측정 RTT 예 폭주의 예 폭주 회피 알고리즘 고속 재전송과 고속 복구 알고리즘 라우트 매트릭스 ICMP 에러 재패킷화 요약. 1. 개요. 데이터 세그먼트 , 응답 세그먼트의 전송 도중에 상실 . 데이터 전송시 타임아웃 시간설정 . 타임아웃 시간 초과 후 데이터 재전송 . TCP 연결에 있어서의 서로 다른 4 가지 타이머

flann
Download Presentation

제 21 장

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. 제 21 장 TCP 타임아웃과 재전송 정보통신연구실

  2. 목차 • 개요 • TCP • 간단한 타임아웃과 재전송 예 • 왕복 시간 측정 • RTT 예 • 폭주의 예 • 폭주 회피 알고리즘 • 고속 재전송과 고속 복구 알고리즘 • 라우트 매트릭스 • ICMP 에러 • 재패킷화 • 요약 정보통신연구실

  3. 1. 개요 • 데이터 세그먼트, 응답 세그먼트의 전송 도중에 상실. • 데이터 전송시 타임아웃 시간설정. • 타임아웃 시간 초과 후 데이터 재전송. • TCP 연결에 있어서의 서로 다른 4가지 타이머 • 재전송 타이머(retransmission timer) - 21장 • 지속 타이머(persist timer) - 22장 • 유지 타이머(keepalive timer) - 23장 • 2MSL 타이머 - 18.6절 정보통신연구실

  4. 계속 • TCP 타임아웃과 재전송의 예. • 왕복 시간 측정 방법. • 왕복 시간 측정 후 다음 세그먼트 전송시 재전송 타임아웃 설정 방법. • TCP 폭주에 따른 제어. • 고속 재전송(fast retransmission). • 고속 회복 알고리즘(fast recovery). • 상실한 패킷의 재패킷화(repacketization). 정보통신연구실

  5. 2. T C P • 연결형 서비스(connection-oriented service). • 근원지 호스트의 연결 요청, 목적지 호스트의 연결 설정 동의. • 전이중(full-duplex) 방식. 근원지 전달 계층 사용자 목적지 전달 계층 사용자 TCP 연결형 서비스 정보통신연구실

  6. 계속 • 가상 선로(Virtual Circuit). • 슬라이딩 윈도우 프로토콜을 사용한 데이터 전송. • 송신자 : 일련번호(Sequence Number)와 함께 데이터 전송. • 수신자 : 전송 확인 번호(Acknowledge Number) 응답. • 전송한 데이터에 대한 전송 확인(Ack)이 도착하기 전에 윈도우 크기만큼의 데이터를 지속적으로 전송할 수 있다. 정보통신연구실

  7. 계속 발신 수신 발신 수신 데이터1 데이터1 Ack 확 인 없 이 데 이 터 송 신 Ack 확 인 후 데 이 터 송 신 데이터2 Ack1 Ack1 데이터3 데이터2 Ack2 데이터4 Ack3 Ack2 데이터3 Ack3 . . . . . . A B 정보통신연구실

  8. 3. 간단한 타임아웃과 재전송 예 Bsid % telnet svr4 discard Tyring 140.252.13.34… Connected to svr4. Escape character is ‘^]’. Hello, world and hi Connection closed by foreign host -TCPdump output 1 0.0 bsdi.1029 > svr4.discard: S 1747921409:1747921409(0) win 4096 <mss> 4096 2 0.004811(0.0048) svr4.discard > bsdi.1029: S 3416685569:3416685569(0) ack 1747921410 win 4096 <mss 1024> 3 0.006441(0.0015) bsdi.1029 > svr4.discard: . ack 1 win 4096 정보통신연구실

  9. 계속 4 6.102290(6.0958) bsdi.1029 > svr4.discard: P 1:15(14) ack 1 win 4096 5 6.259410(0.1571) svr4.discard > bsdi.1029: . Ack 15 win 4096 6 24.480158(18.2207) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 7 24.493733(1.0136) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 8 28.493795(3.0001) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 9 34.493971(6.0002) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 10 46.484427(11.9905) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 11 70.485105(24.0007) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 12 118.486408(48.0013 ) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 13 182.488164(64.0018) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 14 246.489921(64.0018) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 15 310.491678(64.0018) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 16 374.493431(64.0018) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 17 438.495191(64.0018) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 18 502.486941(64.9917) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 19 566.488478(64.0015) bsdi.1029 > svr4.discard: P 15:23(8) ack 1 win 4096 정보통신연구실

  10. 계속 • 지수 백오프(exponential backoff) • 1초(7번), 3초(8번), 6초(9번), 12초(10번) … • 이전 타임아웃 시간 2 = 다음 타임아웃 시간 • 6번(24.480초) ~ 19번(566.488초) • 566.488 - 24.480 = 342.008(초) • 542.008  60.000  9.033(분) 정보통신연구실

  11. 4. 왕복 시간(Round-Trip Time) 측정 • TCP의 타임아웃과 재전송 • 경로의 변경 또는 네트워크 트래픽의 변화에 따른 시간 변경이필요. • 왕복시간(RTT)의 측정. • TCP는 일련번호(Sequence Number)를 가진 데이터를 송신. • 송신 데이터에 대한 확인응답이 돌아오기까지의 시간 측정. • R R  ( 1   )M • 측정한 RTT 값 : M • RTT 평가 값 : R •  : 0.9 정보통신연구실

  12. 계속 • 재전송 타임아웃 값(RTO) • RTT의 변화에 따라 재전송 타임아웃 값이 달라짐. • RTO = R •  : 지연분산 계수로서 권장 값 2. • Jacobson의 문제 제기 • 부하가 걸려있는 네트워크에서 불필요한 재전송은 부하를 가중시키는 결과를 가져온다. • RTT 측정 값의 분산 값을 기반으로 RTO를 계산하여 RTT의 변동에 대응한다. 정보통신연구실

  13. 계속 Err = M - A A A + g Err D D + h(| Err | - D) RTO = A + 4D • A : RTT평균 평가값. • D : 평균 편차. • Err : 실제 측정 값 - 현재 RTT 측정 값. • g : 평균 0.125(1/8) • h : 편차의 계수 0.25 • 계수가 커지면 RTT가 변화할때 RTO 급속히 증가. 재전송 타이머 계산에 사용. 정보통신연구실

  14. 계속 • 재전송 애매성 문제(retransmission ambiguity problem) • 패킷을 재전송할 때 타임아웃이 발생 한다고 가정. • 재전송 타임아웃(RTO) 값에 의한 패킷의 재전송. • 수신측의 확인응답(Ack)이 도착. • 송신측에 도착한 확인응답(Ack)이 첫번째 전송에 대한 것인지 두번째 전송에 대한 것인지 불확실한 결과 초래. • RTT 평가값의 변경 불가. • 타임아웃과 재전송이 발생했을때 재전송된 데이터에 대한 확인응답이 도착하더라도 RTT평가 값을 변경. • 재전송 애매성 문제에 의해 확인응답을 Mapping. 정보통신연구실

  15. 5. RTT 예 1 3 6 1 왕복시간1 (1.061 초) 측정이 시작된 세그먼트 1 1 3 6 3 확인 응답 세그먼트 왕복시간2 (0.808 초) 4 4 7 8 3 4 6 측정이 시작된 세그먼트 왕복시간3 (1.015 초) 7 4 6 8 갱신되지 않는 세그먼트 정보통신연구실

  16. 계속 2 RTT (second) 1 5 10 15 20 TIME(second) ~ 왕복시간 재전송 구간 :확인 응답될 때까지 평가 값은 갱신되지 않음. 정보통신연구실

  17. 계속 • 초기 재전송 타임아웃. • A : 0, D : 3 • RTO = A + 2D = 0 + 2  3 = 6초(초기 계산에만 2D 적용) • 타임아웃 발생 후 재전송 타임아웃. • A : 0, D : 3 • RTO = A + 4D = 0 + 4  3 = 12초 1 0.0 slip.1024 > vangogh.discard : S 35648001 : 356480001(0) win 4096 <mss 256> 2 5.802377(5.8024) slip.1024 > vangogh.discard : S 35648001 : 35648001 (0) win 4096 <mss 256> 3 6.269395(0.4670) vangogh.dicard > slip.1024 : S 1365512705:1365512705(0) ack 35648002 win 8192<mss 256> 4 6.27.796(0.0014) slip.1024 > vangogh.discard : . Ack 1 win 4096 정보통신연구실

  18. 계속 500ms 0.03 0.53 1.03 1.53 2.03 2.53 3.03 0.0 1.061 1.063 1.871 1.872 2.887 On off on off on off 왕복시간1 (1.061 초) 왕복시간2 (0.808 초) 왕복시간3 (1.015 초) 1 주기 (5000ms) 2 주기 (10000ms) 3 주기 (15000ms) 정보통신연구실

  19. 계속 • 처음 데이터 세그먼트의 확인 응답 후 평가 값 갱신. • A = M + 0.5 = 1.5 + 0.5 = 2 • D = A / 2 = 1 • RTO 평가 값 계산. • A + 4D = 2 + 4  1 = 6초 • 두 번째 데이터 세그먼트의 확인 응답 후 평가 값 갱신. • Err = M - A = 0.5 - 2 = -1.5 • A = A + gErr = 2 - 0.125  1.5 = 1.8125 • D = D + h(|Err| - D) = 1 + 0.25 (1.5 - 1) = 1.125 • RTO 평가 값 계산. • RTO = A + 4D = 1.8125 + 4  1.125 = 6.3125 정보통신연구실

  20. 6. 폭주의 예 정보통신연구실

  21. 계속 1 256byte 3 2 2 4 2 사용자 프로세서 5 2 6 2 7 2 8 save 2 2 9.158419 ~ 11.438824 (second) 2 2 2 2 9 2304byte 10 사용자 프로세서 11 정보통신연구실

  22. 7. 폭주 회피 알고리즘 • 손실된 패킷 문제를 해결하는 방법. • 패킷의 손실. • 발신지와 목적지 사이의 네트워크 어딘가에 폭주 발생. • 타임아웃 발생. • 중복된 확인 응답의 수신. • 폭주회피와 저속출발 이용. • 폭주회피 • Congestion window  Ssthresh • 저속출발 • Ssthresh > Congestion window 저속출발: 20.6절 참조 정보통신연구실

  23. 계속 • Cwnd : 1 세그먼트, Ssthresh : 65535 바이트로 설정. • Cwnd와 수신자가 전달하는 윈도우의 최소값을 초과하는 송신은 하지 않음. • 폭주 발생시 현재 윈도우 크기의 1/2이 Ssthresh에 저장. • 타임아웃에 의한 폭주일때 Cwnd는 1세그먼트로 설정. • 수신측에 의해 확인응답이 발생할때 Cwnd 증가. 정보통신연구실

  24. 계속 정보통신연구실

  25. 8. 고속 재전송과 고속 복구 알고리즘 • 중복 Ack의 생성 • 송신측이 보낸 세그먼트 순서번호가 다를 경우. • 수신측이 기대하는 순서번호가 아닐 경우. • 송신측에게 알린다. • 고속 재전송 알고리즘 • 2개의 중복 Ack : 세그먼트의 교체. • 3개 이상의 중복 Ack : 세그먼트의 손실. • 재전송 타이머를 기다리지 않고 요구된 세그먼트 재전송. • 고속 복구 알고리즘 • 폭주 회피 수행. 정보통신연구실

  26. 계속 1 256byte 3 2 2 4 2 사용자 프로세서 5 2 6 2 7 2 8 save 2 2 9.158419 ~ 11.438824 (second) 2 2 2 2 9 2304byte 10 사용자 프로세서 11 정보통신연구실

  27. 계속 • 3개의 중복 Ack 수신후에도 저속출발을 수행 않함. • 송신측은 수신측에 의해 요구된 세그먼트 재전송.( ) • 재전송에 대한 확인응답을 받기전에 새로운 세그먼트 전송( ) • 수신측은 또다른 세그먼트를 수신했을때 중복 Ack를 생성. • 세그먼트는 수신버퍼에 진입. • 즉, 송신측과 수신측사이에 데이터 흐름이 계속되고 있음을 의미. • 저속 출발로 인한 흐름의 감소를 야기시키지 않기 위해. 2 9 10 11 정보통신연구실

  28. 9. 라우트 메트릭스 • 송 • 수신측간의 TCP연결 종료후 RTT, 평균편차, 저속 출발 기준 값의 정보를 라우팅 테이블 엔트리에 저장. • ROUTE명령을 이용해 관리자는 특정 경로의 매트릭스를 설정할 수 있다. • 새로운 TCP 연결이 확립될때 라우팅 테이블 엔트리에 저장되어있는 매트릭스 값에 의해 초기화된다. 정보통신연구실

  29. 10. ICMP 에러 • ICMP(Internet 계속rol Message Protocol) 오류 메시지 • 목적지 도달 불능(Destination Unreachable) • IP 데이터 그램이 목적지 호스트로 전달될 수 없을 경우. • 시간 초과(Time Exceeded) • IP 데이터그램의 수명 필드에 포함된 값이 만료되어 IP 데이터 그림이 폐기되었을 때. • 무효 파라미터(Invalid Parameter) • IP데이터그램에서 하나 또는 그 이상의 헤더 필드가 적합하지 않은 데이터를 포함할 경우. • 근원지 억제(Source Quench) • 잠시 동안 IP 데이터그램의 송신을 멈추도록 근원지 호스트에 요청하기 위해 보내질 경우. 정보통신연구실

  30. 계속 1 slip % sock aix echo 2 test line 3 test line 4 another line 14 another line 15 line number 3 16 line number 3 17 the last line read error : No route to host 호스트 도달불가 에러 ICMP : 6장 참조 정보통신연구실

  31. 11. 재패킷화 (repacketization) • 타임아웃 발생시 동일한 세그먼트를 재전송하지 않는다. • TCP는 보다 큰 세그먼트를 보낼 때 재 패킷화를 실행. (수신측의 MSS를 초과할 수 없다.) bsdi % sock svr4 discard hello there line number 2 and 3 첫번째 데이터 전송 이더넷 케이블 절단 두번째 데이터 전송 세번째 데이터 전송 정보통신연구실

  32. 12. 요약 • 타임아웃 발생 시 재전송 타임아웃 값의 지수 백오프. • 왕복시간 측정(RTT). • RTT평가 값과 평균편차 평가 값에의한 RTO 계산. • Karn’s 알고리즘에서 재전송 애매성 문제. • 저속 출발, 폭주 회피, 고속 재전송, 고속 복구 알고리즘. • ICMP 에러. • 라우트 메트릭스를 이용한 초기화. • 재 패킷화를 통한 전송의 효율화. 정보통신연구실

More Related