TCP

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
TCP sesijos pradžia: vartotojas ir serveris apsikeičia SYN, SYN-ACK ir ACK signalais, sukurdami TCP jungtį.

TCP (angl. Transmission Control Protocol) – tai vienas iš pagrindinių protokolų, esančių Internetinių protokolų rinkinyje (angl. Internet protocol suite). TCP yra tarpinis lygis tarp IP ir aplikacijos bei priklauso transportavimo lygmeniui, pagal OSI kompiuterinių tinklų modelį. Naudodamos šį protokolą, aplikacijos gali sukurti jungtis tarp viena kitos ir dalintis duomenimis. Priešingai nei UDP, šis protokolas užtikrina patikimą duomenų perdavimą tarp dviejų tinklo taškų: duomenys gaunami ta pačia tvarka kuria buvo siunčiami (paketai rūšiuojami pagal sekos numerį) ir (jei apskritai yra ryšys) visada pasiekia adresatą. Negautas ar gautas su klaida paketas persiunčiamas. Tačiau visa tai pasiekiama dėka TCP jungties (angl connection) kuriai sukurti tenka siųsti papildomus paketus. Kartą sukurta, tokia jungtis egzistuoja kol kuri nors pusė jos nenutraukia (galima ir pusiau nutraukta jungtis kuomet siųsti gali tik viena pusė). Serveris gali palaikyti didelį (tūkstančius) tačiau ribotą kiekį TCP jungčių. TCP naudoja efemerinius portus.

Protokolo specifikacija[taisyti | redaguoti kodą]

TCP antraštė
16-bitų šaltinio portas (source port) 16-bitų paskirties portas (destination port)
32-bitų sekos numeris (sequence number)
32-bitų patvirtinimo numeris (acknowledgment number)
4-bitų atraštės ilgis 6-bitų rezervuota 6-bitų požymiai (flags) 16-bitų lango dydis
16-bitų duomenų patikros suma (checksum) 16-bitų pirmumo rodyklė (urgent pointer)
opcijos (jei tokių yra)
duomenys

Galimi požymiai (flags):

  • SYNc – užklausa sinchronizuoti sekos numerius
  • ACK – patvirtinimo numeris yra veikiantis
  • RST – panaikinti sujungimą
  • FIN – duomenų siuntimo pabaiga
  • URG – pirmumo rodyklės požymis
  • PSH – prašoma, kad gavėjas perduotų proceso duomenis nelaukdamas, kol užsipildys buferis

Pažeidžiamumas[taisyti | redaguoti kodą]

TCP gali būti pažeidžiamas įvairiomis atakomis. Labiausiai paplitusi yra SYN ataka, paplitusi po 1996 metų, kai keli žurnalai išspausdino jos aprašymus su atakuojančio kodo pavyzdžiais[1].

Paplitusi taip pat numatyto sekos ataka, kai sesijos metu puolanti pusė pasiunčia paketą neva nuo vieno sesijos dalyvių. Toks paketas gali nutraukti TCP jungtį, nors visiškai ją perimti sudėtinga. Numatytos sekos ataka buvo lengvesnė kuomet pradinis numeris buvo lengvai numatomas (šiuo metu seka pradedama nuo atsitiktinio skaičiaus).

Nuorodos[taisyti | redaguoti kodą]

  1. SYN atakos aprašymas CISCO tinklalapyje