mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
@@ -1234,3 +1234,14 @@ mss, winsize, scale передаются от одной стороны соед
|
||||
mss дублируется в поле `desync.tcp_mss` независимо от наличия conntrack. Значение там уже рассчитано на то, что оно будет использовано
|
||||
для вычисления размера пакета для отсылки.
|
||||
Если вдруг conntrack нет или mss не был согласован сторонами, выставляется значение по умолчанию - DEFAULT_MSS (1220).
|
||||
|
||||
При работе с sequence нужно учитывать их 32-битную беззнаковую природу.
|
||||
Если к 4294967280 (0xFFFFFFF0) прибавить 100, будет не 4294967380 (0x100000054), а 84 (0x54).
|
||||
Если вы сложите в LUA эти числа - вы получите 4294967380, потому что там используется представление чисел с разрядностью более 32 и со знаком.
|
||||
Для операций с sequence и их сравнения рекомендуется использовать C функции u32add и bitand.
|
||||
Например, выражение `0==bitand(u32add(seq1, -seq2), 0x80000000)` соответствует `seq1>=seq2`.
|
||||
Но последний простой вариант не будет работать корректно, а первый - будет, если seq1 ушел от seq2 не более, чем на 2 GB.
|
||||
Большее и не отследить через sequence. Нужно всегда учитывать, что при передаче больших обьемов данных они не могут служить счетчикам.
|
||||
`p*counter` являются 64-битными счетчикам, поэтому у них этой проблемы нет.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user