Kas ir TCP?
TCP (Transmission Control Protocol) ir uz savienojumu orientēts transporta slāņa protokols.
Šī raksta mērķis:
Lai saprastu visu TCP, nav viegls uzdevums. Šajā rakstā mēs centīsimies izprast TCP pamata pakešu apmaiņu, izmantojot Wireshark. Teoriju var izlasīt, izmantojot internetu. Mēs vairāk pievērsīsimies pakešu uztveršanas analīzei.
Kāpēc TCP ir slavena?
Ir vairāki iemesli, kāpēc TCP ir tik slavena:
- TCP ir uz savienojumu orientēts protokols, tāpēc uzticamība ir ļoti augsta.
- TCP pats var kontrolēt sastrēgumus.
- TCP var noteikt kļūdas.
- TCP izmanto plūsmas kontroles protokolu.
- TCP ir kavēšanās ACK funkcijas.
- TCP ir selektīva ACK funkcija.
- TCP ir Windows izsaukšanas funkcija, lai uzlabotu caurlaidspēju.
Ir tik daudz citu funkciju, kas padara TCP tik slavenu.
TCP analīze:
Mēs veiksim dažas darbības, lai ģenerētu TCP rāmjus.
1. darbība: Vienkāršs veids, kā ģenerēt TCP paketes, ir piekļuve jebkurai HTTP vietnei. Iemesls ir tāds, ka HTTP ir lietojumprogrammas slāņa protokols, un tā izmanto TCP kā pamata transporta slāņa protokolu.
Lai uzzinātu par HTTP, izmantojiet zemāk esošo saiti
https: // linuxhint.com / http_wireshark /
2. darbība: Sāciet Wireshark.
3. solis: Jebkurā pārlūkprogrammā atveriet saiti zemāk.
http: // gaia.cs.umass.edu / wireshark-labs / alice.txt
4. solis: Pārtrauciet Wireshark un ievietojiet TCP kā filtru.
5. darbība: ANALĪZE
Tagad mums vajadzētu redzēt TCP trīsvirzienu rokasspiediena paketes. Šeit ir vienkārša diagramma.
1. rāmis: SYN [sinhronizācija]
SYN ir pirmā pakete, kas nāk no klienta uz serveri. Mūsu gadījumā 192.168. lpp.1.6 ir klients [sistēma, kurā mēs atvērām pārlūkprogrammu] un gaia.cs.umass.edu ir serveris.
Šeit ir daži svarīgi lauki SYN rāmī
SYN rāmis ir nepieciešams, lai klienta iespējas nosūtītu uz serveri.
2. rāmis: SYN + ACK [Sinhronizācija + apstiprinājums]
SYN, ACK ir otrā pakete, kas nāk no servera uz klientu.
Šeit ir daži svarīgi lauki SYN, ACK rāmī
Lai nosūtītu klientam servera iespējas, ir nepieciešams SYN, ACK rāmis.
Tagad klients un serveris ir dalījušies ar savām iespējām.
3. rāmis: ACK [apstiprinājums]
ACK ir trešā pakete, kas nāk no klienta uz serveri. Tas būtībā ir klienta apstiprinājums serverim, kā arī servera nosūtīto iespēju pieņemšana.
Šeit ir svarīgi ACK lauki.
Pārbaudīsim svarīgo informāciju, kas tiek kopīgota starp klientu un serveri:
KlientsServeris
Saņemt loga izmēru: 64240 baiti Saņemt loga izmēru: 29200 baiti
Maksimālais segmenta lielums: 1460 baiti Maksimālais segmenta lielums: 1412 baiti
Maiss atļauts: Jā Maiss atļauts: Jā
Logu skala: 8 (reizināt ar 256) Logu skala: 7 (reizināt ar 128)
Mēs esam pamanījuši, ka vērtībās ir atšķirības. Ja klients vai serveris pieņem citu iespējas, trīsvirzienu rokasspiediens ir veiksmīgs.
TCP galvene:
Šeit ir svarīgi TCP galvenes lauki:
- Avota ports (16 biti): Šī ir sūtīšanas osta.
- Galamērķa ports (16 biti): Šī ir saņēmēja osta.
- Secības numurs (32 biti):
- Ja ir iestatīts SYN bits [1], tad tas ir sākotnējais kārtas numurs.
- Ja SYN bits nav iestatīts [0], tad šis ir šī segmenta pirmā datu baita uzkrātais kārtas numurs.
- Atzinības numurs (32 biti): Ja ir iestatīts karodziņš ACK, šī lauka vērtība ir nākamais kārtas numurs, ko sagaida ACK sūtītājs.
- Galvenes garums: Galvenes lielums var svārstīties no 20 līdz 60 baitiem.
- Karodziņi (9 biti):
… = Rezervēts: nav iestatīts
… 0… = Nonce: nav iestatīts
… 0… = samazināts sastrēgumu logs (CWR): nav iestatīts
… 0… = ECN-Echo: nav iestatīts
… 0… = Steidzams: nav iestatīts
… 0… = apstiprinājums: nav iestatīts
… 0… = Push: nav iestatīts
… 0… = Atiestatīt: nav iestatīts
… 1. = Sin: iestatīt
… 0 = Fin: nav iestatīts
- Loga izmērs (16 biti): Tas ir saņemšanas loga lielums baitos.
- Kontrolsumma (16 biti):
Tas izmanto galvenes kļūdu pārbaudi.
Piemērs: Kontrolsumma: 0x436f- Steidzams rādītājs (16 biti):
Tas ir nobīde no kārtas numura, kas norāda pēdējo steidzamo datu baitu.
Piemērs: Steidzams rādītājs: 0- Iespējas:
TCP opcija - Maksimālais segmenta lielums: 1460 baiti
TCP opcija - nedarbojas (NOP)
TCP opcija - loga skala: 8 (reizināt ar 256)
TCP variants - atļauts SACK
Novērojums:
SYN TCP galvenes lielums ir 32 baiti.
TCP galvenes lielums SYN, ACK ir 32 baiti.
ACK TCP galvenes izmērs ir 20 baiti, jo tam nav opciju lauku.
TCP dati:
Šeit ir ekrānuzņēmums ar paskaidrojumu par TCP datiem un TCP ACK. Šeit mēs varam redzēt TCP kavēšanās ACK funkciju. Serveris ir nosūtījis klientam trīs TCP datu paketes, un klients ir nosūtījis vienu kavējuma ACK, lai paziņotu serverim, ka ir saņēmis visas trīs TCP datu paketes. Tāpēc TCP ACK [pakešu numurs 96 ekrānuzņēmumā] mēs redzam ACK = 14121, kas nozīmē, ka klients ir saņēmis līdz 14121 baiti.
Atsauce:
TCP pamatteoriju skatīt
https: // lv.vikipēdija.org / wiki / Transmission_Control_Protocol