Transport Layer Protocol: 각기 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 logical communication을 지원한다.

- logical communication: 애플리케이션의 관점에서 보면, 동작하는 프로세스들이 직접 연결된 것처럼 보이는 것.
- Process: 동작 중인 application
- 애플리케이션 프로세스는 물리적인 infrastructure에 관계없이 서로 통신하기 위해 Transport layer의 logical communication을 이용한다.
Transport Layer protocol은 End system에서 구현되고, 하나의 Application은 여러 개의 Transport Layer protocol을 사용할 수 있다.
과정
-
송신 Transport layer: 송신 애플리케이션 프로세스에서 수신한 메세지를 Transport Layer segment 로 변환한다.
- Transport Layer segment: Application message를 작은 조각으로 분할하고, 각 조각에 transport layer header를 추가한 것.
-
Segment를 송신 End system의 Network Layer로 전달한다.
- Segment는 Network Layer datagram에 encapsulation 된다.
-
수신 End system의 Network Layer에서 Segment 부분만 추출하여 Transport Layer로 전달한다.
A) Relation between Transport layer & Network layer
Transport layer는 Process 간의 Logical communication을 제공하지만, Network layer는 Host 간의 Logical communication을 제공한다.
-
Network Layer: 장치 간의 논리적 연결을 담당
-
Transport Layer: 장치에서 실행 중인 프로세스의 논리적 연결을 담당
-
Network Layer는 Transport Layer의 하위 계층이기 때문에 Transport Layer에 서비스를 제공할 수 있다.
- 특정 Network layer protocol이 어떤 서비스를 제공하지 않는다면, 해당 Transport layer은 그 서비스를 이용할 수 없다.
- 이런 경우, Transport layer protocol에서 그 서비스를 제공해주는 경우도 있다.
B) Introduction of Internet transport layer
Transport layer는 Application layer에게 Transport layer protocol을 제공한다.
- TCP: 연결 지향적, 신뢰적
- UDP: 빠른 프로토콜
- Application 개발자는 socket 생성할 때, TCP와 UDP 중 하나를 선택해야 한다.
IP: Internet Protocol
IP service model: 호스트 간에 논리적 통신을 제공하는 best-effort-delivery-service
- Unreliable Service
- IP는 통신하는 호스트들 간에 segment를 전달하기 위해 최대한 노력하지만, 어떠한 보장도 하지 않는다.
- 완벽한 전달을 보장하지 않고, segment의 순서대로 전달되는 것도 보장하지 않는다.
- Data integrity도 보장하지 않는다.
TCP service model
-
Process 간의 신뢰적인 데이터 전송
-
Congestion control
UDP service model
- Application이 원하는 속도대로 전송 가능
UDP와 TCP 모두 헤더에 오류 검출 필드를 포함함으로써 무결성 검사를 제공한다.