Što je TCP?
TCP (Transmission Control Protocol) je protokol transportnog sloja orijentiran na vezu.
Namjera ovog članka:
Razumjeti cijeli TCP nije lak zadatak. U ovom ćemo članku pokušati razumjeti osnovne razmjene paketa TCP-a putem Wiresharka. Teorija se može čitati putem interneta. Više ćemo se usredotočiti na analizu hvatanja paketa.
Zašto je TCP poznat?
Postoji više razloga zbog kojih je TCP tako poznat:
- TCP je protokol orijentiran na vezu, tako da je pouzdanost vrlo visoka.
- TCP može sam kontrolirati zagušenja.
- TCP može otkriti pogrešku.
- TCP koristi protokol kontrole protoka.
- TCP ima značajke odgode ACK.
- TCP ima selektivnu značajku ACK.
- TCP ima značajku pozivanja prozora za poboljšanje protoka.
Postoji toliko mnogo drugih značajki koje čine TCP tako poznatim.
Analiza TCP-a:
Slijedit ćemo neke korake za generiranje TCP okvira.
Korak 1: Jednostavan način generiranja TCP paketa je pristup bilo kojem HTTP web mjestu. Razlog je što je HTTP protokol aplikacijskog sloja i koristi TCP kao temeljni protokol transportnog sloja.
Da biste saznali više o HTTP-u, slijedite donju vezu
https: // linuxhint.com / http_wireshark /
Korak 2: Pokrenite Wireshark.
Korak 3: Otvorite donju vezu u bilo kojem pregledniku.
http: // gaia.cs.umass.edu / wireshark-labs / alice.txt
Korak 4: Zaustavite Wireshark i stavite TCP kao filtar.
Korak 5: ANALIZA
Sada bismo trebali vidjeti TCP trosmjerne pakete rukovanja. Evo jednostavnog dijagrama.
Okvir 1: SYN [sinkronizacija]
SYN je prvi paket koji dolazi od klijenta do poslužitelja. U našem slučaju 192.168.1.6 je klijent [sustav u kojem smo otvorili preglednik] i gaia.cs.umass.edu je poslužitelj.
Evo nekoliko važnih polja u SYN okviru
SYN okvir potreban je za slanje mogućnosti klijenta na poslužitelj.
Okvir 2: SYN + ACK [Sinkronizacija + potvrda]
SYN, ACK je drugi paket koji dolazi od poslužitelja do klijenta.
Evo nekoliko važnih polja u SYN, ACK okviru
SYN, ACK okvir potreban je za slanje mogućnosti poslužitelja klijentu.
Sada su klijent i poslužitelj podijelili svoje mogućnosti.
Okvir 3: ACK [Priznanje]
ACK je treći paket koji dolazi od klijenta do poslužitelja. To je u osnovi potvrda od klijenta do poslužitelja, a također je i prihvaćanje mogućnosti koje server šalje.
Ovdje su važna polja za ACK.
Provjerimo važne informacije koje dijele klijent i poslužitelj:
KlijentPoslužitelj
Veličina prozora za primanje: 64240 bajtova Veličina prozora za primanje: 29200 bajtova
Maksimalna veličina segmenta: 1460 bajtova Maksimalna veličina segmenta: 1412 bajtova
VREĆA Dopušteno: Da VREĆA Dopušteno: Da
Prozorska skala: 8 (pomnoži s 256) Prozorska skala: 7 (pomnoži sa 128)
Primijetili smo da postoje razlike u vrijednostima. Ako klijent ili poslužitelj prihvati tuđe mogućnosti, trosmjerno rukovanje je uspješno.
TCP zaglavlje:
Evo važnih polja TCP zaglavlja:
- Izvorni priključak (16 bita): Ovo je luka za slanje.
- Odredišna luka (16 bita): Ovo je prihvatna luka.
- Redni broj (32 bita):
- Ako je postavljen SYN bit [1], to je početni sekvencijski broj.
- Ako SYN bit nije postavljen [0], to je akumulirani sekvencijski broj prvog bajta podataka ovog segmenta.
- Broj potvrde (32 bita): Ako je postavljena zastavica ACK, tada je vrijednost ovog polja sljedeći sekvencijski broj koji očekuje pošiljatelj ACK.
- Duljina zaglavlja: Veličina zaglavlja može varirati od 20 do maksimalno 60 bajtova.
- Zastave (9 bitova):
… = Rezervirano: Nije postavljeno
… 0… = Nonce: Nije postavljeno
… 0… = Smanjen prozor zagušenja (CWR): Nije postavljeno
… 0… = ECN-Echo: Nije postavljeno
… 0… = Hitno: Nije postavljeno
… 0… = Potvrda: Nije postavljeno
… 0… = Pritisni: Nije postavljeno
… 0… = Resetiraj: Nije postavljeno
… 1. = Syn: Postavljeno
… 0 = Fin: Nije postavljeno
- Veličina prozora (16 bita): Ovo je veličina prozora za primanje u bajtovima.
- Kontrolna suma (16 bitova):
Koristi se provjera pogrešaka zaglavlja.
Primjer: Kontrolna suma: 0x436f- Hitni pokazivač (16 bita):
Ovo je odmak od sekvencijskog broja koji označava zadnji hitni bajt podataka.
Primjer: Hitni pokazivač: 0- Opcije:
TCP opcija - maksimalna veličina segmenta: 1460 bajtova
TCP opcija - ne-rad (NOP)
TCP opcija - skala prozora: 8 (pomnoži s 256)
TCP opcija - DOZVOLJENO
Promatranje:
Veličina TCP zaglavlja SYN-a je 32 bajta.
Veličina TCP zaglavlja SYN, ACK je 32 bajta.
Veličina TCP zaglavlja ACK je 20 bajtova jer nema polja s opcijama.
TCP podaci:
Evo snimke zaslona s objašnjenjem za TCP podatke i TCP ACK. Ovdje možemo vidjeti značajku ACK odgode TCP. Poslužitelj je klijentu poslao tri TCP podatkovna paketa, a klijent je poslao jedan ACK s odgodom kako bi rekao poslužitelju da je primio sva tri TCP podatkovna paketa. Zato u TCP ACK [broj paketa 96 na snimci zaslona] vidimo ACK = 14121 što znači da je klijent primio do 14121 bajta.
Referenca:
Za osnovnu teoriju TCP-a pogledajte
https: // en.wikipedija.org / wiki / Transmission_Control_Protocol