Почему в ответ на 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 шт):

Автор решения: eri

Обратно присылается ICMP сообщение потому что не запущенна программа, слушающая протокол указанный в пакете. Судя по картинке это не udp или tcp - там получается ответ port unreachable.

→ Ссылка