diff --git a/PROBLEM-AND-SOLUTION.md b/PROBLEM-AND-SOLUTION.md index 231d89c..4daa364 100644 --- a/PROBLEM-AND-SOLUTION.md +++ b/PROBLEM-AND-SOLUTION.md @@ -14,20 +14,13 @@ *Cilium — сетевая подсистема Kubernetes, отвечает за связь между подами на разных нодах. Geneve — протокол туннелирования, который Cilium использует чтобы «обернуть» обычный сетевой пакет для передачи через физическую сеть между серверами.* +```mermaid +graph LR + A[Пакет 1450 B] -->|"+50 B Geneve"| B[1500 B] + B -->|"???"| C{Дверь 1450 B} + C -->|"✗"| D[STALL 51с] ``` - Под А Geneve Канал -┌──────────┐ ┌─────────────────┐ ┌──────────┐ -│ │ │ │ │ │ -│ 1450 B │ ───► │ +50 B = 1500 B │ ───► │ 1450 B │ -│ │ │ │ │ │ -└──────────┘ └─────────────────┘ └────┬─────┘ - │ - ✗ НЕ ВЛАЗИТ -``` - -> Пакет вырос до **1500 B** — а дверь всего **1450 B**. -> ICMP «уменьши пакет» заблокирован — никто не предупредил. -> TCP ждёт ответа **51 секунду** и сдаётся. +> Пакет **1450** + шапка Geneve **50** = **1500**. Дверь **1450**. Не пролез. - Cilium соединяет ноды через **Geneve-туннель** - Geneve добавляет к каждому пакету **+50 байт** заголовков (Ethernet 14 + IP 20 + UDP 8 + Geneve 8)