백엔드/네트워크

[네트워크기초이론]개발자 입장에서 Port번호 이해하기

묘걍 2023. 9. 3. 20:48

Port번호의 의미

1. Process 식별자

2. Service 식별자

3. Interface 번호

Process 식별자

- 내가 프로그램을 실행시키면 프로세스가 존재하기 마련

- 운영체제 구성요소 안에 TCP/IP, Device Driver, NIC 등이 있다

- 커널에 TCP가 implementation 되어있는데 이것을 User mode application이 접근할 수 있도록 interface 제공

   기본적으로 본질은 file이지만 Protocol을 추상화했기 때문에 file이 아니라 socket이라고 함

- socket은 파일 같은 건데, socket을 생성할 때 TCP socket일 때 socket에 attach 되는 정보 중 하나가 Port 번호

- TCP/IP Port 번호는 기본적으로 16bit 정도

   나올 수 있는 경우의 수는 2^16 = 0 ~ 65535

   하지만 이 중에서 0과 65535는 쓰면 안됨 → 2^16 - 2 만큼의 Port 개수가 있다

 

- 엣지, 크롬이 인터넷에 접속하기 위해 socket을 연다

- 1번 소켓에 attach 되는 port 번호가 30000 이면 2번은 똑같은 번호일 수 없다. 30001

"Port 번호는 프로그램 개발자의 입장에서 봤을 때 명백히 Process 식별자이다"

 

- Packet은 데이터의 단위

- Packet이 Network으로 유입되어 들어오면

  NIC을 거쳐 Drive타고 쭉 올라가 Process에게 전달된다.

- 중요한건 쭉 올라가다 4층에서 어느 process로 갈건지 Port 번호를 가지고 결정한다.

 

 

출처: https://youtu.be/INamKzKzbPc?si=zqglvSHid-owtKn3