Real-time requirements for online games



Relevanta dokument
IT för personligt arbete F2

Chalmers tekniska högskola EDA390 Datakommunikation och Distribuerade system

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

TBSK 03 Teknik för Advancerade Datorspel

Projektrapport EDA095

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Instuderingsfrågor ETS052 Datorkommuniktion

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

75059 Stort sorteringsset

Hjälpprotokoll till IP

5 Internet, TCP/IP och Tillämpningar

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Hanna Germundsson, Karl-Johan Lundberg.

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Åtkomst och användarhandledning

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Piff och Puffs Chatsystem

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

TIDNINGARNAS TELEGRAMBYRÅ

Föreläsning 3.1: Datastrukturer, en översikt

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

Föräldramöten på daghem och i skolor 2015

Planeringsspelets mysterier, del 1

Datakommunikation vad är det?

Tärna Folkhögskola IT-pedagogutbildningen Individuellt fördjupningsarbete Vt IT I FÖRSKOLAN. Författare:Tove Andersson

TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

Sinnena den mänskliga hårdvaran

Kvalitetsindex. Botorp Behandlingshem. Rapport

Installation av. Vitec Online

Skriv in sökvägen sam.sll.se

Tre misstag som äter upp din tid och hur du enkelt gör någonting åt dem. Innehåll. Misstag #1: Önskelistan Misstag #2: Parkinsons lag...

Ur boken Självkänsla Bortom populärpsykologi och enkla sanningar

Lära känna skrivbordet

Förhandling - praktiska tips och råd

Tinytag. Strömtångspaket. Rev: Gjutarevägen Stenkullen

19. Skriva ut statistik

ELMIA WLAN (INTERNET)

DIG IN TO Nätverksteknologier

Projekt Västlänken 2015 Projektnummer: TRV 2013/45076 Markör

Frågor och Svar - Dräger Alcotest 3000

Att köpa ny dator SeniorNet Lidingö Januari-2016

SkövdeNät Nöjd Kund Analys

Tentamen i Datorkommunikation den 10 mars 2014

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

PLAN FÖR LIKABEHANDLING VID MONTESSORIFÖRSKOLAN FRÖHUSET OCH MONTESSORISKOLAN VÄXTHUSET

Delårsrapport till STAR VAULT AB

Routerinställning. Denna guide tar dig genom de enkla steg som behövs för att ställa in routern så den fungerar trådlöst.

Jag har kommit som sändebud från änglarna. Jag har levt tidigare på Jorden. Jag är en av mediets guider.

Varför är jag domare. Roller och förväntningar

Standard, handläggare

============================================================================

GOLFINSPIRATION Inledning. Släpp kontrollen

Hjälps åt att skriva några rader om senaste scoutmötet i avdelningens loggbok.

Bulltoftamodellen. parläsningen ger stora möjligheter till direkta stopp och omedelbara diskussioner, vilket utvecklar läsförståelsen

HOGIA skatteanalys. Installationsguiden startar med en välkomstdialog för produkten. Klicka på Nästa.

Projektpresentation Wapspel

Hej. Niklas heter jag, och detta är min oberoendeförklaring från Scientologikyrkan.

Ver Guide. Nätverk

Utvärdering 2015 deltagare Voice Camp

Betyg E (med tvekan) : (= Eleven beskriver mest med egna ord hur man upplevt träningen)

Installation och drift av Ankarspel South Pacific 710Fs - Frifallsmodell

SPELREGLER. 2-4 deltagare från 10 år

Sekretessmeddelande Kelly Services AB Innehåll

Tentaupplägg denna gång

Standard, handläggare

Avser Utgåva: Datum Sida: Primula Extern del PA (17) Dokumentbeskrivning : HANDBOK. Handbok PRIMULA. Primula Handbok för Vårdgivare

Halvårsrapport till STAR VAULT AB

Viktigt att ta kontroll över samtalet från början:

