TCP 3-Way Handsake Analysis vo Wireshark

Tcp 3 Way Handsake Analysis Vo Wireshark



Transmission Control Protocol je veľmi dôležitý protokol v transportnej vrstve pre OSI alebo TCP/IP model. TCP má mnoho výhod, napríklad:

  • TCP vykoná opätovný prenos, ak nejaké odoslané dáta nie sú potvrdené prijímačom do určitého času.
  • TCP vytvorí nejaké spojenie pred odoslaním údajov. Toto spojenie nazývame trojstranné podanie ruky.
  • TCP má mechanizmus kontroly preťaženia.
  • TCP dokáže zistiť chybu pomocou niektorých metód.

Naučme sa hlavne na TCP 3-way handshake. Dozvieme sa tiež o dôležitých poliach v programe Wireshark pre trojstranné podanie ruky.







3-smerné podanie ruky

Existujú tri výmeny snímok, ktoré sa uskutočňujú v 3-smernom podaní ruky:



  1. SYN
  2. VIEW+ACK
  3. ACK

Prvý rámec vždy odošle klient na server. Pochopme to z jednoduchého diagramu:



'KLIENTSKY SERVER'

Frame1: Klient odošle SYN rámec na server ----------------------------------->

<------------------------------------------- Server odošle rámec SYN+ACK pre klienta: Rám2

Rámec 3: Klient odošle ACK rámec na server ----------------------------------->

Tieto tri snímky môžeme vidieť vo Wiresharku. Filter „tcp“ možno použiť v programe Wireshark na zobrazenie všetkých rámcov TCP. Tu je snímka obrazovky pre tri snímky:





Poďme teraz podrobne pochopiť všetky tri rámce:



SYN

Tento rámec obsahuje veľa informácií o schopnostiach klienta informovať server. Nasledujúca snímka obrazovky zobrazuje všetky dôležité polia rámca SYN:

Tu sú dôležité polia pre rámec SYN:

Zdrojový port: 50602
Cieľový prístav: 80
Poradové číslo: 0
Číslo potvrdenia: 0
Dĺžka hlavičky: 32 bajtov
Príznaky: 0x002 (SYN):
Potvrdenie: Nie je nastavené
Stlačiť: Nie je nastavené
Resetovať: Nie je nastavené
Syn: Set  ----> Tento bit je nastavený, pretože toto je rámec SYN.
Fin: Nie je nastavené

Okno: 65535
Naliehavý ukazovateľ: 0
TCP Option - Maximálna veľkosť segmentu: 1460 bajtov
TCP Option - Mierka okna: 3 (vynásobte 8)
TCP Option - SACK povolený

VIEW+ACK

Tento rámec obsahuje veľa informácií o schopnostiach servera informovať klienta. Nasledujúca snímka obrazovky zobrazuje všetky dôležité polia rámca SYN+ACK:

Tento rámec tiež potvrdzuje rámec SYN, ktorý odosiela klient.

Tu sú dôležité polia pre rámec SYN+ACK:

Zdrojový port: 80
Cieľový prístav: 50602
Poradové číslo: 0
Číslo potvrdenia: 1

Dĺžka hlavičky: 32 bajtov (8)
Príznaky: 0x012 (SYN, ACK)
Potvrdenie: Set
Stlačiť: Nie je nastavené
Resetovať: Nie je nastavené
Jeho: Set
Fin: Nie je nastavené

Okno: 29200
Naliehavý ukazovateľ: 0
TCP Option - Maximálna veľkosť segmentu: 1412 bajtov
TCP Option - SACK povolený
Možnosť TCP – mierka okna: 7 (vynásobte číslom 128)

Vidíme, že v tomto rámci sú nastavené bity „Acknowledge“ a „SYN“. Je to preto, že tento rám je SYN+ACK.

ACK

Tento rámec je posledným rámcom 3-cestného podania ruky a zároveň potvrdením SYN+ACK klientom. Nasledujúca snímka obrazovky zobrazuje všetky dôležité polia rámca ACK:

Tu sú dôležité polia pre ACK rámec:

Zdrojový port: 50602
Cieľový prístav: 80
Poradové číslo: 1
Číslo potvrdenia: 1
Dĺžka hlavičky: 20 bajtov (5)
Príznaky: 0x010 (ACK)
Naliehavé: Nie je nastavené
Potvrdenie: Set
Stlačiť: Nie je nastavené
Resetovať: Nie je nastavené
Syn: Nie je nastavené
Fin: Nie je nastavené

Okno: 32768

Tu je nastavený iba bit „Acknowledge“, pretože ide o ACK rámec.

Vysvetlenie niektorých dôležitých spoločných polí

Port 80 : V tomto návode sme si všimli jeden pevný port 80. Je to preto, že ide o zachytávanie HTTP a port 80 je pevný (na strane servera) pre komunikáciu HTTP.

Poradové číslo : Poradové číslo tohto rámca. Sync je prvá snímka, takže máme 0 ako poradové číslo.

Príznaky TCP:

Poďakovanie – Tento bit je nastavený, ak je rámec ACK. Príklad: SYN+ACK, ACK rám.

SYN – Tento bit je nastavený, ak je rámec SYN. Príklad: SYN.

okno : Toto pole zdieľa maximálnu veľkosť okna odosielateľa v režime príjmu. Príklad: V rámci SYN máme veľkosť okna 65535 bajtov. To znamená, že prijímač môže kedykoľvek prijať maximálne dáta TCP 65535 bajtov.

SACK Povolené : Tento bit je nastavený, ak odosielanie podporuje SACK [selektívne potvrdenie].

Maximálna veľkosť segmentu : Môžeme to nazvať aj MSS. Toto definuje maximálny dátový rámec, ktorý môže odosielateľ prijať. Príklad: MSS dostaneme ako 1460 bajtov v rámci SYN.

Záver

Dozvedeli sme sa o TCP 3-way handshake a všetkých užitočných poliach pre rámce SYN, SYN+ACK a ACK. Ak sa chcete dozvedieť viac o TCP, môžete sledovať tento odkaz RFC https://tools.ietf.org/html/rfc793 .