TCP/IP

tietoliikenneprotokollien yhdistelmä

TCP/IP (Transmission Control Protocol / Internet Protocol) on usean Internet-liikennöinnissä käytettävän tietoliikenneprotokollan yhdistelmä eli pino. IP-protokolla on alemman tason protokolla, joka vastaa päätelaitteiden osoitteistamisesta ja verkkopakettien reitittämisestä verkossa. Sen päällä voidaan ajaa useita muita verkko- tai kuljetuskerroksen protokollia, joista TCP-protokolla on yleisin. Se vastaa kahden päätelaitteen välisestä tiedonsiirtoyhteydestä, pakettien järjestämisestä ja hukkuneiden pakettien uudelleenlähetyksestä.

Vaikka TCP/IP-protokollaperheeseen kuuluu monia muitakin protokollia, pääosa liikennöinnistä tapahtuu TCP-yhteyksinä IP-protokollan päällä. Tämän takia protokollaperhe yleensä tunnetaan nimellä TCP/IP.

TCP/IP-protokollapino.

Historia

muokkaa

TCP/IP toteuttaa Internet-arkkitehtuurin ja juontaa juurensa ARPANETin referenssimalliin (engl. ARPANET Reference Model, ARM).[1] Muita kehitettyjä protokolla-arkkitehtuureja ovat muun muassa Xeroxin XNS sekä IBM:n SNA.[1] TCP/IP protokollaperhe noudattaa ARPANETin mallia, jossa on viisi kerrosta toisin kuin OSI-mallin seitsemän, ja osa toiminnoista on epävirallisessa kerroksessa 2.5 kuten ARP-protokolla.[1]

Xerox halusi pitää XNS:n suljettuna ja tiukasti omassa hallussaan.[2] Samaan aikaan TCP/IP oli vasta varhaisessa vaiheessa.[2]

Louis Pouzin kehitti Ranskassa CYCLADES-tietokoneverkkoa, joka vaikutti myös TCP/IP:n kehitykseen.[3][4] ARPANETin käyttämän NCP-protokollan ja CYCLADESin käyttämän STST-protokollan epäyhteensopivuuksien tutkimuksen myötä Gérard Le Lann kutsuttiin Stanfordiin Vint Cerfin ryhmään, jossa hän osallistui "liukuvan ikkunan" menetelmän kehitykseen TCP/IP:tä varten.[5] Vint Cerf työskenteli DARPAssa TCP/IP:n toteutuksen kanssa ja Bill Joy sai tehtäväkseen integroida TCP/IP:n Unixiin, mutta kirjoitti toteutuksen uudelleen vuonna 1982 pelkän integroimisen sijaan.[2] Seurauksena toteutuksen lähdekoodit olivat saatavilla käyttöjärjestelmän mukana, joka oli saatavilla myös VAX-alustalle ja Ethernet-verkkoon.[2] ARPANET siirtyi käyttämään TCP/IP:tä 1. tammikuuta 1983.[2] Berkeley Unixin myötä TCP/IP levisi myös CERNiin.[6]

OSI-protokollapinon oli tarkoitus korvata TCP/IP 1980-luvulla, mutta TCP/IP oli jo kasvavassa käytössä.[7][8][9]

Varhaiset versiot TCP/IP protokollapinosta on kuvattu Internet Experiment Note (IEN) dokumenteissa, joista IEN 2 kuvailee TCP:n ja IP:n erillisinä protokollina eikä yhdistettynä kuten aiemmin.[10] IEN 2:ssa TCP-protokollan tehtävät jaetaan kahtia ja esitellään IP-protokollan versio 0.[10] TCP:n vastuulle jää "päästä-päähän" tapahtuva kommunikaatio ja IP:n vastuulle reititettävä "hyppy-hypyltä" kommunikaatio, jotka aiemmin olivat molemmat TCP:n tehtäviä.[10]

Kerrokset

muokkaa

Eri kerroksien protokollatiedot (engl. protocol data unit, PDU) kapseloidaan toisessa kerroksessa.[1] Kerroksittaisella kapseloinnilla mahdollistetaan protokollien multipleksaus ja usean eri protokollan eläminen yhdessä samassa infrastruktuurissa.[1] Kapselointi mahdollistaa useita yhtäaikaisia instansseja (kuten yhteydet, connections) ilman häiriöitä toisiinsa.[1] Kapselointi käsittelee toisen kerroksen dataa läpinäkymättömästi tulkitsematta sitä.[1]

 
Datan kapselointi sen liikkuessa kerroksien välillä, kuten kuvattu dokumentissa RFC 1122.

Standardit

muokkaa

TCP/IP-protokollaperheestä vastaa IETF-standardointiorganisaatio. Sovellus-, kuljetus- ja verkkokerroksen protokollat määritellään sen hyväksymissä RFC-sarjan dokumenteissa. Fyysisen peruskerroksen protokollat eivät kuulu TCP/IP-protokollaperheeseen vaan ne ovat usein IEEE-, IEC- tai ITU-standardointiorganisaatioiden määrittelemiä. Internetissä käytettävän sisällön esitys on eri tahojen määrittelemää, esimerkiksi W3C-standardointiorganisaatio on määritellyt HTML- ja XML-esitystavat.

IP-protokolla

muokkaa
Pääartikkeli: IP

Verkkokerroksen IP-protokolla on TCP/IP-protokollan ydin. Verkossa tietoa välittävät reitittimet välittävät ainoastaan IP-paketteja, mikä perustuu IP-pakettien otsikkokenttien tietoihin. Kaikki ylemmän tason protokollat, kuten TCP, ovat sisällytetty, kapseloitu, IP-paketin data-osioon. Näin ollen IP-tasolla toimiva verkko ei ole tietoinen ylemmän tason protokollista ja yhteyksistä.

