Zabezpečení dat při přenosech

Problémy při komunikaci v reálné síti

=> nutnost zavedení zpětné vazby do přenosu

Typy zpětné vazby
Poznámka:
  Mohou se ztrácet nejen informační pakety, ale i potvrzení :-).

Číslování rámců (sekvenční čísla)

Komunikační protokol

Soubor syntaktických a sémantických pravidel (včetně definice časových poměrů) pro komunikaci dvou nebo více zařízení.
Dále budeme diskutovat protokoly pro zajištění spolehlivé komunikace dvou stanic.

Potvrzovací schémata

Typy potvrzování

Potvrzování a časovým limitem (timeout)
Problém tří armád

Konečným počtem vyměněných zpráv nelze zajistit, aby měl přijímač jistotu, že jeho potvrzení došlo zpět na vysílač.

Klasifikace potvrzovacích schemat (protokolů)


Protokoly využívající metody klouzavého okénka (Sliding Window)

Negativní potvrzení nejsou nutná, jen urychlují detekci neúspěšného přenosu rámce (která by se jinak zjistila až při vypršení timeoutu)


Vysílací okno
 - buffer s vyslanými rámci, které dosud nebyly potvrzeny a možná budou muset být vyslány znovu

Přijímací okno
 - buffer na přijímané rámce, které ještě nemohly být doručeny vyšší vrstvě přijímače, protože dosud chybí některý z předchozích rámců v řadě

Obě okénka "kloužkou" po sekvenčních číslech:

Vysílač:

Seq# ------------------------------------------------->

+-------------+---------------------+-----------------+
| vyslané a | vyslané, ale | budoucí rámce |
| potvrzené | dosud nepotvrzené | od vyšší |
| rámce | rámce | vrstvy |
+-------------+---------------------+-----------------+

Používají se dvě varianty sliding window protokolu:
  1. Go-back-N
  2. Selective Repeat

1) Go-back-N

šířka okna přijímače 1 rámec






Chování při chybě v přenosu rámce:

a) přijímač detekoval chybu v rámci i:
- přijímač pošle NAK nebo mlčí (převod na ztrátu rámce v síti)
- vysílač při příjmu NAK opakuje všechny rámce vysílacího okna od i znovu

b) rámec se ztratí:
- přijímač očekává rámec i-1, ten se ztratil, ale přišel jeho následník i.
  Přijímač odešle NAK i  (nebo mlčí, čímž se převede na ztrátu rámce)

c) rámec i se ztratí a další se nevysílají:
- vysílač vytimeoutuje a rámec i pošle znovu


Chování při poškození potvrzení:

- pokud se ztratí ACK i, může jej nahradit ACK s vyšším číslem, pokud příjde před timeoutem vysílače
  pro rámec i. Pokud se to nestihne, vyšle vysílač rámec i a zbytek vysílacího okna znovu

- Poškozený/ztracený NAK i: vysílač vytimeoutuje a vyšle všechny rámce svého okna znovu od i včetně

Při timeoutu (nebo explicitním odmítnutí) rámce se zopakuje nepotvrzený rámec i všechny následující (předpokládá se, že přijímač s přijímacím okénkem o jedné pozici je stejně odmítne a zahodí).

Poznámka:
Šířka okna musí být aspoň o jednu menší než počet použitelných sekvenčních čísel (nepoznali bychom ztrátu všech rámců okna)

2) Selective repeat

šířka okna přijímače více než jeden rámec
Maximální šířka okna: polovina sekvenčních čísel (z důvodu překrývání vysílacího a přijímacího okna).

Poznámky k oběma variantám Sliding Window

Chování algoritmu Sliding Window při šířce okna přijímače
 a) 1 rámec (go-back-N)
 b) více rámců (selective repeat):




Efektivita potvrzovacích schemat

Stop and Wait




ef = lm / (lm+cT+la+cT) = lm / (lm+la+2cT)  [%]

Konkrétní příklady

Modemová linka, pomalá a LAN se spíše větším zpožděním:
  lm=80B, la=1B, c=14400 bps, T=1ms, ef=94.56 %

Družicový spoj
  lm=80B, la=1B, c=14400 bps, T=270 ms, ef=7.6 %

Prodloužení rámce 8x:

Modemová linka, pomalá a LAN se spíše větším zpožděním:
  lm=640B, la=1B, c=14400 bps, T=1ms, ef=99.28 %

Družicový spoj
  lm=640B, la=1B, c=14400 bps, T=270 ms, ef=40.38 %

Prodloužení rámce efektivitu zlepší, ale v případě výskytu chyby v rámci se pak zahazuje celý (dlouhý) rámec, oproti např. jen jednomu ze dvou polovičních.


Sliding Window



ef = M.lm / (lm+cT+la+cT) = M.lm / (lm+la+2cT)  [%]



 

Lze dosáhnout až 100% efektivity: