네트워크

개발자 관점에서의 Port 번호

25G 2023. 8. 20. 21:06

개발자는 port를 process 식별자로 생각한다.

컴퓨터를 네트워크 관점에서 세가지 레이어로 나누면 응용계층 커널계층 하드웨어 계층으로 나눌 수 있는데
이때 커널에 있는 TCP는 커널계층에 있고 애플리케이션은 응용계층에 있는것이 일반적입니다. 그럼 이 응용계층에 있는 애플리케이션은 본질은 파일이지만 이 파일과 커널의 프로토콜을 연결할 수 있도록 인터페이스가 제공되는데 이때 추상화 된 파일을 소켓이라고 합니다. 이 소켓을 생성할때 tcp소켓인 경우 소켓에 attech되는 정보가 Port번호라고 합니다.

Port는 최대 16bit -2 까지 만들수 있습니다.
그리고 이 Port는 각 프로세스마다의 고유의 번호가 되기때문에 한개의 프로세스만이 독립적으로 가질 수 있는 번호가 할당되며 그렇기 때문에 개발자의 입장에서 Port가 뭐예요? 하면 process식별자 라는 대답이 나오는 것 입니다.

외부에서 tcp/ip 네트워크 요청이 오면 컴퓨터는 macAddr에서 nic을 따라 driver를 거쳐 4계층까지 도달한후 이 요청을 어느 프로세스에 할당할것인지에 대한 결정을 자기 맘대로 주고싶은 프로세스한테 던지는 것이 아닌 port번호를 보고 식별해 내서 해당 요청이 적확히 해당 port번호를 들고 있는 프로세스한테 전달 되는 것입니다.

'네트워크' 카테고리의 다른 글

네트워크에서 데이터 단위  (0) 2023.08.20
Switch가 하는 일이 뭘까?  (0) 2023.08.20
Host, Switch, network 와 개념/ IPv4 주소 체계  (0) 2023.08.20
MAC,IP,Port 번호가 식별하는것  (0) 2023.08.20
프록시란?  (0) 2023.08.20