TCP

TCP () – tai vienas iš pagrindinių protokolų, esančių Internetinių protokolų rinkinyje (). 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 

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 
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. 

Paplitusi taip pat numatytos 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 
 RFC793
 IANA portų priskyrimai

Standartai
Interneto protokolai