Как отличить протоколы guish в полезной нагрузке TCP / UDP? - PullRequest
0 голосов
/ 18 апреля 2020

IP-пакеты имеют 8-битный заголовок (Protocol для v4 и Next Header в v6), который определяет, какой протокол транспортного уровня используется в полезной нагрузке. Например, если это 6, полезная нагрузка является сегментом TCP, а если 17, то это UDP.

Но как нам определить, какой протокол прикладного уровня используется внутри полезной нагрузки TCP или UDP? Нет такого доступного заголовка, который служит той же цели. Как мы различаем guish полезную нагрузку, которая инкапсулирует HTTP-запрос, с другой, инкапсулирующей SMTP-почту? Это порт используется? Если это так, если я отправлю SMTP-почту на порт 80 вместо 25, будет ли он интерпретироваться как HTTP-запрос вместо SMTP-почты?

Спасибо за помощь.

1 Ответ

2 голосов
/ 18 апреля 2020

Если это так, если я отправлю SMTP-почту на порт 80 вместо 25, будет ли он интерпретироваться как HTTP-запрос вместо SMTP-почты?

Как правило, не указывается c маркер, который определяет протокол приложения. Вместо этого вопрос состоит в том, что ожидают друг от друга участники обмена данными.

Если вы отправите HTTP-запрос на SMTP-сервер, сервер попытается интерпретировать информацию как SMTP - , потому что это то, что он ожидает . Поскольку HTTP-запрос выглядит иначе, чем SMTP, сервер будет как-то жаловаться, например, просто закроет соединение или отправит ответ об ошибке SMTP, потому что это SMTP-сервер, который говорит и ожидает SMTP. Отправка клиентом попытается интерпретировать SMTP-ответ сервера как HTTP-ответ - , потому что это то, что он ожидает . Конечно, это не удастся сделать, так как SMTP сильно отличается от HTTP.

...