RTT   Round Trip Time   왕복시간, RTT 예측, RTT 측정

(2022-07-04)

RTO, Retransmission Timeout, 재전송 타임아웃, Karn Algorithm, 카른 알고리즘, Karn 알고리즘, 지수 RTO 후퇴


1. RTT (Round Trip Time, 왕복 시간)패킷망(인터넷) 상에서, 송신지부터 목적지 호스트까지, 패킷이 왕복하는데 걸리는 시간
     - 이에 영향 주는 요소 :  망의 혼잡, 거리, 전송속도 등이 있음


2. IP 패킷의 RTTIP 패킷 왕복시간은, 
     - ping 명령어를 사용하여 RTT(왕복시간) 및 TTL(IP패킷수명) 수치를 알아볼 수 있음


3. TCP 세그먼트의 RTT 측정 및 RTO 예측/추정

  ㅇ RTT (Round Trip Time, 왕복 시간) 측정
     - 1 이상의 TCP 세그먼트들이 보내면, 1번 만 확인응답이 이루어지며, 그 왕복시간을 측정

     - RTT 측정샘플 세그먼트의 송신부터 확인응답 받기까지의 왕복시간을 측정
        . 네트워크 가변성 때문에 RTT 샘플 측정값은 그때 마다 달라지게됨

  ㅇ RTO (Retransmission Timeout, 재전송 타임아웃 시간) 설정 또는 계산
       = 전송된 한 세그먼트에 대한 확인응답을 기다려야 하는 시간
       = TCP 재전송 타이머 값

     - 송신 TCP는 매 세그먼트를 전송할 때 마다 재전송 타이머(RTO) 가동함
        . RTO는 TCP 연결의 RTT(왕복시간) 보다 약간 크면 이상적임
           .. 즉, 세그먼트 전송부터 확인응답 받기까지의 시간 보다 약간 크면 좋음
        . 얼마나 커야 하는지 즉, RTT 예측에 대해 여러 계산 방식들이 있음

  ㅇ RT0 계산을 위해 필요한 변수 유지
     - TCP 송신 모듈은 RTO 계산을 위해 1개 측정변수 및 2개 상태변수를 유지해야 함
        . MRTT (measured RTT, 측정된 RTT)               : 측정변수
        . SRTT (smoothed RTT, 매끄러운 RTT)             : 상태변수
           .. 단순평균 방식 보다는 최근 망 상황에 더 높은 비중을 주는 가중평균 방식
           .. 최근 샘플값일수록 더 높은 가중치를 주게됨
           .. (EWMA, Exponential Weighted Moving Average, 지수 가중 이동 평균)
        . RTTVAR (round-trip time variation, RTT 편차)  : 상태변수
           .. 측정된 RTT 샘플값들의 변동성(Variability)을 고려코자함
        . RTO (retransmission timeout, 재전송 타이머)   : 결과변수
           .. SRTT,RTTVAR로부터 계산되어짐

  ㅇ RT0 계산 방법
     - 초기값
        . initial RTO  =  시스템 마다 다름
           .. 표준 권고치는 1 초 (RFC 6298)
        . 윈도우즈에서, RTO 초기값을 확인할 수 있는 명령어 : netsh int tcp show global

     - 첫 측정 이후
        . SRTT   = MRTT
        . RTTVAR = MRTT / 2
        . RTO    = SRTT + 4 RTTVAR

     - 연속 측정 이후
        . SRTT   = (1-α) SRTT + α MRTT
        . RTTVAR = (1-β) RTTVAR + β |SRTT - MRTT|
        . RTO    = SRTT + 4 RTTVAR

     * 일반적으로, α=1/8 (0.125) 및 β=1/4 (0.25)을 사용

     * 결과적으로, RTO는 최근의 SRTT 값에 균형을 위해 작은 RTTVAR의 4배 취한 값을 더함

  ㅇ 타임아웃되어서 실제 재전송 발생시에, RTO 계산 방법 
     * (즉, 망 혼잡 등의 상황으로 TCP 혼잡제어가 필요한 때)

     - (Karn 알고리즘)
        . 재전송 세그먼트는 RTT 측정 대상에서 제외 함
           .. 즉, 새로이 전송하는 데이터 세그먼트 만을 RTT 측정 대상으로 삼음

     - (지수 백오프, 지수 RTO 후퇴)
        . 기존에 계산된 RTO 값은 재전송이 일어난 경우에,
           .. 혼잡제어를 위해 RTO를 점차 두 배 씩 늘려가는 방식을 사용함 

  ※ 관련 표준 : RFC 2988 (舊), 6298 (現) `Computing TCP's Retransmission Timer`

TCP 흐름/혼잡 제어
   1. TCP 혼잡제어   2. Slow Start   3. Silly Windown Syndrome   4. TCP 타이머   5. RTT 예측   6. 확인응답   7. TCP 재전송  


Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"