---
title: TSPU DPI Engine — How Protocols Are Recognized
tags: tspu, dpi, engine, recognition, protocols, analysis, signatures, obfuscation
source: github, community
created: 2026-03-25
updated: 2026-04-15
---

# DPI Engine ТСПУ — как распознаются протоколы

## Многофакторный анализ

DPI Engine анализирует не отдельные пакеты, а **целые сессии**:

1. **Размеры пакетов и их вариации** — каждый протокол имеет характерный профиль размеров
2. **Частота прохождения пакетов** — паттерн timing-а специфичен для каждого протокола
3. **Ключевые слова и паттерны** — сигнатуры внутри пакетов (SNI в TLS, Host в HTTP)
4. **Косвенные признаки шифрованного трафика** — при шифровании прямые поля не видны, но профиль поведения остаётся

## Что DPI видит в разных протоколах

| Протокол                    | Что видит DPI                 | Что можно заблокировать       |
|-----------------------------|-------------------------------|-------------------------------|
| HTTP                        | Полный URL, Host, метод       | Конкретный URL или домен      |
| HTTPS (TLS)                 | SNI в ClientHello             | Только домен целиком          |
| QUIC                        | Initial packet, SNI           | Домен (сложнее анализировать) |
| Шифрованный/обфусцированный | Размеры, тайминги, статистику | По косвенным признакам        |

## Ограничения DPI

**HTTPS**: DPI видит **только SNI** в TLS ClientHello. Не может анализировать содержимое зашифрованного трафика.
Блокировка только по домену, не по URL.

**Ложные срабатывания**: Анализ шифрованного трафика неточен — похожие профили могут быть ошибочно распознаны. Поэтому
используется двухстадийная блокировка.

**Обфускация**:

- Простая обфускация (XOR) — DPI может развернуть
- Имитация другого протокола — требует новых сигнатур для обнаружения
- Качественная имитация — не распознаётся без принципиально новых подходов

## Что это значит для стратегий bypass

### Почему split2/disorder2 работают

DPI парсит SNI из ClientHello. Если пакет разбит на фрагменты, DPI должен собрать их обратно. Простые DPI не умеют
reassembly → split2 ломает парсинг SNI.

### Почему fake работает

DPI обрабатывает пакеты последовательно. Fake с поддельным SNI обрабатывается первым, DPI "запоминает" фальшивый домен,
настоящий пакет проходит без инспекции.

### Почему multisplit нужен против продвинутого DPI

ТСПУ предположительно может пересобирать single-split сегменты (community observation; научные публикации не
подтверждают TCP reassembly capability напрямую, но эмпирически split2 перестал работать на многих провайдерах).
Multi-split на нескольких позициях усложняет reassembly.

### Почему capacity degradation (0-100) опасна

ТСПУ может не полностью блокировать протокол, а дропать пакеты с вероятностью. При capacity 2-10% протокол становится
практически нерабочим: голосовые вызовы рвутся, видео буферизуется, страницы не грузятся.

### Почему стратегии "протухают"

ЦСУ видит **все** сессии со **всех** 350 площадок (~5000 устройств). Статистический анализ на таком объёме позволяет
выявлять новые паттерны обхода и обновлять сигнатуры.

## IPv6 на ТСПУ (март 2026)

ТСПУ научился блокировать по IPv6. Ранее IPv6-трафик часто проходил мимо DPI-инспекции, и ресурсы были доступны по IPv6
без каких-либо стратегий bypass. По состоянию на март 2026 это уже не так — ТСПУ обрабатывает IPv6 наравне с IPv4.

Последствия:

- Стратегии, которые работали "из коробки" через IPv6 — перестали работать
- Необходимо настраивать bypass для IPv6 отдельно: `DISABLE_IPV6=0` в конфиге, поиск стратегий через `IPVS=6`
- Подробнее см. `troubleshooting/ipv6-trap.md`

## Перегрузка ТСПУ через MTProto

Массовое использование бесплатных MTProto прокси создаёт значительную нагрузку на ТСПУ. При перегрузке DPI может
временно пропускать трафик, который обычно блокирует. Это побочный эффект объёма трафика, а не целенаправленная атака на
DPI.
