• Ei tuloksia

communication architecture communication architecture

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "communication architecture communication architecture"

Copied!
5
0
0

Kokoteksti

(1)

§8.2 Logical Platform

§8.2 Logical Platform

‹

‹

communication architecture communication architecture

™

™peerpeer--toto--peerpeer

™

™clientclient--serverserver

™

™serverserver--networknetwork

‹

‹

data and control architecture data and control architecture

™

™centralizedcentralized

™

™replicatedreplicated

™

™distributeddistributed

Communication Architecture Communication Architecture

Single node Single node

Peer- Peer -to to- -peer peer

Client Client- -server server

Server Server- -network network

Communication

Communication Architecture (cont’d) Architecture (cont’d)

‹

‹

Logical connections Logical connections

™

™how the messages flowhow the messages flow

‹

‹

Physical connections Physical connections

™

™the wiresthe wiresbetween the between the computers computers

™™the limiting factor in the limiting factor in communication architecture communication architecture design

design p1 p2

LAN

Two players on a LAN

Example: How Many Players Can We Example: How Many Players Can We

Put into a Two

Put into a Two- -Player LAN? Player LAN?

‹‹Distributed Interactive Simulation Distributed Interactive Simulation (DIS) protocol data unit (PDU):

(DIS) protocol data unit (PDU):

144 bytes (1,152 bits) 144 bytes (1,152 bits)

‹

‹Graphics: 30 frames/secondGraphics: 30 frames/second

‹‹PDU ratesPDU rates

™

™aircraft 12 PDU/secondaircraft 12 PDU/second

™™ground vehicle 5 PDU/secondground vehicle 5 PDU/second

™

™weapon firing 3 PDU/secondweapon firing 3 PDU/second

™™fully articulated human 30 fully articulated human 30 PDU/second PDU/second

‹

‹BandwidthBandwidth

™™Ethernet LAN 10 MbpsEthernet LAN 10 Mbps

™

™modems 56 Kbpsmodems 56 Kbps

‹‹Assumptions:Assumptions:

™

™sufficient processor powersufficient processor power

™™no other network usageno other network usage

™

™a mix of player typesa mix of player types

⇒⇒LAN: 8,680 packets/secondLAN: 8,680 packets/second fully articulated humans + firing = fully articulated humans + firing = 263 humans

263 humans

aircrafts + firing = 578 aircrafts aircrafts + firing = 578 aircrafts ground vehicles + firing = 1,085 ground vehicles + firing = 1,085 vehicles

vehicles

‹

‹Typical NPSNETTypical NPSNET--IV DIS battleIV DIS battle

™

™limits to 300 players on a LANlimits to 300 players on a LAN

™

™processor and network processor and network limitations limitations

Example (cont’d) Example (cont’d)

⇒Modem: 48 packets/secondModem: 48 packets/second fully articulated humans + firing = 1 fully articulated humans + firing = 1 human

human

aircrafts + firing = 3 aircrafts aircrafts + firing = 3 aircrafts ground vehicles + firing = 6 vehicles ground vehicles + firing = 6 vehicles

‹

‹Redesign packetsRedesign packets

™™size 22%, 32 bytessize 22%, 32 bytes

⇒Modem: 218 packets/secondModem: 218 packets/second fully articulated humans + firing = 7 fully articulated humans + firing = 7 human

human

aircrafts + firing = 14 aircrafts aircrafts + firing = 14 aircrafts ground vehicles + firing = 27 vehicles ground vehicles + firing = 27 vehicles

‹

‹In a twoIn a two--player game on a LAN, player game on a LAN, the protocol selection (TCP, UDP, the protocol selection (TCP, UDP, broadcast,...) hardly matters broadcast,...) hardly matters

‹

‹As the number of live or As the number of live or autonomous players increase an autonomous players increase an efficient architecture becomes efficient architecture becomes more important

more important

Multiplayer Client

Multiplayer Client- -Server Server Systems: Systems:

Logical

Logical Architecture Architecture

‹

‹ClientClient--server systemserver system

™

™each player sends packets to each player sends packets to other

otherplayers via a serverplayers via a server

‹

‹Server slows down the message Server slows down the message delivery

delivery

‹‹Benefits of Benefits of having ahaving aserverserver

™

™no need tono need tosend all packets to all send all packets to all players

players

™

™compress multiple packets to a compress multiple packets to a single packet

single packet

™

™smooth outsmooth outthe packet flowthe packet flow

™

™reliable communication without reliable communication without the overhead of a fully connected the overhead of a fully connected gamegame

™

™administrationadministration

p1 p2 pn

Communication paths

Multiplayer client-server - logical architecture

(2)

Multiplayer Client

Multiplayer Client- -Server Systems: Server Systems:

