TCP는 데이터를 정확하게 전달하는 것 이외에 목적지가 어떤 애플리케이션인지 구분하는 역할을 한다. 이러한 애플리케이션을 구분할 때 사용되는게 바로 ① 출발지 포트 번호(source port number)와 ② 목적지 포트 번호(destination port number)이다. 이 TCP 헤더에 포트 번호가 있기 떄문에 애플리케이션을 구분할 수 있게 된다.
포트 번호는 0~65535를 사용할 수 있는데 0~1023번 포트는 주요 프로토콜이 사용하도록 예약되어 있고 일반적으로 서버측 애플리케이션에서 사용된다. 이러한 포트를 잘 알려진 포트(well-known ports)라고 한다. 1024번은 예약되어 있지만 사용되지는 않는 포트고, 1025번 이상은 랜덤 포트라고 해서 클라이언트 측의 송신 포트로 사용된다.
동작하는 애플리케이션은 각각 포트번호가 있어서 다른 애플리케이션과 서로 구분된다. 데이터를 전송할 때는 상대방의 IP주소가 필요하지만, 어떤 애플리케이션이 사용되고 있는지 구분하려면 TCP는 포트 번호가 필요하다. 그래서 포트 번호를 붙이지 않고 통신하면 컴퓨터에 데이터가 도착하더라도 애플리케이션까지는 도착할 수가 없다.
아래와 같이 컴퓨터1에서 컴퓨터2의 포트번호를 할당하면 확실하게 원하는 애플리케이션까지 데이터를 보낼 수 있다. 컴퓨터 1의 웹 브라우저에 1025가 할당된 이유는 웹 브라우저로 접속할 때 웹 브라우저에는 임의의 포트가 자동으로 할당되기 때문이다. 그래서 서버 측에서는 포트 번호를 정해둬야 하지만 클라이언트는 정하지 않아도 된다.
출처 : 모두의 네트워크 - 10일 만에 배우는 네트워크 기초 (출판사:길벗)