Windows 에서 수십 또는 최대 200 개의 멀티 캐스트 그룹 (예 : MSI-X 및 RSS 사용)을 사용하여 작은 UDP 멀티 캐스트 데이터 그램 (대부분 100-400 바이트)을 높은 속도로 수신 하는 HPC 앱을 Windows에 구현할 수 있는지 조사 중입니다. 여러 코어로 확장), 패킷 당 일부 처리를 수행 한 다음 전송합니다. TCP를 통해 전송하면 벽에 부딪히지 않고 필요한만큼 (6.4Gb / sec) 올라갈 수 있었지만 높은 pps 속도로 데이터 그램을받는 것이 문제가되었습니다.
Windows 2012 R2에서 2 포트 10Gb 이더넷 NIC를 사용하는 고사양 NUMA 시스템에 대한 최근 테스트 에서 초 당 수십만 개의 UDP 데이터 그램 을 수신 할 수있었습니다 (즉, 데이터를 실제로 처리하지 않고도 2x12 코어를 사용하여 방정식에서 응용 프로그램의 처리 오버 헤드를 제거하여 얼마나 빨리 얻는 지 확인하고 테스트 된 12 개의 멀티 캐스트 그룹의 커널 부분이 하나의 NUMA 노드의 8 또는 10 코어에 분산 된 것처럼 보입니다 ( 최대 RSS 대기열 이 설정되었습니다) 16)-.net 앱을 사용하더라도 기본 앱은 더 빨라질 수 있습니다.
그러나 심지어 렌 Holgate는 단지 500kpps에서 UDP 패킷을 수신 관리 에 자신의 고성능 윈도우 RIO 시험 1024 바이트의 UDP 페이로드를 사용하여.
에서는 QLogic의 백서 설정된다 "다중 스레드 초소형 패킷 라우팅"(그래서, 수신 및 전송 모두를 포함 후속?)에 대한 제한 (테스트중인 OS가없는 한) 5.7Mpps를 . 에서 기사 에 리눅스 네트워킹 , 한계가 설정되어 2Mpps에 1Mpps 로고 코어 당 (소문에 더 많거나 적은 선형 적 확장), 또는 15Mpps 커널을 우회하는 특별한 솔루션.
예 : 넷맵
900Ghz 에서 실행되는 단일 코어로 10GigE 링크 에서 회선 속도 ( 14.88Mpps ) 로 트래픽을 생성 할 수 있습니다 . 이는 패킷 당 약 60-65 클럭 사이클에 해당하며 코어 및 클럭 주파수에 맞게 확장됩니다 (4 코어의 경우 450MHz 미만에서 회선 속도가 달성 됨). 수신 측에서도 비슷한 요금이 부과됩니다 .
그렇다면 앞 단락에서 설명한대로 특히 UDP 멀티 캐스트를 수신 할 수있는 Windows / Windows Server의 최신 버전은 무엇입니까?
편집 Linux에서 클라우드 플레어 블로그 게시물과 흥미로운 주석 섹션이 있습니다. 초당 백만 개의 패킷을받는 방법 과 해당 해커 뉴스 의견 페이지가 있습니다.