[server] 데이터 센터 내 통신에서 손실 된 패킷은 얼마나 흔합니까?

동일한 데이터 센터에 2 개의 시스템이 있지만 반드시 동일한 랙에있는 것은 아니라고 가정합니다.

이 두 시스템간에 UDP를 사용하여 패킷을 전송할 때 손실 된 패킷은 얼마나 흔합니까?

난 단지 기계 사이에 최대 몇 가지 스위치가 있기 때문에 패킷이 삭제되지 않는다는 것을 가정하에 부탁 해요 전혀 .

동일한 데이터 센터 내에서 비 ​​순차적 패킷 도착은 얼마나 흔합니까? 내 가정은 99.9 %의 경로가 하나뿐이므로 이것이 불가능하다는 것입니다.

그러나, 나는 절대적인 용어로 생각할 때마다 나는 무언가를 놓치고 있어야한다는 것을 안다!

패킷이 손실 될 것으로 예상되는 시점과 패킷이 얼마나 자주 삭제되고 동일한 데이터 센터에있는 시스템에 대해 순서가 잘못 도착했는지 이해하려면 어떤 배경 정보가 필요합니까?

궁극적으로 동일한 데이터 센터에있는 다른 Linode VPS 인스턴스간에 통신 할 때 멀티 캐스트 UDP 또는 PGM 사용을 결정하려고합니다. 정보가 도착하고 순서대로 도착해야합니다. 물론 UDP는 그렇게 들리지 않습니다!

그러나 동일한 데이터 센터에서 거의 완벽하거나 완벽하게 제공 할 수 있다면 괜찮습니다. 그러나 나는 그 가정을 테스트하고 있습니다.

감사.



답변

사양에서 이러한 보장을 제공하지 않으므로 UDP를 사용하여 패킷을 순서대로 전달할 수 없습니다. 가장 이상적인 상황, 두 호스트 사이의 단일 이더넷 케이블을 가정하더라도 OS, 네트워크 스택, NIC 드라이버 및 libc 구현에 대한 문제는 여전히 있습니다.

그 체인의 모든 단계에서, 그 코드의 작가가 선택한 것입니다 NOT 그들이 할 필요가 없다는 단순한 이유 순서대로 도착하는 경우에도 우선 순위 지정 주문 UDP 패킷에.

고려되는 한 가지 예는 들어오는 패킷을 읽는 데이터 구조이며 링 버퍼 일 수 있습니다. 순서대로 도착한 패킷은 링 버퍼에 순서대로 배치되지만 드라이버 라이터는 네트워크 코드의 상위 계층 에 메모리 순서 로 덤프하여 순서 를 무작위 화하는 것이 더 간단 할 수 있습니다 .

상황을 고려할 때 성능이 아닌 볼륨으로 실행될 공유 인프라에서 가상 머신을 실행하면 UDP 패킷 수신 순서를 예측할 확률이 낮습니다.

요컨대, 사양에 따르면 UDP 패킷 순서를 사용할 수 없습니다. 당신은 그것에 의지 할 수 없으며, 약속 한 사양보다 더 강한 보증을 제공하기 위해 환경을 조정할 수 없습니다.


답변

실험에 관심이있는 사람이라면 Wireshark를 사용하십시오. 누군가 연결 속도가 느리거나 패킷이 끊어 졌다는 사실을 알게되면 스위치의 포트를 미러링하고 Wireshark로 랩톱을 연결하고 살펴보십시오.


답변

거의 모든 스위치는 언제든지 두 패킷의 재정렬을 야기하며 PGM과 같은 많은 네트워크 프로토콜에 의해 고려됩니다.

고려해야 할 한 가지는 대부분의 데이터 센터가 네트워크 인프라의 오버 헤드를 단순화하고 줄이기 위해 데이터 그램을 차단하고 멀티 캐스트를 차단한다는 것입니다.

IP / PGM 프로토콜 자체는 PGM 라우터 지원을 활성화하고 서버와 클라이언트 사이의 네트워크 요소를 인식하는 경우에만 사용해야합니다. 그렇지 않으면 UDP 내에 캡슐화 된 PGM을 고수하고 응용 프로그램 권한 관리 부담을 덜어줍니다.

ØMQ와 같은 메시징 계층을 사용하는 경우 배포 및 통합에 IP / PGM, UDP / PGM 또는 TCP 오버레이 네트워크 선택을 연기 할 수 있습니다.


답변

지정된 압력 하에서 손실 된 패킷을 측정 할 수있는 간단한 .net 멀티 캐스트 응용 프로그램을 작성했습니다.

여기에서 다운로드 할 수 있습니다 : SimpleMulticastAnalyzer .

즐겨.


답변