diff --git a/report.lyx b/report.lyx index fa77e13..10c819b 100644 --- a/report.lyx +++ b/report.lyx @@ -2173,7 +2173,7 @@ Find reference on how to benchmark distributed, multiprocess systems \end_layout \begin_layout Section -Choice of network protocol +Choosing a network protocol \begin_inset CommandInset label LatexCommand label name "sec:Choice-of-network" @@ -2184,14 +2184,15 @@ name "sec:Choice-of-network" \end_layout \begin_layout Standard -There are two main ways in which computer communication over the Internet - usually takes place; TCP, UDP are known network layer protocols and HTTP - is the most prominent application layer protocol. +There are two main types of protocols with help of which computer communication + over the Internet usually takes place; TCP and UDP which are known as the + network layer protocols and HTTP which is the most prominent application + layer protocol. The transport layer protocols are commonly used to transport application - layer protocols, such as HTTP. - TCP and UDP cannot be used on their own, without an application layer protocol - on top. - Application layer protocols such as HTTP on the other hand needs a transport + layer protocols such as HTTP. + TCP and UDP cannot be used on their own without an application layer protocol + on top of them. + Application layer protocols such as HTTP on the other hand need a transport layer protocol in order to work. \begin_inset ERT @@ -2221,26 +2222,11 @@ Many online games use UDP as the carrier for their application layer protocol. UDP moves data across a network very quickly, however it does not ensure that the data transferred arrives in consistent manner. Data sent via UDP may be repeated, lost or out of order. - To ensure the data transferred is in good shape, some sort of error checking - mechanisms must be implemented. + To ensure that the data is transferred is in good shape, some sort of error + checking mechanisms must be implemented. UDP is a good choice for applications where it is more important that data arrives in a timely manner than that all data arrives undamaged, it is - thus very suitable for media streaming, for example. - In the GGS reliability of transfer was chosen before the speed of the transfer, - ruling out UDP as the transport later protocol. - -\begin_inset Note Note -status collapsed - -\begin_layout Plain Layout -Perhaps we should only say that we chose TCP just for our GGS prototype - and why. - If we leave it like that it seems that we think it is not suitable. -\end_layout - -\end_inset - - + thus very suitable for media streaming for example. \end_layout \begin_layout Subsection @@ -2248,27 +2234,12 @@ TCP \end_layout \begin_layout Standard -For reliable transfers, TCP is often used on the Internet. +For reliable transfers TCP is often used on the Internet. Built in to the protocol are the error checking and correction mechanisms missing in UDP. This ensures the consistency of data, but also makes the transfer slower than if UDP had been used. - In the GGS, data consistency is more important than transfer speeds, and - thus TCP is a better alternative than UDP. -\begin_inset Note Note -status collapsed - -\begin_layout Plain Layout -Same here it is simply not true for a generic server to chose one or the - other. - We should rephrase it so it is clear that we only state it about the GGS - prototype. -\end_layout - -\end_inset - - \end_layout \begin_layout Subsection @@ -2276,7 +2247,7 @@ HTTP \end_layout \begin_layout Standard -Since HTTP is so widely used on the Internet today in web servers, it is +Since HTTP is so widely used in web servers on the Internet today, it is available on most Internet connected devices. This means that if HTTP is used in the GGS, firewalls will not be a problem, which is a great benefit. @@ -2289,8 +2260,7 @@ Since HTTP is so widely used on the Internet today in web servers, it is the GGS requires a state to be maintained throughout a session and also needs to push data from the server to clients without the clients requesting data. - It should also be mentioned that HTTP uses the TCP protocol for transport, - and what is said about TCP applies to HTTP. + It should also be mentioned that HTTP uses the TCP protocol for transport. \end_layout \begin_layout Subsection @@ -2318,7 +2288,7 @@ reference "sub:The-protocol-parser" \end_layout \begin_layout Section -Generic Structure of the GGS +Generic structure of the GGS \begin_inset CommandInset label LatexCommand label name "sec:Generic" @@ -2331,14 +2301,15 @@ name "sec:Generic" \begin_layout Standard The GGS is a game server. It was made with a desire to be suitable for any kind of game. - Any game with a client-server behavior should be perfectly suited for GGS. + Any game with a client-server behavior should be perfectly suited for the + GGS. A game should not only be able to vary in terms of genre, graphics, gameplay - etc, but also in the way the game is implemented such as different programming - languages. + etc, but also in the way the game is implemented for example in different + programming languages. The GGS should be OS independent and run on Windows, OSX and Linux. The GGS can be run as a listen server on the players computer and host games locally. - It could also be a dedicated server running on independent hardware. + It could also be a dedicated server running on dedicated independent hardware. It is meant to run any game in any environment in any way desired, therefore being as generic as possible. \end_layout @@ -2347,12 +2318,19 @@ The GGS is a game server. Another aspect was the desire to let a client upload the source code of the game it would like to play on the GGS. This way every client could connect to the server and install the game - through a API without the need of installation through the server provider - or maintainer. + through a +\begin_inset CommandInset nomenclature +LatexCommand nomenclature +symbol "API" +description "Application programming interface" + +\end_inset + + without the need of installation through the server provider or maintainer. \end_layout \begin_layout Section -Fault Tolerance +Fault tolerance \begin_inset CommandInset label LatexCommand label name "sec:Fault-Tolerance"