Čo je to TCP?
TCP (Transmission Control Protocol) je protokol transportnej vrstvy zameraný na pripojenie.
Zámer tohto článku:
Porozumieť celému TCP nie je ľahká úloha. V tomto článku sa pokúsime pochopiť základné výmeny paketov TCP prostredníctvom Wireshark. Teóriu je možné prečítať cez internet. Zameriame sa viac na analýzu zachytávania paketov.
Prečo je TCP slávny?
Existuje niekoľko dôvodov, prečo je TCP taký slávny:
- TCP je protokol zameraný na pripojenie, takže spoľahlivosť je veľmi vysoká.
- TCP môže kontrolovať preťaženie sám.
- TCP dokáže zistiť chybu.
- TCP používa protokol riadenia toku.
- TCP má funkcie ACK s oneskorením.
- TCP má selektívnu funkciu ACK.
- TCP má funkciu volania cez Windows na zlepšenie priepustnosti.
Existuje toľko ďalších funkcií, vďaka ktorým je TCP taký slávny.
Analýza TCP:
Pri generovaní rámcov TCP budeme postupovať podľa niektorých krokov.
Krok 1: Jednoduchý spôsob generovania paketov TCP je prístup na akýkoľvek web HTTP. Dôvod je ten, že HTTP je protokol aplikačnej vrstvy a ako základný protokol transportnej vrstvy používa TCP.
Ak sa chcete dozvedieť viac o protokole HTTP, kliknite na nasledujúci odkaz
https: // linuxhint.com / http_wireshark /
Krok 2: Spustite Wireshark.
Krok 3: Otvorte pod odkazom v ľubovoľnom prehliadači.
http: // gaia.cs.umass.edu / wirehark-labs / alice.TXT
Krok 4: Zastavte Wireshark a dajte TCP ako filter.
Krok 5: ANALÝZA
Teraz by sme mali vidieť pakety TCP 3-way handshake. Tu je jednoduchý diagram.
Rám 1: SYN [Synchronaziation]
SYN je prvý paket prichádzajúci od klienta k serveru. V našom prípade 192.168.1.6 je klient [systém, v ktorom sme otvorili prehliadač] a gaia.cs.umass.edu je server.
Tu je niekoľko dôležitých polí v rámci SYN
Na odoslanie schopností klienta na server sa vyžaduje rámec SYN.
Rám 2: SYN + ACK [Synchronaziation + Acknowledgement]
SYN, ACK je druhý paket prichádzajúci zo servera na klienta.
Tu je niekoľko dôležitých polí v rámci SYN, ACK
Na odoslanie schopností servera klientovi sa vyžaduje rámec SYN, ACK.
Teraz sa klient a server podelili o svoje schopnosti.
Rám 3: ACK [Potvrdenie]
ACK je tretí paket prichádzajúci od klienta k serveru. Toto je v podstate potvrdenie od klienta k serveru a tiež je to prijatie schopností odoslaných serverom.
Tu sú dôležité polia pre ACK.
Poďme skontrolovať dôležité informácie zdieľané medzi klientom a serverom:
ZákazníkServer
Veľkosť prijímaného okna: 64240 bajtov Veľkosť prijímaného okna: 29 200 bajtov
Maximálna veľkosť segmentu: 1 460 bajtov Maximálna veľkosť segmentu: 1412 bajtov
Vrecko povolené: Áno Vrecko povolené: Áno
Stupnica okna: 8 (vynásobte 256) Stupnica okna: 7 (vynásobte 128)
Všimli sme si, že existujú rozdiely v hodnotách. Ak klient alebo server akceptuje možnosti iných, potom je úspešné trojstranné nadviazanie spojenia.
Hlavička TCP:
Tu sú dôležité polia hlavičky TCP:
- Zdrojový port (16 bitov): Toto je odosielajúci port.
- Cieľový port (16 bitov): Toto je prijímajúci port.
- Poradové číslo (32 bitov):
- Ak je nastavený bit SYN [1], jedná sa o počiatočné poradové číslo.
- Ak bit SYN nie je nastavený [0], potom je to akumulované poradové číslo prvého dátového bajtu tohto segmentu.
- Číslo potvrdenia (32 bitov): Ak je nastavený príznak ACK, potom hodnota tohto poľa je ďalšie poradové číslo, ktoré očakáva odosielateľ ACK.
- Dĺžka hlavičky: Veľkosť hlavičky sa môže pohybovať od 20 bajtov a maximálne 60 bajtov.
- Vlajky (9 bitov):
… = Rezervované: Nenastavené
… 0… = Nonce: nenastavené
… 0… = Okno preťaženia znížené (CWR): Nenastavené
… 0… = ECN-Echo: nenastavené
… 0… = urgentné: nenastavené
… 0… = Potvrdenie: Nie je nastavené
… 0… = Push: nenastavené
… 0… = Reset: nenastavené
… 1. = Syn: Nastaviť
… 0 = plutva: nenastavené
- Veľkosť okna (16 bitov): Toto je veľkosť prijímacieho okna v bajtoch.
- Kontrolný súčet (16 bitov):
Používa sa na kontrolu chýb hlavičky.
Príklad: Kontrolný súčet: 0x436f- Naliehavý ukazovateľ (16 bitov):
Toto je posun od poradového čísla označujúceho posledný urgentný dátový bajt.
Príklad: urgentný ukazovateľ: 0- možnosti:
Možnosť TCP - maximálna veľkosť segmentu: 1460 bajtov
Možnosť TCP - bez prevádzky (NOP)
Možnosť TCP - mierka okna: 8 (vynásobte 256)
Možnosť TCP - povolené SACK
Pozorovanie:
Veľkosť TCP hlavičky SYN je 32 bajtov.
Veľkosť TCP hlavičky SYN, ACK je 32 bajtov.
TCP hlavička má veľkosť ACK 20 bajtov, pretože nemá voliteľné polia.
Údaje TCP:
Tu je snímka obrazovky s vysvetlením údajov TCP a TCP ACK. Tu môžeme vidieť funkciu TCP delay ACK. Server poslal tri dátové pakety TCP klientovi a klient poslal jedno oneskorenie ACK, aby oznámil serveru, že prijal všetky tri dátové pakety TCP. Preto v TCP ACK [číslo paketu 96 na snímke obrazovky] vidíme ACK = 14121, čo znamená, že klient dostal do 14121 bajtov.
Referencia:
Základné teórie TCP pozri
https: // en.wikipedia.org / wiki / Transmission_Control_Protocol