전송층은 네트워크 계층과 응용 계층 사이에 위치하여 응용층에게 서비스를 제공한다.
전송층은 전송층 하위에 있는 네트워크 계층으로부터 서비스를 제공받는다.
전송층에서는 애플리케이션 계층에서의 헤더와 data를 하나의 데이터로 본다. (페이로드-상위 계층으로부터의 패킷) (각 계층의 패킷은 헤더 필드와 페이로드 필드 두 가지 형태의 필드 가진다.)
같은 컴퓨터 안에서도 여러 프로세스가 돌아가게 되는데 전송 계층이 어느 프로세스로 연결할지를 담당하게 된다.
<aside> 👨🏻💻 트랜스포트 계층 서비스 및 개요
</aside>
트랜스포트 계층 프로토콜은 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적 통신을 제공한다.
논리적 통신은 애플리케이션의 관점에서 보면 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보인다는 것을 의미한다.
트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다.
송신측의 전송 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를, 전송 계층 세그먼트(segment)
인 전송 계층 패킷으로 변환한다. ← 애플리케이션 메시지를 전송 계층 세그먼트로 만들기 위해 작은 조각으로 분할하고 각각의 조각에 전송 계층 헤더를 추가함으로써 수행된다.
인터넷은 TCP와 UDP
라는 두 가지 프로토콜을 가지고 있다. 이러한 프로토콜은 서비스를 요청하는 애플리케이션에게 전송 계층에서 서로 다른 서비스 집합을 제공한다
트랜스포트 계층과 네트워크 계층 사이의 관계
전송 계층 프로토콜은 서로 다른 호스트에서 동작하는 프로세스들 사이의 논리적인 통신을 제공하지만 네트워크 계층 프로토콜은 호스트들 사이의 논리적인 통신을 제공한다.
전송 계층 프로토콜들은 종단 시스템에 존재한다. 종단 시스템 안에서, 트랜스포트 프로토콜은 애플리케이션 프로세스에서 네트워크 계층까지 메시지를 운반하며, 또한 반대 방향으로 네트워크 계층에서 애플리케이션 프로세스로 메시지를 운반한다.
네트워크 계층에서..
→ 목적지 IP주소는 컴퓨터를 선택
전송계층에서..
→ 목적지 포트 번호는 프로세스를 선택
소켓 프로그래밍 시 IP주소와 포트번호를 모두 명시해줘야함.
(소켓은 네트워크를 경유하는 프로세스간 통신의 종착점)