Tīklošana

Kādi ir TCP rokasspiediena soļi?

Kādi ir TCP rokasspiediena soļi?

TCP jeb Transmission Control Protocol ir standarta transporta slāņa protokols, kuru internets izmanto datu pārsūtīšanai. Pieprasīt komentārus (RFC) 793 TCP ir definēts kā uzticams un uz savienojumu orientēts protokols. Tā kā tas ir orientēts uz savienojumu, pirms datu pārsūtīšanas ir jāizveido ceļš vai savienojums. TCP izmanto trīsceļu rokasspiediena mehānismu, lai izveidotu savienojumu starp divām ierīcēm. Šajā ceļvedī mēs redzēsim, kā darbojas trīsvirzienu rokasspiediena mehānisms. Vispirms apskatīsim problēmas ar divvirzienu rokasspiediena modeli.

Problēmas ar divvirzienu rokasspiediena modeli

Divvirzienu rokasspiediena modelis neizdevās vecas pakešu paketes problēmas dēļ. Pieņemsim, ka veca pakešu kopija nonāk servera mašīnā. Šī vecā pakete ir ieradusies no iepriekš slēgta savienojuma un satur kārtas numuru 'z'. Kādā brīdī jaunā savienojuma laikā serveris pieņem paketi ar kārtas numuru 'z'. Saņemot šo veco paketi ar tādu pašu kārtas numuru “z”, tā neapzināti pieņem šo veco paketi un izmet faktisko paketi no jaunā savienojuma.

Iepriekš minētajā gadījumā, ja savienojums starp klientu un serveri nenotiek, vecas savienojuma pieprasījuma paketes dublikāta ienākšana joprojām rada problēmas. Ja serveris saņem šādu paketi, tas atbildēs ar SYN + ACK paketi. Šo paketi klients nometīs, jo tā nebija paredzējusi izveidot savienojumu. Bet serveris nonāks strupceļā, gaidot, kamēr klients nosūtīs datus.

Vēl viena problēma ir tāda, ka, ja resursdators C nosūta savienojuma pieprasījumu serverim, uzdodoties par klientu, serveris klientam atbildēs ar ACK. Klients izmetīs šo “ACK” paketi un liks serverim pārtraukt savienojumu. Šajā notikumu intervālā resursdators C var sākt mānīšanās uzbrukumu, nosūtot daudz pakešu.

Trīsceļu HandShake modelis TCP / IP

Trīsceļu rokasspiediena modelis ir ļoti svarīgs. Ja mēs to neizmantosim un sāksim tieši sūtīt datus, saņēmēja lietojumprogramma var sākt saņemt pakešu dublikātus. Uzbrucējs starp savienojumu var iegūt iespēju sākt uzbrukumus (piemēram, DDoS). Trīsceļu rokasspiediena procedūru sāk viena mašīna, un otra puse uz to reaģē. Šīs procedūras izskaidrošanai tiek izmantota šāda konvencija:

“Ja vietne saņem paketi ar kārtas numuru“ x ”, tā atbildēs ar ACK numuru“ x + 1 ”.”

Apkoposim darbības, kas veiktas trīsvirzienu rokasspiedienā starp klienta mašīnu un servera mašīnu:

1. solis. Pirmajā rokasspiedienā klients serverim nosūta SYN savienojuma pieprasījuma paketi ar nejaušu sākotnējo kārtas numuru ('x').

2. solis. Otrajā rokasspiedienā serveris atbild ar SYN paketi, kurai ir nejaušs kārtas numurs ('y') un ACK pakete ar kārtas numuru ('x + 1'), lai apstiprinātu sākotnējo nosūtīto kārtas numuru ('x'). ko veic klients.

3. solis. Trešajā rokasspiedienā klients nosūtīs serverim ACK paketi ar kārtas numuru ('y + 1'), lai apstiprinātu servera nosūtīto SYN ('y') paketi.

4. solis. Abi gali tagad ir sinhronizēti un var sākt datu pārsūtīšanu neatkarīgi. [1]

TCP trīsvirzienu rokasspiediena procedūra joprojām ir spēkā, ja abas puses vienlaikus sāk inicializācijas procesu. Šādā situācijā katra mašīna pēc “SYN” paketes nosūtīšanas saņems “SYN” segmentu bez apstiprinājuma. Ja uztvērējā nonāk veca “SYN” paketes dublikāts, uztvērējam var šķist, ka vienlaikus notiek savienojuma iniciēšanas process. Mēs varam izmantot pakešu atiestatīšanu, lai novērstu šo neskaidrību.

TCP savienojuma izbeigšana

Jebkura no abām pusēm var pārtraukt TCP savienojumu. Šim nolūkam jebkura puse var nosūtīt TCP segmentu ar FIN bitu kopu. Tas nozīmēs, ka nosūtītājai pusei vairs nav datu, ko nosūtīt. Saņēmēja puse apstiprinās šo FIN paketi, nosūtot apstiprināšanas paketi. Tas aizvērs savienojumu no vienas puses (sūtītāja puses). Tagad uztvērējs izmantos tās pašas darbības, lai pārtrauktu savienojumu viņa vārdā. Tas pilnībā aizvērs savienojumu.

Problēmas ar trīsceļu rokasspiediena modeli

Gadījumā, ja ACK no klienta uz serveri tiek pazaudēts vai bloķēts trešajā rokasspiediena posmā, klients nezina par šo situāciju. Klients pieņems, ka savienojums ir izveidots, un sāks sūtīt datus. Serveris joprojām gaida ACK, kas jau bija pazaudēts, tāpēc tas no klienta saņemtos datus izmetīs. [2]

Secinājums

Šajā ceļvedī mēs esam iemācījušies par TCP savienojuma procedūrām, izmantojot trīsvirzienu rokasspiedienu. Mēs esam redzējuši arī pakešu kopiju problēmu, kas saistīta ar divvirzienu rokasspiediena procedūru, un to, kā tā tika atrisināta ar trīsvirzienu rokasspiediena modeli. Daudzi pētnieki ir devuši dažādus pētījumus, lai uzlabotu trīsvirzienu rokasspiediena modeli un pārvarētu ar to saistītās problēmas.

Atsauces

  1. Hsu, F., Hvangs, Y., Tsai, C., Cai, W., Lī, C., & Čangs, K. (2016). TRAP: trīsceļu rokasspiediena serveris TCP savienojuma izveidei. Lietišķās zinātnes, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP trīsceļu rokasspiediena protokols, kas balstīts uz kvantu sapīšanos. Journal of Computers, 27 (3), 33–40, doi: 10.3966/199115592016102703004
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...