전송계층 프로토콜 정리
전송 계층은 OSI-7 계층에서 4번째 층에 해당하는 계층이다.
- OSI-7 계층 모델
OSI 7은 국제표준화기구(ISO)에서 개발한 통신 모델로, 컴퓨터 네트워크의 프로토콜 디자인과 통신을 계층별로 나누어 설명한 것이다.
1층인 physical layer부터, 7층인 application layer까지 있으며, 낮은 층일수록 하드웨어, 높은 층일수록 소프트웨어에 가깝다.
위키피디아 https://en.wikipedia.org/wiki/OSI_protocols
- 전송계층(Transport layer)
전송 계층의 서비스는 프로그래밍 인터페이스를 통해 어플리케이션에 제공된다. 일반적으로 소켓을 전송계층의 인터페이스로 많이 사용한다.
전송계층 프로토콜에는 다음과 같은 기능들이 있다. ※주의 : 아래 기능이 반드시 쓰이는 것은 아니다. UDP에서는 아래의 기능을 사용하지 않는다.
연결 지향 통신 : 두 개체가 논리적으로 연결된 상태를 유지하며 통신. 사용자 입장에서 통신의 상대와 하나의 전용선이 존재하는 것처럼 보인다. http://www.ktword.co.kr/abbr_view.php?m_temp1=476
순서 보장 : 데이터에 번호를 붙여 순서를 보장
신뢰성 보장 : checksum, ACK, 재전송을 통해 데이터의 무손실 보장
흐름 제어 : 받는 측이 감당할 수 있을 속도만큼만 데이터 전송
혼잡 방지 : 혼잡이 방지하면 전송 속도를 늦추어 다시 시작.
멀티플렉싱 : 하나의 포트/소켓으로 여러 클라이언트와 통신
아래는 대표적인 전송계층 프로토콜들이다. 하나씩 연구해보자
https://en.wikipedia.org/wiki/Transport_layer
| Feature | UDP | UDP-Lite | TCP | Multipath TCP | SCTP | DCCP | RUDP[a] |
| Packet header size | 8 bytes | 8 bytes | 20–60 bytes | 50–90 bytes | 12 bytes[b] | 12 or 16 bytes | 14+ bytes |
| Typical data-packet overhead | 8 bytes | 8 bytes | 20 bytes | ?? bytes | 44–48+ bytes[c] | 12 or 16 bytes | 14 bytes |
| Transport-layer packet entity | Datagram | Datagram | Segment | Segment | Datagram | Datagram | Datagram |
| Connection-oriented | No | No | Yes | Yes | Yes | Yes | Yes |
| Reliable transport | No | No | Yes | Yes | Yes | No | Yes |
| Unreliable transport | Yes | Yes | No | No | Yes | Yes | Yes |
| Preserve message boundary | Yes | Yes | No | No | Yes | Yes | Yes |
| Delivery | Unordered | Unordered | Ordered | Ordered | Ordered / Unordered | Unordered | Unordered |
| Data checksum | Optional | Yes | Yes | Yes | Yes | Yes | Optional |
| Checksum size | 16 bits | 16 bits | 16 bits | 16 bits | 32 bits | 16 bits | 16 bits |
| Partial checksum | No | Yes | No | No | No | Yes | No |
| Path MTU | No | No | Yes | Yes | Yes | Yes | ? |
| Flow control | No | No | Yes | Yes | Yes | No | Yes |
| Congestion control | No | No | Yes | Yes | Yes | Yes | ? |
| Explicit Congestion Notification | No | No | Yes | Yes | Yes | Yes | ? |
| Multiple streams | No | No | No | No | Yes | No | No |
| Multi-homing | No | No | No | Yes | Yes | No | No |
| Bundling / Nagle | No | No | Yes | Yes | Yes | No | ? |