Kom igång med din SMART Board. Det praktiska

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Kundfokus för ökad användning av kommunala e-tjänster. Esmail Salehi-Sangari, LTU & KTH Maria Ek Styvén, LTU Anne Engström, LTU Åsa Wallström, LTU

En handledning för studerande på Högskolan Kristianstad

Att komma igång med FirstClass (FC)!

Skolår 2 Läsförståelse Svarshäfte

Föräldrajuryn om Halloween

De tysta vittnena. Verklighetsbakgrunden

Consump. Om du kör miljövänligt så visar den grön text och kör du inte miljövänligt så visar rött, kör du något där emellan visar den gult.

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Fotbollskolan barn födda 2002 Våren 2009

Språkäventyret. Mål. Verktyg. Inledande arbete

Erik firar jul TORSTEN BENGTSSON

Tentaupplägg denna gång

Förord Inledning. Roland Larsson Talangutvecklare, pojk, Skåne och Blekinge Förbundskapten, pojk och junior

MANUAL NETALERT FÖR IPHONE VERSION 1.0

Elkontakten. Skepparholmen. springer för Östersjön. Energikontot ger kontroll över dina elkostnader ENERGIFULL OCH NÄRA BOO ENERGI LITEN, SMART,

KiVa Skola situationskartläggningen 2016 sidan 1/31. KiVa Skola situationskartläggningen 2016 sidan 2/31

MANUAL NETALERT FÖR ANDROID VERSION 3.3

En introduktion till webbfakturan. den digitala tidsålderns faktura

LUFFARSCHACKETS GRUNDER

Projektarbete 2: Interaktiv prototyp

Skriv ut korten. Laminera dem gärna. Då håller de längre och kan användas om igen. Klipp ut dem och lägg de röda respektive de gröna i var sin ask.

PAY N PLAY 18-HÅL KROG KANSLI@SBGK.NU. Banan har. Med Norrlands bästa greener.

Öppna ditt hem för någon som behöver det. Bli familjehem, kontaktfamilj, stödfamilj eller kontaktperson.

BARNETS FEM KÄRLEKSSPRÅK

Post Mortem för Get The Treasure!

Några tips på hur man kan arbeta med fjärilar i skola och förskola

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm

OM KRITERIER av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2004

Transkript:

Real-time requirements for online games En undersökning om protokoll, tekniker och metoder som datorspel använder för att kommunicera över Internet Victor Grape Milad Hemmati Linköpings universitet Linköping 11-02-23

Sammanfattning Den här rapporten undersöker hur olika onlinespel hanterar sin dataöverföring. Syftet är både att undersöka hur de två dataöverföringsprotokollen TCP och UDP fungerar och hur spelen använder dessa, men även att redogöra för vilka nackdelar och fördelar de har. De spel vi har fokuserat på är World of Warcraft och Quake. Det är mycket som skiljer dessa spelen åt, både på funktionalitet men även på dataöverföring. Skillnaden mellan TCP och UDP är att TCP ger en säkrare dataöverföring än UDP. TCP har ett antal felhanteringsfunktioner för att garantera att data som skickas alltid kommer fram till mottagaren. Dessa funktioner är nödvändiga i spel som World of Warcraft där mycket av spelarens val baseras på tidigare händelser. UDP har däremot ingen felhantering alls. UDP ger istället en snabbare dataöverföring än TCP, och bryr sig inte om förlorad data. Detta passar bättre i spel som Quake där spelaren alltid är i behov av den allra senaste informationen, istället för det som hänt tidigare. Felhanteringsfunktionerna i TCP kan göra överföringen långsammare, vilket kan skapa fördröjningar i spelet.

