TCP 3-veis håndtrykk (SYN, SYN-ACK, ACK)

⚡ Smart oppsummering

TCP 3-Way Handshake er ritualet for oppsett av forbindelse som hver TCP-økt starter med. En klient og server utveksler SYN-, SYN-ACK- og ACK-pakker for å synkronisere sekvensnumre og bekrefte at begge sider er klare før en eneste byte med applikasjonsdata sendes.

  • 📨 Kjenn de fire meldingstypene: SYN initierer, ACK bekrefter, SYN-ACK kombinerer begge, og FIN avslutter en TCP-forbindelse.
  • 🔁 Følg de tre trinnene: klient SYN → server SYN-ACK → klient ACK; økten opprettes først etter at den tredje pakken ankommer.
  • 🔢 Sekvenstallene er viktige: hver side velger et initialt sekvensnummer; den andre siden bekrefter det ved å legge til ett, noe som holder bytestrømmen ordnet.
  • 🚪 Plan for riving: Etter dataoverføring lukker TCP forbindelsen med FIN/ACK-par for å frigjøre sokkelen i begge ender.
  • 🤖 Bruk AI for pakkeanalyse: AI-assistenter forklarer Wireshark fanger opp, flagger manglende ACK-er og fremhever SYN-flom eller halvåpne forbindelser.

TCP 3-veis håndtrykk

Hva er TCP treveis håndtrykk?

Ocuco TCP treveis håndtrykk er prosedyren en klient og en server bruker på en TCP/IP-nettverk å sette opp en pålitelig forbindelse før applikasjonsdata utveksles. Som navnet tilsier, består det av tre trinn der begge sider utveksler synkroniserings- (SYN) og bekreftelses- (ACK) pakker og blir enige om de første sekvensnumrene de skal bruke.

Håndtrykket er utformet slik at begge endepunktene kan starte, forhandle og rive ned TCP-sockets symmetrisk. Når håndtrykket er fullført, er forbindelsen fulldupleks – begge sider kan sende og motta parallelt inntil en av dem utsteder en FIN for å lukke økten.

TCP-meldingstyper

Fire kontrollflagg vises gjentatte ganger under håndtrykk og nedbrytning.

Melding Tekniske beskrivelser
SYN Initierer en tilkobling og synkroniserer sekvensnumre mellom enheter.
ACK Bekrefter til den andre siden at forrige segment ble mottatt.
SYN-ACK En kombinert melding – en SYN fra den lokale enheten pluss en ACK for motpartens tidligere SYN.
END Brukes til å avslutte en forbindelse på en elegant måte.

TCP treveis håndtrykkprosess

TCP-trafikk starter alltid med et treveis håndtrykk. Klienten starter samtalen ved å be om en økt med serveren.

TCP 3-veis håndtrykkdiagram

3-veis håndtrykksdiagram.

  • Trinn 1 — SYN: Klienten sender et segment med SYN-flagget satt. Det forteller serveren «Jeg vil begynne å kommunisere» og foreslår et innledende sekvensnummer.
  • Trinn 2 — SYN-ACK: Serveren svarer med et segment der både SYN- og ACK-flagg er satt. ACK-en bekrefter klientens SYN, og SYN-en foreslår serverens eget innledende sekvensnummer.
  • Trinn 3 — KVITTERING: Klienten bekrefter serverens SYN-ACK med en siste ACK. Forbindelsen er nå opprettet, og begge sider kan starte transmitapplikasjonsdata.

Eksempler fra den virkelige verden

Eksempel på TCP 3-veis håndtrykk fra den virkelige verden

Her er et utarbeidet eksempel med konkrete sekvensnumre.

  • Vert X starter forbindelsen ved å sende en TCP SYN-pakke til serveren. Pakken har et tilfeldig initialt sekvensnummer – for eksempel, 4321 — som markerer starten på bytestrømmen som vert X vil sende.
  • Serveren mottar SYN-en og svarer med en SYN-ACK. ACK-nummeret er sekvensnummeret til vert X økt med 1 (4322), og SYN foreslår serverens eget innledende sekvensnummer.
  • Vert X svarer med en siste ACK hvis bekreftelsesnummer er serverens sekvensnummer økt med 1.

