Netværk

Hvad er trinnene i et TCP-håndtryk?

Hvad er trinnene i et TCP-håndtryk?

TCP eller Transmission Control Protocol er en standard transportlagsprotokol, som internettet bruger til at overføre data. Anmodning om kommentarer (RFC) 793 definerer TCP som en pålidelig og forbindelsesorienteret protokol. Da det er forbindelsesorienteret, skal der oprettes en sti eller forbindelse, før data overføres. TCP bruger en trevejs håndtryksmekanisme til at etablere en forbindelse mellem to enheder. I denne vejledning vil vi se, hvordan trevejshåndtryksmekanismen fungerer. Lad os først se problemerne med den tovejs håndtryksmodel.

Problemer med Two Way Handshake Model

Tovejs-håndtryksmodellen mislykkedes på grund af et gammelt duplikatpakkeproblem. Antag, at en gammel duplikatpakke ankommer til servermaskinen. Denne gamle pakke er ankommet fra en tidligere lukket forbindelse og indeholder sekvensnummeret 'z'. På et eller andet tidspunkt under den nye forbindelse accepterer serveren en pakke med sekvensnummeret 'z'. Når den modtager denne gamle pakke med det samme sekvensnummer 'z', accepterer den ubevidst denne gamle pakke og kasserer den faktiske pakke fra den nye forbindelse.

I ovennævnte tilfælde, hvis en forbindelse ikke foregår mellem klient og server, forårsager ankomsten af ​​en gammel duplikatforbindelsesanmodningspakke stadig problemer. Hvis serveren modtager en sådan pakke, svarer den tilbage med en SYN + ACK-pakke. Denne pakke slettes af klienten, fordi den ikke havde til hensigt at oprette forbindelse. Men serveren går ind i blokeringstilstanden og venter på, at klienten sender dataene.

Et andet problem er, at hvis en vært C sender en forbindelsesanmodning til serveren ved at efterligne klienten, vil serveren svare tilbage med en ACK til klienten. Klienten vil kassere denne 'ACK' pakke og bede serveren om at afslutte forbindelsen. I løbet af dette hændelsesinterval kan vært C starte et spoofing-angreb ved at sende mange pakker.

Trevejs-håndskakemodellen i TCP / IP

Trevejs-håndtryksmodellen er meget vigtig. Hvis vi ikke bruger det og begynder direkte at sende data, kan den modtagende applikation muligvis begynde at modtage duplikatpakker. Angriberen kan få en chance for at starte angreb (som DDoS) imellem en forbindelse. Trevejs-håndtrykproceduren startes af en maskine, og den anden side reagerer på den. Følgende konvention bruges til at forklare denne procedure:

“Hvis et websted modtager en pakke med sekvensnummer 'x', svarer det med ACK-nummer 'x + 1'.”

Lad os opsummere de trin, der udføres i trevejshåndtrykket mellem en klientmaskine og en servermaskine:

Trin 1. I det første håndtryk sender klienten en SYN-forbindelsesanmodningspakke med et tilfældigt indledende sekvensnummer ('x') til serveren.

Trin 2. I det andet håndtryk svarer serveren med en SYN-pakke, der har et tilfældigt sekvensnummer ('y') og en ACK-pakke med et sekvensnummer ('x + 1') for at anerkende det oprindelige sekvensnummer ('x') sendt af klienten.

Trin 3. I det tredje håndtryk sender klienten en ACK-pakke med et sekvensnummer ('y + 1') til serveren for at kvittere for SYN ('y') -pakken sendt af serveren.

Trin 4. Begge ender er synkroniseret nu og kan begynde at transmittere data uafhængigt. [1]

TCP-trevejshåndtryksproceduren er stadig gyldig, hvis begge sider samtidigt starter initialiseringsprocessen. I en sådan situation vil hver maskine, efter at have sendt en "SYN" -pakke, modtage et "SYN" -segment uden bekræftelse. Hvis en gammel dublet ”SYN” -pakke ankommer til modtageren, kan det forekomme for modtageren, at en forbindelsesinitieringsproces foregår på samme tid. Vi kan bruge "nulstil" -pakkerne til at fjerne denne tvetydighed.

Afslutning af TCP-forbindelse

En af de to sider kan afslutte en TCP-forbindelse. Til dette kan enhver side sende et TCP-segment med FIN-bit-sæt. Dette vil betyde, at den afsendende side ikke har flere data at sende. Den modtagende side anerkender denne FIN-pakke ved at sende en kvitteringspakke. Dette lukker forbindelsen fra den ene side (afsenderens side). Nu vil modtageren bruge de samme trin til at afslutte forbindelsen på hans vegne. Dette lukker forbindelsen helt.

Problemer med trevejs-håndtryksmodellen

Hvis en ACK fra klient til server går tabt eller blokeres i det tredje håndtryksfase, vil klienten ikke være opmærksom på denne situation. Klienten antager, at forbindelsen er oprettet, og vil begynde at sende data. Serveren venter stadig på ACK, som allerede var mistet, så den vil kassere de data, der modtages fra klienten. [2]

Konklusion

I denne vejledning har vi lært om TCP-forbindelsesprocedurer ved hjælp af et trevejshåndtryk. Vi har også set problemet med duplikatpakker, der er forbundet med tovejs-håndtrykproceduren, og hvordan det blev løst med en trevejs-håndtryksmodel. Mange forskere har bidraget med forskellige forskningsopgaver til forbedring af trevejs-håndtryksmodellen og overvinde de problemer, der er forbundet med den.

Referencer

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: En trevejshåndtryksserver til etablering af TCP-forbindelse. Anvendt videnskab, 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 baseret på Quantum Entanglement. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004
Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...