Innehållsförteckning 1 Inledning... 1 1.1 Syfte... 1 1.2 Metod / källor... 1 1.3 Avgränsningar... 1 2 Protokollen... 2 2.1 TCP... 2 2.1.1 Beskrivning... 2 2.1.2 Felhantering... 2 2.1.3 Fördelar och nackdelar med TCP... 3 2.2 UDP... 3 2.2.1 Beskrivning... 3 2.2.2 Felhantering... 3 2.2.3 Fördelar med UDP... 3 3 Spelen... 4 3.1 World of Warcraft... 4 3.2 Quake... 4 4 Hur spelen använder protokollen... 5 4.1 Hur World of Warcraft använder TCP... 5 4.1.1 Nackdelar med TCP... 5 4.1.2 Fördelar med TCP... 5 4.2 Hur Quake använder UDP... 5 4.2.1 Varför Quake använder UDP... 5 4.2.2 Nackdelar/lösningar på problem... 6 4.2.3 Spel vid låg uppkopplingshastighet... 6 5 Diskussion... 7 5.1 Skillnader på spel och användning av protokoll... 7 6 Slutsats... 8 Figur- och tabellförteckning

1 Inledning Att spela spel över Internet är idag en stor del av många ungas liv. Det finns en myriad olika spel av alla tänkbara genrer som kan spelas över Internet. Från små flashspel som är tänkta att spelas i 10 minuter åt gången, till spel vars fokus ligger på offlinespelande, men som har en del som spelas online, till Massive Multiplayer Online Roleplaying Games (MMORPGs) som World of Warcraft vilket exklusivt spelas över Internet. Ämnet är intressant eftersom online-spel bara växer sig större. Flera miljoner människor världen över spelar t.ex. World of Warcraft, och antalet spelare verkar bara bli fler och fler. Det är ett aktuellt ämne idag och det har utvecklats i enorm fart på bara några år. Hur dessa spel fungerar och hur de kommunicerar över nätverk är dock oftast en gåta för de flesta spelare. Det finns olika dataöverföringsmetoder, och vissa lämpar sig bättre än andra. Den här rapporten behandlar dataöverföringsprotokollen TCP och UDP. 1.1 Syfte Rapportens syfte är att undersöka hur TCP och UDP fungerar och hur olika spel använder dem för att kommunicera över Internet. Vidare ska vi undersöka vilka fördelar och nackdelar respektive protokoll har. 1.2 Metod / källor Rapportens huvudsakliga källor är två rapporter, Quake: An Example Multi-User Network Application: Problems and Solutions in Distributed Interactive Simulations av Bonham S. et al. och Traffic Analysis and Modeling for World of Warcraft Svoboda P. et al. Förutom ovan nämnda källor har vi använt oss av RFC-dokumenten för TCP och UDP (RFC 793 respektive RFC 768) samt Computer Networking: A top-down approach av Kurose, Ross et al. 1.3 Avgränsningar Då det finns en enorm mängd olika onlinespel, vilka alla hanterar kommunikation på olika sätt. På grund av detta så begränsar vi oss till att undersöka två, i spelväg, mycket olika spel och se på skillnader och likheter angående hur de hanterar kommunikation över nätverk. De spel som vi hade tänkt undersöka är: World of Warcraft (WoW), ett Massive Multiplayer Online Role Playing Game (MMORPG), dvs. ett online-rollspel som stödjer miljontals användare samtidigt. Quake, ett First Person Shooter (FPS), dvs ett actionspel, som kan spelas över internet. 1

