TCP kolmesuunaline käepigistus (SYN, SYN-ACK, ACK)

⚡ Nutikas kokkuvõte

TCP 3-suunaline käepigistus on ühenduse loomise rituaal, millega iga TCP seanss algab. Klient ja server vahetavad SYN-, SYN-ACK- ja ACK-pakette, et sünkroniseerida järjekorranumbreid ja kinnitada mõlema poole valmisolekut enne ühegi rakendusandmete baidi saatmist.

  • 📨 Tea nelja sõnumitüüpi: SYN initsialiseerib, ACK kinnitab, SYN-ACK ühendab mõlemad ja FIN lõpetab TCP-ühenduse.
  • 🔁 Järgige kolme sammu: klient SYN → server SYN-ACK → klient ACK; seanss luuakse alles pärast kolmanda paketi saabumist.
  • 🔢 Järjekorranumbrid on olulised: kumbki pool valib esialgse järjekorranumbri; teine ​​pool kinnitab seda uue lisamisega, mis hoiab baidivoo korrastatuna.
  • 🚪 Demonteerimise plaan: Pärast andmeedastust sulgeb TCP ühenduse FIN/ACK paaridega, et vabastada sokkel mõlemast otsast.
  • 🤖 Kasutage pakettide analüüsimiseks tehisintellekti: Tehisintellekti assistendid selgitavad Wireshark jäädvustused, puuduvad ACK-id ja SYN-i üleujutused või pooleldi avatud ühendused.

TCP 3-Way käepigistus

Mis on TCP kolmepoolne käepigistus?

. TCP kolmesuunaline käepigistus on protseduur, mida klient ja server kasutavad TCP/IP võrk usaldusväärse ühenduse loomiseks enne mis tahes rakendusandmete vahetamist. Nagu nimigi ütleb, koosneb see kolmest etapist, mille käigus mõlemad pooled vahetavad sünkroniseerimis- (SYN) ja kinnitus- (ACK) pakette ning lepivad kokku esialgsed järjekorranumbrid, mida nad kasutavad.

Käepigistus on loodud nii, et mõlemad lõpp-punktid saavad TCP-socketeid sümmeetriliselt algatada, läbi rääkida ja lahti harutada. Kui käepigistus on lõppenud, on ühendus täisdupleks – mõlemad pooled saavad paralleelselt saata ja vastu võtta, kuni kumbki väljastab seansi sulgemiseks FIN-käsu.

TCP sõnumitüübid

Käepigistuse ja mahavõtmise ajal ilmub korduvalt neli kontrolllippu.

Jäta sõnum Kirjeldus
SYN Algatab ühenduse ja sünkroniseerib seadmete vahel järjekorranumbreid.
ACK Kinnitab teisele poolele eelmise segmendi vastuvõtmist.
SYN-ACK Kombineeritud teade – kohaliku seadme SYN ja partneri varasema SYN-i ACK.
FIN Kasutatakse ühenduse korrektseks lõpetamiseks.

TCP kolmesuunaline käepigistuse protsess

TCP liiklus algab alati kolmepoolse käepigistusega. Klient alustab vestlust, taotledes serveriga seanssi.

TCP 3-suunalise käepigistuse diagramm

3-suunalise käepigistuse diagramm.

  • 1. samm – SYN: Klient saadab segmendi, millel on SYN-lipp. See ütleb serverile: "Soovin alustada suhtlemist" ja pakub välja esialgse järjekorranumbri.
  • 2. samm – SYN-ACK: Server vastab segmendiga, milles on seatud nii SYN- kui ka ACK-lipud. ACK kinnitab kliendi SYN-i ja SYN pakub välja serveri enda esialgse järjekorranumbri.
  • 3. samm – ACK: Klient kinnitab serveri SYN-ACK-i viimase ACK-iga. Ühendus on nüüd loodud ja mõlemad pooled saavad alustada. transmitrakenduse andmete haldamine.

Näide tegelikust maailmast

TCP 3-suunalise käepigistuse reaalse maailma näide

Siin on toimiv näide konkreetsete järjekorranumbritega.

  • Host X alustab ühendust, saates serverile TCP SYN-paketi. Paketil on juhuslik esialgne järjekorranumber – näiteks 4321 — mis tähistab baitvoo algust, mille host X saadab.
  • Server võtab vastu SYN-i ja vastab SYN-ACK-iga. ACK-number on hosti X järjekorranumber, mida suurendatakse ühe võrra (4322) ja SYN pakub välja serveri enda esialgse järjekorranumbri.
  • Host X vastab lõpliku ACK-iga, mille kinnitusnumber on serveri järjekorranumber, mida suurendatakse ühe võrra.

Kui andmevahetus on lõppenud, katkestab TCP ühenduse neljapoolse FIN/ACK-jadaga, et mõlemad lõpp-punktid saaksid sokli puhtalt vabastada.

Miks TCP vajab kolmepoolset käepigistust?

Käepigistus pole pelgalt formaalsus – see lahendab kolm konkreetset probleemi, mis kaasnevad usaldusväärse baidivoo transpordiga:

  • Järjekorranumbri sünkroniseerimine: mõlemad pooled õpivad teise poole esialgse järjekorranumbri, mida TCP kasutab kadunud või vales järjekorras segmentide tuvastamiseks.
  • Ühenduse ja oleku leping: kolmas ACK kinnitab serveri SYN-ACK saabumist, seega kumbki pool ei hakka andmeid saatma enne, kui mõlemad on ühenduspunktis. LOODUD riik.
  • Duplikaatpakettide kaitse: Juhuslikud esialgsed järjekorranumbrid ja ajastatud käepigistuse olekud takistavad eelmisest seansist pärit aegunud segmentide ekslikku aktsepteerimist.

TCP käepigistusega seotud levinud probleemid

Käepigistus on küll tugev, aga sellel on mitmeid äratuntavaid häireid. Võrguinsenerid näevad tavaliselt ühte järgmistest:

  • SYN-i üleujutusrünnakud: Pahatahtlik klient saadab tuhandeid SYN-e ilma SYN-ACK-idele vastamata, ammendades serveri ühenduste tabeli. SYN-küpsised on standardne kaitse.
  • Poolavatud ühendused: Kui kolmas ACK kaob, jääb ühendus pooleldi avatuks ja lõpuks puhastatakse see ajalõpu tõttu.
  • Tulemüüri või NAT-i keset lendu esinevad tõrked: Oleku kaotavad keskkastid võivad kaotada SYN-ACK pakette ja panna kliendi uuesti proovima.
  • RST lähtestused: Kui server ei kuula taotletud porti, vastab see SYN-ile RST-ga, mis lõpetab katse kohe.

KKK

Kaks sõnumit ei suuda tõestada, et mõlemad pooled on esialgsete järjekorranumbrite osas kokku leppinud ja saatmiseks valmis. Kolmas ACK kinnitab serveri SYN-ACK saabumist, tagades, et mõlemad lõpp-punktid jõuavad enne andmevoogude algust ESTABLISHED olekusse.

SYN on üks lipp, mis avab vestluse ja pakub välja esialgse järjekorranumbri. SYN-ACK ühendab SYN-i partneri varasema SYN-i kinnitusega, viies sünkroniseerimise lõpule ühe paketiga.

SYN-uputus koormab serverit üle, saates palju SYN-pakette ilma käepigistust lõpetamata. Poolavatud ühendused täidavad ootejärjekorra ja blokeerivad õigustatud kasutajad. SYN-küpsised on standardne leevendusmeetod.

TCP sulgeb ühenduse neljapoolse käepigistusega, mis koosneb FIN ja ACK vahetustest. Mõlemad suunad suletakse eraldi, mis võimaldab ühel poolel andmete saatmise lõpetada ka pärast seda, kui teine ​​pool on oma poole sulgenud.

Esialgne järjekorranumber on juhuslikult valitud 32-bitine väärtus, mille iga lõpp-punkt valib oma baidivoo jaoks. See annab sisendi loendurile, mida kasutatakse puuduvate või dubleeritud segmentide tuvastamiseks ja võltsitud pakettide eest kaitsmiseks.

Ei. UDP on ühenduseta ja saadab datagramme ilma käepigistuseta. See teeb selle kiiremaks ja kergemaks kui TCP, kuid rakendused peavad ise tegelema töökindluse, järjestuse ja ummikute juhtimisega.

Tehisintellekti assistendid märgistavad pakettide jäädvustusi, klassifitseerivad retransmits ja RST-d ning tuvastavad SYN-üleujutusi. Nad tõlgivad Wireshark filtreerib lihtsasse inglise keelde ja soovitab ühenduvusprobleemide korral järgmist diagnostikatoimingut.

Jah. Tehisintellektiga kodeerimisassistendid muudavad lihtsa ingliskeelse päringu Python Scapy või netcati skript, mis käivitab ja kontrollib kolmepoolset käepigistust, ning seejärel selgitab iga rida, et insenerid saaksid selle enne käivitamist üle vaadata.

Võta see postitus kokku järgmiselt: