포트란 호스트 내에서 실행되고 있는 프로세스를 구분짓기 위한 16비트의 논리적 할당이다. 0 ~ 66536개의 개수를 가진다
간단히 설명하면 IP주소
는 컴퓨터를 찾을때 필요한 주소를 나타내며, 포트
는 컴퓨터 안에서 프로그램을 찾을때 나타내는 것이다
예를들어 PC의 IP주소가 192.168.10.20
이라고 하면 컴퓨터에서 FTP로 자료를 받을 때 사용하는 IP주소는 자신의 주소인 192.168.10.20
이고 채팅을 할때의 IP주소도 192.168.10.20
이다. FTP서버와 채팅서버가 각각 패킷을 192.168.10.20
으로 보내려고하면 서로 혼동이 생긴다. 그 ip주소를 사용하는 프로그램이 하나 이상인 것이다
그래서 포트번호가 생겼고, FTP서버가 포트 9000을 사용하면 채팅 서버는 포트 9001을 사용함으로써 프로세스를 구분한다. 컴퓨터의 주소가 ip주소, 프로그램의 주소가 포트번호이다
IP주소는 인터넷에서 호스트를 유일하게 구분시켜 주는데, 목적지 호스트 내에서 어떤 프로세스에게 데이터를 넘겨줄지는 정해지지 않았다. 이때 포트번호가 사용된다
포트 주소는 어떤 프로세스에게 데이터를 넘겨줄지 결정하는데, 예를 들어 아파치 웹서버는 80번대 포트가 대기(LISTEN)한다. 그러면 목적지 포트 주소가 80번대인 데이터에 대해서는 아파치 웹서버로 전해지게 된다. 마찬가지로 21번 포트에 들어오는 데이터는 FTP서버로 전해지게 된다. 만약 목적지 포트에서 대기하는 프로세스가 없다면 그 패킷에 대해서는 폐기된다.
포트 번호는 크게 잘 알려진 포트
, 등록된 포트
, 동적 또는 사적인 포트
로 나뉘어진다
TCP/IP의 상위 프로토콜을 사용하는 응용프로그램에서는 인터넷번호 할당 허가 위원회에 의해 미리 지정된 프토번호들을 가지고있다. 이런 포트번호들은 잘알려진 포트번호
로 불린다. 다른 응용프로그램 프로세스들은 접속 할때마다 포트번호가 새로 부여된다.