5.[Network] 개발자 입장에서 Port번호 이해하기

Port 번호 : Process 식별자, Service식별자, Interface 번호

포트번호는 여러가지로 해석이 된다

개발자의 관점에서는 Process 식별자

image.png

프로그램을 하나 실행시키면 프로세스가 하나 생성된다

File: 유저 어플리케이션이 커널에 접근할 수 있도록 인터페이스가 제공되는 것

Socket: 유저 어플리케이션이 커널의 TCP 나 IP에 접근할 수 있도록 인터페이스가 제공되는 것

Port 번호: TCP socket 생성시 socket에 포함된 정보 중 하나

  • TCP/IP 포트번호는 16bit
  • 나올 수 있는 경우의 수: 2^16 = 0~65,535 - 2
  • 0하고 65535는 안 쓴다
  • 포트번호: 1~65534

ex) IP주소가 192.168.0.10 이고 프로그램이 2개가 실행이 되었을 때

  • 엣지랑 크롬이 있다 침
  • 인터넷에 접속하기 위해 소켓을 연다
  • 엣지의 포트번호가 30000이라하면 크롬은 30000일 수 없음 -> 30001은 됨

패킷: 네트워크로 유입되는 방향 NIC>Driver>IP>TCP>Process 아래에서 위로 올라온다

4층 TCP에서 어느 프로세스로 갈건지(엣지로 갈건지 크롬으로 갈건지) 포트번호를 기준으로 결정한다

포트번호는 소켓에 바인딩 된다