Nettverk

Hva er trinnene i et TCP-håndtrykk?

Hva er trinnene i et TCP-håndtrykk?

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

  1. 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
  1. 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
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...