Почему в ответ на IP пакет посылается ICMP с типом 3 и кодом 2
Я пишу генератор пакетов на python. Для этого я использую scapy. По определению scapy сам заполняет неинициализированные поля. Сам IP заголовок был сформирован в соответствии с rfc 791 и страничкой в википедии выглядит следующим образом:
Версия 4
IHL 5
Type of Servise 0
Total length 20 - по определению это минимум
Identification 0
Flags 2 - это флаг DF
Fragment Offset 0
TTL 128
Protocol - ничего не указываю
Header checksum - эту опцию оставляю пустой - scapy сам рассчитает
Source IP - 169.254.28.173
Dest IP - 169.254.23.191
Options - эту опцию оставляю пустой - scapy сам рассчитает
Интерфейс Ethernet, я подключён кабелем к другому компьютеру, на котором запущен Wireshark и сниффю пакеты.
ip = IP()
if self.checkBox.checkState():
ip.version = self.spinBox.value()
if self.checkBox_2.checkState():
ip.ihl = self.spinBox_2.value()
if self.checkBox_3.checkState():
ip.tos = self.spinBox_3.value()
if self.checkBox_4.checkState():
ip.len = self.spinBox_4.value()
if self.checkBox_5.checkState():
ip.id = self.spinBox_5.value()
if self.checkBox_6.checkState():
ip.flags = self.spinBox_6.value()
if self.checkBox_7.checkState():
ip.frag = self.spinBox_7.value()
if self.checkBox_8.checkState():
ip.ttl = self.spinBox_8.value()
if self.checkBox_9.checkState():
ip.proto = self.spinBox_9.value()
if self.checkBox_10.checkState():
ip.chksum = self.spinBox_10.value()
if self.checkBox_11.checkState():
ip.src = self.lineEdit.text()
if self.checkBox_12.checkState():
ip.dst = self.lineEdit_2.text()
if self.checkBox_13.checkState():
ip.options = self.lineEdit_3.text()
data = self.plainTextEdit.document().toPlainText()
if not self.checkBox_10.checkState(): # если хочется, чтобы контрольная сумма была рассчитана автоматически
del ip[IP].chksum
ip.show2()
self.formedIP = ip
return ip/data # инкапсуляция
Я посылаю с ноутбука на другой компьютер, где запущен wireshark, пакет. Он приходит, но сразу снизу появляется ICMP сообщение

Этот ICMP имеет type 3 и code 2
Почему мне обратно присылается ICMP сообщение? Что не так с пакетами? Когда посылал по Wi-fi такого не появлялось. Можете, пожалуйста, помочь решить проблему? Может ли быть дело в кабеле ethernet?
Ответы (1 шт):
Обратно присылается ICMP сообщение потому что не запущенна программа, слушающая протокол указанный в пакете. Судя по картинке это не udp или tcp - там получается ответ port unreachable.