TCP 3-Way Handsake Analysis ve Wiresharku

Tcp 3 Way Handsake Analysis Ve Wiresharku



Transmission Control Protocol je velmi důležitý protokol v transportní vrstvě pro OSI nebo TCP/IP model. TCP má mnoho výhod, např.

  • TCP provede opakovaný přenos, pokud některá odeslaná data nejsou během určité doby potvrzena příjemcem.
  • TCP naváže nějaké spojení před odesláním dat. Tomuto spojení říkáme 3-way handshake.
  • TCP má mechanismus řízení přetížení.
  • TCP může detekovat chybu pomocí některých metod.

Učme se hlavně na TCP 3-way handshake. Pojďme se také dozvědět o důležitých polích ve Wiresharku pro třícestné podání ruky.







3-way Handshake

Existují tři výměny rámců, ke kterým dochází v 3cestném handshake:



  1. SYN
  2. VIEW+ACK
  3. ACK

První rámec je vždy odeslán klientem na server. Pojďme to pochopit z jednoduchého diagramu:



'KLIENT-SERVER'

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

<------------------------------------------- Server odešle rámec SYN+ACK klientovi: Frame2

Frame3: Klient odešle ACK rámec na server ----------------------------------->

Tyto tři snímky můžeme vidět ve Wiresharku. Filtr „tcp“ lze ve Wiresharku použít k zobrazení všech rámců TCP. Zde je snímek obrazovky pro tři snímky:





Pojďme nyní podrobně porozumět všem třem rámcům:



SYN

Tento rámec obsahuje mnoho informací o schopnostech klienta informovat server. Následující snímek obrazovky ukazuje všechna důležitá pole rámce SYN:

Zde jsou důležitá pole pro rámec SYN:

Zdrojový port: 50602
Cílový přístav: 80
Pořadové číslo: 0
Číslo potvrzení: 0
Délka záhlaví: 32 bajtů
Příznaky: 0x002 (SYN):
Potvrzení: Nenastaveno
Push: Nenastaveno
Reset: Nenastaveno
Syn: Set  -----> Tento bit je nastaven, protože se jedná o rámec SYN.
Fin: Nenastaveno

Okno: 65535
Naléhavý ukazatel: 0
Možnost TCP - Maximální velikost segmentu: 1460 bajtů
Možnost TCP – měřítko okna: 3 (vynásobte 8)
Možnost TCP - SACK povolen

VIEW+ACK

Tento rámec obsahuje mnoho informací o schopnostech serveru informovat klienta. Následující snímek obrazovky ukazuje všechna důležitá pole rámce SYN+ACK:

Tento rámec také potvrzuje rámec SYN odeslaný klientem.

Zde jsou důležitá pole pro rámec SYN+ACK:

Zdrojový port: 80
Cílový port: 50602
Pořadové číslo: 0
Číslo potvrzení: 1

Délka záhlaví: 32 bajtů (8)
Příznaky: 0x012 (SYN, ACK)
Potvrzení: Set
Push: Nenastaveno
Reset: Nenastaveno
Jeho: Set
Fin: Nenastaveno

Okno: 29200
Naléhavý ukazatel: 0
Možnost TCP – Maximální velikost segmentu: 1412 bajtů
Možnost TCP - SACK povolen
Možnost TCP – měřítko okna: 7 (vynásobte 128)

Vidíme, že v tomto rámci jsou nastaveny bity „Acknowledge“ a „SYN“. Je to proto, že tento rámec je SYN+ACK.

ACK

Tento snímek je posledním snímkem 3-cestného podání ruky a také potvrzením SYN+ACK klientem. Následující snímek obrazovky ukazuje všechna důležitá pole rámce ACK:

Zde jsou důležitá pole pro ACK rámec:

Zdrojový port: 50602
Cílový přístav: 80
Pořadové číslo: 1
Číslo potvrzení: 1
Délka záhlaví: 20 bajtů (5)
Příznaky: 0x010 (ACK)
Naléhavé: Nenastaveno
Potvrzení: Set
Push: Nenastaveno
Reset: Nenastaveno
Syn: Nenastaveno
Fin: Nenastaveno

Okno: 32768

Zde je nastaven pouze bit „Acknowledge“, protože se jedná o ACK rámec.

Vysvětlení některých důležitých společných polí

Port 80 : V tomto tutoriálu jsme pozorovali jeden pevný port 80. Je to proto, že se jedná o zachycení HTTP a port 80 je pevný (na straně serveru) pro komunikaci HTTP.

pořadové číslo : Pořadové číslo tohoto snímku. Sync je první snímek, takže máme 0 jako pořadové číslo.

Příznaky TCP:

Potvrzení – Tento bit je nastaven, pokud je rámcem ACK. Příklad: SYN+ACK, ACK snímek.

SYN – Tento bit je nastaven, pokud je snímek SYN. Příklad: SYN.

Okno : Toto pole sdílí maximální velikost okna odesílatele v režimu příjmu. Příklad: V rámci SYN máme velikost okna 65535 bajtů. To znamená, že přijímač může v kterémkoli okamžiku přijímat maximální data TCP 65535 bajtů.

SACK Povoleno : Tento bit je nastaven, pokud odesílání podporuje SACK [selektivní potvrzení].

Maximální velikost segmentu : Můžeme tomu také říkat MSS. To definuje maximální datový rámec, který může odesílatel přijmout. Příklad: Dostaneme MSS jako 1460 bajtů v rámci SYN.

Závěr

Dozvěděli jsme se o TCP 3-way handshake a všech užitečných polích pro rámce SYN, SYN+ACK a ACK. Pokud se chcete dozvědět více o TCP, můžete sledovat tento odkaz RFC https://tools.ietf.org/html/rfc793 .