---
title: TSPU Blocking Methods and Protocol Degradation
tags: tspu, blocking, degradation, capacity, rst, redirect, drop, dpi-list, quic
source: github, academic/IMC-2022, academic/IMC-2021
created: 2026-03-25
updated: 2026-07-10
---

# Методы блокировки ТСПУ

## Три типа триггеров (IMC 2022)

По данным академического исследования, ТСПУ использует три типа триггеров для блокировки:

1. **SNI-based** — анализ Server Name Indication в TLS ClientHello. Основной метод для HTTPS.
2. **IP-based** — блокировка по IP-адресу назначения (через DPI-листы или Eco Highway BGP).
3. **QUIC-based** — анализ QUIC Initial packet, извлечение SNI.

Эти три триггера порождают **шесть различных типов блокирующего поведения**, в зависимости от комбинации триггера,
протокола и конфигурации DPI-листа.

## Типы блокировки (DPI behavior)

| Behavior     | Действие                                                 | Протоколы                                            |
|--------------|----------------------------------------------------------|------------------------------------------------------|
| **block**    | Блокировка трафика                                       | HTTP → 302 redirect, HTTPS → TCP RST или silent drop |
| **throttle** | Ограничение скорости (дроп пакетов с вероятностью)       | Все                                                  |
| **ignore**   | Распознать, но пропустить (для двухстадийной блокировки) | Все                                                  |
| **redirect** | HTTP-редирект на страницу-заглушку                       | Только HTTP                                          |
| **color**    | Пометить трафик (для мониторинга)                        | Все                                                  |

## HTTP-блокировка

- Фильтр отправляет **302 Redirect** на страницу-заглушку (redirect URL в конфиге)
- Может блокировать **конкретный URL**, не только домен
- Заглушка показывает причину блокировки

## HTTPS-блокировка

Два режима:

- **TCP Reset**: фильтр отправляет RST обоим сторонам → клиент видит "Connection reset"
- **Silent drop** (`send RST off`): пакеты просто отбрасываются → клиент видит timeout

**`send RST off`** — критический параметр. Когда включён, приложения бесконечно пытаются переподключиться (нет явного
отказа). Когда выключен — отправляется RST, что является явным сигналом блокировки.

## Throttling (целенаправленное замедление)

Отдельный от capacity degradation метод. Подтверждён научными исследованиями:

**Twitter (март 2021, IMC 2021):**

- Первый задокументированный случай mass throttling через ТСПУ
- Триггер: SNI в TLS ClientHello содержит домен Twitter
- Скорость ограничена до 130-150 kbps путём дропа пакетов
- Подтверждено замерами из 401 AS в России

**YouTube (июль 2024+, DFRLab 2025):**

- Throttling через дроп ACK-пакетов (client-to-server)
- Первоначально тестировалось на Ростелеком и Теле2, затем расширено
- Видео буферизуется, но не блокируется полностью

**Отличие от capacity degradation:** throttling — фиксированное ограничение скорости, capacity degradation —
вероятностный дроп пакетов. Когда триггер в **содержимом** (SNI/протокол, как в примерах выше), оба метода обходятся
стратегиями DPI bypass, т.к. DPI перестаёт распознавать протокол. Если же триггер — **IP назначения** (см. ниже),
DPI-байпас не помогает.

### IP-троттлинг (по назначению): Cloudflare, Discord (2025–2026)

Twitter и YouTube выше — троттлинг по **содержимому** (SNI/сигнатура протокола), и DPI-байпас его снимает. Есть
принципиально другой класс — троттлинг по **назначению (IP)**, который zapret2 надёжно снять не может.

**Cloudflare (с 9 июня 2025):** провайдеры РФ ограничивают ресурсы за Cloudflare, отдавая только первые ~16 КБ
любого ресурса (~10–14 пакетов), затем обрыв. Душатся одинаково TCP+TLS и QUIC/HTTP3 → решение принимается по IP
назначения, а не по plaintext-SNI. Затронуты также Hetzner, DigitalOcean, OVH.

**Discord** попадает под это по мере миграции его инфраструктуры (в т.ч. голоса) на Cloudflare — поверх уже
существующей DPI-блокировки по доменам.

DPI-байпас помогает лишь эпизодически (троттлер stateful, иногда сбивается десинком), надёжное решение — туннель/VPN.
Диагностика и обход: `troubleshooting/ip-throttling.md`.

## Деградация протоколов (capacity)

ТСПУ может **частично** блокировать протокол, дропая пакеты с заданной вероятностью:

```
capacity = 0    → полная блокировка (все пакеты дропаются)
capacity = 2-10 → эффективная деградация (98-90% пакетов дропается)
capacity = 100  → полный пропуск (все пакеты проходят)
```

**Эффект деградации при capacity 2-10%**:

- Голосовые вызовы (VoIP) — рвутся
- Видео — бесконечная буферизация
- Мессенджеры — сообщения не отправляются
- Веб-страницы — очень медленная загрузка или timeout

Это коварнее полной блокировки: пользователь думает что проблема с интернетом, а не с цензурой.

## DPI-листы (0-15)

Фильтр поддерживает до 16 независимых DPI-листов, каждый со своим поведением:

- **Лист 0**: обычно для распознавания (behavior: ignore)
- **Лист 5**: обычно для блокировки (behavior: block)
- Реестр РКН загружается в отдельный лист

**Формат списков**:

- IP-адреса и подсети: `1.2.3.4`, `1.2.3.0/24`
- Диапазоны IP: `1.2.3.4-1.2.3.10`
- URL (HTTP): `http://example.com/path`
- Домены (HTTPS): `example.com`, `*.example.com`

## QUIC-блокировка

QUIC обрабатывается через отдельный QUIC list в DPI-листе. QUIC сложнее для DPI:

- Зашифрован с первого пакета
- UDP-based — нет TCP handshake для перехвата
- SNI в QUIC Initial может быть зашифрован (ECH)

## Что это значит для bypass

### Диагностика типа блокировки

- **Connection reset** → HTTPS block с RST → DPI активен, можно обойти
- **Timeout без RST** → Silent drop (`send RST off`) → DPI активен, можно обойти
- **Redirect на заглушку** → HTTP block → DPI активен, можно обойти
- **Timeout + TCP SYN не проходит** → IP block (Eco Highway) → нужен VPN
- **Handshake OK, но загрузка встаёт ~16 КБ** → IP-троттлинг (напр. ресурсы за Cloudflare) → туннель/VPN; десинк
  ненадёжен. См. `troubleshooting/ip-throttling.md`

### Деградация vs блокировка

Если сайт работает, но очень медленно — возможна деградация протокола. Стратегии bypass помогают и в этом случае, потому
что DPI перестаёт распознавать протокол → capacity не применяется.

### Множественные DPI-листы

Ресурс может быть в нескольких листах одновременно. `blockcheckw status` поможет определить тип блокировки до начала
подбора стратегий.
