BadCats
@BadCats

Определить что пришло на сервер — пакет или сегмент (udp/tcp)?

Начнём с того, что есть сегмент - как единица данных на транспортном уровне, а есть сегмент в контексте протокола TCP - количество данных передаваемое за раз. В данном вопросе подразумевается именно последнее.
Есть клиент-серверный чат на сокетах - пишется на python. В момент подключения клиента - он (клиент) может выбрать способ передачи сообщения на сервер. Как со стороны сервера определить - тип пришедшего сообщения - его транспортный протокол и в зависимости от этого отвечать разным клиентам? Т.е. нужен своего рода сниффер пакетов (пакетов в общем понимании - а-ля -сообщений). Где можно почитать про подобное?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 2
vvpoloskin
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Не понятно, зачем сниффер. Программно и под tcp, и под udp открываются разные сокетов и переводятся в состояние LISTEN. Какой конкретно из них выбрать для нового соединения решает операционная система исходя из приходящих пакетов (сетевой стек сам анализирует пакеты). А если все-таки надо дать больше гибкости, есть iptables.
Ответ написан
Если уж совсем в дебри сниффинга залазить, то scapy вам в руки
Пример

Но что-то мне подсказывает, что это перебор.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Не нужно ничего сниффить, чтобы понять, TCP-пакет пришёл или UDP - он приедут в разные порты, соответственно - можно реализовать и отличающуюся обработку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы