Co je to TCP?
TCP (Transmission Control Protocol) je protokol transportní vrstvy orientovaný na připojení.
Záměr tohoto článku:
Porozumět celému TCP není snadný úkol. V tomto článku se pokusíme porozumět základním výměnám paketů TCP prostřednictvím Wireshark. Teorii lze číst přes internet. Více se zaměříme na analýzu zachycení paketů.
Proč je TCP slavný?
Existuje několik důvodů, proč je TCP tak slavný:
- TCP je protokol orientovaný na připojení, takže spolehlivost je velmi vysoká.
- TCP může řídit přetížení sám.
- TCP dokáže detekovat chybu.
- TCP používá protokol řízení toku.
- TCP má funkce ACK se zpožděním.
- TCP má selektivní funkci ACK.
- TCP má funkci volání Windows pro zlepšení propustnosti.
Existuje tolik dalších funkcí, díky nimž je TCP tak slavný.
Analýza TCP:
Provedeme několik kroků ke generování rámců TCP.
Krok 1: Jednoduchý způsob generování paketů TCP je přístup na libovolný web HTTP. Důvodem je, že HTTP je protokol aplikační vrstvy a jako základní protokol transportní vrstvy používá TCP.
Chcete-li vědět o protokolu HTTP, postupujte podle níže uvedeného odkazu
https: // linuxhint.com / http_wireshark /
Krok 2: Spusťte Wireshark.
Krok 3: Otevřete pod odkazem v libovolném prohlížeči.
http: // gaia.cs.umass.edu / kabelové laboratoře / Alice.txt
Krok 4: Zastavte Wireshark a vložte TCP jako filtr.
Krok 5: ANALÝZA
Nyní bychom měli vidět TCP 3-way handshake pakety. Zde je jednoduchý diagram.
Rámeček 1: SYN [Synchronaziation]
SYN je první paket přicházející z klienta na server. V našem případě 192.168.1.6 je klient [Systém, kde jsme otevřeli prohlížeč] a gaia.cs.umass.edu je server.
Zde je několik důležitých polí v rámci SYN
Pro odeslání schopností klienta na server je vyžadován rámec SYN.
Rámeček 2: SYN + ACK [Synchronaziation + Acknowledgement]
SYN, ACK je druhý paket přicházející ze serveru na klienta.
Zde je několik důležitých polí v rámci SYN, ACK
K odeslání schopností serveru klientovi je vyžadován rámec SYN, ACK.
Nyní klient a server sdíleli své schopnosti.
Rámeček 3: ACK [Potvrzení]
ACK je třetí paket přicházející z klienta na server. Jedná se v zásadě o potvrzení od klienta k serveru a také o přijetí schopností odeslaných serverem.
Zde jsou důležitá pole pro ACK.
Podívejme se na důležité informace sdílené mezi klientem a serverem:
KlientServer
Velikost okna pro příjem: 64240 bajtů Velikost okna pro příjem: 29200 bajtů
Maximální velikost segmentu: 1460 bajtů Maximální velikost segmentu: 1412 bajtů
SACK povoleno: Ano SACK povoleno: Ano
Stupnice okna: 8 (vynásobte 256) Stupnice okna: 7 (vynásobte 128)
Všimli jsme si, že existují rozdíly v hodnotách. Pokud klient nebo server akceptuje možnosti ostatních, pak je třícestné podání ruky úspěšné.
Záhlaví TCP:
Zde jsou důležitá pole záhlaví TCP:
- Zdrojový port (16 bitů): Toto je odesílající port.
- Cílový port (16 bitů): Toto je přijímací port.
- Pořadové číslo (32 bitů):
- Pokud je nastaven bit SYN [1], jedná se o počáteční pořadové číslo.
- Pokud bit SYN není nastaven [0], jedná se o kumulované pořadové číslo prvního datového bajtu tohoto segmentu.
- Číslo potvrzení (32 bitů): Pokud je nastaven příznak ACK, pak hodnota tohoto pole je další pořadové číslo, které odesílatel ACK očekává.
- Délka záhlaví: Velikost záhlaví se může lišit od 20 bajtů a maximálně 60 bajtů.
- Vlajky (9 bitů):
… = Rezervováno: Není nastaveno
… 0… = Nonce: Není nastaveno
… 0… = Okno přetížení sníženo (CWR): Není nastaveno
… 0… = ECN-Echo: Není nastaveno
… 0… = Naléhavé: Není nastaveno
… 0… = Potvrzení: Není nastaveno
… 0… = Push: Není nastaveno
… 0… = Reset: Nenastaveno
… 1. = Syn: Nastavit
… 0 = Fin: Není nastaveno
- Velikost okna (16 bitů): Toto je velikost přijímacího okna v bajtech.
- Kontrolní součet (16 bitů):
Používá se kontrola chyb záhlaví.
Příklad: Kontrolní součet: 0x436f- Naléhavý ukazatel (16 bitů):
Toto je posun od pořadového čísla označujícího poslední urgentní datový bajt.
Příklad: Naléhavý ukazatel: 0- Možnosti:
Možnost TCP - maximální velikost segmentu: 1460 bajtů
Možnost TCP - bez provozu (NOP)
Možnost TCP - měřítko okna: 8 (vynásobte 256)
Možnost TCP - povolen SACK
Pozorování:
Velikost TCP záhlaví SYN je 32 bajtů.
Velikost TCP záhlaví SYN, ACK je 32 bajtů.
Velikost TCP hlavičky ACK je 20 bajtů, protože nemá volitelná pole.
Data TCP:
Zde je snímek obrazovky s vysvětlením pro data TCP a TCP ACK. Zde vidíme funkci zpoždění TCP ACK. Server poslal klientovi tři datové pakety TCP a klient odeslal ACK s jedním zpožděním, aby řekl serveru, že přijal všechny tři datové pakety TCP. Proto v TCP ACK [Packet number 96 in screenshot] vidíme ACK = 14121, což znamená, že klient přijal do 14121 bytů.
Odkaz:
Základní teorie TCP viz
https: // en.wikipedia.org / wiki / Transmission_Control_Protocol