전송 계층

섬네일|인터넷 프로토콜 스택의 전송 계층.|alt=네 개의 레이블이 붙은 스택형 블록. "전송"이라고 레이블이 붙은 파란색 블록은 위에서 두 번째이다.

컴퓨터 망에서 **전송 계층**(Transport layer)은 인터넷 프로토콜 스위트와 OSI 모형의 망 스택에 있는 프로토콜의 계층형 아키텍처에서 방법론을 개념적으로 나눈 것이다. 이 계층의 프로토콜은 응용 프로그램에 종단 간 통신 서비스를 제공한다. 연결 지향 통신, 신뢰성, 흐름 제어, 다중화와 같은 서비스를 제공한다.

인터넷의 기반이 되는 인터넷 프로토콜 스위트의 전송 계층 구현 및 의미론적 세부 사항은 일반 네트워킹의 OSI 모형과 다르다. 인터넷에 현재 사용되는 이 계층의 프로토콜은 모두 TCP/IP 개발에서 비롯되었다. OSI 모델에서 전송 계층은 종종 **계층 4** 또는 **L4**로 불리는 반면 TCP/IP에서는 번호가 매겨진 계층이 사용되지 않는다.

인터넷 프로토콜 스위트의 가장 잘 알려진 전송 프로토콜은 전송 제어 프로토콜(TCP)이다. 이는 연결 지향 전송에 사용되는 반면, 비연결성 사용자 데이터그램 프로토콜(UDP)은 더 간단한 메시징 전송에 사용된다. TCP는 상태 저장 설계로 인해 더 복잡한 프로토콜이며, 신뢰할 수 있는 전송 및 데이터 스트림 서비스를 통합한다. TCP와 UDP는 함께 인터넷의 모든 트래픽을 구성하며 모든 주요 운영 체제에 구현된 유일한 프로토콜이다. 정의되고 구현된 추가 전송 계층 프로토콜에는 데이터그램 혼잡 제어 프로토콜(DCCP)과 스트림 제어 전송 프로토콜(SCTP)이 있다.

## 서비스
전송 계층 서비스는 전송 계층 프로토콜에 대한 프로그래밍 인터페이스를 통해 응용 프로그램에 전달된다. 서비스는 다음과 같은 기능을 포함할 수 있다.
* 연결 지향 통신: 응용 프로그램이 사용자 데이터그램 프로토콜(UDP) 및 인터넷 프로토콜(IP)의 데이터그램 모델과 같은 기본 연결 없는 모델을 처리하는 것보다 연결을 데이터 스트림으로 해석하는 것이 일반적으로 더 쉽다.
* 동일 순서 전달: 망 계층은 일반적으로 데이터 패킷이 전송된 것과 동일한 순서로 도착하도록 보장하지 않지만, 종종 이것은 바람직한 기능이다. 이는 일반적으로 세그먼트 번호 지정을 사용하여 수신자가 순서대로 응용 프로그램에 전달하도록 한다. 이로 인해 선두 지연 블로킹이 발생할 수 있다.
* 신뢰성: 망 혼잡 및 오류로 인해 전송 중에 패킷이 손실될 수 있다. 체크섬과 같은 오류 검출 코드를 통해 전송 프로토콜은 데이터가 손상되지 않았는지 확인하고, 전송자에게 ACK 또는 NAK 메시지를 전송하여 올바른 수신을 확인할 수 있다. 자동 반복 요청 체계는 손실되거나 손상된 데이터를 재전송하는 데 사용될 수 있다.
* 흐름 제어: 두 노드 간의 데이터 전송 속도는 때때로 빠른 전송자가 수신 데이터 버퍼가 지원할 수 있는 것보다 더 많은 데이터를 전송하여 버퍼 오버런을 일으키는 것을 방지하기 위해 관리되어야 한다. 이는 버퍼 언더런을 줄여 효율성을 향상시키는 데에도 사용될 수 있다.
* 혼잡 회피: 혼잡 제어는 중간 노드 및 망의 처리 또는 링크 기능의 과도한 구독을 피하고 패킷 전송 속도를 줄이는 것과 같은 자원 감소 단계를 취함으로써 혼잡 붕괴를 피하기 위해 통신 망으로의 트래픽 진입을 제어할 수 있다. 예를 들어, 자동 반복 요청은 망을 혼잡 상태로 유지할 수 있다. 이 상황은 느린 시작을 포함하여 흐름 제어에 혼잡 회피를 추가함으로써 피할 수 있다. 이는 전송 시작 시 또는 패킷 재전송 후 대역폭 소비를 낮은 수준으로 유지한다.
* 다중화: 포트는 단일 노드에서 여러 엔드포인트를 제공할 수 있다. 예를 들어, 우편 주소의 이름은 다중화의 한 종류이며 동일한 위치의 다른 수신자를 구별한다. 컴퓨터 응용 프로그램은 각각 자체 포트에서 정보를 수신하며, 이를 통해 한 번에 둘 이상의 망 서비스를 사용할 수 있다. 이는 TCP/IP 모델의 전송 계층의 일부이지만, OSI 모델의 세션 계층의 일부이다.

## 분석
전송 계층은 호스트 컴퓨터의 적절한 응용 프로그램 프로세스에 데이터를 전달하는 역할을 한다. 여기에는 서로 다른 응용 프로그램 프로세스에서 데이터를 통계적으로 다중화하는 것, 즉 데이터 세그먼트를 형성하고 각 전송 계층 데이터 세그먼트의 헤더에 소스 및 대상 포트 번호를 추가하는 것이 포함된다. 소스 및 대상 IP 주소와 함께 포트 번호는 네트워크 소켓, 즉 프로세스 간 통신의 식별 주소를 구성한다. OSI 모델에서는 이 기능이 세션 계층에 의해 지원된다.

