Wenn auf einem ICMP-Buchse Empfangen (SOCK_RAW mit IPPROTO_ICMP), da gibt kein Konzept der „Port“ in dem ICMP-Protokoll ist, wie kann eine Anwendung bestimmen, dass ein empfangenes Paket nicht Teil von einigen anderen TCP/UDP/was auch immer Socket-Übertragung, die auch bei der gleichzeitig geschieht?Empfangen von Daten auf einer ICMP Buchse
Angenommen, Sie haben eine Anwendung mit 2 Threads. Thread 1 richtet einen TCP-Server-Socket ein und empfängt kontinuierlich Daten von einem verbundenen Client . Thread 2 sendet kontinuierlich Echoanforderungspakete (Ping) an denselben Client, der einen ICMP-Socket verwendet, und empfängt dann Echo Antworten. Was ist zu verhindern, dass Thread 2 stattdessen eines der TCP Pakete empfängt?