TCP Congestion Control   TCP 혼잡제어

(2020-06-22)

혼잡 제어, TCP Tahoe, TCP Reno, TCP NewReno

1. TCP 혼잡제어TCP 혼잡제어 원칙
     - TCP 관점 : TCP패킷 손실의 원인을 망의 혼잡에 기인한 것으로 만 보고있음
     - TCP 행동 : 이때 망 혼잡이 가중되지 않도록, 각자가 덜 이기적이도록 노력함

  ㅇ 주요 관리 요소
     - 혼잡 윈도우(Congestion Window)의 크기 조절
        . 혼잡시 혼잡 윈도우 크기(cwnd) 조정에 의해 전송률 제어


2. TCP 혼잡제어 방식

  ㅇ 제한된 형태의 혼잡제어 방식
     - RTT(왕복시간) 편차 고려함
        . 최근에 계산된 RTT 값에 균형을 주도록 작은 RTTVAR(RTT 편차)의 4배 취한 값을 더함
     - 카른 알고리즘(Karn Algorithm)
        . 재전송 세그먼트RTT 측정 대상에서 제외
     - 지수 RTO 후퇴
        . 재전송이 일어난 경우에, 혼잡제어를 위해 RTO를 점차 두 배 씩 늘려가는 방식

     * 송신측에서 연이은 재전송을 계속함으로 인해, 혼잡상황을 악화시키지 않도록 하는 방식

  ㅇ 포괄적 형태의 혼잡제어 방식
     - 느린시작 (Slow Start) : 지수 증가
        . 연결 초기에 한꺼번에 보내지 않고, 
           .. 처음에는 작게 시작하나, 점차 빠르게 송신 데이터량을 늘이는 방식
           .. 송신 데이터량을 늘리는 임계치 한계는 TCP MSS(65535 바이트)

        . 혼잡 발생 상황을 예방하기 위해 세그먼트 송신율을 사전 억제하는 방식

     - 혼잡 회피 (Congestion Avoidance) : 가산 증가
        . 혼잡이 감지되면, 지수적이 아닌 가산적인 증가 방식을 채택하는 방식

     - 빠른 재전송 (Fast Retransmit)                           ☞ TCP 재전송 참조
        . 정상적인 재전송  과정을 따르지 않고, 중간 누락된 세그먼트를 빠르게 재전송

     - 빠른 회복 (Fast Recovery)                               ☞ TCP 재전송 참조
        . 이미 여러번 ACK가 오게되면, 비록 세그먼트들이 순서가 어긋나게 수신되더라도,
          네트워크 혼잡이라 여기지 않고, 송신률을 빠르게 증가시킴


3. TCP 혼잡제어 관련 표준 및 구현 명칭RFC 2001 : `TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery
                 Algorithms` (1997) 
     - TCP 구현 별칭 : TCP Tahoe
        . Jacobson의 혼잡제어 매커니즘을 기반으로, Fast Recovery를 제외한 기타 모든 기능 포함
        . BSD Network Release 1.0 (BNR1) (1988년)

  ㅇ RFC 2581,5681 : `TCP Congestion Control` (1999)(2009)
     - TCP 구현 별칭 : TCP Reno
        . 위 Tahoe 구현에 Fast Recovery 등도 추가 
        . BSD Network Release 2.0 (BNR2) (1990년)

  ㅇ RFC 2582,3782 : `The NewReno Modification to TCP's Fast Recovery Algorithm` (1999)(2004)
     - TCP 구현 별칭 : TCP NewReno

  ※ 위 구현 별칭은 모두 관례적으로 미국 도시명에서 따옴


[TCP 흐름/혼잡 제어] 1. 흐름제어 2. Sliding Window 3. TCP 혼잡제어 4. Slow Start 5. Silly Windown Syndrome 6. TCP 타이머 7. RTT 예측 8. 확인응답 9. TCP 재전송
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   전기전자공학
  5.   방송/멀티미디어/정보이론
  6.   통신/네트워킹
        1. 통신 이란?
        2. 신뢰적 통신
    1.   통신이론
    2.   선로/전송
    3.   통신망
    4.   회선교환(PSTN)
    5.   무선/이동통신
    6.   광통신
    7.   인터넷/데이터통신
          1. 데이터통신망
          2. 인터넷
          3. 데이터 네트워크 설계
      1.   데이터 단위
      2.   프로토콜/계층
      3.   데이터 링크
      4.   TCP/IP
            1. TCP/IP 이란?
        1.   IP 계층
        2.   전송계층(UDP,TCP,SCTP,포트번호)
              1. 전송 계층
          1.   포트번호(프로세스식별)
          2.   TCP
                1. TCP
            1.   TCP 패킷(세그먼트)
            2.   TCP 연결관리
            3.   TCP 오류제어
            4.   TCP 흐름/혼잡 제어
              1.   1. 흐름제어
                  2. Sliding Window
                  3. TCP 혼잡제어
                  4. Slow Start
                  5. Silly Windown Syndrome
                  6. TCP 타이머
                  7. RTT 예측
                  8. 확인응답
                  9. TCP 재전송
            5.   TCP 기타사항
          3.   UDP,SCTP,MPTCP
        3.   DHCP
        4.   TCP/IP 유틸리티
        5.   TCP/IP 기타일반
      5.   라우팅
      6.   인터넷 QoS
      7.   인터넷 관리
      8.   웹기술
      9.   인터넷 응용
      10.   인터넷 기타
      11.   패킷교환(PSN)
      12.   인터넷 관련 기관
  7.   정보기술(IT)
  8.   공학일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