“우리는 모두 누군가의 포트다.
정신적 연결을 기다리는 열린 소켓…”
포트는 논리적인 접속장소를 뜻하며, 인터넷 프로토콜인 TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용한다.

위 그림을 보면 한 서버 인스턴스에서 두 서버를 실행 중이다.
클라이언트들이 IP 주소와 포트를 이용하여 접근하고 있다.
만약 포트가 없었다면 어떻게 두 서버를 구별할까?
IP 주소만으로는 어느 서버로 요청을 보내는지 알 수 없다.
다음은 자주 사용되는 포트이다.
| 번호 | 프로토콜 | 통신 프로토콜 | 설명 |
|---|---|---|---|
| 80 | HTTP | TCP | 웹 서버 접속 |
| 443 | HTTPS | TCP | 웹 서버 접속(SSL) |
| 25 | SMTP | TCP | 메일 서버 간 메일 전송 |
| 22 | SSH | TCP | 컴퓨터 원격 로그인 |
| 53 | DNS | UDP | DNS 질의 |
컴퓨터와 네트워크 사이의 상호 연결 지점을 의미한다.
네트워크 인터페이스는 실제로 물리적 실체를 가질 수도 있고, 소프트웨어만으로도 구현될 수 있다.
일반적으로는 물리적인 네트워크 인터페이스를 뜻한다.
따라서 조금 더 자세히 알아보겠다.

네트워크 인터페이스 카드는 컴퓨터에 전용 네트워크를 제공하는 회로기판이다.
네트워크 인터페이스 카드는 OSI 7계층 중 물리 계층(1계층)과 데이터링크 계층(2계층)에 속한 장비로, 기본적으로 네트워크에서 컴퓨터로 전달된 전기신호를 Bit로 변환하는 역할을 한다.
그리고 프로세서에 인터럽트 요청을 보내 Bit를 CPU까지 전달하는 역할을 한다.
반대로 전송할 Bit를 전기신호로 변환하기도 한다.
사설 IP를 가진 컴퓨터는 공인 IP를 가진 공유기를 거쳐 인터넷을 할 수 있게 된다는 것은 저번 글에서 기술하였다.

만약 위와 같은 그림에서 외부에서 컴퓨터 1의 웹서버에 접근하기 위해서는 어떻게 해야할까?
컴퓨터 1의 IP는 불변하지 않고 유일하지 않은 사설 IP이기 때문에 IP를 알려줄 수도 없다. 그래서 공인 IP를 알려줘야 한다.
'공인 IP:포트 주소'를 입력하더라도 컴퓨터 1에 다다를 수는 없다.
공인 IP의 포트 주소로 들어오더라도 연결은 공유기에 도달하면 끝난다.
왜냐하면 공인 IP로 들어온 포트 주소의 연결을 컴퓨터 1, 2, 3 중 어디로 보내줘야 할 것인지를 판단할 수 없기 때문이다.
따라서 미리 경로들을 지정해줘야한다. 감이 왔을 것이라고 생각된다.
이렇듯 공인 IP의 포트가 어떤 사설 IP로 전송하게 되는지를 설정하는 것이 포트포워딩이다.
참고
NAT 포트포워딩 형식 아웃바운드 인바운드 패킷 속 도착지 여부 True False NAT의 패킷에는 도착지(Destination)의 정보가 포함되어있다.
하지만 포트포워딩의 패킷에는 도착지(Destination)의 정보가 포함되어있지 않다.
NAT는 아웃바운드 형식이고,
포트포워딩은 인바운드 형식이다.