Вероятность нахождения TCP-пакетов с одинаковой полезной нагрузкой?

StackOverflow https://stackoverflow.com/questions/81504

Вопрос

Ранее сегодня у меня была дискуссия с разработчиком о повторной идентификации TCP-пакетов, отправляющихся по определенному интерфейсу с той же полезной нагрузкой.Он сказал мне, что вероятность нахождения TCP-пакета с одинаковой полезной нагрузкой (даже если одни и те же данные отправляются несколько раз) очень мала из-за способа построения TCP-пакетов на системном уровне.Я знал, что это может быть так из-за настроек MTU системы (обычно 1500 байт) и т.д., но на какую статистику вероятности я действительно смотрю?Существуют ли какие-либо конкретные протоколы, которые облегчили бы идентификацию соответствующих полезных нагрузок?

Это было полезно?

Решение

Редактировать:Извините, моя первоначальная идея была нелепой.

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

Что касается статистики, то мне придется довериться кому-то с большими знаниями о работе TCP.

Другие советы

Уникальность полезной нагрузки определяет протокол, работающий поверх tcp, а не сам протокол tcp.

Например, вы можете наивно полагать, что все HTTP-запросы будут идентичны при запросе домашней страницы сервера, но строки referrer и user agent делают полезную нагрузку разной.

Аналогично, если ответ генерируется динамически, он может содержать заголовок даты:

Дата:Пт, 12 сентября 2008 г. 10:44:27 GMT

Таким образом, это сделает полезную нагрузку ответа другой.Однако последующие полезные загрузки могут быть идентичными, если содержимое статично.

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

Крис прав.Более конкретно, две или три части информации в заголовке пакета должны отличаться:

  • порядковый номер (который предполагается непредсказуемым), который is увеличивается с увеличением количества переданных и принятых байт.
  • временная метка - поле, содержащее две временные метки (хотя это поле является необязательным).
  • контрольная сумма, поскольку как полезная нагрузка и заголовок заполняются контрольные суммы, включая изменяющийся порядковый номер.

Отправка одной и той же полезной нагрузки, вероятно, довольно распространена (особенно если вы используете какую-то сетевую службу).Если вы имеете в виду отправку одного и того же сегмента tcp (заголовок и все) или всего сетевого пакета (ip и выше), то вероятность существенно снижается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top