|
|
@ -393,11 +393,14 @@ seqovl байт со смещенным в минус sequence number на ве |
|
|
|
Для disorder2 overlap идет на 2-ю часть пакета. Обязательно, чтобы seqovl был меньше split_pos, иначе |
|
|
|
все отосланное будет передано в сокет сразу же, включая фейк, ломая протокол прикладного уровня. |
|
|
|
При соблюдении этого условия 2-я часть пакета является полностью in-window, |
|
|
|
поэтому серверная ОС принимает ее целиком, включая фейк. Но поскольку начальная часть данных из 1 пакета еще не принята, |
|
|
|
то фейк и реальные данные остаются в памяти ядра, не отправляясь в серверное приложение. Как только приходит 1-я часть пакета, |
|
|
|
она переписывает фейковую часть в памяти ядра. Ядро получает данные из 1 и 2 части, поэтому далее |
|
|
|
идет отправка в сокет приложения. Таково поведение всех unix ОС - оставлять последние принятые данные. |
|
|
|
Для windows серверов может быть наоборот, поэтому не факт, что такой вариант будет на них работать. |
|
|
|
поэтому серверная ОС принимает ее целиком, включая фейк. Но поскольку начальная часть данных из 1 пакета |
|
|
|
еще не принята, то фейк и реальные данные остаются в памяти ядра, не отправляясь в серверное приложение. |
|
|
|
Как только приходит 1-я часть пакета, она переписывает фейковую часть в памяти ядра. |
|
|
|
Ядро получает данные из 1 и 2 части, поэтому далее идет отправка в сокет приложения. |
|
|
|
Таково поведение всех unix ОС, кроме solaris - оставлять последние принятые данные. |
|
|
|
Windows оставляет старые данные, поэтому disorder с seqovl будет приводить к зависаниям соединения |
|
|
|
при работе с Windows серверами. Solaris практически мертв, windows серверов очень немного. |
|
|
|
Можно использовать листы при необходимости. |
|
|
|
Метод позволяет обойтись без fooling и TTL. Фейки перемешаны с реальным данными. |
|
|
|
split/disorder вместо split2/disorder2 по-прежнему добавляют дополнительные отдельные фейки. |
|
|
|
|
|
|
|