TCP/IP

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.
Historia.
TCP/IP toteuttaa "Internet-arkkitehtuurin" ja juontaa juurensa ARPANETin referenssimalliin (, ARM). Muita kehitettyjä protokolla-arkkitehtuureja ovat muun muassa Xeroxin XNS sekä IBM:n SNA. 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.
Xerox halusi pitää XNS:n suljettuna ja tiukasti omassa hallussaan. Samaan aikaan TCP/IP oli vasta varhaisessa vaiheessa.
Louis Pouzin kehitti Ranskassa CYCLADES-tietokoneverkkoa, joka vaikutti myös TCP/IP:n kehitykseen.
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.
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. Seurauksena toteutuksen lähdekoodit olivat saatavilla käyttöjärjestelmän mukana, joka oli saatavilla myös VAX-alustalle ja Ethernet-verkkoon.
ARPANET siirtyi käyttämään TCP/IP:tä 1. tammikuuta 1983. Berkeley Unixin myötä TCP/IP levisi myös CERNiin.
OSI-protokollapinon oli tarkoitus korvata TCP/IP 1980-luvulla, mutta TCP/IP oli jo kasvavassa käytössä.
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. IEN 2:ssa TCP-protokollan tehtävät jaetaan kahtia ja esitellään IP-protokollan versio 0. 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ä.
Kerrokset.
Eri kerroksien protokollatiedot (, PDU) kapseloidaan toisessa kerroksessa. Kerroksittaisella kapseloinnilla mahdollistetaan protokollien multipleksaus ja usean eri protokollan eläminen yhdessä samassa infrastruktuurissa. Kapselointi mahdollistaa useita yhtäaikaisia instansseja (kuten yhteydet, "connections") ilman häiriöitä toisiinsa. Kapselointi käsittelee toisen kerroksen dataa läpinäkymättömästi tulkitsematta sitä.
Standardit.
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.
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ä.
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.
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.
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.
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.