전송 계층 및 혼잡 제어
전송 계층은 호스트 간 전달을 프로세스 간 통신으로 확장하여, 애플리케이션에 신뢰할 수 있고, 순서가 보장되며, 혼잡 제어가 되는 바이트 스트림(TCP) 또는 경량의 비연결형 데이터그램(UDP)을 제공하며, 혼잡 제어는 공유 네트워크가 붕괴되지 않도록 전송 속도를 조절합니다.
Definition
전송 계층은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스 간의 논리적 통신을 제공하는 프로토콜 계층으로, 네트워크 계층의 호스트 간 전달 위에 다중화, 신뢰할 수 있는 전달, 흐름 제어, 혼잡 제어와 같은 서비스를 추가합니다.
Scope
이 영역은 종단 간 전송 서비스, 즉 애플리케이션 프로세스로의 데이터 다중화 및 역다중화, 신뢰할 수 없는 네트워크를 통한 신뢰할 수 있는 데이터 전송 원리(확인 응답, 재전송, 순서 번호, 슬라이딩 윈도우), 연결 지향형 전송 제어 프로토콜(TCP) 및 비연결형 사용자 데이터그램 프로토콜(UDP), 그리고 혼잡 제어의 이론과 실제를 다룹니다. 네트워크를 통한 패킷 라우팅(네트워크 계층) 및 전송 서비스를 사용하는 애플리케이션 프로토콜(애플리케이션 계층)은 제외됩니다.
Sub-topics
Core questions
- 전송 계층은 다중화 및 역다중화를 통해 데이터를 올바른 애플리케이션 프로세스로 어떻게 전달합니까?
- 신뢰할 수 없고 손실이 발생하는 네트워크 위에서 신뢰할 수 있고 순서가 보장되는 전달을 어떻게 구축할 수 있습니까?
- TCP의 연결 설정, 흐름 제어 및 신뢰성 메커니즘은 어떻게 작동합니까?
- 애플리케이션은 언제 TCP 대신 UDP를 사용해야 합니까?
- 혼잡 제어는 공정성을 유지하면서 네트워크 과부하를 어떻게 감지하고 대응합니까?
Key concepts
- 다중화 및 역다중화
- 포트 및 소켓
- 신뢰할 수 있는 데이터 전송
- 슬라이딩 윈도우, Go-Back-N, 선택적 재전송
- TCP 3-way 핸드셰이크
- 흐름 제어
- 혼잡 제어
- 가산 증가/승산 감소(AIMD)
- 느린 시작 및 혼잡 회피
- 사용자 데이터그램 프로토콜 (UDP)
Key theories
- 신뢰할 수 없는 채널을 통한 신뢰할 수 있는 데이터 전송
- 신뢰성은 확인 응답, 재전송 타이머, 순서 번호, 그리고 신뢰할 수 없는 하위 네트워크에도 불구하고 손실, 중복, 재정렬을 감지하고 복구하는 슬라이딩 윈도우 프로토콜(Go-Back-N 및 선택적 재전송)로부터 구축됩니다.
- TCP 혼잡 제어
- TCP는 패킷 손실로부터 혼잡을 추론하고, 가산 증가/승산 감소(AIMD) 역학(느린 시작, 혼잡 회피, 빠른 복구)을 통해 전송 윈도우를 조정하여 사용 가능한 대역폭을 탐색하는 동시에 손실 발생 시 급격히 전송량을 줄입니다.
- 비연결형 대 연결 지향형 전송
- UDP는 설정, 신뢰성 또는 혼잡 제어가 없는 얇은 비연결형 서비스를 제공하여 지연 및 오버헤드를 최소화하는 반면, TCP는 연결 지향형, 신뢰할 수 있는, 혼잡 제어되는 바이트 스트림을 제공합니다. 선택은 보장을 위해 지연 시간과 제어를 교환하는 것입니다.
Clinical relevance
전송 계층의 동작은 거의 모든 네트워크 애플리케이션의 성능을 좌우합니다. TCP는 웹, 이메일, 파일 전송을 신뢰성 있게 전달하며, UDP는 DNS, 실시간 음성 및 비디오, 많은 게임과 같은 저지연 사용 사례의 기반이 됩니다. 혼잡 제어는 1980년대 후반부터 인터넷이 과부하로 인해 붕괴되는 것을 막아왔으며, CUBIC 및 BBR과 같은 알고리즘과 QUIC과 같은 프로토콜에 대한 지속적인 연구는 지연 시간-처리량-공정성 균형을 계속해서 조정하고 있습니다.
History
TCP와 IP는 원래 1974년 Cerf-Kahn 설계에서 하나의 프로토콜이었으나, 나중에 분리되었고, 기본적인 데이터그램 서비스만 필요한 애플리케이션을 위해 UDP(RFC 768, 1980)가 추가되었습니다. 초기 인터넷에서 일련의 혼잡 붕괴를 겪은 후, Van Jacobson의 1988년 연구는 TCP 혼잡 제어의 기반이 되는 느린 시작(slow-start) 및 혼잡 회피(congestion-avoidance) 알고리즘을 도입했으며, 이는 수십 년에 걸쳐 Reno, CUBIC, BBR과 같은 변형으로 발전했습니다.
Debates
- 손실 기반 대 지연 기반 및 모델 기반 혼잡 제어
- 고전적인 TCP는 패킷 손실로부터 혼잡을 추론하는데, 이는 고대역폭, 고지연 링크를 충분히 활용하지 못하고 늦게 반응할 수 있습니다. 이는 BBR과 같은 지연 기반 및 모델 기반 알고리즘을 촉발했으며, 이러한 알고리즘이 손실 기반 알고리즘과 공존할 때의 공정성 및 배포 가능성에 대한 논쟁이 계속되고 있습니다.
Key figures
- Van Jacobson
- Jon Postel
- Vinton Cerf
- Sally Floyd
Related topics
Seminal works
- kurose2021
- jacobson1988
- rfc9293
Frequently asked questions
- 언제 TCP 대신 UDP를 사용해야 합니까?
- 낮은 지연 시간이 보장된 전달보다 중요하고 손실을 허용하거나 스스로 처리할 수 있는 경우(예: 실시간 음성/비디오, DNS 쿼리 또는 게임) UDP를 사용하십시오. 웹 페이지, 파일 전송, 이메일과 같이 신뢰할 수 있고 순서가 보장되는 전달 및 내장된 혼잡 제어가 필요한 경우에는 TCP를 사용하십시오.
- 혼잡 제어는 실제로 무엇을 합니까?
- 혼잡 제어는 패킷 손실 또는 지연과 같은 혼잡 신호를 기반으로 송신자가 네트워크에 데이터를 주입하는 속도를 조정합니다. 네트워크가 과부하될 때 전송량을 줄이고 그렇지 않을 때는 여유 용량을 탐색함으로써, 총 트래픽을 네트워크 용량에 가깝게 유지하고 흐름 간에 대역폭을 대략적으로 공정하게 공유합니다.