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
- 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
- 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