\chapter{Analýza časového zpoždění}
V této kapitole bude provedena analýza časového zpoždění vysílaných rámců v \zk{zkAFDX} síti na základě specifikace \cite{afdx}.

Časové zpoždění rámců mezi jednotlivými koncovými uzly \zk{zkAFDX} sběrnice je jedním z hlavních faktorů, které určují determinismus síťové komunikace této sběrnice. Tento parametr je také třeba určit pro úspěšnou certifikaci sběrnice pro letecký průmysl.

Maximální zpoždění mezi přijetím posledního bitu zprávy z vyšší vrstvy koncového systému (odesílatel) a doručením posledního bitu do vyšší vrstvy koncového systému (příjemce) je v obecném případě, kdy je mezi oběma koncovými systémy \emph{n} přepínačů, definováno jako:
$$t_{\textrm{max}}=t_{\textrm{ES1}}+t_{\textrm{plánovač}}+(n+1)\cdot{t_{\textrm{médium}}}+n\cdot{t_{\textrm{přepínač}}}+t_{\textrm{ES2}}.$$
Dále je uvažován případ s jedním přepínačem, kde je doba zpoždění určena: $$t_{\textrm{max}}=t_{\textrm{ES1}}+t_{\textrm{plánovač}}+2\cdot{t_{\textrm{médium}}}+t_{\textrm{přepínač}}+t_{\textrm{ES2}},$$ kde $t_{\textrm{ES1}}$ je maximální zpoždění vysílajícího koncového systému, $t_{\textrm{médium}}$ je doba přenosu rámce médiem, $t_{\textrm{přepínač}}$ je doba zpracování a přepnutí rámce v \zk{zkAFDX} přepínači a $t_{\textrm{ES2}}$ je maximální zpoždění přijímajícího koncového systému. Takto vypočtená hodnota zpoždění platí pro architekturu uvedenou na obr. \ref{fig:topologie_safety} -- mezi dvěma koncovými uzly je jen jeden \zk{zkAFDX} přepínač. Pokud by mezi koncovými uzly bylo více přepínačů, bylo by nutno přičíst další hodnoty zpoždění v přepínačích a doby přenosu médii.

Doba zpoždění $t_{\textrm{ES1}}$ je shora ohraničena hodnotou 150 $\mu{\textrm{s}}$\cite{afdx}. Tato doba je nutná pro příjem dat z vyšší vrstvy, zpracování těchto dat (přiřazení správného \zk{zkVL} ID), vytvoření \zk{zkAFDX} rámce a jeho vyslání na médium.

Zpoždění způsobené plánovačem\footnote{scheduler} $t_{\textrm{plánovač}}$ může mít maximální hodnotu až 500 $\mu{\textrm{s}}$. Plánovač opožďuje jednotlivé rámce přijaté z virtuálních linek, aby nedošlo ke kolizi při jejich vkládání na medium. Hodnota tohoto kolísání závisí na počtu \zk{zkVL} a velikosti posílaných \zk{zkAFDX} rámců na jednotlivých \zk{zkVL}.

Doba zpoždění médiem $t_{\textrm{médium}}$ je hodnota závislá na velikosti \zk{zkAFDX} rámce. Velikosti těchto rámců mohou nabývat pouze hodnot od 84 B (17 B užitečných dat\footnote{bez hlavičky síťové vrstvy}) do 1538 B (1471 B užitečných dat). Hodnota zpoždění médiem je dále závislá na přenosové rychlosti - zde je počítána rychlost 100 Mbit/s. Pro rámec délky 84 B je doba zpoždění vypočtena jako\cite{ciscoweb}: $$t_{\textrm{medium}}=84\cdot{8}/100000000=6,72 \, [\mu{\textrm{s}}].$$
Pro rámec délky 1538 B je doba zpoždění: $$t_{\textrm{medium}}=1538\cdot{8}/100000000=123,04 \, [\mu{\textrm{s}}].$$

