TCP (Transmission Control Protocol): luotettava yhteys Internetissä

TCP (Transmission Control Protocol) – luotettava tiedonsiirto Internetissä: varmistaa tietopakettien järjestyksen, eheyden ja sujuvan verkkoliikenteen.

Tekijä: Leandro Alegsa

TCP-protokolla (Transmission Control Protocol) on yksi Internet Protocol Suite -protokollapaketin tärkeimmistä protokollista. TCP on osa suosittua "TCP/IP"-yhdistelmää, jota käytetään Internetissä. Internet-protokolla eli IP varmistaa, että internetissä oleva tieto pääsee oikeaan paikkaan. Sen jälkeen TCP varmistaa, että tiedot ovat oikeassa järjestyksessä ja että mikään niistä ei puutu. TCP auttaa myös valvomaan internetin liikennettä, jotta se ei ylikuormitu. Nämä protokollat, jotka ovat ikään kuin tietokoneiden käyttämiä kieliä, on suunniteltu siten, että mikä tahansa tietokone ja mikä tahansa ohjelma (kuten verkkoselain tai sähköpostiohjelma) voi käyttää niitä.

Miten TCP toimii lyhyesti

TCP on yhteyteen perustuva (connection-oriented) ja luotettava tiedonsiirtoprotokolla. Ennen varsinaista tiedonsiirtoa osapuolet muodostavat yhteyden useimmiten ns. kolmen vaiheen kädenpuristuksella (three-way handshake). Tiedot jaetaan TCP-segmenteiksi, joille annetaan järjestysnumerot. Vastaanottaja lähettää lähettäjälle kuittauksia (ACK), ja mikäli kuittausta ei kuulu aikakatkaisun kuluessa, segmentti lähetetään uudelleen.

Yhteyden muodostaminen ja lopetus

  • Three-way handshake: SYN → SYN/ACK → ACK. Tämä varmistaa, että molemmat osapuolet ovat valmiita ja synkronoivat alkusekvenssinumerot.
  • Yhteyden lopetus: Yhteyden sulkeminen tehdään yleensä nelivaiheisesti (FIN ja ACK -viestit kummaltakin osapuolelta), mutta sulkeminen voidaan myös käynnistää molemmista päistä samanaikaisesti.

Luotettavuus ja virheiden hallinta

TCP takaa, että vastaanottaja saa kaikki lähetetyt tavut oikeassa järjestyksessä. Tähän kuuluvat

  • järjestysnumerot (sequence numbers),
  • kuittaukset (ACK),
  • uudelleenlähetykset aikakatkaisujen perusteella,
  • virheiden havaitseminen summaan perustuvalla tarkistusluvulla (checksum).

Jos segmentti katoaa tai vioittuu matkalla, lähettäjä voi lähettää sen uudelleen. Vastaanottaja voi myös kertoa, mitä osia se on jo saanut, jolloin lähettäjä tietää, mitä täytyy lähettää uudestaan.

Virtaus- ja ruuhkautumisen hallinta

TCP sisältää mekanismit sekä vastaanottajan että verkon kuormituksen huomioimiseen:

  • Flow control (vastaanottajan ohjaama): vastaanottaja ilmaisee ikkunakentässä (window) kuinka paljon dataa se voi ottaa vastaan ilman lisäkuittauksia.
  • Congestion control (verkko-ohjattu): TCP seuraa hävikkiä ja viiveitä ja säätää lähetysnopeutta; tunnettuja algoritmeja ovat mm. slow start, congestion avoidance, fast retransmit ja fast recovery.

TCP-segmentin tärkeimmät kentät

TCP-segmentin otsikossa on useita kenttiä, joiden avulla protokolla toimii:

  • lähde- ja kohdeportti (source port, destination port) — mahdollistavat useiden yhteyksien samanaikaisen käsittelyn
  • järjestysnumero (sequence number) ja kuittausnumero (acknowledgment number)
  • data offset (otsikon pituus) ja eri lippu (flags) kuten SYN, ACK, FIN, RST, PSH ja URG
  • ikkuna (window) — flow control
  • tarkistusluku (checksum) — virheiden havaitsemiseen
  • hätäosoitin (urgent pointer) ja mahdolliset optiot (esim. MSS, ikkuna-skalaus ja aikaleimat)

Käyttötapaukset ja erot UDP:hen

TCP sopii hyvin sovelluksille, jotka tarvitsevat luotettavuutta ja järjestystä, kuten:

  • web-selailu (HTTP/HTTPS),
  • sähköposti (SMTP/IMAP/POP),
  • tiedostonsiirto (FTP) ja monet muut protokollat, jotka vaativat virheettömän tiedonsiirron.

UDP puolestaan on kevyempi ja tarjoaa epäluotettavan, yhteydettömän palvelun — hyödyllinen reaaliaikaisissa sovelluksissa kuten ääni- ja videostriimauksessa tai peliverkkoissa, joissa pieni viive on tärkeämpää kuin täydellinen virheenkorjaus. Viime vuosina myös uudet protokollat kuten QUIC ovat tulleet suosituiksi, koska ne yhdistävät monta TCP:n ja TLS:n ominaisuutta, mutta toimivat UDP:n päällä ja voivat tarjota alhaisemman viiveen ja paremman yhteydenhallinnan moderneissa ympäristöissä.

Lisätietoja ja käytännön seikat

TCP:llä on monia käytännön vaikutuksia: palomuurit ja NAT-laitteet voivat vaikuttaa TCP-yhteyksiin, säätöparametrit (esim. lähetysikkunan koko ja aikakatkaisu) vaikuttavat suorituskykyyn eri verkoissa, ja turvallisuusprotokollat kuten TLS toimivat usein TCP:n päällä suojataksen datan. TCP on siis keskeinen osa Internetin toimintaa ja sen ymmärtäminen auttaa sekä sovelluskehittäjiä että verkkoasiantuntijoita optimoimaan ja vianetsimään yhteyksiä.

TCP:n merkitys

TCP helpottaa tietokoneohjelmien keskinäistä viestintää yleensä tietoverkossa. Kun ohjelma haluaa lähettää paljon dataa, TCP vastaa datan jakamisesta, lähettämisestä verkon kautta ja sen kokoamisesta takaisin oikein eri tietokoneella. Prosessin aikana IP valitsee, mitä johtoja ja "risteyksiä" käytetään kaikkien datapalojen lähettämiseen nopeimmalla tavalla. Se tekee tämän pakettien avulla.

Jos verkkoa käyttää paljon ihmisiä, se voi ylikuormittua. Joskus myös sää, sähkökatkokset ja muut ongelmat voivat vaikeuttaa yhteydenpitoa. Internetin reitittimet pyrkivät korjaamaan joitakin näistä ongelmista kuormituksen tasaamiseksi kutsutulla tavalla. Silti tiedot voivat silti kulkea epäkunnossa, kadota tai jopa kopioitua. TCP on suunniteltu havaitsemaan kaikki nämä ongelmat ja yrittämään niiden korjaamista. Tämä voi kestää jonkin aikaa, minkä vuoksi Internet vaikuttaa joskus hitaalta. Kun TCP-vastaanotin on viimein koonnut täydellisen kopion alun perin lähetetystä tiedosta, se välittää tiedot niitä pyytäneelle tietokoneohjelmalle. Näin ohjelman ei tarvitse tietää verkosta, eikä TCP:n tarvitse tietää ohjelman tiedoista.



Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3