2 Protokollen Det finns två huvudprotokoll som används vid dataöverföring: TCP och UDP. I denna del av rapporten ska vi beskriva de olika protokollen samt deras olika styrkor och svagheter. 2.1 TCP 2.1.1 Beskrivning TCP är ett dataöverföringsprotokoll som används för att skicka dataströmmar mellan två datorer. TCP är förbindelseorienterat, vilket innebär att det först upprättas en förbindelse mellan sändaren och mottagaren innan data börjar skickas. Detta första steg i anslutningsfasen kallas för en handskakning. 1 I denna handskakning skickar den anslutande datorn, klienten, information till mottagaren, servern, om bland annat hur mycket data den kan ta emot. När mottagaren accepterar anslutningen kan data börja skickas. Data som ska skickas delas upp i s.k. segment innan de skickas vidare. Dessa segment inkapslas sedan i nätverkslagret i olika IP-paket, och skickas sedan över till mottagaren. Mottagaren talar alltid om för sändaren att den har tagit emot varje segment med hjälp av ett Acknowledgement-segment, även kallat ACK-segment. Detta ACK-segment skickar mottagaren till sändaren varje gång ett segment har mottagits. I ACK-segmentet har mottagaren specificerat hur mycket data den förväntas ta emot i nästa segment. 2.1.2 Felhantering Informationen i detta stycke är främst hämtad från RFC 793 och från boken Computer Networking, A Top-Down Approach, Kurose J, Ross K. TCP har ett antal funktioner för att göra dataöverföringen så pålitlig som möjligt. TCP ordnar upp segmenten med varsitt sekvensnummer. Sekvensnumret för ett segment är antalet bytes som skickas i det första segmentet adderat med det föregående segmentets sekvensnummer. Det första segmentet har sekvensnummer 0. Om det skickades 1000 bytes i det första segmentet så får det andra segmentet sekvensnummer 1000, det tredje segmentet får sekvensnummer 2000 och så vidare. Detta kommer till användning om ett segment skulle förloras på vägen. Om mottagaren inte tar emot ett segment så skickas det inget ACK-meddelande till sändaren. På så sätt får sändaren reda på att mottagaren inte fick segmentet, och även vilket segment det handlar om med hjälp av sekvensnumret. Sändaren kan då skicka om just det segmentet som är borttappat. Detta leder till att all information som mottagaren tar emot är fullständig och ordnad. TCP har även en funktion som kallas för flow control. Denna funktion låter mottagaren sätta upp en buffert för hur mycket data den kan ta emot. När den här bufferten är full talar mottagaren om det för sändaren i nästa ACK-segment, och sändaren stoppar då all dataöverföring tillfälligt. Slutligen har TCP ett antal funktioner samlade under namnet congestion control. I grova drag innebär det att det är ett antal funktioner som begränsar hur fort data skickas 1 Computer Networking: A top-down approach. Kurose, Ross p. 269. 2

för att inte överbelasta nätet. När nätet är överbelastat betyder det att för många datorer försöker skicka data i alldeles för hög sändningstakt. Då finns ett antal mekanismer som drar ner på sändningstakten så fort ett segment förloras. TCP antar att så fort ett segment förloras så beror det på att nätet är på väg att bli överbelastat. Då dras sändningstakten ner till hälften av det nuvarande, och när inga segment går förlorade så ökas sändningstakten igen. 2.1.3 Fördelar och nackdelar med TCP TCP är inte passande för alla sorters applikationer. På grund av all felhantering TCP har kan dataöverföringen ibland bli långsammare än med exempelvis UDP. TCP bör användas när det är viktigare att få fram pålitlig data i ordning än att få det så snabbt som möjligt. Vid applikationer som Internet, filöverföring och e-mail är TCP ett självklart val eftersom mottagaren måste ta del av exakt all data som skickas för att t.ex. kunna spela upp en fil eller läsa ett mail. Exempel på när det är viktigare att få fram data så snabbt som möjligt är vid streaming av multimedia eller vid vissa online-spel. Där är det mer fördelaktigt att använda UDP. En annan nackdel med TCP är att den är mer komplex att hantera på grund av alla funktioner som implementeras. 2.2 UDP 2.2.1 Beskrivning UDP är ett av de enklaste protokollen som finns på Internet idag, och just denna enkelhet är en av anledningarna till dess effektivitet. UDP skapar inte mycket mer än ett enkelt skal kring det data som protokollet får från applikationslagret. Protokollet utvecklades 1980 och finns beskrivet i RFC 768. Till skillnad från TCP så är UDP ett förbindelselöst protokoll. Det innebär att UDP inte har någon sorts handskakning som skapar session mellan sändare och mottagare, utan sändaren skickar bara ut data i hopp om att mottagaren får den. Om mycket data skickas ut i kort följd via UDP finns det en risk att paketen hamnar ur ordning på väg till mottagaren. 2.2.2 Felhantering Till skillnad från TCP har UDP inget fält för sekvensnummer. Det innebär att mottagaren inte har någon aning om i vilken ordning paketen skickades. I många applikationer kan detta vara förödande, speciellt om paketens data måste ligga i ordning för att vara användbar, men som vi kommer att se påverkar detta inte alltid spelupplevelsen negativt. UDP har bara en väldigt grundläggande felhantering via Checksum-fältet, vilket innebär att applikationen som använder protokollet måste ta hand om felhanteringen. 2.2.3 Fördelar med UDP Genom att minimera de tjänster som protokollet erbjuder kan det ha en header på endast 8 bytes. Detta minskar mängden data som måste behandlas i varje steg och gör att protokollet kan ta sig fram över nätverket snabbare än protokoll med mer data. 1

