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:
- A TCP kapcsolatorientált protokoll, így a megbízhatóság nagyon magas.
- A TCP önmagában képes szabályozni a torlódásokat.
- A TCP képes észlelni a hibákat.
- A TCP áramlásszabályozási protokollt használ.
- A TCP rendelkezik késleltetett ACK funkciókkal.
- A TCP rendelkezik szelektív ACK funkcióval.
- 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:
- Forrás port (16 bit): Ez a küldő port.
- Célport (16 bit): Ez a fogadó port.
- Szekvenciaszám (32 bit):
- Ha a SYN bit beállítása [1], akkor ez a kezdeti sorszám.
- Ha a SYN bit nincs beállítva [0], akkor ez a szegmens első adatbájtjának összesített sorszáma.
- 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.
- Fejléc hossza: A fejléc mérete 20 bájt és legfeljebb 60 bájt között változhat.
- Zászlók (9 bit):
… = 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
- Ablak mérete (16 bit): Ez a fogadó ablak mérete bájtokban.
- Ellenőrző összeg (16 bit):
A fejléc hibakeresését használja.
Példa: Ellenőrző összeg: 0x436f- 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- Opciók:
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