TCP eller Transmission Control Protocol er en standard transportlagsprotokoll som internett bruker til å overføre data. Request For Comments (RFC) 793 definerer TCP som en pålitelig og tilkoblingsorientert protokoll. Siden det er tilkoblingsorientert, må en sti eller forbindelse opprettes før data overføres. TCP bruker en treveis håndtrykkingsmekanisme for å opprette en forbindelse mellom to enheter. I denne guiden vil vi se hvordan treveis håndtrykkmekanismen fungerer. La oss først se problemene med toveis håndtrykkmodellen.
Problemer med Two Way Handshake Model
Toveis håndtrykksmodellen mislyktes på grunn av et gammelt duplikatpakkeproblem. Anta at en gammel duplikatpakke ankommer servermaskinen. Denne gamle pakken har kommet fra en tidligere lukket forbindelse og inneholder sekvensnummeret 'z'. Noen gang under den nye tilkoblingen, aksepterer serveren en pakke med sekvensnummeret 'z'. Når den mottar denne gamle pakken med samme sekvensnummer 'z', godtar den uvitende denne gamle pakken og forkaster den faktiske pakken fra den nye forbindelsen.
I det ovennevnte tilfellet, hvis det ikke foregår en forbindelse mellom klient og server, vil fremdeles problemer med ankomsten av en gammel duplikatforespørselspakke. Hvis serveren mottar en slik pakke, vil den svare tilbake med en SYN + ACK-pakke. Denne pakken vil bli sluppet av klienten fordi den ikke hadde tenkt å koble til. Men serveren vil gå inn i fastlåst tilstand og vente på at klienten skal sende dataene.
Et annet problem er at hvis en vert C sender en tilkoblingsforespørsel til serveren ved å utgi seg for klienten, vil serveren svare tilbake med en ACK til klienten. Klienten vil forkaste denne ACK-pakken og be serveren om å avslutte tilkoblingen. I løpet av dette intervallet av hendelser kan vert C starte et spoofing-angrep ved å sende mange pakker.
Treveis håndshake-modellen i TCP / IP
Treveis håndtrykkmodellen er veldig viktig. Hvis vi ikke bruker det og begynner å sende data direkte, kan det mottakende programmet begynne å motta dupliserte pakker. Angriperen kan få sjansen til å sette i gang angrep (som DDoS) mellom en forbindelse. Treveis håndtrykkprosedyren startes av en maskin, og den andre siden reagerer på den. Følgende konvensjon brukes til å forklare denne prosedyren:
“Hvis et nettsted mottar en pakke med sekvensnummer 'x', vil det svare med ACK-nummer 'x + 1'.”
La oss oppsummere trinnene som er utført i treveis håndtrykk mellom en klientmaskin og en servermaskin:
Trinn 1. I det første håndtrykket sender klienten en SYN-tilkoblingspakke med et tilfeldig initialt sekvensnummer ('x') til serveren.
Steg 2. I det andre håndtrykket svarer serveren med en SYN-pakke som har et tilfeldig sekvensnummer ('y') og en ACK-pakke med et sekvensnummer ('x + 1') for å bekrefte det opprinnelige sekvensnummeret ('x') sendt av klienten.
Trinn 3. I det tredje håndtrykket vil klienten sende en ACK-pakke med et sekvensnummer ('y + 1') til serveren for å bekrefte SYN ('y') -pakken sendt av serveren.
Trinn 4. Begge ender er synkronisert nå og kan begynne å overføre data uavhengig. [1]
TCP-treveis håndtrykkprosedyren er fortsatt gyldig hvis begge sider starter initialiseringsprosessen samtidig. I en slik situasjon vil hver maskin, etter å ha sendt en "SYN" -pakke, motta et "SYN" -segment uten bekreftelse. Hvis en gammel duplikat “SYN” -pakke ankommer mottakeren, kan det virke for mottakeren at en tilkoblingsinitieringsprosess pågår samtidig. Vi kan bruke "reset" -pakker for å fjerne denne tvetydigheten.
TCP-tilkoblingsavslutning
En av de to sidene kan avslutte en TCP-forbindelse. For dette kan enhver side overføre et TCP-segment med FIN-bitsettet. Dette vil bety at sendersiden ikke har flere data å sende. Mottaksiden vil bekrefte denne FIN-pakken ved å sende en bekreftelsespakke. Dette lukker forbindelsen fra den ene siden (avsendersiden). Nå vil mottakeren bruke de samme trinnene for å avslutte forbindelsen på hans vegne. Dette vil lukke forbindelsen helt.
Problemer med treveis håndtrykkmodellen
Hvis en ACK fra klient til server går tapt eller blokkeres i det tredje håndtrykkingsfasen, vil klienten ikke være klar over denne situasjonen. Klienten vil anta at forbindelsen er opprettet og vil begynne å sende data. Serveren venter fortsatt på ACK, som allerede var tapt, så den vil forkaste dataene som mottas fra klienten. [2]
Konklusjon
I denne guiden har vi lært om TCP-tilkoblingsprosedyrer ved hjelp av et treveis håndtrykk. Vi har også sett problemet med duplikatpakker tilknyttet toveis håndtrykkprosedyren og hvordan det ble løst med en treveis håndtrykkmodell. Mange forskere har bidratt med ulike forskningsartikler for å forbedre treveis håndtrykkmodellen og overvinne problemene knyttet til den.
Referanser
- Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: En treveis håndtrykkserver for etablering av TCP-tilkobling. Anvendt vitenskap, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
- Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP Three-Way Handshake Protocol basert på Quantum Entanglement. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004