ivca update

This commit is contained in:
Martin Slachta
2026-07-20 09:45:09 +02:00
parent ab536bdb54
commit 780d2d5e45
25 changed files with 4082 additions and 1187 deletions
+77 -94
View File
@@ -1,99 +1,82 @@
\babel@toc {czech}{}\relax
\contentsline {section}{\numberline {1}Úvod}{9}{section.1}%
\contentsline {section}{\numberline {2}Distribuované systémy}{10}{section.2}%
\contentsline {subsection}{\numberline {2.1}Počítačové sítě}{10}{subsection.2.1}%
\contentsline {subsection}{\numberline {2.2}Komunikace v síti}{11}{subsection.2.2}%
\contentsline {subsection}{\numberline {2.3}Rodina protokolů TCP/IP}{11}{subsection.2.3}%
\contentsline {subsection}{\numberline {2.4}Protokoly v aplikační vrstvě}{12}{subsection.2.4}%
\contentsline {subsubsection}{\numberline {2.4.1}Middleware}{13}{subsubsection.2.4.1}%
\contentsline {subsubsection}{\numberline {2.4.2}HTTP}{13}{subsubsection.2.4.2}%
\contentsline {subsubsection}{\numberline {2.4.3}HTTP/3}{13}{subsubsection.2.4.3}%
\contentsline {subsubsection}{\numberline {2.4.4}gRPC}{14}{subsubsection.2.4.4}%
\contentsline {subsubsection}{\numberline {2.4.5}Internet protocol}{14}{subsubsection.2.4.5}%
\contentsline {subsection}{\numberline {2.5}Protokoly v transportní vrstvě}{14}{subsection.2.5}%
\contentsline {subsubsection}{\numberline {2.5.1}TCP}{14}{subsubsection.2.5.1}%
\contentsline {subsubsection}{\numberline {2.5.2}Spolehlivost}{14}{subsubsection.2.5.2}%
\contentsline {subsubsection}{\numberline {2.5.3}UDP}{15}{subsubsection.2.5.3}%
\contentsline {subsubsection}{\numberline {2.5.4}QUIC}{15}{subsubsection.2.5.4}%
\contentsline {subsection}{\numberline {2.6}Asynchroní IO}{17}{subsection.2.6}%
\contentsline {subsubsection}{\numberline {2.6.1}ZeroMQ}{17}{subsubsection.2.6.1}%
\contentsline {subsubsection}{\numberline {2.6.2}Work stealing}{17}{subsubsection.2.6.2}%
\contentsline {subsubsection}{\numberline {2.6.3}Async/Await}{17}{subsubsection.2.6.3}%
\contentsline {subsubsection}{\numberline {2.6.4}Boost Asio}{18}{subsubsection.2.6.4}%
\contentsline {subsubsection}{\numberline {2.6.5}Stack pointer}{18}{subsubsection.2.6.5}%
\contentsline {subsection}{\numberline {2.7}Architektury}{20}{subsection.2.7}%
\contentsline {subsubsection}{\numberline {2.7.1}Klient-Server}{20}{subsubsection.2.7.1}%
\contentsline {subsubsection}{\numberline {2.7.2}Peer-to-Peer}{20}{subsubsection.2.7.2}%
\contentsline {section}{\numberline {3}Hra pro více hráčů}{20}{section.3}%
\contentsline {subsection}{\numberline {3.1}Hry}{20}{subsection.3.1}%
\contentsline {subsubsection}{\numberline {3.1.1}Entt}{21}{subsubsection.3.1.1}%
\contentsline {subsection}{\numberline {3.2}Svět}{22}{subsection.3.2}%
\contentsline {subsubsection}{\numberline {3.2.1}Ovladač pro hru jednoho hráče}{22}{subsubsection.3.2.1}%
\contentsline {subsubsection}{\numberline {3.2.2}Ovladač pro hru více hráčů}{22}{subsubsection.3.2.2}%
\contentsline {subsection}{\numberline {3.3}Klient-Server architektura}{22}{subsection.3.3}%
\contentsline {subsection}{\numberline {3.4}Posílání zpráv}{23}{subsection.3.4}%
\contentsline {subsubsection}{\numberline {3.4.1}Serializace}{23}{subsubsection.3.4.1}%
\contentsline {subsubsection}{\numberline {3.4.2}Kódování zpráv}{25}{subsubsection.3.4.2}%
\contentsline {subsubsection}{\numberline {3.4.3}Implementace}{25}{subsubsection.3.4.3}%
\contentsline {subsubsection}{\numberline {3.4.4}Detekce a náprava chyb}{25}{subsubsection.3.4.4}%
\contentsline {subsection}{\numberline {3.5}Server}{26}{subsection.3.5}%
\contentsline {subsubsection}{\numberline {3.5.1}Registr spojení}{26}{subsubsection.3.5.1}%
\contentsline {subsubsection}{\numberline {3.5.2}Replikátor}{26}{subsubsection.3.5.2}%
\contentsline {subsubsection}{\numberline {3.5.3}Správa zájmů}{26}{subsubsection.3.5.3}%
\contentsline {subsection}{\numberline {3.6}Klient}{27}{subsection.3.6}%
\contentsline {subsubsection}{\numberline {3.6.1}Replicator controller}{27}{subsubsection.3.6.1}%
\contentsline {subsubsection}{\numberline {3.6.2}Interpolace}{27}{subsubsection.3.6.2}%
\contentsline {subsubsection}{\numberline {3.6.3}Rollback a simulace vlastního hráče}{27}{subsubsection.3.6.3}%
\contentsline {subsection}{\numberline {3.7}Metriky}{28}{subsection.3.7}%
\contentsline {subsubsection}{\numberline {3.7.1}TimescaleDB}{28}{subsubsection.3.7.1}%
\contentsline {subsubsection}{\numberline {3.7.2}Grafana}{28}{subsubsection.3.7.2}%
\contentsline {subsubsection}{\numberline {3.7.3}ImGui}{28}{subsubsection.3.7.3}%
\contentsline {subsubsection}{\numberline {3.7.4}Tracy}{29}{subsubsection.3.7.4}%
\contentsline {subsubsection}{\numberline {3.7.5}Konkrétní metriky}{29}{subsubsection.3.7.5}%
\contentsline {subsubsection}{\numberline {3.7.6}Sbírání v reálném čase}{29}{subsubsection.3.7.6}%
\contentsline {subsection}{\numberline {3.8}Protokol QUICr}{29}{subsection.3.8}%
\contentsline {subsubsection}{\numberline {3.8.1}Frame}{30}{subsubsection.3.8.1}%
\contentsline {subsubsection}{\numberline {3.8.2}Handshake}{31}{subsubsection.3.8.2}%
\contentsline {subsubsection}{\numberline {3.8.3}Spolehlivost}{32}{subsubsection.3.8.3}%
\contentsline {subsubsection}{\numberline {3.8.4}Enkodér}{33}{subsubsection.3.8.4}%
\contentsline {subsubsection}{\numberline {3.8.5}Testování}{33}{subsubsection.3.8.5}%
\contentsline {subsubsection}{\numberline {3.8.6}Měření}{33}{subsubsection.3.8.6}%
\contentsline {subsection}{\numberline {3.9}Optimalizace replikátoru}{34}{subsection.3.9}%
\contentsline {subsection}{\numberline {3.10}Optimalizace manažera zájmů}{38}{subsection.3.10}%
\contentsline {subsection}{\numberline {3.11}Optimalizace QUICr}{38}{subsection.3.11}%
\contentsline {subsubsection}{\numberline {3.11.1}Šifrování}{38}{subsubsection.3.11.1}%
\contentsline {subsubsection}{\numberline {3.11.2}SPR-6}{38}{subsubsection.3.11.2}%
\contentsline {subsubsection}{\numberline {3.11.3}Lockstep}{39}{subsubsection.3.11.3}%
\contentsline {subsubsection}{\numberline {3.11.4}Congestion control}{39}{subsubsection.3.11.4}%
\contentsline {subsubsection}{\numberline {3.11.5}Bandwidth control}{39}{subsubsection.3.11.5}%
\contentsline {subsection}{\numberline {3.12}Sharding}{39}{subsection.3.12}%
\contentsline {subsection}{\numberline {3.13}Komprese}{39}{subsection.3.13}%
\contentsline {subsubsection}{\numberline {3.13.1}Bit Buffer}{39}{subsubsection.3.13.1}%
\contentsline {subsubsection}{\numberline {3.13.2}Komprese QUICr}{39}{subsubsection.3.13.2}%
\contentsline {subsubsection}{\numberline {3.13.3}Komprese protokolu replikátoru}{39}{subsubsection.3.13.3}%
\contentsline {section}{\numberline {4}Styly pro psaní bakalářských a diplomových prací}{40}{section.4}%
\contentsline {subsection}{\numberline {4.1}Požadavky a podprovaná prostředí}{40}{subsection.4.1}%
\contentsline {subsection}{\numberline {4.2}Přepínače}{40}{subsection.4.2}%
\contentsline {subsection}{\numberline {4.3}Geometrie stránky}{43}{subsection.4.3}%
\contentsline {section}{\numberline {5}Sazba částí dokumentu}{43}{section.5}%
\contentsline {subsection}{\numberline {5.1}Sazba úvodní strany či obsahu}{43}{subsection.5.1}%
\contentsline {subsection}{\numberline {5.2}Závěry}{43}{subsection.5.2}%
\contentsline {subsection}{\numberline {5.3}Matematika}{43}{subsection.5.3}%
\contentsline {subsection}{\numberline {5.4}Sazba literatury}{44}{subsection.5.4}%
\contentsline {subsubsection}{\numberline {5.4.1}Sazba bibliografie přes \textsc {Bib}\LaTeX {}}{44}{subsubsection.5.4.1}%
\contentsline {subsubsection}{\numberline {5.4.2}Manuální sazba bibliografie}{44}{subsubsection.5.4.2}%
\contentsline {subsection}{\numberline {5.5}Drobná makra}{44}{subsection.5.5}%
\contentsline {subsection}{\numberline {5.6}Sazba rejstříku}{45}{subsection.5.6}%
\contentsline {subsection}{\numberline {5.7}Sazba zdrojových kódů}{45}{subsection.5.7}%
\contentsline {section}{Z\'av\v er}{49}{section*.3}%
\contentsline {section}{\numberline {1}Úvod}{8}{section.1}%
\contentsline {section}{\numberline {2}Distribuované systémy}{9}{section.2}%
\contentsline {subsection}{\numberline {2.1}Architektury}{9}{subsection.2.1}%
\contentsline {subsubsection}{\numberline {2.1.1}Softwarová architektura}{9}{subsubsection.2.1.1}%
\contentsline {subsubsection}{\numberline {2.1.2}Systémové architektury}{10}{subsubsection.2.1.2}%
\contentsline {subsection}{\numberline {2.2}Komunikace}{11}{subsection.2.2}%
\contentsline {subsubsection}{\numberline {2.2.1}Modely pro komunikaci}{11}{subsubsection.2.2.1}%
\contentsline {subsection}{\numberline {2.3}Počítačová Síť}{12}{subsection.2.3}%
\contentsline {subsection}{\numberline {2.4}Komunikace v síti}{13}{subsection.2.4}%
\contentsline {subsubsection}{\numberline {2.4.1}Rodina protokolů TCP/IP}{13}{subsubsection.2.4.1}%
\contentsline {subsection}{\numberline {2.5}Protokoly v aplikační vrstvě}{15}{subsection.2.5}%
\contentsline {subsubsection}{\numberline {2.5.1}HTTP}{15}{subsubsection.2.5.1}%
\contentsline {subsubsection}{\numberline {2.5.2}HTTP/3}{16}{subsubsection.2.5.2}%
\contentsline {subsection}{\numberline {2.6}Protokoly v transportní vrstvě}{16}{subsection.2.6}%
\contentsline {subsubsection}{\numberline {2.6.1}TCP}{17}{subsubsection.2.6.1}%
\contentsline {subsubsection}{\numberline {2.6.2}UDP}{18}{subsubsection.2.6.2}%
\contentsline {subsubsection}{\numberline {2.6.3}QUIC}{18}{subsubsection.2.6.3}%
\contentsline {subsection}{\numberline {2.7}Sokety}{20}{subsection.2.7}%
\contentsline {subsection}{\numberline {2.8}Asynchroní vstupně výstupní operace}{21}{subsection.2.8}%
\contentsline {subsubsection}{\numberline {2.8.1}ZeroMQ}{21}{subsubsection.2.8.1}%
\contentsline {subsubsection}{\numberline {2.8.2}Work stealing}{21}{subsubsection.2.8.2}%
\contentsline {subsubsection}{\numberline {2.8.3}Async/Await}{21}{subsubsection.2.8.3}%
\contentsline {subsubsection}{\numberline {2.8.4}Boost Asio}{22}{subsubsection.2.8.4}%
\contentsline {section}{\numberline {3}Hra}{23}{section.3}%
\contentsline {subsection}{\numberline {3.1}Softwarová Architektura}{23}{subsection.3.1}%
\contentsline {subsubsection}{\numberline {3.1.1}Entity-Component-System}{24}{subsubsection.3.1.1}%
\contentsline {subsection}{\numberline {3.2}Engine}{24}{subsection.3.2}%
\contentsline {subsubsection}{\numberline {3.2.1}Fyzický engine}{24}{subsubsection.3.2.1}%
\contentsline {subsubsection}{\numberline {3.2.2}Vykreslování}{25}{subsubsection.3.2.2}%
\contentsline {subsubsection}{\numberline {3.2.3}Entt}{25}{subsubsection.3.2.3}%
\contentsline {subsubsection}{\numberline {3.2.4}Stav hry}{26}{subsubsection.3.2.4}%
\contentsline {subsection}{\numberline {3.3}Hra více hráčů}{26}{subsection.3.3}%
\contentsline {subsection}{\numberline {3.4}Klient-Server architektura}{27}{subsection.3.4}%
\contentsline {subsection}{\numberline {3.5}Server}{27}{subsection.3.5}%
\contentsline {subsubsection}{\numberline {3.5.1}Registr klientů}{27}{subsubsection.3.5.1}%
\contentsline {subsubsection}{\numberline {3.5.2}Server Replikátoru}{28}{subsubsection.3.5.2}%
\contentsline {subsubsection}{\numberline {3.5.3}Správa zájmů}{29}{subsubsection.3.5.3}%
\contentsline {subsection}{\numberline {3.6}Klient}{29}{subsection.3.6}%
\contentsline {subsubsection}{\numberline {3.6.1}Klient Replikátoru}{29}{subsubsection.3.6.1}%
\contentsline {subsubsection}{\numberline {3.6.2}Interpolace}{29}{subsubsection.3.6.2}%
\contentsline {subsubsection}{\numberline {3.6.3}Rollback}{29}{subsubsection.3.6.3}%
\contentsline {subsection}{\numberline {3.7}Posílání zpráv}{30}{subsection.3.7}%
\contentsline {subsubsection}{\numberline {3.7.1}Kódování zpráv}{30}{subsubsection.3.7.1}%
\contentsline {subsubsection}{\numberline {3.7.2}Implementace}{30}{subsubsection.3.7.2}%
\contentsline {subsubsection}{\numberline {3.7.3}Detekce a náprava chyb}{30}{subsubsection.3.7.3}%
\contentsline {subsection}{\numberline {3.8}Serializace}{31}{subsection.3.8}%
\contentsline {subsection}{\numberline {3.9}Metriky}{32}{subsection.3.9}%
\contentsline {subsubsection}{\numberline {3.9.1}PostgreSQL}{32}{subsubsection.3.9.1}%
\contentsline {subsubsection}{\numberline {3.9.2}TimescaleDB}{32}{subsubsection.3.9.2}%
\contentsline {subsubsection}{\numberline {3.9.3}Grafana}{33}{subsubsection.3.9.3}%
\contentsline {subsubsection}{\numberline {3.9.4}Orchestrace}{33}{subsubsection.3.9.4}%
\contentsline {subsubsection}{\numberline {3.9.5}ImGui}{33}{subsubsection.3.9.5}%
\contentsline {subsubsection}{\numberline {3.9.6}Tracy}{34}{subsubsection.3.9.6}%
\contentsline {subsubsection}{\numberline {3.9.7}Konkrétní metriky}{34}{subsubsection.3.9.7}%
\contentsline {subsubsection}{\numberline {3.9.8}Sbírání v reálném čase}{35}{subsubsection.3.9.8}%
\contentsline {subsection}{\numberline {3.10}Protokol QUICr}{35}{subsection.3.10}%
\contentsline {subsubsection}{\numberline {3.10.1}Rámec}{35}{subsubsection.3.10.1}%
\contentsline {subsubsection}{\numberline {3.10.2}Handshake}{36}{subsubsection.3.10.2}%
\contentsline {subsubsection}{\numberline {3.10.3}Spolehlivost}{36}{subsubsection.3.10.3}%
\contentsline {subsubsection}{\numberline {3.10.4}Enkodér}{38}{subsubsection.3.10.4}%
\contentsline {subsubsection}{\numberline {3.10.5}Testování}{38}{subsubsection.3.10.5}%
\contentsline {subsubsection}{\numberline {3.10.6}Měření}{39}{subsubsection.3.10.6}%
\contentsline {subsection}{\numberline {3.11}Optimalizace replikátoru}{41}{subsection.3.11}%
\contentsline {subsection}{\numberline {3.12}Optimalizace manažera zájmů}{43}{subsection.3.12}%
\contentsline {subsubsection}{\numberline {3.12.1}Congestion control}{44}{subsubsection.3.12.1}%
\contentsline {subsubsection}{\numberline {3.12.2}Bandwidth control}{44}{subsubsection.3.12.2}%
\contentsline {subsection}{\numberline {3.13}Sharding}{44}{subsection.3.13}%
\contentsline {subsection}{\numberline {3.14}Horizontální škálování}{44}{subsection.3.14}%
\contentsline {subsection}{\numberline {3.15}Komprese}{45}{subsection.3.15}%
\contentsline {subsubsection}{\numberline {3.15.1}Bit Buffer}{46}{subsubsection.3.15.1}%
\contentsline {subsection}{\numberline {3.16}Závěry}{46}{subsection.3.16}%
\contentsline {section}{Z\'av\v er}{47}{section*.3}%
\babel@toc {czech}{}\relax
\babel@toc {czech}{}\relax
\contentsline {section}{Conclusions}{50}{section*.5}%
\contentsline {section}{Conclusions}{48}{section*.5}%
\babel@toc {english}{}\relax
\babel@toc {czech}{}\relax
\contentsline {section}{\numberline {A}První příloha}{51}{appendix.A}%
\contentsline {section}{\numberline {B}Druhá příloha}{51}{appendix.B}%
\contentsline {section}{\numberline {C}Obsah elektronických dat}{51}{appendix.C}%
\contentsline {section}{Seznam zkratek}{53}{section*.7}%
\contentsline {section}{Literatura}{54}{section*.8}%
\contentsline {section}{Rejst\v {r}\'{i}k}{54}{section*.10}%
\contentsline {section}{\numberline {A}První příloha}{49}{appendix.A}%
\contentsline {section}{\numberline {B}Druhá příloha}{49}{appendix.B}%
\contentsline {section}{\numberline {C}Obsah elektronických dat}{49}{appendix.C}%
\contentsline {section}{Seznam zkratek}{51}{section*.7}%