Číslování datagramů

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Přidána zatím teorie...)
 
(Přidán obrázek a příklad.)
Řádka 8: Řádka 8:
 
*# Odesilatel si musí pamatovat odeslaná data až do okamžiku, kdy mu příjemce potvrdí, že data v pořádku dorazila.
 
*# Odesilatel si musí pamatovat odeslaná data až do okamžiku, kdy mu příjemce potvrdí, že data v pořádku dorazila.
 
*# Příjemce musí odesílat potvrzení o tom, že data dorazila. (I potvrzení se přitom může ztratit.)
 
*# Příjemce musí odesílat potvrzení o tom, že data dorazila. (I potvrzení se přitom může ztratit.)
 +
  
 
== Realizace v TCP — pravidla ==
 
== Realizace v TCP — pravidla ==
Řádka 14: Řádka 15:
 
* Číslování komunikace začíná náhodně zvoleným číslem (nikoli od jedničky), aby se zamezilo pravděpodobnosti záměny čísel při restartu komunikace či novém spojení.
 
* Číslování komunikace začíná náhodně zvoleným číslem (nikoli od jedničky), aby se zamezilo pravděpodobnosti záměny čísel při restartu komunikace či novém spojení.
 
* Oktet potvrzuji teprve tehdy, kdy jsem řádně obdržel '''všechny''' předchozí oktety.
 
* Oktet potvrzuji teprve tehdy, kdy jsem řádně obdržel '''všechny''' předchozí oktety.
 +
  
 
==Hlavička TCP==
 
==Hlavička TCP==
Řádka 20: Řádka 22:
 
* <tt>Acknowledgement Number</tt>... pořadové číslo posledního správně přijatého oktetu komunikace.
 
* <tt>Acknowledgement Number</tt>... pořadové číslo posledního správně přijatého oktetu komunikace.
 
* <tt>Window</tt>... Počet oktetů, které lze odeslat předtím, než budou další data potvrzena
 
* <tt>Window</tt>... Počet oktetů, které lze odeslat předtím, než budou další data potvrzena
 +
 +
 +
== Příklad ==
 +
; <tt>Sequence Number</tt>
 +
* Předpokládejme délky segmentů:
 +
** 1. segment: 856 oktetů,
 +
** 2. segment: 377 oktetů,
 +
** 3. segment: ...
 +
* Náhodné číslo, kterým začneme číslování oktetů, bude 15326.
 +
 +
* Čísla <tt>Sequence Number</tt> pro jednotlivé oktety budou
 +
** 1. segment: <code>SeqNum = 15327 = 15326+1</code> ... začínáme prvním oktetem komunikace, přičteme zvolené startovní číslo.
 +
** 2. segment: <code>SeqNum = 16183 = 15326+856+1</code> ... 856 oktetů jsme již odeslali, nyní odesíláme 857. oktet a další oktety až do délky segmentu,
 +
** 2. segment: <code>SeqNum = 16560 = 15326+856+377+1</code> ... 16559 oktetů jsme již odeslali, nyní odesíláme další oktety až do délky segmentu,
 +
 +
[[File:seq_num.png]]

Verze z 30. 4. 2015, 08:23


Obsah

Princip


Realizace v TCP — pravidla


Hlavička TCP

Každý segment TCP má v hlavičce položky


Příklad

Sequence Number

Seq num.png

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje