Kaj je TCP?
TCP (Transmission Control Protocol) je protokol transportne plasti, usmerjen v povezavo.
Namen tega članka:
Razumevanje celotnega TCP ni lahka naloga. V tem članku bomo poskušali razumeti osnovne izmenjave paketov TCP prek Wiresharka. Teorijo je mogoče brati prek interneta. Osredotočili se bomo bolj na analizo zajemanja paketov.
Zakaj je TCP znan?
Obstaja več razlogov, zakaj je TCP tako znan:
- TCP je protokol, usmerjen v povezavo, zato je zanesljivost zelo visoka.
- TCP lahko sam nadzoruje zastoje.
- TCP lahko zazna napako.
- TCP uporablja protokol za nadzor pretoka.
- TCP ima funkcije zakasnitve ACK.
- TCP ima selektivno funkcijo ACK.
- TCP ima okensko funkcijo za izboljšanje pretoka.
Obstaja toliko drugih funkcij, zaradi katerih je TCP tako znan.
Analiza TCP:
Sledili bomo nekaj korakom za ustvarjanje okvirov TCP.
Korak 1: Preprost način generiranja paketov TCP je dostop do katerega koli spletnega mesta HTTP. Razlog je v tem, da je HTTP protokol aplikacijske plasti in uporablja TCP kot osnovni protokol transportne plasti.
Če želite izvedeti več o HTTP, sledite spodnji povezavi
https: // linuxhint.com / http_wireshark /
2. korak: Zaženite Wireshark.
3. korak: Odprite spodnjo povezavo v katerem koli brskalniku.
http: // gaia.cs.umass.edu / wireshark-labs / alice.txt
4. korak: Ustavite Wireshark in dodajte TCP kot filter.
5. korak: ANALIZA
Zdaj bi morali videti TCP 3-smerne pakete za rokovanje. Tu je preprost diagram.
Okvir 1: SYN [Sinhronizacija]
SYN je prvi paket, ki prihaja od odjemalca do strežnika. V našem primeru 192.168.1.6 je odjemalec [sistem, v katerem smo odprli brskalnik] in gaia.cs.umass.edu je strežnik.
Tu je nekaj pomembnih polj v okviru SYN
Okvir SYN je potreben za pošiljanje zmožnosti odjemalca strežniku.
Okvir 2: SYN + ACK [Sinhronizacija + potrditev]
SYN, ACK je drugi paket, ki prihaja s strežnika na odjemalca.
Tu je nekaj pomembnih polj v okviru SYN, ACK
Okvir SYN, ACK je potreben za pošiljanje zmogljivosti strežnika odjemalcu.
Zdaj sta odjemalec in strežnik delila svoje zmogljivosti.
Okvir 3: ACK [potrditev]
ACK je tretji paket, ki prihaja od odjemalca do strežnika. To je v bistvu potrditev od odjemalca do strežnika in tudi sprejemanje zmožnosti, ki jih pošlje strežnik.
Tu so pomembna polja za ACK.
Preverimo pomembne informacije, ki si jih delijo odjemalec in strežnik:
NaročnikStrežnik
Velikost okna za prejem: 64240 bajtov Velikost okna za prejem: 29200 bajtov
Največja velikost segmenta: 1460 bajtov Največja velikost segmenta: 1412 bajtov
VREČKA Dovoljeno: Da VREČKA Dovoljeno: Da
Lestvica oken: 8 (pomnožite s 256) Lestvica oken: 7 (pomnožite s 128)
Opazili smo, da obstajajo razlike v vrednotah. Če odjemalec ali strežnik sprejema druge zmožnosti, je trosmerno rokovanje uspešno.
Glava TCP:
Tu so pomembna polja glave TCP:
- Izvorna vrata (16 bitov): To je vrata za pošiljanje.
- Ciljna vrata (16 bitov): To je sprejemno pristanišče.
- Zaporedna številka (32 bitov):
- Če je nastavljen bit SYN [1], je to začetna zaporedna številka.
- Če bit SYN ni nastavljen [0], je to nabrana zaporedna številka prvega bajta podatkov tega segmenta.
- Številka potrditve (32 bitov): Če je zastavica ACK nastavljena, je vrednost tega polja naslednja zaporedna številka, ki jo pričakuje pošiljatelj ACK.
- Dolžina glave: Velikost glave se lahko razlikuje od 20 do največ 60 bajtov.
- Zastave (9 bitov):
… = Rezervirano: Ni nastavljeno
… 0… = Nonce: Ni nastavljeno
… 0… = Zmanjšano okno zastojev (CWR): Ni nastavljeno
… 0… = ECN-Echo: Ni nastavljeno
… 0… = Nujno: Ni nastavljeno
… 0… = Potrditev: Ni nastavljeno
… 0… = Potisni: Ni nastavljeno
… 0… = Ponastavi: Ni nastavljeno
… 1. = Syn: nastavljeno
… 0 = Fin: Ni nastavljeno
- Velikost okna (16 bitov): To je velikost sprejemnega okna v bajtih.
- Kontrolna vsota (16 bitov):
Uporablja se preverjanje napak glave.
Primer: Kontrolna vsota: 0x436f- Nujni kazalec (16 bitov):
To je odmik od zaporedne številke, ki označuje zadnji nujni bajt podatkov.
Primer: Nujni kazalec: 0- Opcije:
Možnost TCP - največja velikost segmenta: 1460 bajtov
Možnost TCP - nedelovanje (NOP)
Možnost TCP - okenska lestvica: 8 (pomnoži s 256)
Možnost TCP - SACK dovoljen
Opazovanje:
Velikost glave TCP v SYN je 32 bajtov.
Velikost glave TCP za SYN, ACK je 32 bajtov.
Velikost glave TCP za ACK je 20 bajtov, saj nima možnosti.
Podatki TCP:
Tu je posnetek zaslona z razlago za podatke TCP in TCP ACK. Tu lahko vidimo funkcijo zakasnitve TCP ACK. Strežnik je odjemalcu poslal tri podatkovne pakete TCP, ta pa je poslal en zamik ACK, da sporoči strežniku, da je prejel vse tri podatkovne pakete TCP. Zato v TCP ACK [številka paketa 96 na posnetku zaslona] vidimo ACK = 14121, kar pomeni, da je odjemalec prejel do 14121 bajtov.
Referenca:
Za osnovno teorijo TCP glej
https: // en.wikipedia.org / wiki / Transmission_Control_Protocol