Just snabbheten hos UDP gör det till ett väldigt bra protokoll för snabbare datorspel där information om hur det är exakt nu är mycket viktig. 2

3 Spelen 3.1 World of Warcraft World of Warcraft, hädanefter kallat WoW, är ett så kallat Massive multiplayer online role-playing game, MMORPG. Spelet utspelar sig i två fiktiva världar där man som spelare har en karaktär som man styr. Målet är att utveckla sin karaktär med ny utrustning och nya vapen och slåss mot andra spelare. Spelet är det populäraste onlinespelet idag med cirka 12 miljoner registrerade spelare. 2 WoW är ett spel som det är tänkt att man som spelare ska kunna spela i flera timmar per tillfälle, ofta tillsammans med andra spelare i föreningar som finns i spelet, så kallade guilds. 3.2 Quake Quake är en FPS som kan spelas över Internet. Det släpptes i maj 1996 och fick i december samma år en uppdatering kallad Quake World 3. Av dessa två är det är framför allt Quake World som kommer att beskrivas i denna rapport. Quake är ett First-person shooter, förkortat FPS, ett förstapersons skjutar-spel. Det innebär att spelaren ser världen genom sin karaktärs ögon. FPS-spel är generellt sätt snabba spel som spelas i matcher som sällan varar mer än ca 10-20 minuter, och Quake är inget undantag. Bild 1: World of Warcraft Bild 2: Quake 2 http://eu.blizzard.com/en-gb/company/press/pressreleases.html?081223 3 http://sv.wikipedia.org/wiki/quake 1

