패킷이 전송 과정에서 아무 문제 없이 제대로 수신지 컴퓨터에 도착할 수 있도록 패킷 전송을 제어하는 역할은 전송 계층이 담당합니다. 전송 계층은 네트워크 혼잡 상황에 따라 패킷의 전송량을 조절하여 패킷의 흐름을 제어하고 패킷 전송의 오류를 점검해서 수신지 컴퓨터까지 패킷이 제대로 도착했는지 확인하는 역할을 합니다. 다시 말해 전송 계층은 수신지 컴퓨터까지 신뢰할 수 있는 데이터를 전송하기 위해 필요한 계층입니다.
데이터를 전송하는 궁극적인 목적은 애플리케이션이 데이터를 처리하여 애플리케이션의 목적에 따른 서비스를 제공하기 위한 것입니다. 따라서 데이터는 수신지 컴퓨터가 아니라 수신지 컴퓨터 내의 애플리케이션까지 전송되어야 최종 목적지에 도착하게 됩니다.
애플리케이션이라는 최종 목적지까지 데이터 전송을 책임지는 것이 전송 계층의 또 다른 역할입니다. 즉, 전송 계층은 다양한 애플리케이션이 동작하는 컴퓨터 내에서 어떤 애플리케이션이 사용하는 데이터인지 식별하여 수신지 컴퓨터에 도착한 데이터를 수신지 컴퓨터 내의 애플리케이션에 배분하는 역할을 합니다. 인터넷 계층이 컴퓨터(호스트) 간의 데이터 통신을, 전송 계층이 애플리케이션 간의 데이터 통신을 구현한다고 볼 수 있습니다. 인터넷 계층이 호스트를 식별하기 위해 IP 주소를 사용하는 것처럼, 전송 계층에서는 애플리케이션을 식별하기 위해 포트 번호를 사용합니다.
택배나 우편물 배송을 의뢰할 때 집주소와 함께 받는 사람의 이름을 적습니다. 집주소에 의해 택배나 우편물이 수신지인 집까지 배달되면 받는 사람의 이름을 보고 누구 앞으로 온 것인지를 판단합니다. 인터넷에서는 IP 주소가 집 주소, 포트 번호가 받는 사람의 이름과 같은 역할을 합니다. 한 집에 여러 사람이 거주하는 것처럼 한 컴퓨터에서 여러 가지 애플리케이션이 동작하기 때문에 애플리케이션을 식별하는 번호가 필요한 것입니다.
인터넷 계층에서 IP 주소를 보고 수신지 컴퓨터로 데이터를 전송하면 전송 계층에서 포트 번호를 보고 어떤 애플리케이션이 사용할 데이터인지 식별합니다. 한마디로 포트 번호(Port Number)는 동일한 컴퓨터 안에서 통신을 하고 있는 애플리케이션을 식별할 때 사용하는 애플리케이션의 주소라고 할 수 있습니다.
웹 브라우저로 여러 웹 페이지를 보거나, 동시에 여러 애플리케이션으로 인터넷에 접속하고 있을 때 서로 다른 데이터가 오고 가는 상황에서도 애플리케이션끼리 혼선이 생기지 않는 것은 전송 계층이 포트를 여러 개 사용하여 각각 따로 통신을 하기 때문입니다.
전송 계층이 포트 번호로 애플리케이션을 식별하여 데이터를 각 애플리케이션에 배분한다고 했습니다. 이를 달리 표현하면 포트는 데이터가 전송 계층과 응용 계층 사이를 이동할 수 있는 출입구 역할을 하고, 각 출입구를 구별하기 위해 번호를 붙인 것이 포트 번호라 할 수 있습니다. 예를 들어, 웹 브라우저라는 애플리케이션은 포트 번호가 80번인 통로로만 데이터를 보낼 수 있고, FTP 애플리케이션은 포트 번호가 21번인 통로로만 데이터를 보낼 수 있는 것입니다.
따라서 응용 계층에서 웹 브라우저가 보내는 데이터를 전송 계층의 80번 포트로 전송해야만 응용 계층과 전송 계층 간에 통신이 가능한 것입니다. 이처럼 응용 계층과 전송 계층이 같은 포트를 사용해야 통신이 가능하기 때문에 전송 계층에서는 포트를 여러 개 사용하여 응용 계층의 애플리케이션들과 각각 따로 통신을 하며 데이터를 전송하는 것입니다. 즉, 포트 번호를 사용하여 여러 애플리케이션이 동시에 통신하는 다중 연결이 이루어집니다.