네트워크 지원 명시적 혼잡 알림과 지연 기반 혼잡 제어
- TCP 송신자는 네트워크에서 명시적인 혼잡 표시를 수신하지 않는다.
→ 대신, 관찰된 패킷 손실을 통해 혼잡을 추론한다. - 최근에는 네트워크가 TCP 송/수신자에게 명시적 혼잡 신호를 보낼 수 있도록
IP 및 TCP에 대한 확장이 제한, 구현 및 배포됨- 또한 측정된 패킷 지연을 사용하여 혼잡을 추론하는 TCP 혼잡 제어 프로토콜의 일부 변형이 제안
명시적 혼잡 알림(Explicit Congestion Notification, ECN)
- 인터넷 내에서 수행되는 네트워크 지원 혼잡 제어의 한 형태
- TCP와 IP가 모두 관련되어 있음
- TCP와 IP가 모두 관련되어 있음
- 명시적 혼잡 알림(ECN)을 사용
- IP 데이터그램 헤더의 서비스 유형 필드에 있는 2비트에서 사용한다.
- IP 데이터그램 헤더의 서비스 유형 필드에 있는 2비트에서 사용한다.
혼잡 알림 비트의 사용
- 라우터에서 버퍼가 가득 차서 패킷들이 삭제되기 전에 송신자에게 혼잡 시작을 알리는 역할
- 패킷 손실 이전에 더 일찍 전송 속도를 줄일 수 있음
→ 값비싼 패킷 손실 및 재전송을 피할 수 있다.
- 패킷 손실 이전에 더 일찍 전송 속도를 줄일 수 있음
- ECN 비트의 한 설정은 라우터가 정체를 겪고 있음을 나타내기 위해 라우터에서 사용
- 이후, 혼잡 표시는 표시된 IP 데이터그램에서 목적지 호스트로 전달되어 송신 호스트에게 알림
- 이후, 혼잡 표시는 표시된 IP 데이터그램에서 목적지 호스트로 전달되어 송신 호스트에게 알림
- 직관적으로 손실이 발생하기 전에 혼잡 시작을 송신자에게 알리기 위해 혼잡 알림 비트를 설정 가능
→ ECN 비트의 두 번째 설정 사용
- 발신 호스트가 라우터에게 송/수신자가 ECN 사용 가능함을 알림
→ ECN으로 표시된 네트워크 혼잡에 대한 응답으로 조치를 취할 수 있음을 알리는 데 사용
- 발신 호스트가 라우터에게 송/수신자가 ECN 사용 가능함을 알림
- 언제 라우터가 혼잡 해지는가의 대한 정의
→ 해당 결정은 라우터 공급업체가 가능하게 하고 네트워크 운영저가 결정하는 구성 결정
ECN 혼잡 알림 표시 수신
- 수신 호스트의 TCP가 수신 데이터그램을 통해 ECN 혼잡 알림 표시를 수신
→ 수신 호스트의 TCP는 수신자-송신자 TCP ACK 세그먼트의ECE 비트
를 설정ECE(Explicit Congestion Notification Echo, 명시적 혼잡 알림 에코) 비트
- 송신 호스트의 TCP에 혼잡 표시를 알리는 역할
- 송신 호스트의 TCP에 혼잡 표시를 알리는 역할
- TCP 송신자는 빠른 재전송을 사용하여 혼잡 윈도를 절반으로 줄임
→ 혼잡 알림 표시가 있는 ACK에 반응 - 이후, 송신자는 다음 전송되는 TCP 수신자 세그먼트 헤더에
CWR 비트
를 1로 설정CWR(Congestion Window Reduced)
ECN을 사용하는 다른 프로토콜
- TCP 외에 다른 트랜스포트 계층 프로토콜들도 네트워크 계층 신호 ECN을 사용
- DCCP는 ECN을 활용하여 적은 오버헤드, 혼잡 제어되는 신뢰 없는 서비스를 제공
- 데이터 센터 네트워크 전용으로 설계된 데이터 센터 TCP(DCTCP)도 ECN 사용
- 널리 사용되는 서버 및 라우터에서 해당 서버로의 경로에 따라 ECN 기능의 배포가 증가 중
지연 기반 혼잡 제어 - TCP 베가스(TCP vegas)
지연 기반 혼잡 제어
: 패킷 손실이 발생하기 전에 혼잡 시작을 사전에 감지하는 것- TCP 베가스에서는 모든 확인응답된 패킷에 대한 출발지 ~ 목적지까지 경로의 RTT를 측정
- TCP 베가스의 혼잡 윈도 크기가 cwnd인 경우에 혼잡하지 않을 때의 처리율
→cwnd/RTT(min)
- 실제 송신자가 측정한 처리량이
cwnd/RTT(min)에
가까운 경우
→ 아직 정체되지 않음 → TCP 전송 속도가 증가할 수 있음 - 실제 송신자가 측정한 처리량이 해당 값보다 현저히 낮은 경우
→ 경로가 혼잡하고 TCP 베가스 송신자는 전송 속도를 낮춤 RTT(min)
: 송신자에서 측정 RTT 값 중의 최솟값- 경로가 정체되지 않고 패킷이 최소 대기 지연을 경험할 때 발생
- 실제 송신자가 측정한 처리량이
TCP 베가스의 직관적인 원칙
- TCP 베가스는 직관적인 원칙 하에 동작
→ “TCP 송신자가 파이프를 가득 채우되, 그 이상으로 채우지 않도록 해야 한다”파이프가 가득 찬 상태로 유지
: 링크가 계속 바쁘게 전송하게 하는 작업을 수행함을 의미- 링크 중 특히 연결의 처리량을 제한하는 병목 링크를 타깃으로 함
- 링크 중 특히 연결의 처리량을 제한하는 병목 링크를 타깃으로 함
그러나 그 이상으로 채우지 않도록 해야 한다
: 파이프가 가득 찬 상태에서는 큰 큐가 쌓이도록 허용되는 경우가 좋을 게 없음을 의미
BBR 혼잡 제어 프로토콜
- TCP 베가스 아이디어 기반으로 하였음
- BBR을 채택하지 않은 TCP와 공정하게 경쟁할 수 있는 메커니즘을 통합