네트워크에서 컴퓨터 안의 프로그램을 구분하기 위한 번호
포트(Port)는 네트워크 전송 계층(Transport Layer)에서 사용하는 논리적인 통신의 끝단(종단점)이다.
쉽게 말해, 하나의 컴퓨터 안에서 여러 개의 네트워크 프로그램을 구분하기 위한 번호이다.
네트워크를 통해 데이터를 보낼 때 우리는 IP 주소를 통해서 컴퓨터를 찾는다.
하지만 하나의 컴퓨터에는 다양한 프로그램이 동시에 실행 중일 수 있다.
“데이터를 보낼 컴퓨터에는 도착했는데, 어느 프로그램에 데이터를 전달해야 하지?”
이런 상황을 해결하기 위해 포트 번호가 존재한다.
포트는 각각의 네트워크 기반 프로그램에게 고유한 번호를 할당해주어서,
데이터가 정확한 프로그램에 도달할 수 있도록 도와준다.
포트 번호는 0부터 65535번까지 존재하는 16비트 숫자이다.
이 숫자를 이용하여 운영체제는 네트워크로 들어온 데이터를 어떤 프로그램에 전달해야 할지 결정한다.
포트 번호는 크게 3가지 범위로 나눌 수 있다.
| 구분 | 범위 | 설명 |
|---|---|---|
| Well-Known Port | 0 ~ 1023 | 잘 알려진 포트 번호, 주요 서비스에서 사용한다. ex) HTTP(80), HTTPS(443) 등 |
| Registered Port | 1024 ~ 49151 | 일반 애플리케이션에서 사용. 특정 회사나 개발자가 등록해서 사용 가능 |
| Dynamic/Private Port | 49152 ~ 65535 | 일시적으로 사용하는 포트. 클라이언트가 통신 시 임시로 할당됨 |