4/10/17 ¡ Networking ¡for ¡Games ¡ IMGD ¡4000 ¡ Introduc<on ¡(1 ¡of ¡2) ¡ • Games ¡are ¡increasingly ¡networked ¡ – Mul<-‑player, ¡connec<ng ¡PCs ¡and ¡Game ¡consoles ¡(e.g., ¡ Counter-‑strike, ¡Halo) ¡ – Single-‑player, ¡pulling ¡and ¡pushing ¡content ¡to ¡Web ¡ service ¡(e.g., ¡Kongregate) ¡ • Emerging ¡services ¡play ¡game ¡in ¡“cloud”, ¡sending ¡ rendered ¡game ¡down ¡as ¡video ¡ – (However, ¡will ¡not ¡talk ¡about ¡this ¡approach ¡much) ¡ • All ¡require ¡an ¡understanding ¡of ¡networking ¡ (conversant), ¡with ¡enough ¡knowledge ¡to ¡begin ¡to ¡ design ¡and ¡build ¡network ¡game ¡(develop) ¡ ¡ Slide ¡2 ¡ 1 ¡
4/10/17 ¡ Introduc<on ¡(2 ¡of ¡2) ¡ • For ¡now, ¡“networking” ¡mostly ¡means ¡“Internet ¡ networking”, ¡so ¡that ¡will ¡be ¡our ¡reference ¡ • Other ¡networking ¡aspects ¡that ¡can ¡be ¡relevant ¡for ¡ games ¡includes: ¡ – Ad ¡Hoc ¡/ ¡Mesh ¡networking ¡ – Short-‑range ¡wireless ¡(e.g., ¡Bluetooth) ¡ – Network ¡security ¡(including ¡chea<ng) ¡ – Mobile ¡applica<on ¡(game) ¡development ¡(oXen ¡networked) ¡ • These, ¡and ¡other ¡topics ¡available ¡in-‑depth ¡from ¡your ¡ friendly, ¡neighborhood ¡WPI ¡course ¡ ¡ (next ¡slide) ¡ Slide ¡3 ¡ Networking ¡at ¡WPI ¡ General, ¡core ¡networks: ¡ • Also ¡grad ¡courses ¡ • CS ¡3516 ¡– ¡Computer ¡Networks ¡ CS ¡513 ¡– ¡Introduc<on ¡to ¡Local ¡and ¡ Wide ¡Area ¡Networks ¡ – Broad ¡view ¡of ¡computer ¡networks, ¡ top-‑down ¡ CS ¡528 ¡– ¡Mobile ¡and ¡Ubiquitous ¡ CS ¡4516 ¡– ¡Advanced ¡ ¡Computer ¡ Compu<ng ¡ Networks ¡ CS ¡529 ¡– ¡Mul<media ¡Networking ¡ – In-‑depth ¡computer ¡networks, ¡more ¡ CS ¡530 ¡– ¡High-‑Performance ¡ “under ¡the ¡hood” ¡ Networks ¡ Networks ¡applied ¡to ¡specific ¡ • CS ¡533 ¡– ¡Modeling ¡and ¡Performance ¡ domains ¡ Evalua<on ¡of ¡Network ¡and ¡ CS ¡4513 ¡– ¡Distributed ¡Systems ¡ Computer ¡Systems ¡ CS ¡4518 ¡– ¡Mobile ¡and ¡Ubiquitous ¡ CS ¡558 ¡– ¡Computer ¡Network ¡ Compu<ng ¡ Security ¡ CS ¡4241 ¡– ¡Webware: ¡Computa<onal ¡ CS ¡577 ¡– ¡Advanced ¡Computer ¡and ¡ Technology ¡for ¡Network ¡Informa<on ¡ Communica<ons ¡Networks ¡ Systems ¡ CS ¡4404 ¡– ¡Tools ¡and ¡Techniques ¡in ¡ Computer ¡Network ¡Security ¡ This ¡deck ¡ à ¡core ¡networking ¡ applied ¡to ¡computer ¡games. ¡ Slide ¡4 ¡ 2 ¡
4/10/17 ¡ The ¡Internet ¡– ¡Postal ¡Service ¡Analogy ¡ • Lookup ¡address ¡ Slide ¡5 ¡ The ¡Internet ¡– ¡Postal ¡Service ¡Analogy ¡ DNS ¡lookup ¡ Transmit ¡(e.g., ¡ ¡ Make ¡packet ¡ Send ¡packet ¡ WiFi) ¡to ¡router ¡ from ¡data ¡ Route ¡packet ¡ (actually, ¡hop ¡ • Lookup ¡address ¡ by ¡hop) ¡ Transmit ¡(e.g., ¡ fiber) ¡across ¡ con<nent ¡ Transmit ¡(e.g., ¡ Check ¡ Deliver ¡packet ¡ Extract ¡data ¡ Ethernet) ¡ creden<als ¡ from ¡packet ¡ Slide ¡6 ¡ (e.g., ¡firewall) ¡ 3 ¡
4/10/17 ¡ Outline ¡ • Introduc<on ¡ ¡ ¡ ¡ ¡(done) ¡ • Basic ¡Internet ¡Architecture ¡ ¡(next) ¡ • Loss ¡and ¡Latency ¡ • Latency ¡Compensa<on ¡Techniques ¡ • Client-‑Server ¡Synchroniza<on ¡ Slide ¡7 ¡ The ¡Internet ¡ • Many ¡design ¡decisions ¡and ¡end-‑user ¡experiences ¡ for ¡mul<-‑player ¡networked ¡games ¡derive ¡from ¡ nature ¡of ¡Internet ¡ – “Best ¡Effort” ¡service ¡ – Internet ¡naming ¡and ¡addressing ¡ – Transport ¡protocols ¡(two ¡choices: ¡TCP ¡or ¡UDP) ¡ • Layered ¡ Applica<ons ¡( Half-‑Life, ¡WoW, ¡Mario …) ¡ Services ¡( DNS, ¡HTTP, ¡Overlay …) ¡ Transport ¡( TCP,UDP ) ¡ Network ¡( IP ¡– ¡Internet ¡Protocol ) ¡ Slide ¡8 ¡ 4 ¡
4/10/17 ¡ Internet ¡Provides ¡“Best ¡Effort” ¡Service ¡ • Few ¡guarantees ¡on ¡<meliness ¡ – Can ¡take ¡milliseconds, ¡100’s ¡of ¡milliseconds, ¡or ¡even ¡seconds ¡to ¡ deliver ¡packet ¡ • Few ¡guarantees ¡on ¡arrival ¡certainty ¡ – Some<mes ¡packet ¡doesn’t ¡arrive ¡(loss) ¡ – Or ¡arrives ¡out ¡of ¡order ¡(e.g., ¡packet ¡#3 ¡arrives ¡before ¡packet ¡#2) ¡ – Or ¡can ¡arrive ¡twice ¡(duplicates, ¡uncommon ¡but ¡possible) ¡ • Time ¡to ¡reach ¡des<na<on ¡called ¡latency ¡ – Lag ¡typically ¡latency ¡+ ¡end-‑host ¡(server ¡and ¡client) ¡<me ¡ • OXen, ¡players ¡have ¡hard ¡<me ¡dis<nguishing ¡ ¡ (More ¡on ¡loss ¡and ¡latency ¡later) ¡ Slide ¡9 ¡ Endpoints ¡and ¡Addressing ¡ IPv4 ¡numerical ¡32-‑bit ¡(4 ¡byte) ¡values ¡ • – Doked ¡quad ¡form: ¡ 192.168.1.5 ¡or ¡ 130.215.36.142 – In ¡theory, ¡2 32 ¡(about ¡4 ¡billion) ¡addresses, ¡but ¡prac<cally ¡fewer ¡ since ¡allocated ¡in ¡blocks ¡ • Each ¡Internet ¡host ¡has ¡IP ¡address ¡ IPv6 ¡has ¡2 128 ¡ addresses ¡ (enough ¡for ¡100 ¡ – Client ¡running ¡game ¡client ¡ addresses ¡for ¡each ¡atom ¡on ¡the ¡ earth ¡surface) , ¡but ¡not ¡ – Server ¡running ¡game ¡host ¡ widely ¡deployed ¡in ¡ • Some ¡have ¡2 ¡IP ¡addresses ¡ U.S. ¡ ¡ – Client ¡with ¡wireless ¡and ¡wired ¡network ¡(mul<-‑homed) ¡ – Router ¡with ¡mul<ple ¡connec<ons ¡ • ¡Packet ¡has: ¡source, ¡des<na<on ¡ • ¡Payload ¡is ¡upper ¡layer ¡ (transport, ¡applica<on) ¡ • ¡Network ¡worries ¡about ¡arrival ¡ “Flow” ¡determined ¡by ¡ port , ¡too ¡ • ¡IP ¡address ¡related ¡to, ¡ à ¡Transport ¡layer ¡(next) ¡ but ¡not ¡same ¡as ¡ domain ¡name ¡(later) ¡ Slide ¡10 ¡ 5 ¡
4/10/17 ¡ Transmission ¡Control ¡Protocol ¡(TCP) ¡ • Many ¡applica<ons ¡sensi<ve ¡to ¡loss, ¡not ¡<me ¡ – e.g., ¡File ¡transfer ¡(.exe), ¡email ¡ – Need ¡reliable, ¡ordered ¡transfer ¡of ¡bytes ¡ • Frames ¡data ¡ à ¡send ¡as ¡IP ¡packets ¡ • Provides ¡connec<on ¡ • Uses ¡ window ¡for ¡outstanding ¡packets ¡ – Provides ¡flow ¡control ¡and ¡conges<on ¡control ¡ – Window ¡grows ¡with ¡success, ¡shrinks ¡with ¡loss ¡ – Lost ¡packets ¡retransmiked ¡ TCP ¡ TCP ¡ Slide ¡11 ¡ User ¡Datagram ¡Protocol ¡(UDP) ¡ UDP ¡ UDP ¡ • Some ¡applica<ons ¡sensi<ve ¡to ¡<me ¡ – e.g., ¡Voice ¡over ¡IP ¡(VoIP) ¡ • Unreliable, ¡connec<onless ¡ • No ¡flow ¡control ¡(sender ¡can ¡go ¡faster ¡than ¡receiver) ¡ • No ¡conges<on ¡control ¡(sender ¡can ¡go ¡faster ¡than ¡network) ¡ – Note: ¡IP ¡does ¡ensure ¡there ¡are ¡no ¡bit ¡errors ¡(via ¡Cyclic ¡ Redundancy ¡Check, ¡CRC) ¡ Lightweight , ¡but ¡a pplicaHon ¡must ¡handle ¡loss! ¡ • Slide ¡12 ¡ 6 ¡
4/10/17 ¡ Transport ¡Protocol ¡Summary ¡ TCP ¡ UDP ¡ • Guaranteed ¡arrival ¡by ¡ • No ¡arrival/order ¡guarantees ¡ retransmissions ¡ • No ¡flow/conges<on ¡control ¡ • In-‑order ¡delivery ¡ • Lightweight ¡ • Flow/conges<on ¡control ¡ Which ¡transport ¡protocol ¡to ¡use ¡for ¡your ¡game? ¡ Slide ¡13 ¡ Transport ¡Protocol ¡Summary ¡ TCP ¡ UDP ¡ • Guaranteed ¡arrival ¡by ¡ • No ¡arrival/order ¡guarantees ¡ retransmissions ¡ • No ¡flow/conges<on ¡control ¡ • In-‑order ¡delivery ¡ • Lightweight ¡ • Flow/conges<on ¡control ¡ Which ¡transport ¡protocol ¡to ¡use ¡for ¡your ¡game? ¡ Only ¡use ¡ UDP ¡if ¡you ¡ know ¡game ¡ ¡ Not ¡all ¡games ¡are ¡sensi<ve ¡to ¡latency! ¡ sensi<ve ¡to ¡small ¡amounts ¡of ¡latency ¡ à Use ¡ TCP ¡ ¡ à RTS, ¡MMO ¡ ¡ How ¡small? ¡ ¡About ¡100 ¡milliseconds ¡ ¡ ¡ Generally, ¡easier ¡to ¡use ¡ TCP ¡for ¡games! ¡ Remember, ¡ your ¡code ¡must ¡be ¡robust ¡to ¡ à ¡Handles ¡a ¡lot ¡of ¡important ¡bookwork ¡ loss! ¡ 7 ¡
Recommend
More recommend