Tietoverkot

TCP (Transmission Control Protocol)

Helppo
20 min

Mikä on TCP?

TCP (Transmission Control Protocol) on tietoliikenteen protokolla, joka toimii Internetin kuljetuskerroksella. Sen tarkoituksena on mahdollistaa luotettava tiedonsiirto tietokoneiden välillä verkon yli. TCP perustuu yhteysorientoituneeseen ja luotettavaan palvelumalliin, joka varmistaa tiedon eheyden, saapumisjärjestyksen ja virheettömyyden.

TCP-protokolla toimii seuraavalla periaatteella:

  • Yhteydenmuodostus: Lähettävä ja vastaanottava osapuoli käyvät läpi kolmivaiheisen yhteydenmuodostusprosessin ennen varsinaisen datan lähettämistä. Tämä prosessi varmistaa molempien osapuolten valmiuden tiedonsiirtoon ja luo yhteyden niiden välille.
  • Tiedon segmentointi: Lähetettävä tieto jaetaan pienempiin osiin eli segmentteihin, joilla on kiinteä koko. Tämä mahdollistaa tiedon tehokkaan siirron verkossa.
  • Segmenttien numerointi: Jokainen segmentti saa oman numeronsa, joka auttaa vastaanottajaa järjestämään segmentit oikeassa järjestyksessä ja tunnistamaan mahdolliset puuttuvat tai virheelliset segmentit.
  • Virheentunnistus ja palautusmekanismit: TCP käyttää checksum-tarkistusta segmenttien eheyden varmistamiseen. Jos vastaanottaja havaitsee virheen, se pyytää lähettäjältä uudelleenlähetystä viallisista tai puuttuvista segmenteistä. Tämä takaa tiedon luotettavan siirron.

Yhteyden muodostaminen ja lopettaminen

TCP-protokollan yhteydenmuodostusprosessi ja lopettaminen noudattavat tarkasti määriteltyjä vaiheita, jotka varmistavat osapuolten saumattoman kommunikaation. Seuraavassa käsitellään TCP:n kolmivaiheista yhteydenmuodostusprosessia ja nelivaiheista lopettamisprosessia.

Yhteydenmuodostus

  • Vaihe 1: Lähettäjä (client) lähettää SYN (synchronize) -viestin vastaanottajalle (server), ilmaisten halunsa muodostaa yhteys.
  • Vaihe 2: Vastaanottaja vastaa SYN ACK (synchronize acknowledge) -viestillä, joka vahvistaa SYN-viestin vastaanottamisen ja ilmaisee halukkuuden jatkaa yhteydenmuodostusta.
  • Vaihe 3: Lähettäjä lähettää ACK (acknowledge) -viestin vastaanottajalle, joka vahvistaa SYN ACK -viestin vastaanottamisen. Tämä viesti merkitsee yhteydenmuodostuksen onnistumista, ja nyt tiedonsiirto voi alkaa.

Yhteyden lopettaminen

  • Vaihe 1: Lähettäjä lähettää FIN (finish) -viestin ilmaistakseen halunsa lopettaa yhteys.
  • Vaihe 2: Vastaanottaja vastaa ACK-viestillä vahvistaen FIN-viestin vastaanottamisen.
  • Vaihe 3: Vastaanottaja lähettää oman FIN-viestin ilmaistakseen halunsa lopettaa yhteys.
  • Vaihe 4: Lähettäjä vastaa ACK-viestillä vahvistaen vastaanotetun FIN-viestin.
  • Yhteyden lopettaminen on nyt valmis, ja yhteys on suljettu.

TCP:n yhteydenmuodostus- ja lopettamisprosessit takaavat, että tiedonsiirto voi tapahtua luotettavasti ja hallitusti. Jokainen vaihe varmistaa, että sekä lähettäjä että vastaanottaja ovat tietoisia yhteyden tilasta ja toistensa aikomuksista. Tämä lisää tiedon eheyttä ja varmistaa, että yhteys resurssit vapautetaan asianmukaisesti yhteyden lopettamisen jälkeen.

Tietojen segmentointi ja numerointi

TCP-protokolla jakaa lähetettävän tiedon pienempiin osiin eli segmentteihin, mikä mahdollistaa tiedon tehokkaan siirron verkon kautta. Jokainen segmentti saa myös numeron, joka auttaa vastaanottajaa järjestämään segmentit oikeassa järjestyksessä ja tunnistamaan mahdolliset puuttuvat tai virheelliset segmentit.

Tietojen segmentointi:

  • Lähetettävä tieto jaetaan TCP-protokollassa segmentteihin, joilla on kiinteä koko.
  • Segmentointi auttaa tiedon tehokkaassa siirtämisessä verkossa, koska se mahdollistaa tietojen siirron pienemmissä osissa, jotka voidaan käsitellä verkkoelementeissä ja reitityksessä helpommin.

