doručovací protokoly (delivery protocols)
Doručovací algoritmy jsou konkrétní implementace, které zajišťují garance daného komunikačního modelu. Jsou to “stavební kameny”, které realizují to, co komunikační model slibuje.
[!note] Implementace doručovacích algoritmů Doručovací algoritmy využívají mechanismy koordinace (token-based, permission-based, quorum-based) pro dosažení svých garancí. Příklad: Total order multicast může být implementován pomocí:
- Token-based (token nese sekvenční číslo)
- Permission-based (ISIS algoritmus - žádost o číslo od všech)
- Quorum-based (majority rozhoduje o pořadí)
Vztah: Komunikační model → Algoritmus
Komunikační model říká “CO”:
- “Chci FIFO pořadí zpráv”
- “Chci atomické doručení všem”
- “Chci kauzální uspořádání”
Doručovací algoritmus říká “JAK”:
- Konkrétní protokol/postup
- Struktury dat (fronty, timestampy, vektorové hodiny)
- Zprávy navíc, potvrzování, synchronizace
Konkrétní příklady:
Pro FIFO broadcast:
- Model: Zprávy od stejného odesílatele dorazí všem ve stejném pořadí
- Algoritmus: Sekvenční čísla + fronta zpráv na příjemci
Pro kauzální multicast:
- Model: Pokud zpráva $m_1$ kauzálně předchází $m_2$, všichni je uvidí v tomto pořadí
- Algoritmus: trans algorithm
Pro Total Order multicast:
- Model: Všichni vidí všechny zprávy ve stejném pořadí
- Algoritmy:
- Centralizovaný sekvenční (koordinátor přiděluje čísla)
- Lamportovy hodiny + total ordering
- ISIS algoritmus (quorum-based)