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)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"