TCP 3-smjerno rukovanje (SYN, SYN-ACK,ACK)

โšก Pametni saลพetak

TCP trosmjerno rukovanje je ritual uspostavljanja veze kojim zapoฤinje svaka TCP sesija. Klijent i posluลพitelj razmjenjuju SYN, SYN-ACK i ACK pakete kako bi sinkronizirali slijedne brojeve i potvrdili da su obje strane spremne prije slanja ijednog bajta podataka aplikacije.

  • ๐Ÿ“จ Upoznajte ฤetiri vrste poruka: SYN inicira, ACK potvrฤ‘uje, SYN-ACK kombinira oboje, a FIN prekida TCP vezu.
  • ๐Ÿ” Slijedite tri koraka: klijent SYN โ†’ posluลพitelj SYN-ACK โ†’ klijent ACK; sesija se uspostavlja tek nakon dolaska treฤ‡eg paketa.
  • ๐Ÿ”ข Redni brojevi su vaลพni: Svaka strana odabire poฤetni slijedni broj; druga strana ga potvrฤ‘uje dodavanjem jedan, ลกto odrลพava redoslijed toka bajtova.
  • ๐Ÿšช Plan za rastavljanje: Nakon prijenosa podataka, TCP zatvara vezu s FIN/ACK parovima kako bi oslobodio socket na oba kraja.
  • ๐Ÿค– Koristite umjetnu inteligenciju za analizu paketa: AI asistenti objaลกnjavaju Wireshark hvatanja, oznaฤavanje nedostajuฤ‡ih ACK-ova i oznaฤavanje SYN poplava ili poluotvorenih veza.

TCP 3-smjerno rukovanje

ล to je TCP trosmjerno rukovanje?

The TCP trosmjerno rukovanje je postupak koji klijent i posluลพitelj koriste na TCP/IP mreลพa uspostaviti pouzdanu vezu prije razmjene bilo kakvih podataka aplikacije. Kao ลกto ime govori, sastoji se od tri koraka u kojima obje strane razmjenjuju pakete sinkronizacije (SYN) i potvrde (ACK) te se dogovaraju o poฤetnim slijednim brojevima koje ฤ‡e koristiti.

Rukovanje je osmiลกljeno tako da obje krajnje toฤke mogu simetriฤno inicirati, pregovarati i prekidati TCP utiฤnice. Nakon ลกto je rukovanje zavrลกeno, veza je full-duplex - obje strane mogu slati i primati paralelno dok jedna od njih ne izda FIN za zatvaranje sesije.

Vrste TCP poruka

ฤŒetiri kontrolne zastavice se ponavljaju tijekom rukovanja i rastavljanja.

Poruka Description
SYN Inicira vezu i sinkronizira slijedne brojeve izmeฤ‘u ureฤ‘aja.
ACK Potvrฤ‘uje drugoj strani da je prethodni segment primljen.
SYN-ACK Kombinirana poruka โ€” SYN s lokalnog ureฤ‘aja plus ACK ranijeg SYN-a peer-a.
FIN Koristi se za graciozan prekid veze.

TCP trosmjerni postupak rukovanja

TCP promet uvijek zapoฤinje trostrukim rukovanjem. Klijent zapoฤinje razgovor zahtjevom za sesiju s posluลพiteljem.

Dijagram trosmjernog TCP rukovanja

Dijagram rukovanja u 3 smjera.

  • Korak 1 โ€” SYN: Klijent ลกalje segment s postavljenom SYN zastavicom. Posluลพitelju govori โ€žลฝelim zapoฤeti komunikacijuโ€œ i predlaลพe poฤetni slijedni broj.
  • Korak 2 โ€” SYN-ACK: Posluลพitelj odgovara segmentom u kojem su postavljene i SYN i ACK zastavice. ACK potvrฤ‘uje SYN klijenta, a SYN predlaลพe posluลพiteljev vlastiti poฤetni slijedni broj.
  • Korak 3 โ€” POTVRDA: Klijent potvrฤ‘uje SYN-ACK posluลพitelja konaฤnim ACK-om. Veza je sada uspostavljena i obje strane mogu zapoฤeti transmitpodaci aplikacije.

Primjer iz stvarnog svijeta

Primjer iz stvarnog svijeta za trostruko rukovanje putem TCP-a

Evo obraฤ‘enog primjera s konkretnim slijednim brojevima.

  • Host X zapoฤinje vezu slanjem TCP SYN paketa posluลพitelju. Paket nosi sluฤajni poฤetni slijedni broj - na primjer, 4321 โ€” ลกto oznaฤava poฤetak toka bajtova koji ฤ‡e Host X poslati.
  • Posluลพitelj prima SYN i odgovara sa SYN-ACK. ACK broj je slijedni broj hosta X uveฤ‡an za 1 (4322), a SYN predlaลพe vlastiti poฤetni slijedni broj posluลพitelja.
  • Host X odgovara s konaฤnim ACK-om ฤiji je broj potvrde redni broj posluลพitelja uveฤ‡an za 1.

