Nätverk

Vilka är stegen i ett TCP-handslag?

Vilka är stegen i ett TCP-handslag?

TCP eller Transmission Control Protocol är ett standard transportlagerprotokoll som internet använder för att överföra data. Begäran om kommentarer (RFC) 793 definierar TCP som ett tillförlitligt och anslutningsorienterat protokoll. Eftersom det är anslutningsorienterat måste en sökväg eller anslutning upprättas innan data överförs. TCP använder en trevägs handskakningsmekanism för att upprätta en anslutning mellan två enheter. I den här guiden kommer vi att se hur trevägs handskakningsmekanismen fungerar. Låt oss först se problemen med tvåvägshandskakningsmodellen.

Problem med tvåvägshandskakningsmodellen

Tvåvägshandskakningsmodellen misslyckades på grund av ett gammalt duplikatpaketproblem. Antag att ett gammalt duplikatpaket anländer till servermaskinen. Detta gamla paket har kommit från en tidigare stängd anslutning och innehåller sekvensnummer 'z'. Någon gång under den nya anslutningen accepterar servern ett paket med sekvensnummer 'z'. När den tar emot detta gamla paket med samma sekvensnummer 'z' accepterar det omedvetet detta gamla paket och kasserar det faktiska paketet från den nya anslutningen.

I ovanstående fall, om en anslutning inte pågår mellan klient och server, orsakar ankomsten av ett gammalt duplikatanslutningsförfråganpaket fortfarande problem. Om servern tar emot ett sådant paket svarar det tillbaka med ett SYN + ACK-paket. Detta paket kommer att släppas av klienten eftersom det inte tänkte ansluta. Men servern kommer in i dödläge och väntar på att klienten ska skicka data.

Ett annat problem är att om en värd C skickar en anslutningsförfrågan till servern genom att utge sig av klienten, kommer servern att svara tillbaka med en ACK till klienten. Klienten kommer att kasta detta "ACK" -paket och be servern att avsluta anslutningen. Under detta händelseintervall kan värd C starta en falsk attack genom att skicka massor av paket.

Trevägs handskakningsmodellen i TCP / IP

Trevägs handskakningsmodellen är mycket viktig. Om vi ​​inte använder det och direkt skickar data kan den mottagande applikationen börja ta emot dubbla paket. Angriparen kan få en chans att starta attacker (som DDoS) mellan en anslutning. Trevägs handskakningsproceduren startas av en maskin och den andra sidan svarar på den. Följande konvention används för att förklara denna procedur:

“Om en webbplats tar emot ett paket med sekvensnummer 'x' svarar det med ACK-nummer 'x + 1'.”

Låt oss sammanfatta stegen som utförs i trevägshandskakningen mellan en klientmaskin och en servermaskin:

Steg 1. I det första handskakningen skickar klienten ett SYN-anslutningsförfråganpaket med ett slumpmässigt initialt sekvensnummer ('x') till servern.

Steg 2. I det andra handskakningen svarar servern med ett SYN-paket som har ett slumpmässigt sekvensnummer ('y') och ett ACK-paket med ett sekvensnummer ('x + 1') för att bekräfta det initiala sekvensnumret ('x') som skickats av klienten.

Steg 3. I det tredje handskakningen kommer klienten att skicka ett ACK-paket med ett sekvensnummer ('y + 1') till servern för att bekräfta SYN ('y') -paketet som skickas av servern.

Steg 4. Båda ändarna synkroniseras nu och kan börja sända data oberoende. [1]

TCP-trevägshandskakningsproceduren är fortfarande giltig om båda sidor startar initieringsprocessen samtidigt. I en sådan situation får varje maskin, efter att ha skickat ett "SYN" -paket, ett "SYN" -segment utan bekräftelse. Om ett gammalt duplikat ”SYN” -paket anländer till mottagaren kan det verka för mottagaren att en anslutningsinitieringsprocess pågår samtidigt. Vi kan använda "återställ" paketen för att ta bort denna tvetydighet.

TCP-anslutningsterminering

Endera av de två sidorna kan avsluta en TCP-anslutning. För detta kan vilken sida som helst sända ett TCP-segment med FIN-bituppsättningen. Det betyder att den sändande sidan inte har mer information att skicka. Den mottagande sidan kommer att bekräfta detta FIN-paket genom att skicka ett bekräftelsepaket. Detta stänger anslutningen från en sida (avsändarens sida). Nu kommer mottagaren att använda samma steg för att avsluta anslutningen för hans räkning. Detta stänger anslutningen helt.

Problem med trevägsmodellen

Om en ACK från klient till server går förlorad eller blockeras i det tredje handskakningssteget kommer klienten inte att vara medveten om denna situation. Klienten antar att anslutningen är upprättad och kommer att börja skicka data. Servern väntar fortfarande på ACK, som redan har gått förlorad, så den kommer att kasta data som tas emot från klienten. [2]

Slutsats

I den här guiden har vi lärt oss om TCP-anslutningsprocedurer med en trevägs handskakning. Vi har också sett problemet med dubbla paket associerade med tvåvägs handskakningsproceduren och hur det löstes med en trevägs handskakningsmodell. Många forskare har bidragit med olika forskningsdokument för att förbättra trevägs handskakningsmodellen och övervinna problemen i samband med den.

Referenser

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: En trevägs handskakningsserver för etablering av TCP-anslutning. Tillämpad vetenskap, 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 baserat på Quantum Entanglement. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...