„Wireshark“

TCP paketų fiksavimo analizė

TCP paketų fiksavimo analizė

Kas yra TCP?

TCP (perdavimo valdymo protokolas) yra į ryšį orientuotas perdavimo sluoksnio protokolas.

Šio straipsnio tikslas:

Suprasti visą TCP nėra lengva užduotis. Šiame straipsnyje mes bandysime suprasti pagrindinius TCP mainus per Wireshark. Teoriją galima perskaityti internete. Mes daugiau dėmesio skirsime paketų surinkimo analizei.

Kodėl TCP garsus?

Yra keletas priežasčių, kodėl TCP yra toks garsus:

  1. TCP yra į ryšį orientuotas protokolas, todėl patikimumas yra labai didelis.
  2. TCP gali pats kontroliuoti perkrovą.
  3. TCP gali aptikti klaidą.
  4. TCP naudoja srauto valdymo protokolą.
  5. TCP turi vėlavimo ACK funkcijas.
  6. TCP turi pasirinktinę ACK funkciją.
  7. TCP turi „Windows“ skambinimo funkciją, kad pagerintų pralaidumą.

Yra tiek daug kitų funkcijų, kurios garsina TCP.

TCP analizė:

Mes atliksime kelis veiksmus, kad sugeneruotume TCP rėmus.

1 žingsnis: Paprastas būdas generuoti TCP paketus yra patekti į bet kurią HTTP svetainę. Priežastis ta, kad HTTP yra programos sluoksnio protokolas ir kaip pagrindinį transporto sluoksnio protokolą jis naudoja TCP.

Norėdami sužinoti apie HTTP, spustelėkite toliau pateiktą nuorodą

https: // linuxhint.com / http_wireshark /

2 žingsnis: Pradėkite „Wireshark“.

3 žingsnis: Atidarykite žemiau esančią nuorodą bet kurioje naršyklėje.

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

4 žingsnis: Sustabdykite „Wireshark“ ir įdėkite TCP kaip filtrą.

5 žingsnis: ANALIZĖ

Dabar turėtume pamatyti TCP 3 krypčių rankos paketus. Čia yra paprasta schema.

1 kadras: SYN [sinchronizavimas]

SYN yra pirmasis paketas, gaunamas iš kliento į serverį. Mūsų atveju 192.168.1.6 yra klientas [sistema, kurioje atidarėme naršyklę] ir gaia.cs.umass.edu yra serveris.

Štai keletas svarbių SYN rėmelio laukų

SYN rėmas reikalingas kliento galimybėms siųsti į serverį.

2 kadras: SYN + ACK [sinchronizacija + patvirtinimas]

SYN, ACK yra antrasis paketas, gaunamas iš serverio į klientą.

Štai keletas svarbių SYN, ACK rėmelių laukų

Norint nusiųsti serverio galimybes klientui, reikalingas SYN, ACK rėmelis.

Dabar klientas ir serveris pasidalijo savo galimybėmis.

3 kadras: ACK [patvirtinimas]

ACK yra trečiasis paketas, gaunamas iš kliento į serverį. Iš esmės tai yra kliento patvirtinimas iš serverio, taip pat tai yra serverio siunčiamų galimybių priėmimas.

Čia yra svarbūs ACK laukai.

Patikrinkime svarbią informaciją, kuria dalijasi klientas ir serveris:

KlientasServeris

Gauti lango dydį: 64240 baitai                          Gauti lango dydį: 29200 baitų

Maksimalus segmento dydis: 1460 baitų                         Maksimalus segmento dydis: 1412 baitų

Maišas leidžiamas: Taip                                                 Maišas leidžiamas: Taip

Lango skalė: 8 (padauginkite iš 256)                          Lango skalė: 7 (padauginkite iš 128)

Pastebėjome, kad yra vertybių skirtumų. Jei klientas ar serveris priima kito asmens galimybes, sėkmingas 3 krypčių paspaudimas.

TCP antraštė:

Čia yra svarbūs TCP antraštės laukai:

  1. Šaltinio prievadas (16 bitų): Tai siunčiantis prievadas.
Pavyzdys: šaltinio prievadas: 50026 (50026)
  1. Paskirties uostas (16 bitų): Tai priimantis uostas.
Pavyzdys: Paskirties uostas: http (80)
  1. Sekos numeris (32 bitai):
Pavyzdys: sekos numeris: 0 (santykinis eilės numeris)
  1. Patvirtinimo numeris (32 bitai): Jei nustatyta ACK vėliava, šio lauko reikšmė yra kitas eilės numeris, kurio tikisi ACK siuntėjas.
Pavyzdys: patvirtinimo numeris: 0
  1. Antraštės ilgis: Antraštės dydis gali skirtis nuo 20 iki 60 baitų.
Pavyzdys: 1000… = Antraštės ilgis: 32 baitai (8)
  1. Vėliavos (9 bitai):
Pavyzdys:
… = Rezervuota: nenustatyta
… 0… = Nonce: nenustatyta
… 0… = sumažintas perkrovos langas (CWR): nenustatyta
… 0… = ECN-Echo: nenustatyta
… 0… = Skubu: nenustatyta
… 0… = patvirtinimas: nenustatyta
… 0… = Push: nenustatyta
… 0… = Reset: nenustatyta
… 1. = Sin: nustatyti
… 0 = Fin: nenustatyta
  1. Lango dydis (16 bitų): Tai yra gaunamo lango dydis baitais.
Pavyzdys: lango dydžio vertė: 64240
  1. Kontrolinė suma (16 bitų):

Naudojamas antraštės klaidų tikrinimas.

Pavyzdys: kontrolinė suma: 0x436f
  1. Skubus žymeklis (16 bitų):

Tai yra eilės numerio, nurodančio paskutinį skubų duomenų baitą, poslinkis.

Pavyzdys: skubus rodyklė: 0
  1. Galimybės:
Pavyzdys:
TCP parinktis - maksimalus segmento dydis: 1460 baitų
TCP parinktis - neveikia (NOP)
TCP parinktis - lango skalė: 8 (padauginti iš 256)
TCP variantas - maišas leidžiamas

Stebėjimas:

TCP antraštės SYN dydis yra 32 baitai.

TCP antraštės dydis SYN, ACK yra 32 baitai.

ACP TCP antraštės dydis yra 20 Baitų, nes jame nėra parinkčių laukų.

TCP duomenys:

Čia yra ekrano kopija su TCP duomenų ir TCP ACK paaiškinimu. Čia galime pamatyti TCP vėlavimo ACK funkciją. Serveris klientui išsiuntė tris TCP duomenų paketus, o klientas išsiuntė vieną vėlavimo ACK, kad praneštų serveriui, kad gavo visus tris TCP duomenų paketus. Štai kodėl TCP ACK [paketo numeris 96 ekrano kopijoje] matome ACK = 14121, o tai reiškia, kad klientas gavo iki 14121 baitų.

Nuoroda:

Pagrindinę TCP teoriją rasite

https: // lt.vikipedija.org / wiki / Transmission_Control_Protocol

Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...
Geriausi „Linux“ žaidimų konsolių emuliatoriai
Šiame straipsnyje bus išvardyta populiari žaidimų konsolių emuliavimo programinė įranga, skirta „Linux“. „Emuliacija“ yra programinės įrangos suderina...