2

У меня TCP-сервер, прослушивающий 10.10.10.101, порт 2000, работающий на компьютере с Windows 7. Ниже приведена соответствующая строка вывода для команды netstat -aon:

TCP 10.10.10.101:2000 0.0.0.0:0 LISTENING 2340

У меня также есть FPGA, которая отправляет пакет TCP SYN каждую секунду, пока сервер не ответит.

FPGA физически подключается непосредственно к сетевому интерфейсу на компьютере с Windows 7, для которого настроен статический IP-адрес 10.10.10.101. IP-адрес источника пакетов SYN - 10.10.10.100.

Я вижу, что пакеты SYN принимаются на сетевом интерфейсе с помощью WireShark, но TCP-сервер не отвечает на SYN/ACK. Я предполагаю, что TCP-сервер не видит пакеты SYN из-за проблем маршрутизации.

Я вручную добавил два маршрута следующим образом (IF 16 относится к интерфейсу со статическим IP 10.10.10.101):

route add 10.10.10.100 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

route add 10.10.10.101 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

Я правильно добавил маршруты? Как я могу подтвердить, что TCP-сервер действительно не пересылает IP-пакеты с помощью TCP SYN? Что я могу сделать, чтобы лучше понять, что происходит?

2 ответа2

2

Держу пари, что на сервере нет записи ARP для IP-адреса, с которого приходит SYN, поэтому он не может поместить пакет ответа на провод Ethernet, поскольку не знает, на какой аппаратный адрес Ethernet отправлять ответ.

1

Исходя из того, что вы сказали в своем посте, мои деньги будут заключаться в том, что сервер, на котором вы работаете, связан с неверным интерфейсом.

Если у вас есть такая возможность, попробуйте отключить протестированный интерфейс, который работает с других компьютеров, а затем перезапустите серверное программное обеспечение.

Если вы не можете отключить или отключить другой интерфейс, поскольку используете его для удаленного рабочего стола на сервере, как насчет подключения FPGA к этому интерфейсу и подключения удаленного рабочего стола к интерфейсу, к которому в данный момент подключена FPGA?

Если вы можете модифицировать серверное программное обеспечение, я бы посоветовал проверить, к какому интерфейсу (интерфейсам) он привязан - у меня были проблемы в том же духе, когда я использовал привязки к сети Windows (отправка / получение широковещательных пакетов UDP по неверному интерфейсу) ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .