Case Study Report – World of BCU Online gaming has become one of the largest mainstreamentertainment services ever with the rapid continuous growth of people aroundthe world competing or just enjoying their time in the online world of thefranchises they love and the ‘World of BCU’ one of those beloved games on thelist. A MMORPG (Massive Multiplayer Online Role-Playing Game) that places theplayer in a role of a BCU student undertaking quests to achieve and obtain theultimate item called ‘The Degree’. In the online world players collaborate inreal-time together to achieve tasks. The online world state is managed and hosted within theservers in the BCU datacentre located in Birmingham.
The discussion of thisstudy report will revolve around how the network system works behind the scenesof the game of many people who play constantly every day. To understand thestructure of a network that keeps many players in one world, and to identifythe issues and explore the possibilities of any potential problems that mayaffect the network. A MMO is this vast growing player base that offers newways to learn, entertain, collaborate, socialize and visualize information, anddo business. This can only happen using networks to connect with differentplayers and with the world. A reliable network is crucial to ensure the bestpossible performance to experience the freedom they have been given to them. MMORPGsare the most popular out of all MMO game genres. A high level MMO architecture would have gaming clients torender the game for the user and have gaming servers to interact with thegaming client.
A web application server to integrate with the gaming serversand clients. A database server to persist and retrieve data. Architecturecomponents that make up a high-level architecture are the following – GameClient, Game Server, Web application server and a Database management system. Network Topology of given Scenario The client is the player who is now connected to the internet.The firewall appears when accessing a website or a software client that acts asa barrier between a network of machines and users that operate under a common securitypolicy and general trust each other. After that the user is granted access tothe Login servers when information is entered will go through the user databaseto find a match.
The user goes through a authentication to check whether theinformation is correct to fully proceed to the game servers. There multiplegame servers, which if one server is full of players then the client is movedto another server which has a bit less of people in it. Game Server 1 willalways act as a priority server which the other two will be at standby ifServer 1 is at full capacity. Multi-user instance is there to allow anoperating system of multiple users to connect to a network at once or differenttimes.
QoS (Quality of Service) RequirementsQuality of Service (QoS) are technical specificationsthat specify quality of features such as performance, availability, scalabilityand much more of any given scenario. They are driven by business needsspecified in the business requirements, an example for this would be if theservices of a certain game or media application must be available 24 hours aday throughout the whole year or many years to come. The availabilityrequirement must address the business requirement. The primary goal of QoS isto provide priority, including dedicated bandwidth, controlled jitter andlatency (required by some real-time and interactive traffic), and improved losscharacteristics. It is important to assure that providing priority for one ormore flows does not cause the failure of requirements to be guaranteed to theusers. To have a great understanding how fast data can be transferred, how muchthe receiver must wait, how correct the received data is likely to be, and howmuch data is likely to be lost, etc.MMO GameArchitecture Requirements The list shows a form of basis for QoS requirements for aMMO game.
These are some of the system qualities affecting the QoS requirements. Scalability- Ability to scale seamlessly to allowany potential number of concurrent users without shutting down the servers, oneserver should scale around thousands of players with relative ease. Scalabilityusually requires additional recourses, but should not require changes in thedesign of the deployment architecture of loss of service due to the timerequired add additional resources. Flexibility indeployment and in game design – To minimize the constraints on gamedesigners, and facilitate the ability to design an expansive integrated world.Allowing a wide range of gaming server configurations where it should berelatively easy and updates that should be transparent to the end user. Low Latency –Synchronize tens of thousands of clients simultaneously without dropping anydata. Processing -Process hundreds of thousands of threads simultaneously without any error.
Performance andPersistence – One of the most vital component in smooth, quick and seamlessgameplay that provide performance-related functions, such as game-server loadbalancing and monitoring. State of player, game and connection must bemaintained always. Functions –Provide a means to perform functions for an a MMO game. A feature might be theability to persist and retrieve game data, such as player and game-relateddata. Redundancy – Aredundancy system for the Server and DB structure for world state restoration. Security – Besecure and provide the best security to prevent exposure of any security risksthat might potentially harm the end user. Security includes authentication andauthorization for users, security of data, and secure access to a deployedsystem.
Network Performance Delay: The amount of time data (signal) takes to reachthe destination. Now a higher delay generally means congestion of some sort ofbreaking of the communication. TransmissionDelays: Jitter: Is the variation of delay time. This happens whena system is not in a deterministic state, for example video streaming suffersfrom jitter a lot because the size of data transferred is quite large and henceno way of saying how long it might take to transfer. Jitter in the network willmore greatly impact collaborative coordination than latency. Higher latencieswith low jitter will still allow collaborators to make reasonable predictionsof how an environment will behave (the overall task performance will decline).
However high jitter reduces predictability and hence collaborators are forcedto employ a purely sequential interaction strategy. There are three major network performance indicators(latency, throughput and packet loss) that reflect and how they interact witheach other in TCP and UDP traffic streams. · Latency is the time required to vehiculate apacket across a network.- Latency may be measured in many ways: roundtrip, one way, etc.- Latency may be impacted by any element in chainwhich is used to vehiculate data:routers, WAN links, local areanetworks, workstation, servers etc.· Throughput is defined as the quantity of databeing send/received by unit of time.· Packet loss reflects the number of packets lossper hundred of packets by a host.
UDP Throughput is not impacted by latency, UDP is aprotocol used to carry over IP networks. The rate at which packets can be sentby the sender is not impacted by the time required to deliver the packets tothe other party (=latency). Whatever that time is, the sender will send a givennumber of packets per second depending on other factors such applications,operating system, resources, …). TCP however is directly impacted by latencybecause of the more complex protocol. It integrates a mechanism which checksall packets are correctly delivered.
This mechanism is called”acknowledgement”, which it consists in having the receiver sending a specificpacket or flag to the sender the proper reception of a packet. TCP and UDPTCPTCP stands for “transmission control protocol” and IP standsfor “internet protocol”. Together the form the backbone for almost everythingin the online world, from web browsing to IRC to email, it’s all built on topof TCP/IP. TCP sockets is a reliable connected based protocol which meanscreating a connection between two machines, making exchange of data much likeyou’re writing a file on one side, and reading from a file on the other. Whyare TCP connections reliable? All the data send is guaranteed to arrive atother side and in the order, it is written by the other user. It’s also astream protocol, meaning TCP automatically splits the data into packets andsends them over the network.
Even though TCP is connection based and isguaranteed reliable and ordered that automatically breaks data into packets,making sure data is not being sent too fast. UDPUDP stands for “user datagram protocol” and it’s anotherprotocol built on top of IP, unlike TCP, instead of adding lost features andcomplexity, UDP is a very thin layer over IP. UDP is a connectionless protocol.UDP is largely used by time sensitive application as well as by servers thatanswer small queries from huge number of clients. UDP is compatible with packetbroadcast, sending to all on a network and multicasting where its sending toall subscribers. UDP is commonly used in Domain Name System, Voice over IP,Trivial File Transfer Protocol and online games.Which to use for Game Servers?For Massive multiplayer online games, developers often mustmake an architectural choice between using UDP or TCP persistent connections. Theadvantages of TCP are persistent connections, reliability and being able to usepackets of arbitrary sizes.
The disadvantages with TCP in this scenario is itscongestion control algorithm, which treats packet loss as an assign ofbandwidth limitations and automatically throttles the sending of packets. If on3G or WIFI-networks, this can cause a significant latency.Experienced developer Christoffer Lernöweighed the pros and cons and recommends the following criteria to choosewhether to use TCP or UDP for your game:· Use HTTP over TCP for making occasional,client-initiated stateless queries when it’s OK to have an occasional delay.· Use persistent TCP sockets if both client andserver independently send packets but an occasional delay is OK (e.g. OnlinePoker, many MMOs).
· Use UDP if both clients and server mayindependently send packets and occasional lag is not OK (e.g. Most multiplayeraction games, some MMOs).
QoS mechanismsDifferentiated servicesDifferentiated services or DiffServ is a computing networkingarchitecture that specifies a simple and scalable mechanism for classifying andmanaging network traffic and providing a quality of service on modern IPnetworks. DiffServ can be used to provide low-latency to critical network trafficsuch as voice, streaming services or even in online games while providingsimple best-effort service to non-critical services such as web traffic or filetransfers. DiffServ reduces the burden on network devices and easily scales asthe network grows.
It operates on the principle of traffic classification,where each data packet is placed into a limited number of traffic classes,rather than differentiating network traffic based on the requirements of anindividual flow. Each router on the network is configured to differentiate trafficbased on its class. Each traffic class can be managed differently, ensuringpreferential treatment for higher priority traffic on the network. DiffServ uses 6 bits in the IP header to specify its values,called the DCSP (Diffserv code point); the first 6 bits of the TOS field, thefirst three of which were formerly used for IP precedence.
Differentiatedservices has subsumed IP precedence, but maintains backward compatibility. Trafficconditioning: Ensure that traffic entering the DiffServ domain. Packetclassification: Uses a traffic descriptor to categorize apacket within a specific group.Packetmarking: To classify a packet based on a specific traffic descriptor.Congestionmanagement: Achieve scheduling and traffic queuing. Congestionavoidance: To monitor network traffic loads to avoid congestion at commonnetwork bottlenecks. It may be achieved through packet dropping.
Multicasting Routing ProtocolsIP multicast is a method of sending Internet Protocolsdatagrams to a group of interested receivers in a single transmission. It is aform of point-to-multipoint communication employed for streaming media andother applications on the internet and private networks. IP multicast reservedmulticast address blocks in IPv4 and IPv6. The most common transport layer protocol to use multicastaddressing is UDP.
By its nature UDP is not reliable because message may belost or delivered out of order. Reliable multicast protocols such as PragmaticGeneral Multicast (PGM) have been developed to add loss detection andretransmission on top of IP multicast.Multicast is not a connection-oriented mechanism, soprotocols such as TCP which allows for retransmission of missing packets maynot be appropriate. For applications such as streaming audio and video, theoccasional dropped packet is not a problem, but for distribution for criticaldata, a mechanism is required for requesting retransmission.