diff --git a/PROBLEM-AND-SOLUTION.md b/PROBLEM-AND-SOLUTION.md index 7da2fe6..254f5d3 100644 --- a/PROBLEM-AND-SOLUTION.md +++ b/PROBLEM-AND-SOLUTION.md @@ -16,14 +16,19 @@ ```mermaid flowchart LR - A["Под А
пакет 1450 B"] --> G1["Geneve
1450 + 50 = 1500 B"] - B["Под Б
пакет 1450 B"] --> G2["Geneve
1450 + 50 = 1500 B"] - G1 -- "underlay 1450 ✗" --> G2 + A["Под А
исходный пакет
1450 B"] --> G["Geneve-туннель
добавляет +50 B
итого 1500 B"] + G --> U["Underlay (канал)
реально 1450 B"] + U --> B["Под Б
пакет не доходит ✗"] + + style A fill:#e8f5e9 + style G fill:#fff3e0 + style U fill:#ffebee + style B fill:#ffebee ``` > Ожидание Cilium: underlay = **1500** > Реальность: underlay = **1450** ← провайдер дал меньше -> Разница **50 байт** → пакет не влазит → TCP stall **51 секунда** +> Geneve добавляет **50 байт** → **1500** не влазит в **1450** → TCP stall **51 секунда** - Cilium соединяет ноды через **Geneve-туннель** - Geneve добавляет к каждому пакету **+50 байт** заголовков (Ethernet 14 + IP 20 + UDP 8 + Geneve 8)