SlideShare ist ein Scribd-Unternehmen logo
1 von 47
 
Dynamic Bandwidth Throttling Bart House, Development Lead, Microsoft
The Problem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Problem (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions we will answer ,[object Object],[object Object],[object Object],[object Object],[object Object]
Adjusting Bandwidth ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Connection Control ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Congestion Control ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Congestion Control States ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Congestion Control States ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RTT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Packet-loss ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Global Control ,[object Object],[object Object],[object Object]
Global Control States ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Global Recovery State ,[object Object],[object Object],[object Object],[object Object],[object Object]
Global Slow/Rapid Growth ,[object Object],[object Object],[object Object],[object Object]
Detecting Bandwidth Overuse ,[object Object],[object Object],[object Object],[object Object]
Dividing Bandwidth ,[object Object],[object Object],[object Object],[object Object]
Bad Connections ,[object Object],[object Object],[object Object],[object Object],[object Object]
History Control ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bandwidth History Periods ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bandwidth History ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reliability Percentage ,[object Object],[object Object],[object Object],[object Object]
Failure Percentage ,[object Object],[object Object],[object Object]
Reliable Bandwidth ,[object Object],[object Object],[object Object],[object Object]
Use of Reliable Bandwidth ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Trying Higher Bandwidth ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Trying Higher Bandwidths ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bandwidth Control In Action ,[object Object],[object Object],[object Object],[object Object]
No History Good Connection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No History Good Connection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No History Good Connection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No History Bad Bandwidth ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Good History Hiccups Occur ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Picking Best Host ,[object Object],[object Object],[object Object]
Picking Best Host (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Game State Replication ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Priority Based Replication ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Priority Based Replication ,[object Object],[object Object],[object Object],[object Object]
Host Migration ,[object Object],[object Object],[object Object],[object Object],[object Object]
Host Migration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matchmaking ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Putting It All Together ,[object Object],[object Object],[object Object],[object Object],[object Object]
Putting It All Together (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Putting It All Together ,[object Object],[object Object],[object Object]
Wish List ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Wish List (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

BADCamp 2017 - Anatomy of DDoS
BADCamp 2017 - Anatomy of DDoSBADCamp 2017 - Anatomy of DDoS
BADCamp 2017 - Anatomy of DDoSSuzanne Aldrich
 
Tcp Immediate Data Transfer
Tcp Immediate Data TransferTcp Immediate Data Transfer
Tcp Immediate Data TransferRam Dutt Shukla
 
DrupalCon Vienna 2017 - Anatomy of DDoS
DrupalCon Vienna 2017 - Anatomy of DDoSDrupalCon Vienna 2017 - Anatomy of DDoS
DrupalCon Vienna 2017 - Anatomy of DDoSSuzanne Aldrich
 
DNS-OARC 34: Measuring DNS Flag Day 2020
DNS-OARC 34: Measuring DNS Flag Day 2020DNS-OARC 34: Measuring DNS Flag Day 2020
DNS-OARC 34: Measuring DNS Flag Day 2020APNIC
 
Operation of Ping - (Computer Networking)
Operation of Ping - (Computer Networking) Operation of Ping - (Computer Networking)
Operation of Ping - (Computer Networking) Jubayer Al Mahmud
 
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network partha pratim deb
 
Connection Establishment & Flow and Congestion Control
Connection Establishment & Flow and Congestion ControlConnection Establishment & Flow and Congestion Control
Connection Establishment & Flow and Congestion ControlAdeel Rasheed
 
Tcp Congestion Avoidance
Tcp Congestion AvoidanceTcp Congestion Avoidance
Tcp Congestion AvoidanceRam Dutt Shukla
 
NZNOG 2020: Buffers, Buffer Bloat and BBR
NZNOG 2020: Buffers, Buffer Bloat and BBRNZNOG 2020: Buffers, Buffer Bloat and BBR
NZNOG 2020: Buffers, Buffer Bloat and BBRAPNIC
 
Application Layer Throughput Control For Video Streaming over HTTP2
Application Layer Throughput Control For Video Streaming over HTTP2Application Layer Throughput Control For Video Streaming over HTTP2
Application Layer Throughput Control For Video Streaming over HTTP2Duc Nguyen
 
Congetion Control.pptx
Congetion Control.pptxCongetion Control.pptx
Congetion Control.pptxNaveen Dubey
 
NTP Server - How it works?
NTP Server - How it works?NTP Server - How it works?
NTP Server - How it works?Davoud Teimouri
 

Was ist angesagt? (20)

Flow control 11
Flow control 11Flow control 11
Flow control 11
 
BADCamp 2017 - Anatomy of DDoS
BADCamp 2017 - Anatomy of DDoSBADCamp 2017 - Anatomy of DDoS
BADCamp 2017 - Anatomy of DDoS
 
Tcp Immediate Data Transfer
Tcp Immediate Data TransferTcp Immediate Data Transfer
Tcp Immediate Data Transfer
 
DrupalCon Vienna 2017 - Anatomy of DDoS
DrupalCon Vienna 2017 - Anatomy of DDoSDrupalCon Vienna 2017 - Anatomy of DDoS
DrupalCon Vienna 2017 - Anatomy of DDoS
 
Tieu luan qo s
Tieu luan qo sTieu luan qo s
Tieu luan qo s
 
DNS-OARC 34: Measuring DNS Flag Day 2020
DNS-OARC 34: Measuring DNS Flag Day 2020DNS-OARC 34: Measuring DNS Flag Day 2020
DNS-OARC 34: Measuring DNS Flag Day 2020
 
Congestion control
Congestion controlCongestion control
Congestion control
 
Operation of Ping - (Computer Networking)
Operation of Ping - (Computer Networking) Operation of Ping - (Computer Networking)
Operation of Ping - (Computer Networking)
 
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network
Comparative Analysis of Different TCP Variants in Mobile Ad-Hoc Network
 
Ping
PingPing
Ping
 
WTFast vs VPN
WTFast vs VPNWTFast vs VPN
WTFast vs VPN
 
Congestion Control
Congestion ControlCongestion Control
Congestion Control
 
Connection Establishment & Flow and Congestion Control
Connection Establishment & Flow and Congestion ControlConnection Establishment & Flow and Congestion Control
Connection Establishment & Flow and Congestion Control
 
Tcp Congestion Avoidance
Tcp Congestion AvoidanceTcp Congestion Avoidance
Tcp Congestion Avoidance
 
NZNOG 2020: Buffers, Buffer Bloat and BBR
NZNOG 2020: Buffers, Buffer Bloat and BBRNZNOG 2020: Buffers, Buffer Bloat and BBR
NZNOG 2020: Buffers, Buffer Bloat and BBR
 
Optimal connection
Optimal connectionOptimal connection
Optimal connection
 
Analysis of TCP variants
Analysis of TCP variantsAnalysis of TCP variants
Analysis of TCP variants
 
Application Layer Throughput Control For Video Streaming over HTTP2
Application Layer Throughput Control For Video Streaming over HTTP2Application Layer Throughput Control For Video Streaming over HTTP2
Application Layer Throughput Control For Video Streaming over HTTP2
 
Congetion Control.pptx
Congetion Control.pptxCongetion Control.pptx
Congetion Control.pptx
 
NTP Server - How it works?
NTP Server - How it works?NTP Server - How it works?
NTP Server - How it works?
 

Andere mochten auch

Managing Clients' Mission Critical Applications
Managing Clients' Mission Critical ApplicationsManaging Clients' Mission Critical Applications
Managing Clients' Mission Critical Applicationswebhostingguy
 
DAL17thOctFinal_007.ppt
DAL17thOctFinal_007.pptDAL17thOctFinal_007.ppt
DAL17thOctFinal_007.pptwebhostingguy
 
PowerPoint presentation
PowerPoint presentationPowerPoint presentation
PowerPoint presentationwebhostingguy
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Societywebhostingguy
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Societywebhostingguy
 

Andere mochten auch (7)

Managing Clients' Mission Critical Applications
Managing Clients' Mission Critical ApplicationsManaging Clients' Mission Critical Applications
Managing Clients' Mission Critical Applications
 
DAL17thOctFinal_007.ppt
DAL17thOctFinal_007.pptDAL17thOctFinal_007.ppt
DAL17thOctFinal_007.ppt
 
PowerPoint presentation
PowerPoint presentationPowerPoint presentation
PowerPoint presentation
 
Product Number: 0
Product Number: 0Product Number: 0
Product Number: 0
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Society
 
Webmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques SocietyWebmaster's Report - IEEE Microwave Theory and Techniques Society
Webmaster's Report - IEEE Microwave Theory and Techniques Society
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
 

Ähnlich wie House - Dynamic Bandwidth Throttling in a Client Server ...

Network Application Performance
Network Application PerformanceNetwork Application Performance
Network Application PerformanceShumon Huque
 
Nss Labs Dpi Intro V3
Nss Labs Dpi Intro V3Nss Labs Dpi Intro V3
Nss Labs Dpi Intro V3gueste47133
 
PV Powerpoint
PV PowerpointPV Powerpoint
PV PowerpointVideoguy
 
SWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call ServiceSWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call ServiceMeng ZHANG
 
What happens when adaptive video streaming players compete in time-varying ba...
What happens when adaptive video streaming players compete in time-varying ba...What happens when adaptive video streaming players compete in time-varying ba...
What happens when adaptive video streaming players compete in time-varying ba...Eswar Publications
 
Impact of Satellite Networks on Transport Layer Protocols
Impact of Satellite Networks on Transport Layer ProtocolsImpact of Satellite Networks on Transport Layer Protocols
Impact of Satellite Networks on Transport Layer ProtocolsReza Gh
 
Slow_Throughput_Best_Practice_Guides_v1.pdf
Slow_Throughput_Best_Practice_Guides_v1.pdfSlow_Throughput_Best_Practice_Guides_v1.pdf
Slow_Throughput_Best_Practice_Guides_v1.pdfsombatse
 
powerpoint
powerpointpowerpoint
powerpointVideoguy
 
Providing Controlled Quality Assurance in Video Streaming ...
Providing Controlled Quality Assurance in Video Streaming ...Providing Controlled Quality Assurance in Video Streaming ...
Providing Controlled Quality Assurance in Video Streaming ...Videoguy
 
Server-based and Network-assisted Solutions for Adaptive Video Streaming
Server-based and Network-assisted Solutions for Adaptive Video StreamingServer-based and Network-assisted Solutions for Adaptive Video Streaming
Server-based and Network-assisted Solutions for Adaptive Video StreamingEswar Publications
 
Congestionin Data Networks
Congestionin Data NetworksCongestionin Data Networks
Congestionin Data NetworksWaqas !!!!
 
transport layer pptxdkididkdkdkddjjdjffkfif
transport layer pptxdkididkdkdkddjjdjffkfiftransport layer pptxdkididkdkdkddjjdjffkfif
transport layer pptxdkididkdkdkddjjdjffkfifMujtabaFarooq5
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.pptVideoguy
 
Measuring ATR: IETF 101
Measuring ATR: IETF 101Measuring ATR: IETF 101
Measuring ATR: IETF 101APNIC
 
Optimizing Real Time Interactive Video Delivery from the Cloud
Optimizing Real Time Interactive Video Delivery from the CloudOptimizing Real Time Interactive Video Delivery from the Cloud
Optimizing Real Time Interactive Video Delivery from the CloudIMTC
 

Ähnlich wie House - Dynamic Bandwidth Throttling in a Client Server ... (20)

Network Application Performance
Network Application PerformanceNetwork Application Performance
Network Application Performance
 
Nss Labs Dpi Intro V3
Nss Labs Dpi Intro V3Nss Labs Dpi Intro V3
Nss Labs Dpi Intro V3
 
PV Powerpoint
PV PowerpointPV Powerpoint
PV Powerpoint
 
SWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call ServiceSWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call Service
 
Computer Networking
Computer NetworkingComputer Networking
Computer Networking
 
What happens when adaptive video streaming players compete in time-varying ba...
What happens when adaptive video streaming players compete in time-varying ba...What happens when adaptive video streaming players compete in time-varying ba...
What happens when adaptive video streaming players compete in time-varying ba...
 
Impact of Satellite Networks on Transport Layer Protocols
Impact of Satellite Networks on Transport Layer ProtocolsImpact of Satellite Networks on Transport Layer Protocols
Impact of Satellite Networks on Transport Layer Protocols
 
Transaction TCP
Transaction TCPTransaction TCP
Transaction TCP
 
Slow_Throughput_Best_Practice_Guides_v1.pdf
Slow_Throughput_Best_Practice_Guides_v1.pdfSlow_Throughput_Best_Practice_Guides_v1.pdf
Slow_Throughput_Best_Practice_Guides_v1.pdf
 
powerpoint
powerpointpowerpoint
powerpoint
 
WWW for Mobile Apps
WWW for Mobile AppsWWW for Mobile Apps
WWW for Mobile Apps
 
Providing Controlled Quality Assurance in Video Streaming ...
Providing Controlled Quality Assurance in Video Streaming ...Providing Controlled Quality Assurance in Video Streaming ...
Providing Controlled Quality Assurance in Video Streaming ...
 
Server-based and Network-assisted Solutions for Adaptive Video Streaming
Server-based and Network-assisted Solutions for Adaptive Video StreamingServer-based and Network-assisted Solutions for Adaptive Video Streaming
Server-based and Network-assisted Solutions for Adaptive Video Streaming
 
Congestionin Data Networks
Congestionin Data NetworksCongestionin Data Networks
Congestionin Data Networks
 
transport layer pptxdkididkdkdkddjjdjffkfif
transport layer pptxdkididkdkdkddjjdjffkfiftransport layer pptxdkididkdkdkddjjdjffkfif
transport layer pptxdkididkdkdkddjjdjffkfif
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.ppt
 
Measuring ATR: IETF 101
Measuring ATR: IETF 101Measuring ATR: IETF 101
Measuring ATR: IETF 101
 
Transport layer
Transport layerTransport layer
Transport layer
 
Audio And Video Over Internet
Audio And Video Over InternetAudio And Video Over Internet
Audio And Video Over Internet
 
Optimizing Real Time Interactive Video Delivery from the Cloud
Optimizing Real Time Interactive Video Delivery from the CloudOptimizing Real Time Interactive Video Delivery from the Cloud
Optimizing Real Time Interactive Video Delivery from the Cloud
 

Mehr von webhostingguy

Running and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test FrameworkRunning and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test Frameworkwebhostingguy
 
MySQL and memcached Guide
MySQL and memcached GuideMySQL and memcached Guide
MySQL and memcached Guidewebhostingguy
 
Novell® iChain® 2.3
Novell® iChain® 2.3Novell® iChain® 2.3
Novell® iChain® 2.3webhostingguy
 
Load-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serversLoad-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serverswebhostingguy
 
SQL Server 2008 Consolidation
SQL Server 2008 ConsolidationSQL Server 2008 Consolidation
SQL Server 2008 Consolidationwebhostingguy
 
Master Service Agreement
Master Service AgreementMaster Service Agreement
Master Service Agreementwebhostingguy
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...webhostingguy
 
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...webhostingguy
 
Managing Diverse IT Infrastructure
Managing Diverse IT InfrastructureManaging Diverse IT Infrastructure
Managing Diverse IT Infrastructurewebhostingguy
 
Web design for business.ppt
Web design for business.pptWeb design for business.ppt
Web design for business.pptwebhostingguy
 
IT Power Management Strategy
IT Power Management Strategy IT Power Management Strategy
IT Power Management Strategy webhostingguy
 
Excel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for MerchandisersExcel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for Merchandiserswebhostingguy
 
Parallels Hosting Products
Parallels Hosting ProductsParallels Hosting Products
Parallels Hosting Productswebhostingguy
 
Microsoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 MbMicrosoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 Mbwebhostingguy
 

Mehr von webhostingguy (20)

File Upload
File UploadFile Upload
File Upload
 
Running and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test FrameworkRunning and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test Framework
 
MySQL and memcached Guide
MySQL and memcached GuideMySQL and memcached Guide
MySQL and memcached Guide
 
Novell® iChain® 2.3
Novell® iChain® 2.3Novell® iChain® 2.3
Novell® iChain® 2.3
 
Load-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serversLoad-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web servers
 
SQL Server 2008 Consolidation
SQL Server 2008 ConsolidationSQL Server 2008 Consolidation
SQL Server 2008 Consolidation
 
What is mod_perl?
What is mod_perl?What is mod_perl?
What is mod_perl?
 
What is mod_perl?
What is mod_perl?What is mod_perl?
What is mod_perl?
 
Master Service Agreement
Master Service AgreementMaster Service Agreement
Master Service Agreement
 
Notes8
Notes8Notes8
Notes8
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
 
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
 
Managing Diverse IT Infrastructure
Managing Diverse IT InfrastructureManaging Diverse IT Infrastructure
Managing Diverse IT Infrastructure
 
Web design for business.ppt
Web design for business.pptWeb design for business.ppt
Web design for business.ppt
 
IT Power Management Strategy
IT Power Management Strategy IT Power Management Strategy
IT Power Management Strategy
 
Excel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for MerchandisersExcel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for Merchandisers
 
OLUG_xen.ppt
OLUG_xen.pptOLUG_xen.ppt
OLUG_xen.ppt
 
Parallels Hosting Products
Parallels Hosting ProductsParallels Hosting Products
Parallels Hosting Products
 
Microsoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 MbMicrosoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 Mb
 
Reseller's Guide
Reseller's GuideReseller's Guide
Reseller's Guide
 

House - Dynamic Bandwidth Throttling in a Client Server ...

  • 1.  
  • 2. Dynamic Bandwidth Throttling Bart House, Development Lead, Microsoft
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

Hinweis der Redaktion

  1. Gamer needs to be a server We need a lot of bandwidth Early during Shadowrun, design wanted guarentee that they could do 16 players and really wanted to do more Not able to guarentee Design was not done, not sure what would require updating and how often Reality is that we always need to be smart about how we update
  2. Home environment is hostile Machines can move
  3. How do we adjust bandwidth? How do we adjust game state replication? When/why do we migrate? How we ensure hosts / how do we pick?
  4. Connection Control Global Control History Control
  5. Goal set by Global Control UDP Padding
  6. Packet Loss Subsequent Acks Timeouts Counters to filter out spurious
  7. Global Control Divide bandwidth among connections Grow till exceed and then backoff Ability to look at behavior across connections
  8. More then 50% in recovery Single bad connection does not cause signal Could prohibit growth, but we account for that
  9. Even distribution for the most part Some need extra due to voice Bandwidth might be limited for bad connections
  10. Bad connection Counter accumulates every period with congestion Decrements every period without Thresh means its bad – in dog house Can recover Bandwidth limited No longer restricts growth
  11. History Control Continuity Over Time Grow while able to deliver Back down if fail Measurements occur during periods
  12. Period starts when goal is set Period canceled if goal is changed Ends when goal is met for some time Success if no recoveries - recorded Unknown if some recovers – no recorded Failure if too many recoveries - recorded
  13. All success and failures recorded Circular buffer Holds hours of play From history can calculate reliable percentage / failure percentage
  14. Reliable Bandwidth == ReliablePercentage >= 95%
  15. Reliable bandwidth used as goal No history get conservative value Step up bandwidth will be tried
  16. FailurePercentage less then or equal to 5% Consecutive successes after first step up will continue to step up Failure will cause it to fall back to lower bandwidth
  17. After failure, many successes needed to try again 1 in 20 ratio picked – 2 hours of play
  18. Good connection, Open Nat, Good Ping Default used Success Recorded Step up tried Success Recorded
  19. Step up again will continue Till failure Connections will hit RTT thresholds Latency spike across all connections Some lag in game will occur All connections in recovery
  20. Global control will notice majority recoveries causing recovery This will happen multiple times This will lead to failure Another step up will not occur for 20 periods
  21. Hiccup will be filtered at either connection of global level Sustained problem will be recorded If continues will trash history Player no longer reliable and will essentially be removed from pool
  22. Reliable bandwidth primary consideration Best reflects player/box ability to cope Must be able to meet game needs If best can’t be found, considers other possibilities in bands
  23. Pool built from criteria Tie breakers applied Ping, Nat Type, Host reliability
  24. Importance of type Time of last Client importance
  25. Updates sent based on priority Time intensive task Both dev wise and runtime Requires iteration / tweaking / gameplay Critical for polish
  26. Host migration Big debate for Shadowrun Halo 2 approach appears to encourage bad behavior Went with host initiated migration only – removing ability / incentive
  27. Searches by good hosts put themselves into games without good hosts
  28. Home sucks History identifies good hosts Design for consistency instead of rapid global adjustment Consistent good hosts picked / rewarded
  29. Quick to respond to changing conditions Bad hosts eliminated relative quickly Games likely to disband anyway
  30. Beta – good results Good hosts found time and time again when reset Bad hosts culled quickly