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

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

Ответы [ 4 ]

2 голосов
/ 17 сентября 2008

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

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

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

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

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

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

2 голосов
/ 17 сентября 2008

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

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

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

1 голос
/ 17 сентября 2008

РЕДАКТИРОВАТЬ: Извините, моя оригинальная идея была нелепой.

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

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

...