chapter 5.6 network and multiplayer edited by jeffery
TRANSCRIPT
2
Multiplayer Modes:Event Timing
Turn-Based Easy to implement Any connection type
Real-Time Difficult to implement Latency sensitive
Internet adds Lots o’ Latency
3
Multiplayer Modes:Shared I/O, Single Engine
Input Devices Shared keyboard layout Multiple devices (e.g. trackballs)
Display Full Screen, varying modes Split Screen
For this class: network instead!
4
Protocols:Protocol Design
Packet Format and Length Acknowledgement Methodology Error Checking / Correcting Compression Encryption Packet Control
5
Protocols:Packets Packets
Header = Protocol Manifest Payload
Gotchas Pointers Large/Variable Size Arrays ADTs Integer Alignment Endian Order Processor dependant Intrinsic Types (int and long) Unicode vs. ASCII Strings
6
Protocol Stack: Open System Interconnect
R outer
Sender R eceiver
Ne two rk
D a ta L in k
Physica l
Ne two rk
D a ta L in k
Physica l
App lica tio n
Pre se n ta tio n
Session
T ra nspo rt
Ne two rk
D a ta L in k
Physica l
App lica tio n
Pre se n ta tio n
Session
T ra nspo rt
Ne two rk
D a ta L in k
Physica l
G am e E vents
G am e P ac k et iz at ion
Connec t ion & Data E x c hange
Input UpdatesS tate Updates
S eria liz at ionB uffering
S oc k ets
TCPUDP
IP
E thernet (M A C)
W ired (C5, Cable)F iber O pt ic sW ire les s
7
Protocol Stack:Physical Layer Bandwidth
Capacity of data pipe Measured in bps = bits per second
Latency Travel time from point A to B Measured in Milliseconds
The Medium Fiber, FireWire, IrD , CDMA, …
Serial DSL CableLAN
10/100/1GBaseT
Wireless802.11b/g/n
T1
Speed(bps)
20K1.5M down
896K up3M down256K up
10M100M
1G
b=11Mg=54M
n=70-150M1.5M
Table: Max Bandwidth Specifications
8
Protocol Stack:Data Link Layer
Serializes data to/from physical layer
Network Interface Card Ethernet MAC Address
9
Protocol Stack:Network Layer Packet Routing
Hops Routers, Hubs, Switches
Internet Protocol (IP) Contains Source & Destination IP Address IPv4
Widespread Infrastructure IPv6
Larger IP address
10
Protocol Stack:Network Layer: IP Address Unicast
Static DHCP
Multicast Requires multicast capable router
Broadcast Local Directed
Loop Back Send to self
AddrAny 0 = address before receiving an address
11
Protocol Stack:Network Layer: DNS Domain Name Service
Converts text name to IP address Must contact one or more DNS servers to
resolve Local cache resolution possible
Game Tips Store local game cache to use when DNS out
of order. DNS resolution often slow, use cache for
same day resolution.
12
Protocol Stack:Transport Layer Manage data delivery, src to dest
Error recovery Data flow
TCP and UDP used with IP Contains Source and Destination Port
Port + IP = Net Address Port Range = 0-64k Well known Ports 0-1k
13
Protocol Stack:Transport Layer: TCP Guaranteed Correct In Order Delivery
Acknowledgement system Ack, Nack, Resend
Checksum Out of Band
Connection Required Packet Window Packet Coalescence Keep Alive
Streamed Data User must serialize data
14
Protocol Stack:Transport Layer: UDP Non Guaranteed Delivery
No Acknowledgement system May arrive out of order Checksum
Not Connected Source not verified Hop Count Limit = TTL (time to live) Required for Broadcasting
Datagram Sent in packets exactly as user sends them
15
Protocol Stack:Session Layer
Manages Connections between Apps Connect Terminate Data Exchange
Socket API live at this layer Cross platform Cross language
16
Protocol Stack:Session Layer: Sockets Based on File I/O
File Descriptors Open/Close Read/Write
Winsock Provides standard specification
implementation plus more Extension to spec prefixed with “WSA” Requires call to WSAStartup() before use Cleanup with WSAShutdown()
17
Protocol Stack:Session Layer: Socket Design Modes
Blocking Non-Blocking
Standard Models Standard Select
Extended Models Windows
WSAEventSelect I/O Completion Ports
Unix Poll Kernel Queues
18
Protocol Stack:Presentation Layer Prepares App Data for Transmission
Compression Pascal Strings String Tables Float to Fixed Matrix to Quaternion
Encryption Endean Order
When used cross platform or cross language Serialize
Pointers Variable Length Arrays
19
Protocol Stack:Presentation Layer: Buffering
Packet Coalescence
Induced Latency
Dead Data
Large Packets
20
Protocol Stack:Application Layer Handles Game Logic Update Models
Input Reflection State Reflection
Synchronization Dead Reckoning AI Assist Arbitration
21
Real-Time Communications:Connection Models Broadcast
Good for player discovery on LANs Peer to Peer
Good for 2 player games Made difficult by NAT
Client / Server Good for 2+ player games Dedicated lobby server for player
discovery
22
Real-Time Communications:Peer to Peer vs. Client/Server
Broadcast Peer/Peer Client/Server
Connections 0Client = 1Server = N
N = Number of players
Broadcast Peer/Peer Client/Server
Send 1 N-1Client = 1 Server = N
Receive N-1 N-1Client = 1Server = N
1
1
N
x
x
P 1 P 2
P 1
P 2 P 3
P 1 P 4
P 2 P 3
P 1
P 2 P 5
P 3 P 4
2 p lay er s1 c o n n ec tio n
3 p lay er s3 c o n n ec tio n s
4 p lay er s6 c o n n ec tio n s
5 p lay er s1 0 c o n n ec tio n s
23
Real-Time Communications:Asynchronous Environments
Thread Priority Suspension Pooling
Critical Section & Mutex Signal & Event Data Sharing
volatile keyword Interlocked Inc/Dec
26
Security:Firewalls: Network Address Translation
LAN Add re ss W AN Add re ss
1 92 .1 6 8 .1 .1 :2 0 0 2 4 .1 5 .1 .1 1 8 :2 0 0
1 92 .1 6 8 .1 .1 :2 0 1 2 4 .1 5 .1 .1 1 8 :2 0 1
1 92 .1 6 8 .1 .2 :1 9 9 2 4 .1 5 .1 .1 1 8 :1 9 9
1 92 .1 6 8 .1 .2 :2 0 0 2 4 .1 5 .1 .1 1 8 :4 0 0 0*
I S P
W AN I P2 4 .1 5 .1 .1 1 8
L AN I P1 9 2 .1 6 8 .1 .1
L AN I P1 9 2 .1 6 8 .1 .2
N A TR eq u es ted P o r ts2 0 02 0 1
R eq u es ted P o r ts1 9 92 0 0
R o u ter
28
Summary:Topic Coverage
Multiplayer Modes Protocols Protocol Stack Real-Time Communications Security