4 Hur spelen använder protokollen 4.1 Hur World of Warcraft använder TCP Till skillnad från många andra onlinespel använder sig World of Warcraft av TCP som dataöverföringsprotokoll. Ett annat alternativ är UDP som skickar data fortare än TCP, men som inte alls är lika säkert. TCP ger, som tidigare nämnt, en pålitlig och stabil dataöverföring som motverkar förlust av data. Detta är fördelaktigt vid spel som WoW där man som spelare spelar långa sessioner utan avbrott, och där ett enda paketförlust kan skapa stora fel senare under spelets gång. 4.1.1 Nackdelar med TCP Anledningen till att majoriteten av onlinespelen inte använder sig av TCP är för att dess felhanteringsfunktioner kan skapa fördröjningar. När ett segment förloras på vägen så måste alla andra skickade segment vänta på att datorn skickar om detta förlorade segment, innan de kan fortsätta till den mottagande datorn. Detta är för att all data ska komma fram i rätt ordning. Men som ni förstår skapar detta fördröjningar som i vissa spel kan vara avgörande för spelaren. 4.1.2 Fördelar med TCP I WoW är det däremot viktigare att spelare får tillgång till all information om vad som händer runt om kring. Detta för att många val spelaren gör baseras på omgivningen. För att motverka fördröjning av skickade segment har WoW en metod där man skickar flera små datasegment istället för några få större. Detta håller nere Round Trip Time, RTT, vilket är tiden det tar från att ett segment skickas från sändaren till att ett svar anländer från mottagaren. Skulle ett segment förloras på vägen går det fortare för sändaren att skicka om detta ju mindre segmentet är. 4.2 Hur Quake använder UDP När Quake spelas över Internet skickas UDP-paket mellan klienterna och servern innehållande bl.a. spelarnas absoluta positioner i tre dimensioner, vilket gör att spelarnas positioner kan bestämmas även om tidigare paket har tappats. Dessutom innehåller paketen en tidsangivelse, så att klienterna och servern kan se om paketet är den senaste uppdateringen, eller gammalt, dvs. skickat innan den senaste uppdateringen. 4.2.1 Varför Quake använder UDP Eftersom FPS-spel som Quake ofta är mycket snabba måste spelarna snabbt kunna reagera på vad som händer runt omkring dem. Därför delas spelet upp i två delar, en del hos klienten och en del hos servern. Servern håller koll på alla spelares positioner, deras liv, vapen mm. Allt som förändrar, eller kan förändra ovanstående variabler måste kollas upp med servern innan de förändras, så att spelarna t.ex. inte går igenom en vägg. Å andra sidan så har klienten full möjlighet att se sig omkring utan att behöva vänta på att servern accepterar det. Det systemet låter spelaren reagera snabbare än om spelaren alltid skulle behöva skicka förfrågningar till servern. 2

4.2.2 Nackdelar/lösningar på problem Då UDP är ett förbindelselöst protokoll så finns alltid risken att paket som skickas över nätverket tappas eller hamnar ur ordning. Eftersom det är dessa paket som förser spelarna med bl.a. varandras positioner så kan ett stort antal tappade paket få spelet att lagga. För att lösa det till uppdateringen Quake World skapades en funktion hos klienten som lät den simulera hur olika saker skulle utspela sig i spelet, fristående från servern. Detta lät spelare med dålig uppkoppling fortsätta spela, även om paketen inte kom fram. Dock finns det då en risk att spelet utvecklar sig skiljt från hur den sanna spelvärlden, som ligger på servern, utvecklas. 4.2.3 Spel vid låg uppkopplingshastighet Med en hög uppdateringsfrekvens är skillnaden mellan serverns spelvärld och klientens spelvärld inget problem, och för spelare med dålig uppkoppling blir spelet fortfarande mer spelbart än utan simuleringsfunktionen. Ett experiment har visat att Quake World var spelbart med 50 % tappade paket, på grund av simulationsfunktionen 4. Experimentet visade också på att även om det uppstod skillnader mellan klientens och serverns spelvärld, så jämnades det ut för att ligga förhållandevis nära varandra så länge som det kom fler paket med de andra spelarna positioner inom rimlig tid. Dock finns det en gräns även för simulationen. Om uppdateringar tar alldeles för lång tid på sig så antar klienten att den har tappat kontakten med servern och fryser spelet. Detta kan ses som både en svaghet och styrka i spelet. Svaghet då det inte går att spela vidare, men en styrka då det förhindrar att klientens spelvärld skiljer sig alltför mycket från serverns sanna spelvärld. 5 4 Quake: An Example Multi-User Network Application Problems and Solutions in Distributed Interactive Simulations, Bonham S et. al. 5 Computer networking, a top down approach, kap 3.3, Kurose J et al. 1

Bild 3: Skillnader mellan serverns och spelarens spelvärld, axlarna representerar spelarpositionen i tre dimensioner "Quake: an Example Multi-User Network Application 2

5 Diskussion 5.1 Skillnader på spel och användning av protokoll Det finns stora skillnader mellan de båda spelen. World of Warcraft har en enorm spelvärld med en enorm mängd olika spelare medan Quake spelas mellan lag med ett fåtal spelare vardera i en liten spelvärld. Dessa skillnader gör att de båda spelen har helt olika krav på vad för slags data de behöver skicka, när de behöver skicka den och hur pålitlig länken måste vara. För WoW, med sina enorma mängder användare och långa sessioner, så är det fördelaktigt med ett protokoll som har en stadig ström av data mellan servern och klienterna. Detta kan TCP tillhandahålla. Protokollet har dessutom många felhanterande funktioner, vilket är väldigt attraktivt för spel som kräver en stadig dataström. Quake å andra sidan har inget behov av att ha en så stadig dataström. Det beror på att Quake bara är intresserad av den allra senaste datan, det som har hänt är inte av något större intresse. Av den anledningen är UDP, med de specifikationer nämnda i beskrivningen, ett bra val, speciellt på grund av den snabbhet som finns i programmet. För Quake skulle inte TCP fungera, då protokollets extra säkerhet, flödeskontroll och liknande tar upp för mycket data och kan göra protokollet långsammare, speciellt i nätverk med hög congestion. TCP-paketens sekvensnummer är för WoW en fördel, då det ger spelet förmågan att upptäcka om ett paket tappats bort på vägen till klienten. För WoW är denna funktion mer fördelaktig än den möjliga lagg som funktionen skapar. Tvärt om är det med Quake. Om ett TCP-paket skulle tappas bort skulle spelet inte kunna fortsätta innan det hade skickats om. Då kan du som spelare redan ha blivit dödad i spelet och förlorat en viktig session. Då UDP inte har något sekvensnummer innebär det att den inte alls bryr sig om i vilken ordning paketen skickades, utan den behöver bara se om det skickats efter det föregående paketet. För WoW å andra sidan, innehåller paketen mer information än Quakes paket. Då UDP inte ersätter tappad data så skulle risken finnas att data går förlorad för alltid om den inte kan ersättas. 1

6 Slutsats Som vi har konstaterat tidigare finns det både fördelar och nackdelar med TCP och UDP. Skillnaden mellan dessa protokoll gör att de lämpar sig bra eller mindre bra för olika sorters applikationer. I WoW är det viktigare att exakt all data kommer fram till spelarna. Ett paketförlust kan leda till oanade konsekvenser senare under spelets gång, med tanke på att man som spelare spelar långa sessioner utan avbrott, och där din nuvarande position baseras på det som hänt tidigare. Därför lämpar sig TCP bättre i det här fallet. TCP har en viss garanti på att all data som skickas verkligen kommer fram till mottagaren. Denna garanti beror på att TCP har ett antal felhanterande funktioner, så som flow control och congestion control. I Quake, däremot, är det viktigare för spelaren att få den allra senaste informationen om var han befinner sig på spelet och var hans motståndare finns. Spelet har ett högt tempo och det går ut på att döda sina fiender och undvika att själv bli dödad, därför är fördröjningar inte accepterade. Ett enda paketförlust kan leda till att du förlorar kontroll över din spelare i en liten stund, vilket i sin tur kan leda till att du blir dödad av en fiende. För spel som Quake passar alltså UDP bättre som dataöverföringsprotokoll. UDP är både snabbare och mindre krävande jämfört med TCP. Nackdelen är att UDP inte har några felhanteringsfunktioner för att skicka om förlorad data, men i spel som Quake är inte detta alltid önskvärt. Båda spelen har sina anledningar till varför de har valt det protokoll de har. Ett spel som är mer krävande och som inte tolererar dataförluster, så som WoW, gör helt rätt i att använda sig av TCP, medan spel som inte direkt baseras på tidigare händelser och som bara är intresserad av den senaste datan, så som Quake, gör bättre i att använda sig av UDP. 2