TCP ili protokol za kontrolu prijenosa standardni je protokol transportnog sloja koji Internet koristi za prijenos podataka. Zahtjev za komentarom (RFC) 793 definira TCP kao pouzdan protokol usmjeren na povezivanje. Budući da je orijentiran na vezu, prije prijenosa podataka potrebno je uspostaviti put ili vezu. TCP koristi trosmjerni mehanizam rukovanja za uspostavljanje veze između dva uređaja. U ovom ćemo priručniku vidjeti kako funkcionira trosmjerni mehanizam rukovanja. Pogledajmo prvo probleme s dvosmjernim modelom rukovanja.
Problemi s dvosmjernim modelom rukovanja
Dvosmjerni model rukovanja nije uspio zbog starog problema s duplikatom paketa. Pretpostavimo da stari duplikat paketa stigne na poslužiteljski stroj. Ovaj stari paket stigao je iz prethodno zatvorene veze i sadrži sekvencijski broj 'z'. U neko vrijeme tijekom nove veze, poslužitelj prihvaća paket s rednim brojem 'z'. Kad primi ovaj stari paket s istim rednim brojem 'z', nesvjesno prihvaća taj stari paket i odbacuje stvarni paket s nove veze.
U gornjem slučaju, ako se veza između klijenta i poslužitelja ne odvija, dolazak starog dupliciranog paketa zahtjeva za povezivanje i dalje stvara probleme. Ako poslužitelj primi takav paket, odgovorit će mu SYN + ACK paketom. Klijent će ispustiti ovaj paket jer se nije namjeravao povezati. Ali poslužitelj će ući u stanje mrtve točke, čekajući da klijent pošalje podatke.
Drugi je problem u tome što ako domaćin C pošalje zahtjev za povezivanje poslužitelju lažnim predstavljanjem klijenta, poslužitelj će klijentu odgovoriti ACK-om. Klijent će odbaciti ovaj 'ACK' paket i reći poslužitelju da prekine vezu. Tijekom ovog intervala događaja, domaćin C može pokrenuti lažni napad slanjem puno paketa.
Trosmjerni model rukovanja u TCP / IP-u
Trosmjerni model rukovanja vrlo je važan. Ako ga ne upotrijebimo i ne počnemo izravno slati podatke, aplikacija koja prima može početi primati dvostruke pakete. Napadač može dobiti priliku za pokretanje napada (poput DDoS-a) između veze. Trosmjerni postupak rukovanja započinje jedan stroj, a druga strana reagira na njega. Sljedeća konvencija koristi se za objašnjenje ovog postupka:
„Ako web mjesto primi paket s rednim brojem 'x', odgovorit će ACK brojem 'x + 1'."
Sažeti ćemo korake izvedene u trosmjernom rukovanju između klijentskog stroja i poslužiteljskog stroja:
Korak 1. U prvom rukovanju klijent šalje paket poslužitelja SYN veze sa slučajnim početnim rednim brojem ('x') na poslužitelj.
Korak 2. U drugom rukovanju, poslužitelj odgovara SYN paketom koji ima slučajni sekvencijski broj ('y') i ACK paketom sa sekvencijskim brojem ('x + 1') da potvrdi poslani početni sekvencijski broj ('x') od strane klijenta.
3. korak. U trećem rukovanju, klijent će poslati ACK paket sa sekvencijskim brojem ('y + 1') na poslužitelj za potvrdu SYN ('y') paketa koji je poslao poslužitelj.
4. korak. Oba kraja su sada sinkronizirana i mogu započeti prijenos podataka samostalno. [1]
TCP postupak trosmjernog rukovanja i dalje vrijedi ako obje strane istodobno započnu postupak inicijalizacije. U takvoj situaciji, svaki stroj, nakon slanja paketa "SYN", primit će segment "SYN" bez potvrde. Ako stari duplikat paketa "SYN" stigne na prijamnik, prijemniku se može činiti da se istodobno odvija postupak pokretanja veze. Za uklanjanje ove dvosmislenosti možemo koristiti pakete "reset".
Prekid TCP veze
Svaka od dviju strana može prekinuti TCP vezu. U tu svrhu bilo koja strana može poslati TCP segment s postavljenim bitom FIN. To će značiti da strana koja šalje više nema podataka za slanje. Primajuća strana će prepoznati ovaj FIN paket slanjem paketa potvrde. Ovo će zatvoriti vezu s jedne strane (strane pošiljatelja). Sada će primatelj istim koracima prekinuti vezu u njegovo ime. Ovo će u potpunosti zatvoriti vezu.
Problemi s trosmjernim modelom rukovanja
U slučaju da se ACK s klijenta na poslužitelj izgubi ili blokira u trećoj fazi rukovanja, klijent neće biti svjestan ove situacije. Klijent će pretpostaviti da je veza uspostavljena i počet će slati podatke. Poslužitelj još uvijek čeka ACK, koji je već bio izgubljen, pa će odbaciti podatke primljene od klijenta. [2]
Zaključak
U ovom smo vodiču saznali o postupcima TCP povezivanja pomoću trosmjernog rukovanja. Također smo vidjeli problem dvostrukih paketa povezanih s dvosmjernim postupkom rukovanja i kako je riješen trosmjernim modelom rukovanja. Mnogi su istraživači pridonijeli raznim istraživačkim radovima za poboljšanje trosmjernog modela rukovanja i prevladavanje problema povezanih s njim.
Reference
- Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016.). TRAP: Trosmjerni poslužitelj rukovanja za uspostavljanje TCP veze. Primijenjene znanosti, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
- Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016.). TCP protokol za trosmjerno rukovanje temeljen na kvantnom zapletu. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004