2011-12-16 3 views
0

Я пытаюсь отправить некоторые UDP-пакеты на сервер. Я использую Wireshark для наблюдения за своей деятельностью. Когда я отправляю пакет, wirehark сообщает мне, что моя контрольная сумма заголовка неверна.Проблемы со слотом U # UDP

wireshark

На WIRESHARK предпочтениям опция "Сверяет chechsum UDP, если это возможно" является отключена.

this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
this.destination = new IPEndPoint(IPAddress.Parse("***.***.***.***"), 80); 

this.socket.Connect(this.destination); 
this.socket.Send(Encoding.ASCII.GetBytes("foo")); 
this.socket.Shutdown(SocketShutdown.Both); 
this.socket.Disconnect(true); 

Я что-то забыл? Нужно ли устанавливать определенные параметры? Помощь очень ценится!

+3

UDP на порту 80, интересно! – leppie

+0

@leppie: что случилось с портом 80? – Jan

+0

@leppie: Я уверен, что SSDP использует что-то похожее - по сути, что-то вроде HTTP через UDP (это определенно не RFC2616, а значит «что-то вроде HTTP»): http://en.wikipedia.org/wiki/Zero_configuration_networking#Microsoft. 27s_protocol: _UPnP_SSDP – Piskvor

ответ

3

Известная проблема - обратите внимание на «может быть вызвана выгрузкой контрольной суммы IP». From the Wireshark wiki:

Большинство современных операционных систем поддерживают некоторую форму сетевой разгрузки, где некоторая сетевая обработка происходит на сетевой плате, а не на процессоре.
[...]
В системах, поддерживающих выгрузку контрольной суммы, контрольные суммы IP, TCP и UDP рассчитываются на сетевом адаптере непосредственно перед их передачей по проводу. В Wireshark они отображаются как исходящие пакеты с черным красным текстом, а примечание [неверно, должно быть xxxx (возможно, вызвано «выгрузкой контрольной суммы TCP»?)].

На странице также перечислены способы отключения этой функции для конкретной ОС.

Смежные вопросы