FinalMask: Update new lengths/delays

This commit is contained in:
Fangliding
2026-06-24 04:04:00 +08:00
parent bbb6826bb5
commit ee77c6b585
3 changed files with 24 additions and 12 deletions
+8 -4
View File
@@ -145,8 +145,8 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对
// [!code focus:6]
"settings": {
"packets": "tlshello",
"length": "100-200",
"delay": "10-20",
"lengths": ["3-5", "6-8", "10-20"],
"delays": ["10-20"],
"maxSplit": "3-6"
}
}
@@ -158,9 +158,13 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对
`"packets"`:支持两种分片方式 "1-3" 是 TCP 的流切片,应用于客户端第 1 至第 3 次写数据。"tlshello" 是 TLS 握手包切片。
`"length"`:分片包长 (byte),不能为 0。
`"lengths"`:分片包长 (byte)
`"delay"`:分片间隔(ms
数组的第 n 个表示当前处理的单个数据包所切出的第 n 个分片期望的长度,最后一项则持续对当前数据包后续切出的分片生效。除最后一项外可以为 0,若选中 0 则空转等待下次 delay
`"delays"`:分片间隔(ms
数组的第 n 个表示当前处理的单个数据包所切出的第 n 个分片发送后等待的间隔,最后一项则持续对当前数据包后续切出的分片生效。
当其为 0 且设置 `"packets": "tlshello"` 时,被分片的 Client Hello 将会在一个TCP包中发送(如果其原始大小未超过MSS或MTU导致被系统自动分片)
+8 -4
View File
@@ -145,8 +145,8 @@ See the fields for each type below.
// [!code focus:6]
"settings": {
"packets": "tlshello",
"length": "100-200",
"delay": "10-20",
"lengths": ["3-5", "6-8", "10-20"],
"delays": ["10-20"],
"maxSplit": "3-6"
}
}
@@ -158,9 +158,13 @@ Controls outgoing TCP fragmentation. In some cases it can deceive censorship sys
`"packets"`: supports two fragmentation modes. `"1-3"` slices the TCP stream and applies to the client's 1st through 3rd write operations. `"tlshello"` fragments the TLS handshake packet.
`"length"`: fragment size in bytes. It must not be `0`.
`"lengths"`: fragment size in bytes.
`"delay"`: delay between fragments in milliseconds.
The n-th element of the array specifies the expected length of the n-th fragment split from the current packet being processed; the last element keeps applying to all subsequent fragments split from that packet. Entries other than the last may be `0`; when `0` is selected, no fragment is split out for that round — it just idles and waits out the corresponding delay before the next one.
`"delays"`: interval between fragments in milliseconds.
The n-th element of the array specifies how long to wait after sending the n-th fragment split from the current packet being processed; the last element keeps applying to all subsequent fragments split from that packet.
When it is `0` and `"packets": "tlshello"` is set, the fragmented Client Hello will be sent in a single TCP packet, as long as its original size does not exceed the MSS or MTU and the system does not fragment it automatically.
+8 -4
View File
@@ -145,8 +145,8 @@ FinalMask добавляет последний слой маскировки п
// [!code focus:6]
"settings": {
"packets": "tlshello",
"length": "100-200",
"delay": "10-20",
"lengths": ["3-5", "6-8", "10-20"],
"delays": ["10-20"],
"maxSplit": "3-6"
}
}
@@ -158,9 +158,13 @@ FinalMask добавляет последний слой маскировки п
`"packets"`: поддерживаются два режима фрагментации. `"1-3"` разрезает TCP-поток и применяется к 1-й, 2-й и 3-й операциям записи клиента. `"tlshello"` фрагментирует пакет TLS-рукопожатия.
`"length"`: длина фрагмента в байтах. Не может быть `0`.
`"lengths"`: длина фрагмента в байтах.
`"delay"`: интервал между фрагментами в миллисекундах.
n-й элемент массива задаёт ожидаемую длину n-го фрагмента, отрезаемого от текущего обрабатываемого пакета; последний элемент продолжает применяться ко всем последующим фрагментам, отрезаемым от этого пакета. Все элементы, кроме последнего, могут быть `0`; если выбран `0`, фрагмент в этом проходе не выделяется — выполняется холостой проход с ожиданием соответствующей задержки перед следующим фрагментом.
`"delays"`: интервал между фрагментами в миллисекундах.
n-й элемент массива задаёт, сколько ждать после отправки n-го фрагмента, отрезаемого от текущего обрабатываемого пакета; последний элемент продолжает применяться ко всем последующим фрагментам, отрезаемым от этого пакета.
Если значение равно `0` и задано `"packets": "tlshello"`, фрагментированный Client Hello будет отправлен в одном TCP-пакете, если его исходный размер не превышает MSS или MTU и система не фрагментирует его автоматически.