Physical Architecture (on a LAN) Physical Architecture (on a LAN)

‹

‹All messages in the same wireAll messages in the same wire

‹

‹Server has to provide some addedServer has to provide some added--value functionvalue function

™™collecting datacollecting data

™

™compressing and redistributing informationcompressing and redistributing information

™

™additional computationadditional computation

p1 p2

LAN

Multiplayer client-server - physical architecture on a LAN

pn Server

Physical

Physical Architecture Can Architecture Can Match Match the the Logical Logical Architecture Architecture

p1 p2 pn

Server

Phone lines

Multiplayer client-server - physical architecture with phone lines

Traditional Client

Traditional Client- -Server Server

‹

‹

Server may act as Server may act as

™

™broadcast reflectorbroadcast reflector

™

™filtering reflectorfiltering reflector

™

™packet aggregation serverpacket aggregation server

‹‹

Scalability problems Scalability problems

™™all traffic all traffic goes throughgoes throughthe the server

server

⇒⇒Server

Server- -network architecture network architecture

SS CC

CC CC C C

C C C

C CC

C C C C

CC C C CC C

C

C C

Multiplayer

Multiplayer Server Server- -Network Architecture Network Architecture

‹

‹PlayersPlayerscan locate in the same can locate in the same place in the

place in the game world,game world,but but reside on

reside ondifferent serversdifferent servers

™™real world ≠ game worldreal world ≠ game world

‹

‹ServerServer--toto--server connections server connections transmit

transmit the worldthe worldstate state information information

™

™WAN, LANWAN, LAN

‹

‹Each server serves a number of Each server serves a number of client players

client players

™

™LAN, modem, cable modemLAN, modem, cable modem

‹

‹ScalabilityScalability

p1,1 p1,2 p1,n

p2,1 p2,2 p2,n p3,1 p3,2 p3,n

Server 2 Server 3

Server 1

Partitioning Clients

Partitioning Clients across across Multiple Servers Multiple Servers

‹‹

The servers exchange control The servers exchange control messages among themselves messages among themselves

™

™inform the interestsinform the interestsof their of their clients

clients

‹‹

Reduces the workload on each Reduces the workload on each server

server

‹‹

Incurs a greater Incurs a greater latency latency

‹

‹

The total The total processing and processing and bandwidth requirements are bandwidth requirements are greater

greater

S S S

S SS

S S C

C

C C C C CC

C C C

C CC

C C C C

C C

C C C C C

C

CC

Partitioning the

Partitioning the Game World Game World across across Multiple Multiple Servers

Servers

‹

‹Each server manages clients Each server manages clients located within a certain region located within a certain region

‹‹Client communicates with Client communicates with different serves as it different serves as it movesmoves

‹

‹Possibility to aggregate messagesPossibility to aggregate messages

‹

‹Eliminates a lot of network trafficEliminates a lot of network traffic

‹

‹Requires Requires advancedadvancedconfigurationconfiguration

‹

‹Is Is a regiona regionvisible from another visible from another region?

region?

CC CC CC

C C

CC C C

CC S

S SS

S

S SS

(3)

Server Hierarchies Server Hierarchies

‹

‹Servers themselves Servers themselves act asact asclientsclients

‹

‹Packet fromPacket froman upstreaman upstreamserver:server:

™™deliver to deliver to the interestedthe interested downstream clients downstream clients

‹

‹Packet from Packet from a downstreama downstreamclient:client:

™

™deliver to deliver to the interestedthe interested downstream clients downstream clients

™

™if other regions are interested in if other regions are interested in the

the packetpacketthen then deliver itdeliver itto the to the upstream

upstreamserverserver CC CC

CC C C

CC C C

CC S

S SS

S

S SS

SS S S

S S

Peer- Peer -to to- -Peer Architectures Peer Architectures

‹

‹In the In the idealideallargelarge--scale scale networked networked game

gamedesign, design, avoid havingavoid havingservers servers at all

at all

™

™eventually we cannot scale outeventually we cannot scale out

™

™a finitea finitenumber of playersnumber of players

‹‹Design Design goalgoal

™

™peerpeer--toto--peer communicationpeer communication

™™scalable within resources scalable within resources

‹

‹PeerPeer--toto--peer: communication peer: communication goesgoes directly from the sending player to directly from the sending player to the receiving player (or the receiving player (or a seta setof of them)

them)

p1 p2

LAN

Peer-to-peer on a LAN pn

p1,1p1,2 p1,n

p2,1p2,2 p2,n p3,1p3,2 p3,n

Server 2 Server 3

Server 1

p3 p4

p2 p1

Peer Peer- -to to- -Peer with Multicast Peer with Multicast

‹‹For a scalable multiplayer game For a scalable multiplayer game on a LAN, use multicast on a LAN, use multicast

