내 잡다한 노트

Ephemeral port란? 본문

운영체제

Ephemeral port란?

peanutwalnut 2025. 1. 9. 15:46

클라이언트가 소켓을 열 때, OS가 자동으로 사용 가능한 포트 중 하나를 임시 할당한다.

보통 30000번대나 40000번대 포트를 이와 같은 용도로 사용한다.

서버 쪽은 미리 정해진 포트를 Listen하고 있지만, 클라이언트 쪽 포트는 “사용 가능한 임의 번호”로 열리는 것이다.

 

이때 “클라이언트 포트”를 일일이 포워딩하지 않아도, 라우터(NAT)가 “(외부IP:서버포트) ↔ (내부IP:서버포트)”를 매핑해주는 규칙만 있으면, 클라이언트 쪽 임시 포트는 자동 관리됩니다.

 

결국, “IP:39068” 같은 출발지 포트는 클라이언트 OS/NAT 레벨에서 자동 할당된 것이고, 서버에서는 그 포트를 Listen하지 않습니다. 서버(또는 라우터)는 도착지 포트만 포워딩 규칙에 맞추어 열어주면, 양방향 통신이 이루어집니다.

 

 

일반적으로 포트포워딩은 “서버가 Listen 중인 포트”를 열어둘 뿐이고, “클라이언트(외부)에서 임의로 열리는 출발지 포트”를 열어두진 않습니다.

---> 이 부분을 오해했음.

포트포워딩의 목적은 listen 포트를 열어 외부에서 접속할 수 있게끔 하는 것. 

 

클라이언트가 서버로 연결 시, NAT가 세션 정보를 저장하므로 응답 트래픽이 역방향으로 클라이언트 ephemeral 포트에 도달 가능

 

'운영체제' 카테고리의 다른 글

Page Fault와 Thrashing  (0) 2025.01.26
Unix Domain Socket  (0) 2025.01.20
IPC 방식에 따른 속도 비교  (0) 2025.01.20
시스템콜 처리 과정, 시스템 콜 테이블  (0) 2023.03.31
프로세스 생성 시스템 콜  (0) 2023.03.20