Поле ID нужно для того, чтобы собрать упорядоченные фрагменты данных. Т.е. в случае единственного пакета это поле не используется. Значит для наших целей уже можно использовать 2 байта.
При многопакетной передаче вы все таки должны упорядочить пакеты?
В данном случае схема работает только если пакеты доходят в том же порядке, в котором были отправлены. Поэтому приходится жертвовать скоростью (задержка между пакетами), чтобы использовать поле ID не по назначению.
Мы узнали, что сканирование портов может оказаться совсем не сканированием портов.
Об этом только один коммент, если не сложно — поясните плиз)
Пакеты "маскируются" под те, которые используются для сканирования портов, потому что каждый из них первый (и последний) в последовательности и именно это позволяет использовать Sequence Number.
Поле Sequence Number первого пакета соединения не является фиксированным, потому что иначе его бы могли знать злоумышленники (RCF 793). А это еще 4 байта.
В чем его «фиксированность»?
Обычно в Sequence Number записан порядковый номер первого байта данных. Если же установлен флаг SYN (т.е. это первый пакет с попыткой соединения), в поле Sequence Number может быть любое случайно выбранное число.
Получается что объем инфы, передаваемый на каждый пакет, варьируется?
Нет, всегда 6 байт, если пакет дойдет до получатела в первозданном виде :)
С перебором за n! стоит сравнивать просто как с самым наивным методом. Другой вопрос — дествительно стоило добавить сравнение с динамическим программированием как с еще одним способом получения действительно оптимального решения. Каюсь, не подумал о том, что им можно решить задачу коммивояжера. Когда будет время запрогаю и дополню пост.
Не очень хорошо разбираюсь в этой теме. Возможно при высокой нагрузке на сеть действительно могут возникнуть проблемы.
На самом деле даже через правильно настроенный фаервол.
В данном случае схема работает только если пакеты доходят в том же порядке, в котором были отправлены. Поэтому приходится жертвовать скоростью (задержка между пакетами), чтобы использовать поле ID не по назначению.
Пакеты "маскируются" под те, которые используются для сканирования портов, потому что каждый из них первый (и последний) в последовательности и именно это позволяет использовать Sequence Number.
Обычно в Sequence Number записан порядковый номер первого байта данных. Если же установлен флаг SYN (т.е. это первый пакет с попыткой соединения), в поле Sequence Number может быть любое случайно выбранное число.
Нет, всегда 6 байт, если пакет дойдет до получатела в первозданном виде :)