Генерация Socket в C под Linux и wireshark обнаруживают ошибку в кадре - PullRequest
0 голосов
/ 16 мая 2019

Я создаю Socket в C под Linux, используя «традиционный способ»:

sock=socket(AF_INET, SOCK_STREAM, 0);

Сразу после этого мы подключаем его (успешно) и отправляем кадр с помощью:

send(sock, buffer, bufferSize, 0);

К сожалению, когда фрейм отправляется в автомат, он не «получает» его (мы не знаем почему). Но если он отправляет на «классический» сервер, все в порядке.

Итак, когда я проверил кадр с помощью wireshark, возникла проблема:

Malformed Packet

enter image description here

Как видите, кадр № 6 искажен. Похоже, что в заголовке TCP есть проблема, но что и как ее решить?

Большое спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Как видите, кадр № 6 искажен. Похоже, что в заголовке TCP есть проблема, но что и как ее решить?

Wireshark пытается интерпретировать пакет как сообщение от distcc , возможно, потому, что он использует порт для distcc (3632). Он не жалуется ни на что в заголовке TCP, но жалуется, что не может интерпретировать полезную нагрузку пакета как протокол прикладного уровня distcc.

Хотя о вашем приложении ничего не известно, скорее всего, он не использует протокол distcc, а использует только порт 3632. Поскольку информация из wireshark неверна, поскольку вы никогда не намеревались использовать протокол distcc. Чтобы «исправить» проблему в wireshark, перейдите на другой порт или отключите интерпретацию вашего порта в wireshark как distcc.

Обратите внимание, что это только исправляет неправильное отображение пакета как искаженного (так как его нет). Это не имеет никакого отношения к исправлению сообщения, которое вы на самом деле намеревались, и в вашем вопросе нет информации, которая помогла бы решить эту проблему.

0 голосов
/ 17 мая 2019

Большое спасибо за все ваши комментарии (и запросы).Проблема пришла из порта, как уже упоминалось. Steffen Ullrich.

Я переключил сервер и клиент с порта 3632 на 3633, и Wireshark анализировал фрейм как «классический» протокол TCP, и каждый из них в порядке.

...