Nakon ลกto je razmjena podataka zavrลกena, TCP prekida vezu ฤetverosmjernim FIN/ACK nizom kako bi obje krajnje toฤke mogle ฤisto osloboditi socket.

Zaลกto TCP-u treba trostrano rukovanje

Rukovanje nije samo formalnost - ono rjeลกava tri konkretna problema koja dolaze s pouzdanim prijenosom bajtnog toka:

  • Sinkronizacija slijednih brojeva: Oba peer-a uฤe poฤetni slijedni broj druge strane, ลกto TCP koristi za otkrivanje izgubljenih ili segmenata izvan redoslijeda.
  • Ugovor o stanju veze: Treฤ‡i ACK potvrฤ‘uje da je SYN-ACK posluลพitelja stigao, tako da nijedna strana ne poฤinje slati podatke dok obje ne budu u USTANOVLJENO stanje.
  • Zaลกtita od dupliciranih paketa: Sluฤajni poฤetni slijedni brojevi i vremenski ograniฤena stanja rukovanja sprjeฤavaju da se zastarjeli segmenti iz prethodne sesije prihvate greลกkom.

Uobiฤajeni problemi s TCP rukovanjem

Rukovanje je robusno, ali se raspada na prepoznatljive naฤine. Mreลพni inลพenjeri obiฤno vide jedno od sljedeฤ‡eg:

  • SYN poplavni napadi: Zlonamjerni klijent ลกalje tisuฤ‡e SYN-ova bez odgovaranja na SYN-ACK-ove, iscrpljujuฤ‡i tablicu povezivanja posluลพitelja. SYN kolaฤiฤ‡i su standardna obrana.
  • Poluotvoreni prikljuฤci: Kada se izgubi treฤ‡i ACK, veza ostaje poluotvorena i na kraju se prekida zbog isteka vremena.
  • Padovi zaลกtitnog zida ili NAT-a tijekom leta: Middleboxovi sa stanjem koji gube stanje mogu odbaciti SYN-ACK pakete i natjerati klijenta da ponovno pokuลกa.
  • RST resetiranja: Ako posluลพitelj ne osluลกkuje na traลพenom portu, odgovara SYN-u s RST-om, ลกto odmah zatvara pokuลกaj.

Pitanja i odgovori

Dvije poruke ne mogu dokazati da su se obje strane sloลพile oko poฤetnih slijednih brojeva i da su spremne za slanje. Treฤ‡a ACK poruka potvrฤ‘uje da je SYN-ACK primljen od posluลพitelja, osiguravajuฤ‡i da obje krajnje toฤke dosegnu stanje ESTABLISHED prije nego ลกto podaci poฤnu teฤ‡i.

SYN je jedna zastavica koja otvara razgovor i predlaลพe poฤetni slijedni broj. SYN-ACK kombinira SYN s potvrdom ranijeg SYN-a peer-a, dovrลกavajuฤ‡i sinkronizaciju u jednom paketu.

SYN poplava preoptereฤ‡uje posluลพitelj slanjem mnogo SYN paketa bez dovrลกavanja rukovanja. Poluotvorene veze popunjavaju red ฤekanja i blokiraju legitimne korisnike. SYN kolaฤiฤ‡i su standardno ublaลพavanje.

TCP zatvara vezu ฤetverosmjernim rukovanjem FIN i ACK izmjenama. Svaki smjer se zatvara neovisno, ลกto omoguฤ‡uje jednoj strani da zavrลกi slanje podataka ฤak i nakon ลกto je druga strana zatvorila svoju polovicu.

Poฤetni slijedni broj je nasumiฤno odabrana 32-bitna vrijednost koju svaka krajnja toฤka odabire za vlastiti tok bajtova. On postavlja brojaฤ koji se koristi za otkrivanje nedostajuฤ‡ih ili dupliciranih segmenata i za obranu od laลพnih paketa.

Ne. UDP ne koristi usmjeravanje veze i ลกalje datagrame bez ikakvog rukovanja. To ga ฤini brลพim i lakลกim od TCP-a, ali aplikacije moraju same upravljati pouzdanoลกฤ‡u, redoslijedom i kontrolom zaguลกenja.

AI asistenti oznaฤavaju snimljene pakete i klasificiraju ihtransmits i RST-ove te otkrivaju SYN poplave. Oni prevode Wireshark filtrira na jednostavan engleski i preporuฤuje sljedeฤ‡i dijagnostiฤki korak za probleme s povezivanjem.

Da. Pomoฤ‡nici za kodiranje umjetnom inteligencijom pretvaraju zahtjev na obiฤnom engleskom jeziku u Python Scapy ili netcat skriptu koja pokreฤ‡e i pregledava trostrano rukovanje, a zatim objaลกnjava svaki redak kako bi ga inลพenjeri mogli pregledati prije pokretanja.

Saลพmite ovu objavu uz: