각기 다른 호스트에서 동작하는 프로세스간의 논리적 통신 지원
IP주소는 호스트의 주소를 나타낸다. 하지만 한 컴퓨터 내에서 다양한 프로세스가 작동하기에
이 프로세스들을 구분하기 위해서 PORT 번호를 사용하여 프로세스마다 할당해준다.
이를 통해 호스트간의 직접적인(그렇게 보이는) 통신이 가능.
"호스트" 간의 논리적 통신 지원
조금 헷갈리지만 네트워크 레이어는 호스트 까지만 전달을 해주고
이를 받아서 트랜스포트 레이어에서 각 프로세스에게 전달해준다는 것
배달부가 부대까지 배달해주면 분대장이 각 사람에게 편지를 나눠주는 그런 느낌
트랜스포트 레이어는 하위레이어인 네트워크 레이어의 영향을 받는다.
예를 들어 네트워크 레이어가 전송 기간을 보장해주지 못한다면 (편지가 언제 배송완료 되는지 모른다면)
트랜스포트 레이어도 전송 기간을 보장해주지 못한다.
네트워크 레이어에서 제공치 않는 기능을 제공하기도 한다.
네트워크 레이어에서는 보안기능이 없더라도 트랜스포트 레이어에서는 보안 기능이 추가될수 있다.
IP는 unrelㅑable한 프로토콜임
데이터의 로스나 순서를 보장해주지 않는다.
이때문에 트랜스포트 레이어는 데이터의 로스나 순서를 맞춰줘야 하거나(TCP)
그대로 쓰거나 둘중 하나를 선택해야함(UDP)
트랜스포트 레이어는 어플리케이션 레이어에서 소켓을 통해 메시지를 받고
이것을 다시 세그먼트(UDP에서는 데이터그램)으로 나눈후 네트워크 레이어로 보낸다.
-> 이를 다중화라고 한다. 이때 출발 포트, 도착 포트, 그밖에 헤더들을 덧붙인다.
네트워크 레이어에서 세그먼트를 받아 올바른 포트번호에 넣어주는 행위를 역 다중화 라고한다.
- OS커널에 구현되어있는 추상화된 인터페에스
- 장치 FILE의 일종으로 이해가능
- 어플리케이션 레이어와 트랜스포트 레이어 사이의 문이라 볼수있다.
- 사용자가 OS가 관리하는 영역을 직접관리할수 없게 추상화한것이라 보면됌
- IP와 PORT를 통해 유니크하게 구별되어야 한다.
가장 기초적인 기능들만 넣은 프로토콜이다.
<특징>
1. connectionless
- TCP 프로토콜이 연결지향적인 것에 반해 UDP는 연결을 맺지 않고 그냥 데이터를 전송한다.
2. unreliable
- IP와 마찬가지로 unreliable하며 IP 프로토콜을 거의 그대로 쓴다고 보면된다.
- 속도가 빠르기에 데이터 손실이 나더라도 속도가 중요한 서비스(비디오 스트리밍 등)에 활용된다.
* 간단한 에러체크 정도만 하며 에러체크후 복구 등의 작업은 하지않음
UDP + 여러 기능 추가 라고 생각하면 된다.
<특징>
1. connection
- 연결 지향형으로 각 프로세스끼리의 연결을 만든후 사용
2. reliable
- 데이터를 온전하게 전송하는것을 보장함.
- 데이터의 순서 또한 보장함.
***
UDP에서는 PORT와 IP주소를 통해 식별하지만
TCP에서는 전송자의 IP,PORT, 수신자의 IP,PORT 총 4개의 값을 가진 connection을 기준으로 식별함