Wireshark

TCP analiza hvatanja paketa

TCP analiza hvatanja paketa

Š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:

  1. TCP je protokol orijentiran na vezu, tako da je pouzdanost vrlo visoka.
  2. TCP može sam kontrolirati zagušenja.
  3. TCP može otkriti pogrešku.
  4. TCP koristi protokol kontrole protoka.
  5. TCP ima značajke odgode ACK.
  6. TCP ima selektivnu značajku ACK.
  7. 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:

  1. Izvorni priključak (16 bita): Ovo je luka za slanje.
Primjer: Izvorni priključak: 50026 (50026)
  1. Odredišna luka (16 bita): Ovo je prihvatna luka.
Primjer: Odredišna luka: http (80)
  1. Redni broj (32 bita):
Primjer: sekvencijski broj: 0 (relativni sekvencijski broj)
  1. Broj potvrde (32 bita): Ako je postavljena zastavica ACK, tada je vrijednost ovog polja sljedeći sekvencijski broj koji očekuje pošiljatelj ACK.
Primjer: Broj potvrde: 0
  1. Duljina zaglavlja: Veličina zaglavlja može varirati od 20 do maksimalno 60 bajtova.
Primjer: 1000 ... = Duljina zaglavlja: 32 bajta (8)
  1. Zastave (9 bitova):
Primjer:
… = 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
  1. Veličina prozora (16 bita): Ovo je veličina prozora za primanje u bajtovima.
Primjer: Vrijednost veličine prozora: 64240
  1. Kontrolna suma (16 bitova):

Koristi se provjera pogrešaka zaglavlja.

Primjer: Kontrolna suma: 0x436f
  1. Hitni pokazivač (16 bita):

Ovo je odmak od sekvencijskog broja koji označava zadnji hitni bajt podataka.

Primjer: Hitni pokazivač: 0
  1. Opcije:
Primjer:
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

Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...