HTTP FTP SNMP DNS
ICMP TCP UDP
Internet-protokolla
Ethernet Token
Ring
ATM UMTS

IP-protokollaa voidaan ajaa lähes minkä tahansa verkon päällä, joten sillä on helppo yhdistää erilaisia verkkoja isommiksi kokonaisuuksiksi. Internet on vain yksi mutta merkittävin tällä tavalla rakentunut verkko. Internet-protokollassa internetillä tarkoitetaan verkkojen välistä verkkoa.

Lähes mitä tahansa sovellusta voidaan ajaa internet-protokollan päällä. Yksinkertainen internet-protokolla, jonka päälle on helppo rakentaa kaikenlaista, voi toimia pohjana lähes minkälaiselle sovellukselle tahansa.

Internet-protokollan suunnitteluperiaatteena on ollut IP over everything, everything over IP.

TCP-protokolla

muokkaa
Pääartikkeli: TCP

Kuten TCP/IP-protokollaperheen nimestä voi päätellä, toinen tärkeä perheen protokolla on TCP-protokolla, joka luo yhteydet tietokoneiden sovellusten välille käyttäen IP-paketteja. Se huolehtii vianhallinnasta, luotettavuudesta, kuittauksista ja pakettien laittamisesta oikeaan järjestykseen.

UDP-protokolla

muokkaa
Pääartikkeli: UDP

UDP (User Datagram Protocol) on sovelluksille tarjottava tietosähke. UDP:ssä on TCP:n kaltainen porttimekanismi ja se sijaitsee samassa kuljetuskerroksessa kuin TCP.

UDP ei takaa viestin perille välittämistä vaan tämä jää käyttäjäsovelluksen oman päätännän ja käsittelyn haltuun. UDP-paketteja käytetään kun tietomäärä on suuri, mutta jokaisen viestin perille saapumista ei tarvita. UDP:n käyttöön toisinaan viitataan myös UDP/IP-parina.

Muut kuljetus- ja verkkokerroksen protokollat

muokkaa

SCTP ja RTP ovat uudemmat vaihtoehdot TCP:lle ja UDP:lle puhelinverkkosovellusten tyyppiseen luotettavampaan käyttöön. Niitä kuitenkin käytetään vielä vähän.

ICMP (Internet Control Message Protocol) on internet-protokollan valvontaprotokolla, jolla laitteet kommunikoivat keskenään IP-pakettien perille toimittamiseen liittyviä kiireisiä viestejä.

Lähiverkkoratkaisuilla on protokollat, joilla IP-osoitteen perusteella löydetään vastaava lähiverkon osoite. Tavallisin tällainen protokolla on Ethernet-verkkojen MAC-osoitteiden etsimiseen tarkoitettu protokolla ARP (Address Resolution Protocol).

DHCP (Dynamic Host Configuration Protocol) protokollalla tietokone, joka ei tiedä omaa IP-osoitettaan, voi kysyä sitä verkosta. Tämä on välttämätöntä esimerkiksi kannettavissa tietokoneissa, joiden on saatava kulloiseenkin sijaintipaikkaansa soveltuva IP-osoite.

DNS (Domain Name Service) on palvelu, jolla Internetin domain-nimet, kuten www.firma.fi, muunnetaan IP-osoitteeksi.

Internetin reitittimet vaihtavat keskenään reititystietoa, jonka avulla voidaan löytää optimaalinen reitti kahden solmun tai verkon välillä. Reititysprotokollia ovat esimerkiksi OSPF, BGP ja RIP.

Katso myös

muokkaa

Lähteet

muokkaa
  1. a b c d e f g Fall, Kevin R. & Stevens, W. Richard: TCP/IP Illustrated, Volume. (Second Edition) Addison-Wesley. ISBN 978-0-321-33631-6
  2. a b c d e James Pelkey: TCP/IP and XNS 1981 – 1983 historyofcomputercommunications.info. Arkistoitu 17.6.2018. Viitattu 6.6.2018.
  3. Louis Pouzin Internet Hall of Fame. Viitattu 17.6.2018.
  4. James Pelkey: CYCLADES Network and Louis Pouzin 1971 – 1972 historyofcomputercommunications.info. Arkistoitu 17.6.2021. Viitattu 17.6.2018.
  5. Between Stanford and Cyclades, a transatlantic perspective on the creation of Internet inria.fr. 9.11.2020. Viitattu 11.7.2024. (englanniksi)
  6. Ben Segal: A Short History of Internet Protocols at CERN ben.home.cern.ch. huhtikuu 1995. Arkistoitu 2.5.2015. Viitattu 17.6.2018.
  7. Andrew L. Russell: OSI: The Internet That Wasn’t 30.7.2013. IEEE Spectrum. Viitattu 17.6.2018.
  8. James Pelkey: ISO/OSI (Open Systems Interconnection): 1979 – 1980 historyofcomputercommunications.info. Arkistoitu 17.6.2018. Viitattu 17.6.2018.
  9. OSI Protocols Techopedia. Viitattu 17.6.2018.
  10. a b c Jon Postel: IEN 2, Comments on Internet Protocol and TCP rfc-editor.org. 15. elokuuta 1977. Viitattu 23.5.2019. (englanniksi)

Aiheesta muualla

muokkaa
  NODES
INTERN 23
Note 1