IP-liikennettä on kahta tyyppiä. He ovat TCP tai Lähetyksen ohjausprotokolla ja UDP tai Käyttäjän datagrammin protokolla. TCP on yhteyden suuntautunut - kun yhteys on muodostettu, tietoja voidaan lähettää kaksisuuntaisena. UDP on yksinkertaisempi, yhteydetön Internet-yhteyskäytäntö. Useita viestejä lähetetään paketteina palasina UDP: n avulla.
TCP | UDP | |
---|---|---|
Lyhenne sanasta | Lähetyksen ohjausprotokolla | User Datagram Protocol tai Universal Datagram Protocol |
yhteys | Transmission Control Protocol on yhteyskeskeinen protokolla. | User Datagram Protocol on yhteydetön protokolla. |
Toimia | Viestinä on tietä Internetin välillä tietokoneelta toiselle. Tämä on yhteyspohjainen. | UDP on myös protokolla, jota käytetään viestien siirtoon tai siirtoon. Tämä ei ole yhteyspohjaista, mikä tarkoittaa, että yksi ohjelma voi lähettää kuorman paketteja toiselle ja se olisi suhteen loppu. |
Käyttö | TCP sopii sovelluksiin, jotka vaativat suurta luotettavuutta, ja lähetysaika on suhteellisen vähemmän kriittinen. | UDP sopii sovelluksiin, jotka tarvitsevat nopeaa, tehokasta siirtoa, kuten peleihin. UDP: n valtioton luonne on hyödyllinen myös palvelimille, jotka vastaavat pieniin kyselyihin valtavan määrän asiakkaita. |
Muiden protokollien käyttö | HTTP, HTTPs, FTP, SMTP, Telnet | DNS, DHCP, TFTP, SNMP, RIP, VOIP. |
Tietopakettien tilaaminen | TCP järjestää datapaketit määritetyssä järjestyksessä. | UDP: llä ei ole luontaista järjestystä, koska kaikki paketit ovat toisistaan riippumattomia. Jos tilaamista vaaditaan, sitä täytyy hallita sovelluskerros. |
Siirtonopeus | TCP: n nopeus on UDP: tä hitaampi. | UDP on nopeampi, koska virheen palauttamista ei yritetä. Se on "paras työ" -protokolla. |
Luotettavuus | Ehdottomasti taataan, että siirretyt tiedot pysyvät ehjinä ja saapuvat samassa järjestyksessä kuin ne lähetettiin. | Ei ole mitään takeita siitä, että lähetetyt viestit tai paketit saavuttaisivat ollenkaan. |
Otsikon koko | TCP-otsikon koko on 20 tavua | UDP-otsikon koko on 8 tavua. |
Yleiset otsikkokentät | Lähdeportti, kohdeportti, tarkistussumma | Lähdeportti, kohdeportti, tarkistussumma |
Tietojen suoratoisto | Tietoja luetaan tavuvirtana, signaaliviestien (segmenttien) rajoille ei lähetetä erottavia merkintöjä. | Paketit lähetetään erikseen, ja niiden eheys tarkistetaan vain, jos ne saapuvat. Paketeilla on selkeät rajat, joita kunnioitetaan niiden vastaanottamisen yhteydessä, mikä tarkoittaa, että vastaanottopistokkeessa luettu toimenpide tuottaa koko viestin sellaisena kuin se alun perin lähetettiin. |
Paino | TCP on painava. TCP vaatii kolme pakettia pistorasiayhteyden muodostamiseksi ennen käyttäjän tietojen lähettämistä. TCP käsittelee luotettavuutta ja ruuhkien hallintaa. | UDP on kevyt. Viestejä ei tilata, seurantayhteyksiä jne. Se on pieni siirtokerros, joka on suunniteltu IP: n päälle. |
Tietovirran hallinta | TCP ei suorita virtauksen hallintaa. TCP vaatii kolme pakettia pistorasiayhteyden muodostamiseksi ennen käyttäjän tietojen lähettämistä. TCP käsittelee luotettavuutta ja ruuhkien hallintaa. | UDP: llä ei ole vaihtoehtoa virtauksen ohjaukselle |
Virhe tarkistettaessa | TCP tarkistaa virheet ja palauttaa virheet. Virheelliset paketit lähetetään uudelleen lähteestä kohteeseen. | UDP tarkistaa virheet, mutta hylkää virheelliset paketit. Virheen palauttamista ei yritetä. |
Fields | 1. Sekvenssinumero, 2. AcK-numero, 3. Datapoikkeama, 4. Varattu, 5. Ohjausbitti, 6. Ikkuna, 7. Kiireellinen osoitin 8. Valinnat, 9. Täyttö, 10. Tarkista summa, 11. Lähdeportti, 12. Määräsatama | 1. Pituus, 2. Lähdeportti, 3. Kohdeportti, 4. Tarkista summa |
tunnustus | Kuittaussegmentit | Ei kuittausta |
Kädenpuristus | SYN, SYN-ACK, ACK | Ei kädenpuristusta (yhteydetön protokolla) |
TCP varmistaa tavuvirran luotettavan ja tilatun toimituksen käyttäjältä palvelimelle tai päinvastoin. UDP ei ole omistettu päästä päähän -yhteyksiin ja viestintä ei tarkista vastaanottimen valmiutta.
TCP on luotettavampi, koska se hallinnoi viestin kuittausta ja uudelleenlähetyksiä kadonneiden osien tapauksessa. Siksi mitään tietoja puuttuu. UDP ei takaa, että viestintä on saavuttanut vastaanottimen, koska kuittauksen, aikakatkaisun ja uudelleenlähetyksen käsitteitä ei ole läsnä.
TCP lähetykset lähetetään sarjassa ja ne vastaanotetaan samassa järjestyksessä. Jos tietosegmentit saapuvat väärään järjestykseen, TCP järjestää ja toimittaa sovelluksen. Siinä tapauksessa että UDP, Lähetettyä viestisarjaa ei välttämättä ylläpidetä, kun se saavuttaa vastaanottavan sovelluksen. Ei missään nimessä ole mahdollista ennustaa viestin vastaanottamisjärjestystä.
TCP on raskas painoyhteys, joka vaatii kolme pakettia pistokeliitäntään ja käsittelee ruuhkien hallintaa ja luotettavuutta. UDP on kevyt kuljetuskerros, joka on suunniteltu IP: n päälle. Ei seurantayhteyksiä tai viestien tilaamista.
TCP lukee dataa tavuvirtana ja viesti lähetetään segmenttirajoille. UDP viestit ovat paketteja, jotka lähetetään erikseen ja saapuessa tarkistetaan niiden eheys. Paketeilla on määritelty rajat, kun taas datavirralla ei ole mitään.
UDP toimii "parhaan ponnistuksen" perusteella. Protokolla tukee virheentunnistusta tarkistussumman kautta, mutta kun virhe havaitaan, paketti hylätään. Paketin uudelleenlähettämistä tuosta virheestä ei yritetä. Tämä johtuu siitä, että UDP on yleensä aikaherkkä sovellus, kuten pelaaminen tai äänensiirto. Virheestä toipuminen olisi turhaa, koska siihen mennessä, kun uudelleenlähetetty paketti vastaanotetaan, siitä ei ole mitään hyötyä.
TCP käyttää sekä virheiden havaitsemista että virheiden palauttamista. Virheet havaitaan tarkistussumman avulla ja jos paketti on virheellinen, vastaanottaja ei kuittaa sitä, mikä laukaisee lähettäjän uudelleenlähetyksen. Tätä toimintamekanismia kutsutaan positiiviseksi kuittaukseksi uudelleenlähetyksellä (PAR).
TCP-yhteys muodostetaan kolmitieyhteyden avulla, joka on yhteyden aloittamisen ja kuittaamisen prosessi. Kun yhteys on muodostettu, tiedonsiirto voi alkaa. Lähetyksen jälkeen yhteys lopetetaan sulkemalla kaikki vakiintuneet virtuaalipiirit.
UDP käyttää yksinkertaista lähetysmallia ilman implisiittisiä käden ravistamisdialogeja luotettavuuden, tilausten tai tietojen eheyden takaamiseksi. Siten UDP tarjoaa epäluotettavan palvelun ja datagrammit voivat saapua epäkunnossa, näyttää kopioituina tai kadota ilman erillistä ilmoitusta. UDP olettaa, että virheen tarkistamista ja korjaamista ei joko tarvita tai suoriteta sovelluksessa, välttäen tällaisen käsittelyn ylimääräisiä verkkoliitäntätasolla. Toisin kuin TCP, UDP on yhteensopiva pakettilähetysten (lähettäminen kaikille lähiverkossa) ja monilähetysten (lähettäminen kaikille tilaajille) kanssa.
Verkkoselaaminen, sähköpostien ja tiedostojen siirto ovat yleisiä sovelluksia, jotka käyttävät TCP: tä. TCP: tä käytetään segmentin koon, tiedonsiirtonopeuden, virtauksen ohjauksen ja verkon ruuhkan hallintaan. TCP on edullinen, jos virheenkorjaustoimenpiteitä vaaditaan verkkoliitännän tasolla. UDP: tä käyttävät suurelta osin aikaherkät sovellukset sekä palvelimet, jotka vastaavat valtavan määrän asiakkaiden pieniin kyselyihin. UDP on yhteensopiva pakettilähetysten kanssa - lähettäminen kaikille verkossa ja monilähetys - lähettäminen kaikille tilaajille. UDP: tä käytetään yleisesti verkkotunnusten nimijärjestelmässä, Voice over IP: ssä, Trivial File Transfer Protocol -protokollassa ja online-peleissä.
Massiivisesti moninpeli- (MMO) peleissä kehittäjien on usein tehtävä arkkitehtoninen valinta UDP- tai TCP-pysyvien yhteyksien välillä. TCP: n etuina ovat pysyvät yhteydet, luotettavuus ja mielivaltaisten kokoisten pakettien käyttö. Suurin ongelma TCP: llä tässä skenaariossa on sen ruuhkanhallintaalgoritmi, joka käsittelee paketin menetystä merkkinä kaistanleveyden rajoituksista ja kuristaa automaattisesti pakettien lähettämisen. 3G- tai Wi-Fi-verkoissa tämä voi aiheuttaa merkittävän viiveen.
Kokenut kehittäjä Christoffer Lernö punnitsi edut ja haitat ja suosittelee seuraavia kriteerejä valitaksesi, käytetäänkö pelissäsi TCP vai UDP: