전송 계층(4계층)
5~7계층에 걸쳐 존재하는 추상적인 앱들과 데이터 전송을 담당하는 1~3계층 사이에 위치한 중간 계층으로, 서로 다른 장비에서 동작하는 프로세스들 사이에서 일관된 통신방식을 제공합니다.
전송계층에서 일어나는 통신은 주로 종단 간 통신(end-to-end, host-to-host)이라고도 불립니다.
프로세스 수준 주소지정
서로 다른 프로세스들이 동일한 계층의 프로토콜을 통해 통신하려면 프로세스별로 구분하기 위한 id가 필요합니다. TCP/IP에서는 TCP 포트와 UDP 포트를 사용합니다.
다중화와 역다중화
여러 프로세스들이 전송할 데이터는 전송계층에서 단일 데이터 스트림으로 결합(다중화, multiplexing)되어 전달됩니다.
수신장비의 4계층에서는 스트림으로부터 프로세스별로 데이터를 추출(demultiplexing)하여 상위계층으로 전달합니다.
단편화, 패키징, 재조합
인터네트워크를 통해서 데이터 스트림을 실제로 전송하려면 3계층 SDU 사이즈에 맞게 단편화를 수행해야 합니다. 또한 3계층으로부터 받은 페이로드들을 재조합하여 원본 스트림으로 만듭니다.
연결 수립, 유지, 종료
프로토콜 슈트에 따라 다르겠지만 TCP/IP의 전송계층에서는 연결형 프로토콜인 TCP와 비연결형 프로토콜인 UDP가 동작합니다.
승인과 재전송
전송계층은 프로세스 사이의 안정적인 통신을 구현하기 위해서 손실 패킷 탐지 및 처리와 수신장비가 적절한 속도로 데이터를 받을 수 있도록 송신율을 관리하는 등의 작업을 수행합니다.
이를 위해서 흔히 승인(ACK)과 타이머를 활용하는데, 송신장비가 데이터를 전송하면 타이머를 구동하는데 수신장비가 제대로 수신했다는 ACK 메시지를 제한된 시간 안으로 받지 못하면 재전송을 합니다.
흐름 제어
송신자와 수신자가 서로 데이터 처리하는 속도가 동기화되도록 흐름 제어 기능을 구현합니다.