Wireshark

TCP csomagrögzítés elemzése

TCP csomagrögzítés elemzése

Mi a TCP?

A TCP (Transmission Control Protocol) egy kapcsolatorientált szállítási réteg protokoll.

A cikk célja:

Az egész TCP megértése nem könnyű feladat. Ebben a cikkben megpróbáljuk megérteni a TCP alapvető csomagcseréjét a Wiresharkon keresztül. Az elmélet az interneten keresztül olvasható. Inkább a csomagrögzítés elemzésére fogunk koncentrálni.

Miért híres a TCP?

Számos oka van annak, hogy a TCP ilyen híres:

  1. A TCP kapcsolatorientált protokoll, így a megbízhatóság nagyon magas.
  2. A TCP önmagában képes szabályozni a torlódásokat.
  3. A TCP képes észlelni a hibákat.
  4. A TCP áramlásszabályozási protokollt használ.
  5. A TCP rendelkezik késleltetett ACK funkciókkal.
  6. A TCP rendelkezik szelektív ACK funkcióval.
  7. A TCP rendelkezik a Windows hívás funkcióval az átviteli sebesség javítása érdekében.

Olyan sok más szolgáltatás teszi olyan híressé a TCP-t.

A TCP elemzése:

Néhány lépést követünk a TCP keretek előállításához.

1. lépés: A TCP-csomagok létrehozásának egyszerű módja bármely HTTP-webhely elérése. Ennek oka, hogy a HTTP egy alkalmazásréteg-protokoll, és a TCP-t használja alapul szolgáló szállítási rétegprotokollként.

Ha tudni szeretne a HTTP-ről, kövesse az alábbi linket

https: // linuxhint.com / http_wireshark /

2. lépés: Indítsa el a Wiresharkot.

3. lépés: Nyissa meg az alábbi linket bármely böngészőben.

http: // gaia.cs.umass.edu / wireshark-labs / alice.txt

4. lépés: Állítsa le a Wireshark-ot, és tegye a TCP-t szűrőként.

5. lépés: ELEMZÉS

Most látnunk kell a TCP 3-utas kézfogás csomagokat. Itt van az egyszerű ábra.

1. képkocka: SYN [Synchronaziation]

A SYN az első csomag, amely az ügyfélről a szerverre érkezik. Esetünkben 192.168.1.6 az ügyfél [A rendszer, ahol megnyitottuk a böngészőt] és a gaia.cs.umass.az edu a szerver.

Íme néhány fontos mező a SYN keretben

A kliens képességeinek kiszolgálóra történő elküldéséhez SYN keret szükséges.

2. képkocka: SYN + ACK [szinkronizálás + nyugtázás]

SYN, az ACK a második csomag, amely a szerverről az ügyfélre érkezik.

Íme néhány fontos mező a SYN, ACK keretben

SYN, ACK keret szükséges a kiszolgáló képességeinek elküldéséhez az ügyfélnek.

Most az ügyfél és a szerver megosztotta képességeit.

3. képkocka: ACK [nyugtázás]

Az ACK a harmadik csomag, amely az ügyfélről a szerverre érkezik. Ez alapvetően kliensről szerverre történő nyugtázás, valamint a szerver által küldött képességek elfogadása.

Itt vannak az ACK fontos mezői.

Ellenőrizzük az ügyfél és a szerver között megosztott fontos információkat:

Ügyfélszerver

Fogadó ablak mérete: 64240 bájt                          Fogadó ablak mérete: 29200 bájt

Maximális szegmensméret: 1460 bájt                         Maximális szegmensméret: 1412 bájt

SACK Megengedett: Igen                                                 SACK Megengedett: Igen

Ablakméret: 8 (szorozva 256-tal)                          Ablakméret: 7 (megszorozva 128-mal)

Észrevettük, hogy az értékekben különbségek vannak. Ha az ügyfél vagy a szerver elfogadja mások képességeit, akkor a háromirányú kézfogás sikeres.

TCP fejléc:

Itt vannak a TCP fejléc fontos mezői:

  1. Forrás port (16 bit): Ez a küldő port.
Példa: Forrás port: 50026 (50026)
  1. Célport (16 bit): Ez a fogadó port.
Példa: Célport: http (80)
  1. Szekvenciaszám (32 bit):
Példa: Szekvenciaszám: 0 (relatív sorszám)
  1. Nyugtázási szám (32 bit): Ha az ACK jelző be van állítva, akkor ennek a mezőnek az értéke a következő sorszám, amelyre az ACK feladója számít.
Példa: nyugtázási szám: 0
  1. Fejléc hossza: A fejléc mérete 20 bájt és legfeljebb 60 bájt között változhat.
Példa: 1000… = Fejléc hossza: 32 bájt (8)
  1. Zászlók (9 bit):
Példa:
… = Fenntartva: nincs beállítva
… 0… = Nonce: Nincs beállítva
… 0… = Csökkentett torlódási ablak (CWR): Nincs beállítva
… 0… = ECN-Echo: Nincs beállítva
… 0… = Sürgős: Nincs beállítva
… 0… = nyugtázás: Nincs beállítva
… 0… = Push: Nincs beállítva
… 0… = Reset: Nincs beállítva
… 1. = Syn: Beállítás
… 0 = Fin: Nincs beállítva
  1. Ablak mérete (16 bit): Ez a fogadó ablak mérete bájtokban.
Példa: Ablakméret értéke: 64240
  1. Ellenőrző összeg (16 bit):

A fejléc hibakeresését használja.

Példa: Ellenőrző összeg: 0x436f
  1. Sürgős mutató (16 bit):

Ez eltolódik az utolsó sürgős adatbájtot jelző sorszámtól.

Példa: Sürgős mutató: 0
  1. Opciók:
Példa:
TCP opció - Maximális szegmensméret: 1460 bájt
TCP opció - Működés nélküli (NOP)
TCP opció - Ablakméret: 8 (szorozva 256-tal)
TCP opció - SACK megengedett

Megfigyelés:

A SYN TCP fejlécének mérete 32 bájt.

A SYN, ACK TCP fejlécének mérete 32 bájt.

Az ACK TCP fejlécének mérete 20 bájt, mivel nem rendelkezik opciós mezőkkel.

TCP adatok:

Itt található a képernyőkép a TCP adatok és a TCP ACK magyarázatával. Itt láthatjuk a TCP delay ACK funkciót. A szerver három TCP adatcsomagot küldött az ügyfélnek, az ügyfél pedig egy késleltetésű ACK-t küldött a szervernek, hogy elmondja a szervernek, hogy mindhárom TCP adatcsomagot megkapta. Ezért látjuk a TCP ACK-ban [a 96-os számú csomag a képernyőképen] az ACK = 14121 értéket, ami azt jelenti, hogy az ügyfél 14121 bájtig kapott.

Referencia:

A TCP alapvető elméletéhez lásd:

https: // en.wikipédia.org / wiki / Transmission_Control_Protocol

Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...