Doba zpoždění $t_{\textrm{přepínač}}$ je doba nutná pro příjem rámce přepínačem, jeho zpracování a přepnutí na správný výstupní port. Tato doba je shora ohraničena 100 $\mu{\textrm{s}}$.

Doba zpoždění $t_{\textrm{ES2}}$ je shora ohraničena hodnotou 150 $\mu{\textrm{s}}$\cite{afdx}. Tato doba je nutná pro příjem dat z media, zpracování těchto dat (třídění rámců dle \zk{zkVL} IDpro vyšší vrstvy) a samotné předání do příslušné vyšší vrstvy.

\section{Výpočet zpoždění plánovače}
Zpoždění plánovače je definováno \cite{afdx} jako:
$$t_{\textrm{plánovač}}\leq4,0\cdot{10^{-5}} + \frac{\displaystyle\sum\limits_{i\in{\textrm{VL ID}}} L_\textrm{i}\cdot{8}}{B}\, [\textrm{s}],$$
kde $L_{\textrm{i}}$ je velikost \zk{zkAFDX} rámce v příslušné \zk{zkVL} (hodnoty od 84 B do 1538 B). Tato je vynásobena 8, protože přenosová rychlost B je zadána v bit/s. Toto zpoždění není závislé na \zk{zkBAG}. V grafu na obr. \ref{fig:jitter_unld} jsou zobrazeny hodnoty tohoto zpoždění pro celý rozsah velikostí rámců a pro prvních 100 \zk{zkVL}. Pro jednoduchost je brán v potaz jen případ, kdy všechny \zk{zkVL} mají stejnou velikost rámců.

Zpoždění plánovače je nutno považovat za nejvyšší možnou dobu zpoždění jednotlivého \zk{zkAFDX} rámce z určité \zk{zkVL}. Pro jiný rámec toto zpoždění bude nabývat menších hodnot, protože rámec nemusí v plánovači čekat na poslání dalších rámců.
\begin{figure}[htbp]
	\centering
  \includegraphics[width=15cm]{obrazky/jitter_unld.png}
  \caption{Hodnoty zpoždění plánovače v koncovém systému - neomezeno.}
  \label{fig:jitter_unld}
\end{figure}

Maximální hodnota zpoždění plánovače je omezena 500 $\mu{\textrm{s}}$. V grafu na obr. \ref{fig:jitter} jsou zobrazeny pouze hodnoty zpoždění, které odpovídají tomuto kritériu.
\begin{figure}[htbp]
	\centering
  \includegraphics[width=15cm]{obrazky/jitter_isocary.png}
  \caption{Hodnoty zpoždění plánovače v koncovém systému.}
  \label{fig:jitter}
\end{figure}
\begin{figure}[htbp]
	\centering
  \includegraphics[width=15cm]{obrazky/jitter_isocaryXY.png}
  \caption{Hodnoty zpoždění plánovače v koncovém systému, průmět do roviny XY.}
  \label{fig:jitter_XY}
\end{figure}
Hodnoty zpoždění plánovače omezené na 500 $\mu{\textrm{s}}$ poté vymezují definiční obor pro velikost \zk{zkAFDX} rámců a počet \zk{zkVL}. Tyto se dají určit z grafu na obr. \ref{fig:jitter_XY}, který je průmětem grafu na obr. \ref{fig:jitter} do roviny X-Y.

Například pro nejvyšší možnou velikost \zk{zkAFDX} rámců (1538 B) můžeme použít pouze 4 \zk{zkVL} s touto velikostí. Naopak pro nejnižší velikost rámců (84B) lze použít až 68 \zk{zkVL}.

\section{Vyhodnocení analýzy časového zpoždění}
Časové zpoždění mezi komunikujícími koncovými uzly sítě \zk{zkAFDX} je důležitým parametrem pro určení determinovaného přenosu. Zpoždění deterministického systému proto musí být ohraničené a určitelné. Tato kapitola naznačila postup, jakým je možno toto zpoždění určit z dílčích zpoždění jednotlivých komponent sítě pro jednoduchou topologii sítě. Analýza složitějšího uspořádání je uvedena například v \cite{delay}.
%