Luotettavan UDP-pohjaisen protokollan toteutus
Ruohisto, Antti (2016)
Ruohisto, Antti
Metropolia Ammattikorkeakoulu
2016
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201605168043
https://urn.fi/URN:NBN:fi:amk-201605168043
Tiivistelmä
Tämän insinöörityön tavoitteena oli luoda pelikäyttöön soveltuva verkkoliikenneprotokolla. Protokollan tulisi pystyä tarvittaessa varmistamaan pakettien perillemeno, järjestys ja tarjoamaan helppo tapa luoda nopea yhteys koneiden välille. Protokollaa tullaan myöhemmin hyödyntämään peliprojekteissa.
Insinöörityössä valittiin sopiva protokolla oman protokollan pohjaksi. Tekstissä käydään läpi IP-, TCP- ja UDP-protokollien tuomat ominaisuudet sekä niiden heikkoudet ja vahvuudet. Lisäksi tutkitaan TCP- ja UDP-protokollien käyttöä rinnakkain. Lopulta päädytään käyttämään oman protokollan pohjana UDP-protokollaa.
UDP-protokollan päälle suunniteltiin seuraavat ominaisuudet: saapuvien pakettien tunnistaminen, kadonneen paketin tunnistaminen, pakettien pitäminen järjestyksessä, kadonneiden pakettien uudelleenlähetys, duplikaattipakettien tunnistaminen, virtuaaliyhteyden luominen ja ylläpitäminen sekä ruuhkanhallinta. Suunnitelmien pohjalta toteutettiin tarvittavat ominaisuudet. Työssä hyödynnettiin myös Boost.Asio-kirjastoa UDP-pakettien lähettämiseen ja vastaanottamiseen.
Insinöörityön lopputuloksena syntyi toimiva prototyyppi luotettavasta UDP-pohjaisesta protokollasta. Lisäksi työssä myös esitellään, kuinka protokollan avulla voidaan luoda asiakas-palvelin-mallin mukainen rakenne.
Insinöörityössä valittiin sopiva protokolla oman protokollan pohjaksi. Tekstissä käydään läpi IP-, TCP- ja UDP-protokollien tuomat ominaisuudet sekä niiden heikkoudet ja vahvuudet. Lisäksi tutkitaan TCP- ja UDP-protokollien käyttöä rinnakkain. Lopulta päädytään käyttämään oman protokollan pohjana UDP-protokollaa.
UDP-protokollan päälle suunniteltiin seuraavat ominaisuudet: saapuvien pakettien tunnistaminen, kadonneen paketin tunnistaminen, pakettien pitäminen järjestyksessä, kadonneiden pakettien uudelleenlähetys, duplikaattipakettien tunnistaminen, virtuaaliyhteyden luominen ja ylläpitäminen sekä ruuhkanhallinta. Suunnitelmien pohjalta toteutettiin tarvittavat ominaisuudet. Työssä hyödynnettiin myös Boost.Asio-kirjastoa UDP-pakettien lähettämiseen ja vastaanottamiseen.
Insinöörityön lopputuloksena syntyi toimiva prototyyppi luotettavasta UDP-pohjaisesta protokollasta. Lisäksi työssä myös esitellään, kuinka protokollan avulla voidaan luoda asiakas-palvelin-mallin mukainen rakenne.