This commit is contained in:
Martin Slachta
2026-07-29 06:59:44 +02:00
parent 3278c5762c
commit 687750031e
8 changed files with 318 additions and 334 deletions
+10 -2
View File
@@ -200,6 +200,10 @@ V práci se zaměřujeme na metody optimalizace datového přenosu v síťových
% - 2. Ukázat další rozhraní jako ZMQ nebo Boost ASIO
% - 3. Představit asynchroní posílání zpráv
\section{Síťové systémy}
\section{Distribuované systémy}
V této kapitole představíme distribuované systémy. Popíšeme, na čem stojí a jaké jsou cíle, pokud se takový systém rozhodneme implementovat. Začneme od síťových systémů, na kterých jsou distribuované systémy stavěné. Ukážeme softwarové a systémové architektury v distribovaných systémech. Poté podrobněji rozebereme komunikaci v síti.
@@ -421,11 +425,15 @@ Méně spolehlivá alternativa je UDP, neboli User Datagram Protocol. Ten komuni
Je vhodný jako základ pro vlastní transportní protokol. Například protokol QUIC, který podrobně popíšeme níže, ho využívá pro vlastní implementaci spolehlivosti a multiplexing. My jsme na něm založili vlastní protokol, inspirovaný QUIC, který umožňuje aplikaci odeslat zprávu i nespolehlivě, například pokud se jedná o pozici hráče.
\subsubsection{QUIC}
QUIC je spolehlivý protokol transportní vrstvy, který poskytuje multiplexní komunikaci založenou na TLS 1.3, od společnosti Google. Jeho cílem je být efektivnější varianta TCP, která využívá protokol UDP. Znamená to například, že lze snížit množství blokování, ke kterému dochází z důvodu ztracených paketů. Mezi dvěma koncovými body vytváří spolehlivé spojení. Na rozdíl od TCP umožňuje otevřít více proudů v jednom spojení a modelovat tak částečné uspořádání. Když se čeká na paket v TCP, tak se pozastaví celý tok dat, ale v případě QUIC se zastaví jen konkrétní proud.
QUIC je spolehlivý protokol transportní vrstvy, který poskytuje multiplexní komunikaci založenou na TLS 1.3, od společnosti Google. Jeho cílem je být efektivnější varianta TCP, která využívá protokol UDP. Znamená to například, že lze snížit množství ahead-of-line blokování, ke kterému dochází z důvodu ztracených paketů. Mezi dvěma koncovými body vytváří spolehlivé spojení.
Mezi dvěma koncovými body se posílají pakety. Ty obsahují rámce, které se rozdělují na kontrolní a proudové. Kontrolní slouží pro ovládání koncových bodů: otevírání a zavírání proudů, přesun ve stavovém stroji koncového bodu nebo udržování spojení naživu. Proudové obsahují aplikační data. Stejně jako TCP, i QUIC přenáší proud bytů a oddělení jednotlivých zpráv je nutné implementovat zvlášť.
Na rozdíl od TCP umožňuje otevřít více nezávislých proudů paketů v jednom spojení a modelovat tak částečné uspořádání. TCP má vždy právě jeden proud.
Mezi dvěma koncovými body se posílají pakety. Ty obsahují rámce, které se rozdělují na ovládací a proudové. Ovládací slouží pro ovládání koncových bodů a úprava navázaného spojení: otevírání a zavírání proudů, změna stavu nebo udržování spojení naživu. Proudové obsahují aplikační data. Stejně jako TCP, i QUIC přenáší data jako proud bytů a oddělení jednotlivých zpráv je nutné implementovat zvlášť.
\begin{description}
\item[{Pakety}] \hfill \\