TCP 3-vägs handskakning (SYN, SYN-ACK, ACK)
⚡ Smart sammanfattning
TCP 3-Way Handshake är den anslutningsupprättningsritual som varje TCP-session börjar med. En klient och server utbyter SYN-, SYN-ACK- och ACK-paket för att synkronisera sekvensnummer och bekräfta att båda sidor är redo innan en enda byte av applikationsdata skickas.

Vad är TCP trevägshandskakning?
Ocuco-landskapet TCP trevägshandslag är den procedur som en klient och en server använder på en TCP/IP-nätverk att upprätta en tillförlitlig anslutning innan någon applikationsdata utbyts. Som namnet antyder består det av tre steg där båda sidor utbyter synkroniserings- (SYN) och bekräftelse- (ACK) paket och kommer överens om de initiala sekvensnumren de ska använda.
Handskakningen är utformad så att båda slutpunkterna kan initiera, förhandla och riva ner TCP-sockets symmetriskt. När handskakningen är klar är anslutningen fullduplex – båda sidor kan skicka och ta emot parallellt tills endera av dem utfärdar en FIN för att avsluta sessionen.
TCP-meddelandetyper
Fyra kontrollflaggor visas upprepade gånger under handskakningen och nedmonteringen.
| Meddelande | BESKRIVNING |
|---|---|
| SYN | Initierar en anslutning och synkroniserar sekvensnummer mellan enheter. |
| ACK | Bekräftar för den andra sidan att föregående segment mottogs. |
| SYN-ACK | Ett kombinerat meddelande — en SYN från den lokala enheten plus en ACK för motpartens tidigare SYN. |
| FIN | Används för att avsluta en anslutning på ett smidigt sätt. |
TCP trevägs handskakningsprocess
TCP-trafik börjar alltid med en trevägs handskakning. Klienten initierar konversationen genom att begära en session med servern.
3-vägs handskakningsdiagram.
- Steg 1 — SYN: Klienten skickar ett segment med SYN-flaggan satt. Det talar om för servern "Jag vill börja kommunicera" och föreslår ett initialt sekvensnummer.
- Steg 2 — SYN-ACK: Servern svarar med ett segment där både SYN- och ACK-flaggor är inställda. ACK:n bekräftar klientens SYN, och SYN föreslår serverns eget initiala sekvensnummer.
- Steg 3 — Kvitto: Klienten bekräftar serverns SYN-ACK med en sista ACK. Anslutningen är nu upprättad och båda sidor kan börja transmitapplikationsdata.
Exempel från verkliga världen
Här är ett fungerande exempel med konkreta sekvensnummer.
- Värd X startar anslutningen genom att skicka ett TCP SYN-paket till servern. Paketet har ett slumpmässigt initialt sekvensnummer — till exempel,
4321— det markerar början på byteströmmen som värd X skickar. - Servern tar emot SYN och svarar med ett SYN-ACK. ACK-numret är värd X:s sekvensnummer ökat med 1 (
4322), och SYN föreslår serverns eget initiala sekvensnummer. - Värd X svarar med en slutlig ACK vars bekräftelsenummer är serverns sekvensnummer ökat med 1.
När datautbytet är klart, avbryter TCP anslutningen med en fyrvägs FIN/ACK-sekvens så att båda slutpunkterna kan frigöra socketen utan problem.
Varför TCP behöver en trevägshandskakning
Handskakningen är inte bara en formalitet – den löser tre konkreta problem som följer med pålitlig byteströmstransport:
- Sekvensnummersynkronisering: båda peer-partnerna lär sig det ursprungliga sekvensnumret för den andra sidan, vilket är vad TCP använder för att upptäcka förlorade eller felaktiga segment.
- Avtal om anslutningsstatus: Den tredje ACK:n bekräftar att serverns SYN-ACK har kommit fram, så ingen av sidorna börjar skicka data förrän båda är i ETABLERADE tillstånd.
- Skydd mot duplicerade paket: slumpmässiga initiala sekvensnummer och tidsinställda handskakningstillstånd förhindrar att inaktuella segment från en tidigare session accepteras av misstag.
Vanliga problem med TCP-handskakningen
Handskakningen är robust men den bryts ner på identifierbara sätt. Nätverksingenjörer ser vanligtvis något av följande:
- SYN-översvämningsattacker: En skadlig klient skickar tusentals SYN-meddelanden utan att svara på SYN-ACK-meddelanden, vilket uttömmer serverns anslutningstabell. SYN-cookies är standardförsvaret.
- Halvöppna anslutningar: När den tredje ACK:en bryts kvarstår anslutningen halvöppen och rensas så småningom upp av en timeout.
- Brandvägg eller NAT-nedsläpp mitt i flygningen: Tillståndskänsliga mellanboxar som förlorar tillstånd kan tappa SYN-ACK-paket och få klienten att försöka igen.
- RST-återställningar: Om servern inte lyssnar på den begärda porten besvarar den ett SYN med en RST, vilket avslutar försöket omedelbart.