Når datautvekslingen er fullført, river TCP ned forbindelsen med en fireveis FIN/ACK-sekvens, slik at begge endepunktene kan frigjøre sokkelen uten problemer.

Hvorfor TCP trenger et treveis håndtrykk

Håndtrykket er ikke bare en formalitet – det løser tre konkrete problemer som følger med pålitelig bytestrømtransport:

  • Sekvensnummersynkronisering: begge jevnaldrende lærer det første sekvensnummeret til den andre siden, som er det TCP bruker for å oppdage tapte eller ute av rekkefølge.
  • Avtale om tilkoblingsstatus: Den tredje ACK-en bekrefter at serverens SYN-ACK har ankommet, så ingen av sidene begynner å sende data før begge er i OPPRETTET tilstand.
  • Beskyttelse mot duplikatpakker: Tilfeldige innledende sekvensnumre og tidsbestemte håndtrykkstilstander hindrer at foreldede segmenter fra en tidligere økt blir akseptert ved en feiltakelse.

Vanlige problemer med TCP-håndtrykk

Håndtrykket er robust, men det brytes ned på identifiserbare måter. Nettverksingeniører ser vanligvis ett av følgende:

  • SYN-flomangrep: En ondsinnet klient sender tusenvis av SYN-er uten å svare på SYN-ACK-er, noe som uttømmer serverens tilkoblingstabell. SYN-informasjonskapsler er standardforsvaret.
  • Halvåpne forbindelser: Når den tredje ACK-en går tapt, forblir forbindelsen halvveis åpen og blir til slutt ryddet opp av en timeout.
  • Brannmur- eller NAT-nedbrytninger midt i prosessen: Tilstandsrike mellombokser som mister tilstand kan miste SYN-ACK-pakker og la klienten prøve på nytt.
  • RST-tilbakestillinger: Hvis serveren ikke lytter på den forespurte porten, svarer den på en SYN med en RST, som avslutter forsøket umiddelbart.

Spørsmål og svar

To meldinger kan ikke bevise at begge sider var enige om de første sekvensnumrene og er klare til å sende. Den tredje ACK-en bekrefter at serverens SYN-ACK har ankommet, og sikrer at begge endepunktene når ETABLERT-tilstanden før dataflyten.

SYN er et enkelt flagg som åpner samtalen og foreslår et initialt sekvensnummer. SYN-ACK kombinerer en SYN med en bekreftelse på motpartens tidligere SYN, og fullfører synkroniseringen i én pakke.

En SYN-flom overbelaster en server ved å sende mange SYN-pakker uten å fullføre håndtrykket. Halvåpne tilkoblinger fyller backlog-køen og blokkerer legitime brukere. SYN-informasjonskapsler er standard tiltak.

TCP lukker en forbindelse med et fireveis håndtrykk av FIN- og ACK-utvekslinger. Hver retning lukkes uavhengig, noe som lar den ene siden fullføre sendingen av data selv etter at den andre siden har lukket sin halvdel.

Det første sekvensnummeret er en tilfeldig valgt 32-bits verdi som hvert endepunkt velger for sin egen bytestrøm. Det setter i gang telleren som brukes til å oppdage manglende eller dupliserte segmenter og for å forsvare seg mot forfalskede pakker.

Nei. UDP er forbindelsesløs og sender datagrammer uten håndtrykk. Det gjør det raskere og lettere enn TCP, men applikasjoner må håndtere pålitelighet, rekkefølge og kontroll av overbelastning selv.

AI-assistenter kommenterer pakkefangster, klassifiserer på nytttransmits og RST-er, og oppdager SYN-flom. De oversetter Wireshark filtrerer til vanlig engelsk og anbefaler neste diagnostiske trinn for tilkoblingsproblemer.

Ja. AI-kodingsassistenter gjør en forespørsel på vanlig engelsk om til en Python Scapy eller et netcat-skript som utløser og inspiserer treveishåndtrykket, og deretter forklarer hver linje slik at ingeniører kan gjennomgå det før de kjører det.

Oppsummer dette innlegget med: