다중 프로세서 시스템에서 네트워크 주소 지정이 어떻게 작동하는지 이해할 수 없습니다.
이것을 확인하십시오: 일반 TCP/IP 네트워킹은 대상 IP를 사용하여 전체 호스트/시스템을 지정하고 L4(TCP/UDP) 대상 포트를 사용하여 대상 응용 프로그램을 지정합니다.
(아마도) 하나의 IP 주소를 갖도록 시스템을 설정하고 다른 CPU에서 실행되는 응용 프로그램이 다른 L4 포트 번호를 사용하도록 할 수 있습니다. 그런 다음 들어오는 각 패킷에 대해 L4 포트를 사용하여 이를 보낼 CPU를 결정할 수 있습니다. 하지만 시스템은 한 CPU의 애플리케이션이 다른 CPU에서 사용 중인 L4 포트 번호를 재사용하지 않도록 어떻게 보장합니까?
위와 같다면 실제로 하나의 애플리케이션에 두 개(또는 그 이상)의 CPU를 사용할 수 없다는 뜻인 것 같습니다. 예를 들어, 웹 서버를 실행 중이고 해당 서버로 전송된 모든 패킷의 TCP 포트 값이 80인 경우 시스템은 어떤 패킷을 어떤 CPU로 보낼지 어떻게 결정합니까?
- 물론 각 CPU에 고유한 IP 주소를 제공하는 것이 가능합니다. 하지만 다시 말하면 다중 CPU 애플리케이션을 실행할 수 없습니다.
내가 무엇을 놓치고 있나요? 어떻게 작동하나요?
답변1
다중 프로세서 시스템과 네트워크는 서로 독립적입니다.
각 네임스페이스가 다른 주소를 가지지만 동일한 프로세서가 코드를 실행하는 단일 프로세서 시스템에 많은 네트워크 네임스페이스가 있을 수 있습니다.
다중 프로세서 시스템에 단일 네트워크 주소를 사용할 수 있습니다. 여기서 모든 네트워크 요청은 현재 스레드를 실행하는 데 사용할 수 있는 프로세서에 의해 처리됩니다.
특정 프로세서를 특정 네트워크 주소(또는 애플리케이션의 포트 번호)와 어떻게든 연결하려면 운영 체제에서 이를 설정하고 cgroups
다음을 사용해야 합니다.
"각 CPU에 고유한 IP 주소를 부여한다"는 개념은 존재하지 않습니다. "운영 체제가 일종의 파티셔닝을 수행하고 각 파티션에 IP 주소와 프로세서를 할당하도록 하는 것"이 가능합니다. 다른 조합과 마찬가지로 "3개의 IP 주소와 2개의 전용 프로세서"입니다. 또는 "포트 80에서 수신 대기하는 전용 응용 프로그램에 전용 프로세서를 사용하십시오."