Segmenttien numerointi:

  • Jokainen segmentti saa TCP-protokollassa oman numeronsa, joka tunnistaa kyseisen segmentin.
  • Numeroinnin avulla vastaanottaja pystyy järjestämään segmentit oikeassa järjestyksessä, kun ne saapuvat perille.
  • Numerointi mahdollistaa myös mahdollisten puuttuvien tai virheellisten segmenttien tunnistamisen ja uudelleenlähetysten pyytämisen.

Segmentointi ja numerointi ovat keskeisiä TCP-protokollan ominaisuuksia, jotka auttavat varmistamaan tiedon luotettavan siirron verkon kautta. Segmenttien käyttö mahdollistaa tiedon tehokkaan käsittelyn ja verkon kuormituksen hallinnan. Numeroinnin avulla varmistetaan, että segmentit järjestetään oikein vastaanottajapäässä ja että tieto saapuu oikeassa muodossa ilman puutteita tai virheitä.

Virheentunnistus ja palautusmekanismit

TCP-protokolla sisältää tehokkaat virheentunnistus- ja palautusmekanismit, jotka varmistavat tiedon eheyden ja luotettavan siirron. Näiden mekanismien avulla TCP pystyy havaitsemaan ja korjaamaan virheitä tiedonsiirron aikana.

Virheentunnistus:

  • TCP käyttää checksum-tarkistusta segmenttien eheyden tarkistamiseen.
  • Lähettävä osapuoli laskee jokaiselle segmentille tarkistussumman, joka perustuu segmentin sisältämään dataan.
  • Vastaanottava osapuoli vertaa vastaanotetun segmentin tarkistussummaa lähettävän osapuolen laskemaan tarkistussummaan. Jos summat eivät täsmää, segmenttiä pidetään virheellisenä.

Palautusmekanismit:

  • Jos vastaanottava osapuoli havaitsee virheen segmentissä, se lähettää lähettävälle osapuolelle ACK-viestin, joka pyytää uudelleenlähetystä viallisesta tai puuttuvasta segmentistä.
  • Lähettävä osapuoli vastaanottaa ACK-viestin ja uudelleenlähettää pyydetyn segmentin.
  • Lisäksi TCP-protokolla sisältää puskuroinnin ja ruuhkien hallinnan mekanismit, jotka auttavat varmistamaan tiedon sujuvan siirron verkossa ja estämään tietojen menetyksen tai ruuhkautumisen.

TCP:n virheentunnistus- ja palautusmekanismit tekevät siitä erittäin luotettavan protokollan tiedonsiirrossa. Jos segmentti ei saavu perille tai siinä havaitaan virhe, TCP pyytää uudelleenlähetystä varmistaakseen, että tiedot siirtyvät oikein. Tämä takaa tiedon eheyden ja luotettavan siirron verkon kautta.

Signaalit

TCP-protokolla käyttää useita ohjaussignaaleja:

SYN (Synchronize)

  • SYN-signaalia käytetään yhteyden muodostamisen alkuvaiheessa.
  • Lähettäjä lähettää SYN-paketin vastaanottajalle yhteyden muodostamispyynnön aloittamiseksi.

ACK (Acknowledge)

  • ACK-signaali käytetään vahvistamaan vastaanotetun datan vastaanotto.
  • Vastaanottaja lähettää ACK-paketin lähettäjälle osoittaakseen, että tieto on vastaanotettu onnistuneesti.

FIN (Finish)

  • FIN-signaalia käytetään yhteyden lopettamiseen.
  • Lähettäjä lähettää FIN-paketin vastaanottajalle ilmaistakseen halunsa lopettaa yhteys.

RST (Reset)

  • RST-signaali lähetetään, kun yhteydessä tapahtuu virhe tai yhteyttä ei voi jatkaa.
  • RST-paketti nollaa yhteyden ja palauttaa sen alkutilaan.

SYN-ACK (Synchronize Acknowledge)

  • SYN-ACK-signaalia käytetään vastaamaan SYN-signaaliin ja vahvistamaan yhteydenmuodostuspyyntö.
  • Vastaanottaja lähettää SYN-ACK-paketin lähettäjälle ilmaistakseen halukkuutensa jatkaa yhteydenmuodostusta.

PSH (Push)

  • PSH-signaalia käytetään osoittamaan vastaanottajalle, että data tulisi välittömästi toimittaa sovellukselle sen sijaan, että se puskuroitaisiin.

URG (Urgent)

  • URG-signaalia käytetään osoittamaan, että paketissa on tärkeää tai kiireellistä dataa.
  • Tämä signaali voi laukaista vastaanottajan reagoimaan nopeasti kiireelliseen datan käsittelyyn.

Testaa oppimaasi

Mikä on TCP-protokollan tarkoitus?

Mitkä ovat TCP:n yhteydenmuodostusvaiheet?

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.