일부 전송 계층 프로토콜(예: TCP, UDP는 아님)은 가상 회로를 지원한다. 즉, 기본 패킷 지향 데이터그램 망을 통해 연결 지향 통신을 제공한다. 응용 프로그램 프로세스에 대한 패킷 모드 통신을 숨기면서 바이트 스트림이 전달된다. 여기에는 연결 설정, 데이터 스트림을 세그먼트라는 패킷으로 분할, 세그먼트 번호 지정 및 순서가 뒤바뀐 데이터의 재정렬이 포함된다.

마지막으로, 일부 전송 계층 프로토콜(예: TCP, UDP는 아님)은 종단 간 신뢰할 수 있는 통신을 제공한다. 즉, 오류 검출 코드 및 자동 반복 요청(ARQ) 프로토콜을 통한 오류 복구를 제공한다. ARQ 프로토콜은 혼잡 회피와 결합될 수 있는 흐름 제어도 제공한다.

UDP는 매우 간단한 프로토콜이며 가상 회로도, 신뢰할 수 있는 통신도 제공하지 않으며, 이러한 기능을 응용 프로그램에 위임한다. UDP 패킷은 세그먼트가 아닌 데이터그램이라고 불린다.

TCP는 HTTP 웹 브라우징 및 이메일 전송을 포함한 많은 프로토콜에 사용된다. UDP는 재전송이 많은 호스트에 불가능하기 때문에 멀티캐스트 및 브로드캐스팅에 사용될 수 있다. UDP는 일반적으로 더 높은 처리량과 더 짧은 지연 시간을 제공하므로 패킷 손실이 가끔 허용될 수 있는 실시간 멀티미디어 통신(예: IP-TV 및 IP 전화) 및 온라인 컴퓨터 게임에 자주 사용된다.

X.25, 프레임 릴레이 및 ATM과 같은 많은 비 IP 기반 망은 전송 계층이 아닌 망 또는 데이터 링크 계층에서 연결 지향 통신을 구현한다. X.25, 전화 망 모뎀 및 무선 통신 시스템에서는 신뢰할 수 있는 노드 간 통신이 하위 프로토콜 계층에서 구현된다.

OSI 연결 모드 전송 계층 프로토콜 사양은 5가지 클래스의 전송 프로토콜을 정의한다: TP0(최소 오류 복구 제공)에서 TP4(신뢰성이 떨어지는 망용으로 설계됨)까지.

프로토콜 경직화로 인해 TCP와 UDP는 인터넷에서 유일하게 널리 사용되는 전송 프로토콜이다. 미들박스 비허용을 피하기 위해 새로운 전송 프로토콜은 허용되는 프로토콜의 와이어 이미지를 모방하거나 UDP로 캡슐화될 수 있으며, 약간의 오버헤드(예: 내부 무결성 검사로 인해 중복되는 외부 체크섬으로 인한)를 허용한다. QUIC은 후자의 접근 방식을 취하여 UDP 위에 신뢰할 수 있는 스트림 전송을 재구축한다.

## 프로토콜
이 목록은 인터넷 프로토콜 스위트, OSI 프로토콜, 넷웨어의 IPX/SPX, 애플토크, 파이버 채널의 전송 계층에 일반적으로 배치되는 일부 프로토콜을 보여준다.

* ATP, 애플토크 트랜잭션 프로토콜
* CUDP, 순환 UDP
* DCCP, 데이터그램 혼잡 제어 프로토콜
* FCP, 파이버 채널 프로토콜
* IL, IL 프로토콜
* MPTCP, 멀티패스 TCP
* NORM, NACK 지향 신뢰 멀티캐스트
* QUIC
* RDP, 신뢰할 수 있는 데이터 프로토콜
* RUDP, 신뢰할 수 있는 사용자 데이터그램 프로토콜
* SCTP, 스트림 제어 전송 프로토콜
* SPX, 순차 패킷 교환
* SST, 구조화된 스트림 전송
* TCP, 전송 제어 프로토콜
* UDP, 사용자 데이터그램 프로토콜
* UDP-Lite
* μTP, 마이크로 전송 프로토콜

### <span class="anchor" id="COMPARISON1"></span><span class="anchor" id="Comparison of transport layer protocols"></span>인터넷 전송 계층 프로토콜 비교

### OSI 전송 프로토콜 비교
ISO/IEC 8073/ITU-T 권고 X.224, "정보 기술 - 개방형 시스템 상호 연결 - 연결 모드 전송 서비스 제공을 위한 프로토콜"은 클래스 0 (TP0)에서 클래스 4 (TP4)까지 지정된 5가지 클래스의 연결 모드 전송 프로토콜을 정의한다. 클래스 0은 오류 복구가 없으며 오류 없는 연결을 제공하는 망 계층에서 사용하도록 설계되었다. 클래스 4는 TCP와 가장 유사하지만, TCP는 OSI가 세션 계층에 할당하는 우아한 종료와 같은 기능을 포함한다. 모든 OSI 연결 모드 프로토콜 클래스는 신속한 데이터 및 기록 경계 보존을 제공한다. 클래스의 자세한 특성은 다음 표에 나와 있다.

ISO/IEC 8602/ITU-T 권고 X.234에 의해 지정된 비연결 전송 프로토콜도 있다.

## 각주

## 참고 문헌
* 
* 

분류:OSI 모형