‹

‹To utilize multicast, assign packets To utilize multicast, assign packets to proper multicast groups to proper multicast groups

‹

‹AreaArea--ofof--interest managementinterest management

™™assign outgoing packets to the assign outgoing packets to the right groups

right groups

™™receive incoming packets to the receive incoming packets to the appropriate multicast groups appropriate multicast groups

™™keep track of available groupskeep track of available groups

™

™even out stream informationeven out stream information

p1 p2

Network

AOIM software layer pn

AOIM 1 AOIM 1 AOIM 1

Peer- Peer -Server Server Systems Systems

‹

‹

Peer Peer- -to to- -peer: minimizes peer: minimizes latency,

latency, consumes consumes bandwidth bandwidth

‹‹

Client Client- -server: effective server: effective aggregation and filtering, aggregation and filtering, increases

increases latency latency

‹

‹

Hybrid Hybrid peer peer- -server: server:

™

™overovershort-short-haul, highhaul, high-- bandwidth links: peer bandwidth links: peer--toto--peerpeer

™

™overoverlong-long-haul, lowhaul, low-- bandwidth links:

bandwidth links: clientclient--serverserver

‹

‹

Each entity has own Each entity has own multicast group multicast group

‹

‹

Well Well- -connected hosts connected hosts subscribe directly subscribe directly to a to a multicast group (peer multicast group (peer- -to to- - peer)

peer)

‹

‹

Poorly Poorly- -connected hosts connected hosts subscribe

subscribe to a to a

forwarding forwarding server

server

‹

‹

Forwarding server Forwarding server subscribes to

subscribes to the entities the entities’ ’ multicast groups multicast groups

™

™aggregation, aggregation, filteringfiltering

Data and Control Architectures Data and Control Architectures

‹‹

Where does the data reside and how it can be updated? Where does the data reside and how it can be updated?

‹

‹

Centralized Centralized

™

™one node holds a full copy of the dataone node holds a full copy of the data

‹

‹

Replicated Replicated

™

™all nodes hold a full copy of the dataall nodes hold a full copy of the data

‹

‹

Distributed Distributed

™

™one node holds a partial copy of the dataone node holds a partial copy of the data

™

™all nodes combined hold a full copy of the dataall nodes combined hold a full copy of the data

‹‹

Consistency vs. responsiveness Consistency vs. responsiveness

Requirements for Data and Control Architectures Requirements for Data and Control Architectures

‹‹

Consistency: nodes should have the same view on the data Consistency: nodes should have the same view on the data

™

™centralized: simplecentralized: simple——one node binds them all!one node binds them all!

™

™replicated: hardreplicated: hard——how to make sure that every replica gets updated?how to make sure that every replica gets updated?

™™distributed: quite simpledistributed: quite simple——only one copy of the piece of data exists only one copy of the piece of data exists (but where?)

(but where?)

‹

‹

Responsiveness: nodes should have a quick access to the data Responsiveness: nodes should have a quick access to the data

™

™centralized: hardcentralized: hard——all updates must go through the centre nodeall updates must go through the centre node

™

™replicated: simplereplicated: simple——just do it!just do it!

™

™distributed: quite simpledistributed: quite simple——just do it (if data is in the local node) or send just do it (if data is in the local node) or send an update message (but to whom?)

an update message (but to whom?)

(4)

Centralized

Centralized Architecture Architecture

‹

‹

Ensure Ensure that all that all nodes nodes have identical information have identical information

Centralized Centralized Data Store Data Store State State State

Read Update Update

Read User User UserUser User User

User User UserUser User User Synchronization

Synchronization Locks Locks

Problem: Who’s Got the Ball Now?

Problem: Who’s Got the Ball Now?

x, y, z x, y, z

A A

B B

‘Eventual’ ‘ Eventual’ Consistency Consistency

Centralized Centralized Data Store Data Store State State State

Read Update Update

Read User

User User User User User

User User User User User User PerPer--clientclient

FIFO Event FIFO Event Queues Queues

PerPer--clientclient FIFO Event FIFO Event Queues Queues Synchronization

Synchronization Locks Locks

Pull and Push Pull and Push

‹‹

The clients The clients ‘pull’ ‘pull’ information when they need it information when they need it

™

™makemakea request whenever data access is neededa request whenever data access is needed

™

™problem: unnecessaryproblem: unnecessarydelays,delays,if the state data has not changedif the state data has not changed

‹

‹

The server can ‘push’ the information to the clients whenever The server can ‘push’ the information to the clients whenever the state is updated

the state is updated

™

™clientsclientscan maintain a local cachecan maintain a local cache

™™problem: excessive traffic, if the clients are interested only aproblem: excessive traffic, if the clients are interested only asmall small subset of the overall data

