내부 네트워크 포트란 무엇입니까?

내부 네트워크 포트란 무엇입니까?

나는 네트워크에서 호스팅하는 각 서비스에 대해 호스트/컴퓨팅 시스템에 여러 포트가 있다는 것을 알고 있습니다.

하지만 내부적으로 이러한 포트가 무엇인지 알고 싶습니다.

다음은 네트워크 포트에 대한 나의 이해입니다. 내가 틀렸다면 정정해주세요. 더 명확하게 하려면 세부정보를 추가하세요.

이는 네트워크 서비스(웹 서비스, 파일 전송 서비스 등)가 시스템에서 호스팅될 때마다 동적으로 생성되는 대부분 OS의 네트워킹 구성 요소 내부의 대기열/버퍼인 소프트웨어 구성일 수 있습니다. 그리고 각 네트워크 서비스는 해당 포트(데이터 수신)를 수신하고 해당 포트에 쓸(데이터 전송) 액세스 권한도 갖습니다. [제한된 버퍼 문제와 같습니다]

데이터를 전송해야 할 때 -
네트워크 서비스(응용 프로그램)는 OS에 대한 시스템 호출(예: send())을 만들어 데이터를 버퍼에 쓰고 전송 프로토콜에 알립니다. 따라서 TCP/UDP 프로토콜은 버퍼에서 데이터를 가져와서 분할하여 네트워크 스택으로 전달합니다.

데이터를 수신해야 하는 경우-
데이터가 NIC를 통해 호스트에 도착하면 OS의 일부 하위 네트워크 구성 요소에서 데이터를 읽어 네트워크 스택으로 전달합니다. 그리고 OS의 전송 계층 구성 요소가 이를 읽으면 해당 특정 포트 번호와 관련된 대기열에 데이터를 넣습니다. 해당 포트를 수신하는 애플리케이션(네트워크 서비스)이 데이터를 읽을 수 있도록 합니다.

답변1

거의 정확하지만 완전히 정확하지는 않습니다.

  • 소켓버퍼가 있는 소프트웨어 구성입니다(각 소켓에는 별도의 전송 및 수신 대기열이 있습니다). TCP의 경우 각 연결은 별도의 소켓을 사용합니다.

  • 포트는 역다중화에 사용되는 숫자 레이블일 뿐이므로 OS가 들어오는 패킷을 수신해야 하는 소켓(또는 수신 버퍼)을 선택하는 데 도움이 됩니다.

각 소켓은 프로토콜, 로컬 및 원격 주소, 로컬 및 원격 포트 등 여러 매개변수와 연결되며 이들 모두는 수신된 패킷을 조회할 때 사용됩니다. (주소가 동일할 경우 포트 중 하나 이상이 달라야 합니다. 그러나 주소가 다를 경우 여러 소켓이 동일한 포트를 사용할 수 있습니다.)

관련 정보