subset of the overall data

Replicated Architecture Replicated Architecture

‹

‹NodesNodesexchange messages directlyexchange messages directly

™

™ensureensurethat all that all nodesnodesreceive updatesreceive updates

™

™determine a common global determine a common global ordering for updates ordering for updates

‹

‹No central hostNo central host

‹

‹Every nodeEvery nodehas an identical viewhas an identical view

‹‹All state information is accessed from All state information is accessed from local node

local node

Distributed Architecture Distributed Architecture

‹

‹

State information is distributed among the participating players State information is distributed among the participating players

™™who gets what?who gets what?

™™what to do when a new player joins the game?what to do when a new player joins the game?

™

™what to do when an existing player leaves the game?what to do when an existing player leaves the game?

‹

‹⇒⇒

Entity ownership Entity ownership

(5)

Problem: Who’s Got the Ball Now? (Part II) Problem: Who’s Got the Ball Now? (Part II)

A A B B

Entity Ownership Entity Ownership

‹‹

Ensure that Ensure that a shared state a shared state can only be updated by one node can only be updated by one node at a at a time time

™

™exactlyexactlyone one nodenodehas has the ownershipthe ownershipof the stateof the state

™

™the ownerthe ownerperiodicallyperiodicallybroadcasts broadcasts the value of the statethe value of the state

‹

‹

Typically Typically player’s player’s own representation (avatar) own representation (avatar) is owned by is owned by that

that player player

‹

‹

Locks on other entities are managed by Locks on other entities are managed by a lock a lock manager server manager server

™

™clientsclientsquery to obtain ownership and contact to release itquery to obtain ownership and contact to release it

™™thetheserver ensures that each entity has only one ownerserver ensures that each entity has only one owner

™™thetheserver owns the entity if no one else doesserver owns the entity if no one else does

™

™failurefailurerecoveryrecovery

Lock Lock Manager: Example Manager: Example

A

A B B

Lock Manager Lock Manager

Grant Grant LockLock Request Request Lock

Lock RequestRequest

Lock Lock

Reject Reject LockLock

Update State Update State

Proxy Update Proxy Update

A A B B

Update Position (A) Update Position (A) Request Update Position Request Update Position Update Position (B) Update Position (B)

‹‹NonNon--ownerownersendssendsan update request to the an update request to the owner of the stateowner of the state

‹‹The owner The owner decides whether it acceptsdecides whether it acceptsthetheupdateupdate

‹‹The owner serves as a proxyThe owner serves as a proxy

‹

‹Generates anGenerates anextra message on each nonextra message on each non--ownerownerupdateupdate

‹

‹Suitable when Suitable when nonnon--ownerownerupdates are rare or many nodesupdates are rare or many nodeswantwantto update to update the state

the state

Ownership Transfer Ownership Transfer

A A B B

Lock Manager Lock Manager

Update Position (A) Update Position (A) Request Ownership Request Ownership Notify Lock

Notify Lock Transfer Transfer

Acknowledge Acknowledge Lock Transfer Lock Transfer

Grant Ownership Grant Ownership Update Position (B) Update Position (B)

Ownership Transfer Ownership Transfer (cont’d) (cont’d)

‹

‹

The lock manager has the lock information at all times The lock manager has the lock information at all times

‹‹

If the If the node node fails, the lock manager defines the current lock fails, the lock manager defines the current lock ownership state

ownership state

‹

‹

Lock ownership transfer incurs extra message overhead Lock ownership transfer incurs extra message overhead

‹‹

Suitable when a single Suitable when a single node node is going to make a series of is going to make a series of updates and there is little contention among

updates and there is little contention among nodes nodes wishing to wishing to make updates

make updates

Viittaukset

LIITTYVÄT TIEDOSTOT

Main scenario Based on argument start correct activity to capture external world data, just after save file on device, start service to send data. Next step

In local structure learning, one is given data and a target node/variable from the unknown data generating Bayesian network, and the task is to solve one or both of the following

Sometimes it can be enough if you know exactly what you want to do the substances you want to separate it is possible to use just one

Windei (1990). They discuss rhe difference between declarative and imperative computer languages, which roughly corresponds. to the, difference -between our grammars III

Huttunen, Heli (1993) Pragmatic Functions of the Agentless Passive in News Reporting - With Special Reference to the Helsinki Summit Meeting 1990. Uñpublished MA

If we ask how significant Jadwiga and Wlodzimierz Antoniewicz were in the Central European networks of Finnish archaeologists, the answer is quite simple: för Äyräpää they were

The Communication Node receives data from the frequency converter and operates data processing functions, but it will not send the data to the Gateway Node until it receives the

We need to store the data that is returned in the response body, onto the Hadoop distributed file system.. In our DataPull- er class we created a new method to