Post by TinyLittleTimmy on Feb 6, 2013 10:45:20 GMT -6
If you are still experiencing lag after doing the fix there is a long novel at the bottom of this post that probably explains why...
Here is the net related lag stopping tutorial: Good Luck!
THE STEPS:
[glow=red,2,300]THE MINIMUM SUGGESTED CONNECTION:[/glow]
- 15 MB down / 2 MB up
If you choose to delay and/or throttle bandwidth here are some typical ranges:
[glow=red,2,300]THE MINIMUM SUGGESTED HARDWARE:[/glow]
- A Cable Modem; such as SB6141 or SB6120
- A PC; Dual 1.2ghz (or better) 512MB RAM (or better) w/2 (or more) LAN inputs
[My PC had 3 LAN inputs, all gigabit, the motherboard (1) and NC360T (2)]
[Other working setups used just a Mini Laptop and USB Network adapter]
- A Gaming Router; such as DGL-4500 or DIR-655
- 2 Home Routers; such as DIR-632 & WRT120N [If anything else needs the net]
[glow=red,2,300]THE NETWORKING SETUP:[/glow]
[All my ethernet cables are CAT6e gigabit cables]
[All my coaxial cables are quad-shielded with gold plated connectors]
- - Coaxial Cable (no boosters!)
TO
- - - - Cable Modem (1 output)
TO
- - - - - - Gaming Router (2 outputs)
TO
- - - - - - - - PC (1st output from Gaming Router)
AND ALSO TO
- - - - - - - - Home Router 1 (DIR-632) (2nd output from Gaming Router)
NEXT (from gaming router)
- - PC
TO
- - - - PS3/XBOX/PCGAME (via a bridged connection)
[To bridge a connection in windows go to "Start\Control Panel\All Control Panel Items\Network and Sharing Center\Network and Internet\Network Connections\" Select the adapters you want to bridge with Shift mouse select or Ctrl mouse click, then right-click the highlighted adapters and select "Bridge Connections"]
[in order to get my consoles working via a bridged connection 1st I had to connect the console via a wired connection directly to the gaming router, next I ran the networking setup on the console to get a fixed ip, tested the speed, then disconnected the cable and connected it to my PC instead. After that you can sign in on the console via the bridged PC connection but often cannot run a connection test]
[the bridged PC method using NetBalancer gives you a way to control how much lag compensation you will receive, slow connections with more delay will receive more lag compensation. For the PS3 it was not necessary to have lag comp. The faster pings alone gave me a much better advantage in the game when I played alone in public lobbies without a party. But for the xBox slower upload/download speeds and even a 40ms upload delay resulted in a substantial in-game advantage.]
NEXT (from gaming router)
- - Home Router 1 (DIR-632) (QoS upload limited to 1024K)
TO
- - - - Home Router 2 (WRT120N) (wireless up/down limited to 11MB)
TO
- - - - - - all other devices via wireless only
PLEASE NOTE: Hanging all other in house connections off of your gaming router via a regular slower home router then limiting those other users' speed at the home router level is the most important part. This always allows your console to have some bandwidth remaining and gives those gaming packets the highest priority once you have your console connected to your gaming router and ALL the PROPER ports forwarded, triggered, firewalls turned off, and the ip for the console put into the DMZ. You have to throttle everyone else in the house, but I do not recommend throttling your PS3 internet speeds (but for xbox and PC, speed throttling may help).
[glow=red,2,300]THE SUGGESTED SOFTWARE:[/glow]
TCP Optimizer v3.0.8 (get the newest version: www.speedguide.net/downloads.php)
NetBalancer v6.2.4 (get the newest version: seriousbit.com/netbalancer/)
[You might also like to try NetLimiter (get the newest version: www.netlimiter.com/)]
Namebench 1.3.1 for Windows (get the newest version: code.google.com/p/namebench/)
DNS Jumper 1.0.4 (www.softpedia.com/progDownload/Dns-Jumper-Download-147321.html)
[glow=red,2,300]THE SUGGESTED WEBSITES:[/glow]
www.speedtest.net (to test upload and download speeds only)
www.pingtest.net (to test ping and jitter times only)
[if speedtest won't work on your game console search for "speed test"]
[if pingtest won't work on your game console search for "speed test ping"]
[glow=red,2,300]THE HARDWARE/SOFTWARE SETTINGS:[/glow]
First the Hardware....
Cable Modem Settings:
- The ip should be 192.168.0.100
- Turn off all WiFi if it has it
- Turn off all firewall settings
- Turn off any setting that lets you ping
- use DNS1&2 recommended from Namebench software
Gaming Router Settings:
- The ip should be 192.168.1.1
- Set the Maximum users (or ip range) to at least 168 (so you can use 1.168)
- Turn off all WiFi if it has it
- Turn off all firewall settings
[If you can... when I took down my firewall hackers could kick me from lobbies]
[but with my firewall on I no longer get kicked and I didn't see any additional lag]
- Turn on any setting that lets you ping (otherwise you can't do ping testing)
[Here are the ports you should open in steps 1 thru 5 directly provided by Treyarch & Activision]
[support.activision.com/articles/en_US/FAQ/Lag-Occurs-in-Multiplayer-Game]
- 1) Forward all the port ranges needed for the game to the ip (192.168.1.168)
- 2) Forward all the single ports needed for the game to the ip (192.168.1.168)
- 3) Trigger all the ports needed for the game to the ip (192.168.1.168)
- 4) DMZ the ip for the PC or console (192.168.1.168)
[The DMZ never ever works correctly on gaming routers so be sure to do all 5!]
- 5) set the gaming ip (192.168.1.168) priority to highest setting of 1 (QoS)
- use DNS1&2 recommended from Namebench software
[if you have the ability to shrink your receive/send buffers on this router you should]
[for dd-wrt/linux I would recommend running the following commands:
ifconfig eth0 txqueuelen 2
ifconfig eth1 txqueuelen 2
this will set your buffers to "2" to reduce bufferbloat and cache thrashing]
[And yes, before I get a bunch of comments on how smaller MTU's means faster packets, I know... I can get down to 21ms if I cut my packet size in half, but for now I left it at 1498-1500 because 3 other people in the house need the net 24/7 for streaming video, so I had to come up with a practical working solution that didn't affect anyone else in my house (since I have 3 rental rooms here that run Slingplayer on 3 wireless Logitech Revues 24 hours a day)]
PC Settings:
- Turn off all the windows firewalls (including anti-virus ones too)
- Close any programs using the net (NetBalancer makes these easy to find)
- Run TCPOptimizer with the settings listed, restart
- Run Namebench and get the DNS1&2 it recommends
- Run DNS Jumper and change DNS1&2 to Namebench recommendation
[If you only play games on a PC the ip should be set to 192.168.1.168]
[To play on a bridged game console a dynamic PC ip is fine just not 192.168.1.168]
PC NIC Adapter Settings (where the game console is connected):
[under the advanced tab]
- - Disable "Jumbo Frames"
- - Enable "Adaptive Inter-Frame Spacing"
- - pick 'Off' for "Flow Control"
- - Disable "Gigabit Master Slave Mode"
- - Disable "Interrupt Moderation Rate"
- - pick 'Automatic' for "Link Speed & Duplex"
[but if you have 1 gigabit ethernet all the way then full duplex gigabit is better]
[but xbox is only 10/100 so that 1 adapter should be full duplex 100 instead]
- - Do not change "Locally Administered Address"
- - Disable "Log Link State Event"
- - pick 'off' for "Interrupt Moderation Rate"
- - set "Receive Buffers" real low (2 to 80)
- - set "Transmit Buffers" real low (2 to 80)
- - Disable "QoS Packet Tagging"
- - Enable "Offload Receive IP Checksum"
- - Enable "Offload Receive TCP Checksum"
- - Enable "Offload Transmit IP Checksum"
- - Enable "Offload Transmit TCP Checksum"
- - pick 'Auto Detect' for "Wait for Link"
PC NIC Adapter Settings (where the Internet comes in):
[under the advanced tab]
- - Disable "Jumbo Frames"
- - Enable "Adaptive Inter-Frame Spacing"
- - pick 'Off' for "Flow Control"
- - Disable "Gigabit Master Slave Mode"
- - Disable "Interrupt Moderation Rate"
- - pick 'Automatic' for "Link Speed & Duplex"
[but if you have 1 gigabit ethernet all the way then full duplex gigabit is better]
[but xbox is only 10/100 so that 1 adapter should be full duplex 100 instead]
- - Do not change "Locally Administered Address"
- - Disable "Log Link State Event"
- - pick 'off' for "Interrupt Moderation Rate"
- - set "Receive Buffers" real low (to match TRANSMIT buffers from other NIC)
- - set "Transmit Buffers" real low (2 to 80)
- - Disable "QoS Packet Tagging"
- - Enable "Offload Receive IP Checksum"
- - Enable "Offload Receive TCP Checksum"
- - Enable "Offload Transmit IP Checksum"
- - Enable "Offload Transmit TCP Checksum"
- - pick 'Auto Detect' for "Wait for Link"
PS3/XBOX/PC Settings:
- Manually set the ip to 192.168.1.168 (and/or reserve it)
- Primary router address will be 192.168.1.1
- use DNS1&2 recommended from Namebench software
- set display settings to 720p or 480
- turn off all enhanced colors and enhanced rendering settings
- FYI: Hdmi sound and analog is faster than optical digital true Dolby
Home Router 1 (DIR-632) Settings:
- The ip should be 192.168.2.1
- Turn off all WiFi if it has it
- manually restrict upload speed to 1024kbps (QoS)
- use DNS1&2 recommended from Namebench software
Home Router 2 (WRT120N) Settings:
- The ip should be 192.168.3.1
- Do not connect any wired devices
- Turn on WiFi so you can use your internet for other stuff
- manually restrict upload speed to 1024kbps (QoS)
- restrict the advanced wireless speed setting to no more than 11MB
- turn burst on
- use DNS1&2 recommended from Namebench software
TV/Display Settings:
- Make sure it is set to "Game Mode"
- Do not turn on any image enhancing settings (except maybe film mode)
Next the Software.... [ this part gets very juicy :-P ]
Namebench Settings:
- run it as-is and write down or save the fastest ip DNS's it gives you
[but ignore anything with 192.168. on it obviously]
DNSJumper Settings:
- save your 2 current DNS settings using the Backup Button
- add your 2 new DNS settings by checking "Manual Dns Servers"
- - type in the 2 new DNS's you got from the Namebench software
- - push the blue "+" button to add the DNS's you typed
- - give the new DNS's a name to save them (I put namebenchFastest)
- - push the "Add New Dns Server" button
- the new name you typed will be selected as #61
- push the "Apply Dns" button
- make sure you can get to a website then close DNS Jumper
[if you mess up just select "Restore" from the drop down then click "Apply Dns"]
NetBalancer Settings:
- You can close the "System Traffic" box. (You don't need it)
- You can close the "Process Info" box. (You don't need it)
- You can close the "Connections" box. (You don't need it)
- pick "All Network Adapters" from the Adapter list
- sort it descending by the "Downloaded" column
- push the "Settings" button (it looks like tools)
- On the settings page...
- - check "Start tray icon automatically when starting Windows"
- - check "Check for news and new version on startup"
- - uncheck "Resolve addresses in connections list"
- - uncheck "Log errors to System Events log"
- - select Kb for "Traffic Unit"
- - uncheck "Ignore local traffic"
- - check "Limit multiple instances of a process as one"
- - check "Show decimals"
- - check "Show only online processes"
- - uncheck "Balance network only when"
- - uncheck "Recalculate bandwidth every"
- - check "Include ignored processes when counting system traffic"
- - check "Download" and type "128" Kbps
- - check "Upload" and type "75" Kbps
- - push the "Apply" button
[To limit bandwidth check "Download" & "Upload" then click the "Apply" button.]
[To release all bandwidth uncheck Download" & "Upload" then click the "Apply" button.]
- - click the "Priorities and Traffic Chart" tab
- - - - pick "High" for the default traffic priority
- - - - uncheck "Show default priority as blank"
- - - - select the "prefer lower latency" option
- - - - push the "Apply" button
[There is also an option to add latency for both upload & download on this screen]
(I tested upload net delays from 40ms to 300ms, personally I like 40ms)
[There is also the option to drop a percent of incoming or outgoing packets]
(drop download packs for bullets to miss you, drop upload packs to delay your position)
[These options allow your to add or remove as much lag compensation as you want easily]
[If you add 200ms delay to upload it will take 200ms for your bullets to connect]
[This quick test immediately shows you that lag compensation is not overly helpful in many situations]
- - - -
- - - -
- - - -
TCPOptimizer Settings:
- on the "General Settings" tab...
- - select "Custom" option (from the bottom right corner)
- - drag "Connection Speed" to your download speed (15 Mbps at top)
- - check "Modify All Network Adapters"
- - type '1500' for the "MTU"
- - select 'disabled' for "TCP Window Auto-Tuning"
- - select 'none' for "Congestion Control Provider"
- - select 'enabled' for "TCP Chimney Offload"
- - select 'enabled' for "Receive-Side Scaling State"
- - select 'enabled' for "Direct Cache Access (DCA)"
- - select 'enabled' for "NetDMA (TCPA)"
- - type'64' for "Time to Live (TTL)"
[TTL is the number of hops, by setting this lower you won't get many foreign gamers, but many far away websites won't load either, a game with a friend on say the same block & isp may only need a TTL of 10, thus by setting this to 25, then you would only be able to game with players nearby; however, some IPs and/or routers ignore and/or reset your packets TTL settings, to see if this option is available to you use a tracert, count the hops, and make sure your TTL settings are working correctly]
- - select 'disabled' for "ECN Capability"
- - select 'disabled' for "Windows Scaling heuristics"
- - select 'enabled: 0' for "Checksum Offloading"
- - check "Window Scaling" under 'TCP 1323 Options'
- - do not check "Timestamps"
- on the "Advanced Settings" tab...
- - select "Custom" option (from the bottom right corner)
- - type '2' for "MaxConnectionsPerServer"
- - type '4' for "MaxConnectionsPer1_0Server"
- - type '4' for "LocalPriority"
- - type '5' for "HostPriority"
- - type '6' for "DnsPriority"
- - type '7' for "NetbtPriority"
- - select 'disabled' for "SynAttackProtect"
- - type '1' for "TcpMaxDataRetransmissions"
- - select 'disabled: 0' for "LargeSystemCache"
- - select 'default: 1' for "Size"
- - type '0' for "QoS: NonBestEffortLimit"
- - select 'disabled: ffffffff' for "Network ThrottlingIndex"
- - select 'enabled: 1' for "TcpAckFrequency"
- - select 'enabled: 1' for "TcpNoDelay"
- - select 'disabled: 0' for "TcpDelAckTicks"
- - type '0' for "NegativeCacheTime"
- - type '0' for "NetFailureCacheTime"
- - type '0' for "NegativeSOACacheTime"
- - type '65534' for "MaxUserPort"
- - type '5' for "TcpTimedWaitDelay" (slower PC's may need a '10' here)
- push the "Apply Changes" button and reboot when prompted
[some windows machines may not have all these registry items, if not then you may have add them manually for these settings to hold and they will work, if you don't how to do this nor what I'm talking about then stay out of your registry]
Once you get setup the PC and console won't be good at things like streaming video, or large downloads, anything that needs big buffers and high-bandwidth, but you will have a high ping, smaller buffers to flush, and smaller packets in general, therefore hopefully less jitter, less outgoing packets lost due to less overflow/conflicts, but more incoming packets dropped due to smaller buffers and no flow control nor any conflict handling. The idea was make it the highest priority for a bad host to easily get all your faster smaller packets on the 1st attempt but harder for you to process any of the larger packets coming from the host possibly needing multiple attempts. My first assumption was that the difference would be negligible but what happened was I actually got more hit markers and more assistance from lag compensation using this method and my KD rose some 30%, but the largest advantage came on the PS3 from lowering latency. Once my ping was cut from 80ms to 36ms my K/D increased some 300% for practically every match. [Despite having already opened all of the ports Treyarch recommended, and put my PS3 in the DMZ, I was only getting a 80ms ping 15ms jitter, but with all the additional tweaks my pings are 36ms with 1ms jitter, the biggest help coming from the gaming router priority settings.]
[glow=red,2,300]The Novel (my endless ranting)...[/glow]
I CAN'T STRESS ENOUGH THOUGH THAT ON PS3 LAG COMPENSATION IS NOT THE MAIN ISSUE. THE BIGGER PROBLEM (ignoring bad spawns) IS POINT-OF-VIEW CAMERA LAG. EVEN ON SPLIT-SCREEN WITH NO INTERNET CONNECTION WHEN A PLAYER IS RUNNING THE POV CAMERA JUMPS AHEAD OF HIS MOVING LOCATION SEVERAL FEET THUS LETTING MOVING PLAYERS SEE STILL PLAYERS SOME 300ms FASTER WHEN COMING THROUGH DOORWAYS, UP OR DOWN STAIRS, WHILE SWITCHING FROM CROUCHED TO STANDING POSITION BEHIND OBJECTS, AND WHILE TURNING AROUND CORNERS. (the player is allowed to shoot at the enemy, then once their body catches up to the camera firing location the bullets will connect (show the hitmarkers) effectively allowing moving players to shoot and kill stationary players 100's of milliseconds before they are ever actually visible) 300ms IS A RIDICULOUSLY LARGE AMOUNT OF DELAY see ovenbakedmuffin's youtube video for more info: www.youtube.com/watch?v=ZoFnIckyoxg [Basically the camera enters the room and a player can fire before their gun and upper body ever enter the enemy's view, many know this in it's lowest form as head glitching. Other's also complain "How'd you get in and kill me so fast? I pre-fired!" Well that's because, like I said, their body actually hadn't entered the room yet, the camera entered the room, shot, & killed you, then after you died the enemy's body (or hitbox) finally entered (and bullets come out of the actual POV camera location BUT NOT THE GUN!) that's why no bullets connect when you stationary pre-fired at the predicted location of a moving enemy.]
[I've notified Activision and Trearch (even Infinity Ward) about the camera sway issues. I believe this forward swaying camera was programmed on purpose. Black Ops 2 clearly has some code that tells a client console to try to predict where a moving player will be later and show them there rather than exactly where they are now [to help minimize the effects of internet lag] but client console predictions can either work to your advantage (when the prediction is correct) or to your disadvantage (when predictions are wrong). Perhaps your own POV camera also try's to predict where your player will be later rather than showing the POV as it is currently [again to help minimize the effect of internet lag] so that the camera is told by predictive code to jump slightly ahead of your body as you move quickly in 1 direction. But a stationary character's movement will be predicted as just stationary, therefore a moving player's predictive camera code lets them see a stationary player before their moving body actually arrives at the destination. This also may been done on purpose using net code since the fast running soldiers in the game appear to bend & lean forward as they run, thus their head (and camera POV) would enter the room 1st (before their lower body) when moving forward quickly. A client console would predict the forward moving player entering the room so a stationary player inside could fire early, unfortunately the enemy's camera would also do a prediction to see inside the room early, but practically no bullets will connect with the moving enemy entering the room because the host's packet reply will state "no" the enemy hasn't entered the area yet, then as the moving enemy enters and fires moments later, the host replies and states "yes" the stationary player was not moving therefore was still at the position where the bullets landed therefore the stationary player dies immediately, thus the host will cancel all other pre-fire bullet packets from said stationary player, ultimately resulting in an insta-kill of stationary players that are pre-firing in advance by predicting enemy movements correctly.
Perhaps 1 programming group wrote the net lag coding and another wrote the player movement coding. If so, this might explain why the 2 are not sync'd, and why a player's hitbox is not actually where it appears it should be on screen (because the net code from the host is checking real-time hit-box location instead of the predictive camera location). To fix this hit boxes would have to be sent to the host at their predicted camera locations rather than the client's actual body location so that clients can get hit markers on their predicted location since that is actually where we will fire, because we fire at what we can see, not at what we can't see. I've had quite a few gameplay's where I get every hit marker in the open air behind all the running players, so in my mind this game code fault has been fully verified.]
UPDATE: Despite having reduced lag so much that it became fairly easy to get 2 k/d+ nearly every game, most of my testing was done playing with no one else in my party on a PS3. Once I invited a friend from down the street to play with me (same isp / same open ports / same modem and router / 0.01ms ping away / because I set up his connection too) then it gave most enemies a large amount of lag compensation. Once again almost no bullets where getting hitmarkers and I was being insta-killed despite having already chased down and shot other players in the back plus gotten 4-5 hit markers from 25 bullets. We both went way negative (0.6kd) when we didn't both setup a camp together, even then it was nearly impossible to stay alive for long (oddly enough though it seemed I could knife enemies easier). My friend backed out of the lobby, and I played a game alone, once again I got a 2.66k/d no camping (I believe I went 29/11, I save fresh good games to my channel). My friend's K/D is 2.23 so us both getting a 0.6k/d while playing together is ridiculous, we should dominate the lobby. So, if you feel lag comp is killing you on PS3 (and have already done all the steps to open your ports plus set the console ip to high priority) stop inviting neighborhood friends to your lobby then see how you do.
However; when I invite distant friends the game gets easier (I had my first few flawless PS3 public games after someone in Ohio invited me to their lobby, I'm in Alabama) so there must be a problem in the lag comp net code that gives an unfair advantage to distant players (high latency) who chose to play together on the same team (or visa-versa, gives a disadvantage to teams that live close together?) (more testing must be done to determine if the issue is at the isp level or if it could be due to poor game programming...)
Low latency games on xBox were the opposite. Lower pings (300mi+ with less than 40ms) made the game practically unplayable. Setting my download speed to 130kb, upload to 75kb, with an additional upload delay of 40-75ms resulted in positive KD gameplays. So lag comp on xBox does provide a slightly unfair advantage to laggy connections.
I've pretty much finished this tutorial. I know it's a lot of info. This took a lot of money and time, so any size donation will be accepted: DONATE. I'm thinking this setup will reduce lag much better than a LagBuster with Counter-Measure ($219) ;D unfortunately, though my setup might be better, it might also cost you about twice as much money [fortunately for me the only thing I had to buy was 2 cable modems and 2 gaming routers, most of the other stuff I already had laying around since I just closed my computer repair shop]
THE END.
Here is the net related lag stopping tutorial: Good Luck!
THE STEPS:
- 01) run speedtest/pingtest to see initial speeds/pings before changes
- 02) setup everything as suggested below & test again for a smaller ping
- 03) start up the game or turn on your game console
- 04) set your game search preference to BEST
- 05) search for a game
- 06) wait for the lobby to fill and teams to lock
- 07) if you want lag comp change bandwidth by using NetBalancer (or Netlimiter)
[faster pings under 40ms will get more visible results on ground war]
[slower pings over 40ms may lock sometimes try a game-mode w/ less players]
[slow hosts make the game choppy but lag compensation is still on your side]
[If you don't want lag comp it will not be necessary to put the PC in the middle]
[Lag comp may not help you much since latency will delay hit detection]
[...but personally I'd recommend no throttle only 40ms upload delay] - 08) try hard or camp and enjoy your match to the end
[glow=red,2,300]THE MINIMUM SUGGESTED CONNECTION:[/glow]
- 15 MB down / 2 MB up
If you choose to delay and/or throttle bandwidth here are some typical ranges:
- Satellite: 1 to 2Mb - 1000 to 2000ms latency
- 2G GPRS: 56Kbit/s - 625ms to 1000ms latency
- 2.75G EDGE: 256 to 512Kbit/s - 160ms to 625ms latency
- Dial-Up: 14 to 96Kbit/s - 160 to 550ms latency
- 3G UMTS: 1 to 3Mb - 100ms to 500ms latency
- 3.5G HSDPA: 1 to 5Mb - 40ms to 360ms latency
- 4G LTE: 2 to 48Mb - 35ms to 160ms latency
- Cable/DSL: 1.5 to 50Mb - 20ms to 120ms latency
[glow=red,2,300]THE MINIMUM SUGGESTED HARDWARE:[/glow]
- A Cable Modem; such as SB6141 or SB6120
- A PC; Dual 1.2ghz (or better) 512MB RAM (or better) w/2 (or more) LAN inputs
[My PC had 3 LAN inputs, all gigabit, the motherboard (1) and NC360T (2)]
[Other working setups used just a Mini Laptop and USB Network adapter]
- A Gaming Router; such as DGL-4500 or DIR-655
- 2 Home Routers; such as DIR-632 & WRT120N [If anything else needs the net]
[glow=red,2,300]THE NETWORKING SETUP:[/glow]
[All my ethernet cables are CAT6e gigabit cables]
[All my coaxial cables are quad-shielded with gold plated connectors]
- - Coaxial Cable (no boosters!)
TO
- - - - Cable Modem (1 output)
TO
- - - - - - Gaming Router (2 outputs)
TO
- - - - - - - - PC (1st output from Gaming Router)
AND ALSO TO
- - - - - - - - Home Router 1 (DIR-632) (2nd output from Gaming Router)
NEXT (from gaming router)
- - PC
TO
- - - - PS3/XBOX/PCGAME (via a bridged connection)
[To bridge a connection in windows go to "Start\Control Panel\All Control Panel Items\Network and Sharing Center\Network and Internet\Network Connections\" Select the adapters you want to bridge with Shift mouse select or Ctrl mouse click, then right-click the highlighted adapters and select "Bridge Connections"]
[in order to get my consoles working via a bridged connection 1st I had to connect the console via a wired connection directly to the gaming router, next I ran the networking setup on the console to get a fixed ip, tested the speed, then disconnected the cable and connected it to my PC instead. After that you can sign in on the console via the bridged PC connection but often cannot run a connection test]
[the bridged PC method using NetBalancer gives you a way to control how much lag compensation you will receive, slow connections with more delay will receive more lag compensation. For the PS3 it was not necessary to have lag comp. The faster pings alone gave me a much better advantage in the game when I played alone in public lobbies without a party. But for the xBox slower upload/download speeds and even a 40ms upload delay resulted in a substantial in-game advantage.]
NEXT (from gaming router)
- - Home Router 1 (DIR-632) (QoS upload limited to 1024K)
TO
- - - - Home Router 2 (WRT120N) (wireless up/down limited to 11MB)
TO
- - - - - - all other devices via wireless only
PLEASE NOTE: Hanging all other in house connections off of your gaming router via a regular slower home router then limiting those other users' speed at the home router level is the most important part. This always allows your console to have some bandwidth remaining and gives those gaming packets the highest priority once you have your console connected to your gaming router and ALL the PROPER ports forwarded, triggered, firewalls turned off, and the ip for the console put into the DMZ. You have to throttle everyone else in the house, but I do not recommend throttling your PS3 internet speeds (but for xbox and PC, speed throttling may help).
[glow=red,2,300]THE SUGGESTED SOFTWARE:[/glow]
TCP Optimizer v3.0.8 (get the newest version: www.speedguide.net/downloads.php)
NetBalancer v6.2.4 (get the newest version: seriousbit.com/netbalancer/)
[You might also like to try NetLimiter (get the newest version: www.netlimiter.com/)]
Namebench 1.3.1 for Windows (get the newest version: code.google.com/p/namebench/)
DNS Jumper 1.0.4 (www.softpedia.com/progDownload/Dns-Jumper-Download-147321.html)
[glow=red,2,300]THE SUGGESTED WEBSITES:[/glow]
www.speedtest.net (to test upload and download speeds only)
www.pingtest.net (to test ping and jitter times only)
[if speedtest won't work on your game console search for "speed test"]
[if pingtest won't work on your game console search for "speed test ping"]
[glow=red,2,300]THE HARDWARE/SOFTWARE SETTINGS:[/glow]
First the Hardware....
Cable Modem Settings:
- The ip should be 192.168.0.100
- Turn off all WiFi if it has it
- Turn off all firewall settings
- Turn off any setting that lets you ping
- use DNS1&2 recommended from Namebench software
Gaming Router Settings:
- The ip should be 192.168.1.1
- Set the Maximum users (or ip range) to at least 168 (so you can use 1.168)
- Turn off all WiFi if it has it
- Turn off all firewall settings
[If you can... when I took down my firewall hackers could kick me from lobbies]
[but with my firewall on I no longer get kicked and I didn't see any additional lag]
- Turn on any setting that lets you ping (otherwise you can't do ping testing)
[Here are the ports you should open in steps 1 thru 5 directly provided by Treyarch & Activision]
[support.activision.com/articles/en_US/FAQ/Lag-Occurs-in-Multiplayer-Game]
- 1) Forward all the port ranges needed for the game to the ip (192.168.1.168)
- 2) Forward all the single ports needed for the game to the ip (192.168.1.168)
- 3) Trigger all the ports needed for the game to the ip (192.168.1.168)
- 4) DMZ the ip for the PC or console (192.168.1.168)
[The DMZ never ever works correctly on gaming routers so be sure to do all 5!]
- 5) set the gaming ip (192.168.1.168) priority to highest setting of 1 (QoS)
- use DNS1&2 recommended from Namebench software
[if you have the ability to shrink your receive/send buffers on this router you should]
[for dd-wrt/linux I would recommend running the following commands:
ifconfig eth0 txqueuelen 2
ifconfig eth1 txqueuelen 2
this will set your buffers to "2" to reduce bufferbloat and cache thrashing]
[And yes, before I get a bunch of comments on how smaller MTU's means faster packets, I know... I can get down to 21ms if I cut my packet size in half, but for now I left it at 1498-1500 because 3 other people in the house need the net 24/7 for streaming video, so I had to come up with a practical working solution that didn't affect anyone else in my house (since I have 3 rental rooms here that run Slingplayer on 3 wireless Logitech Revues 24 hours a day)]
PC Settings:
- Turn off all the windows firewalls (including anti-virus ones too)
- Close any programs using the net (NetBalancer makes these easy to find)
- Run TCPOptimizer with the settings listed, restart
- Run Namebench and get the DNS1&2 it recommends
- Run DNS Jumper and change DNS1&2 to Namebench recommendation
[If you only play games on a PC the ip should be set to 192.168.1.168]
[To play on a bridged game console a dynamic PC ip is fine just not 192.168.1.168]
PC NIC Adapter Settings (where the game console is connected):
[under the advanced tab]
- - Disable "Jumbo Frames"
- - Enable "Adaptive Inter-Frame Spacing"
- - pick 'Off' for "Flow Control"
- - Disable "Gigabit Master Slave Mode"
- - Disable "Interrupt Moderation Rate"
- - pick 'Automatic' for "Link Speed & Duplex"
[but if you have 1 gigabit ethernet all the way then full duplex gigabit is better]
[but xbox is only 10/100 so that 1 adapter should be full duplex 100 instead]
- - Do not change "Locally Administered Address"
- - Disable "Log Link State Event"
- - pick 'off' for "Interrupt Moderation Rate"
- - set "Receive Buffers" real low (2 to 80)
- - set "Transmit Buffers" real low (2 to 80)
- - Disable "QoS Packet Tagging"
- - Enable "Offload Receive IP Checksum"
- - Enable "Offload Receive TCP Checksum"
- - Enable "Offload Transmit IP Checksum"
- - Enable "Offload Transmit TCP Checksum"
- - pick 'Auto Detect' for "Wait for Link"
PC NIC Adapter Settings (where the Internet comes in):
[under the advanced tab]
- - Disable "Jumbo Frames"
- - Enable "Adaptive Inter-Frame Spacing"
- - pick 'Off' for "Flow Control"
- - Disable "Gigabit Master Slave Mode"
- - Disable "Interrupt Moderation Rate"
- - pick 'Automatic' for "Link Speed & Duplex"
[but if you have 1 gigabit ethernet all the way then full duplex gigabit is better]
[but xbox is only 10/100 so that 1 adapter should be full duplex 100 instead]
- - Do not change "Locally Administered Address"
- - Disable "Log Link State Event"
- - pick 'off' for "Interrupt Moderation Rate"
- - set "Receive Buffers" real low (to match TRANSMIT buffers from other NIC)
- - set "Transmit Buffers" real low (2 to 80)
- - Disable "QoS Packet Tagging"
- - Enable "Offload Receive IP Checksum"
- - Enable "Offload Receive TCP Checksum"
- - Enable "Offload Transmit IP Checksum"
- - Enable "Offload Transmit TCP Checksum"
- - pick 'Auto Detect' for "Wait for Link"
PS3/XBOX/PC Settings:
- Manually set the ip to 192.168.1.168 (and/or reserve it)
- Primary router address will be 192.168.1.1
- use DNS1&2 recommended from Namebench software
- set display settings to 720p or 480
- turn off all enhanced colors and enhanced rendering settings
- FYI: Hdmi sound and analog is faster than optical digital true Dolby
Home Router 1 (DIR-632) Settings:
- The ip should be 192.168.2.1
- Turn off all WiFi if it has it
- manually restrict upload speed to 1024kbps (QoS)
- use DNS1&2 recommended from Namebench software
Home Router 2 (WRT120N) Settings:
- The ip should be 192.168.3.1
- Do not connect any wired devices
- Turn on WiFi so you can use your internet for other stuff
- manually restrict upload speed to 1024kbps (QoS)
- restrict the advanced wireless speed setting to no more than 11MB
- turn burst on
- use DNS1&2 recommended from Namebench software
TV/Display Settings:
- Make sure it is set to "Game Mode"
- Do not turn on any image enhancing settings (except maybe film mode)
Next the Software.... [ this part gets very juicy :-P ]
Namebench Settings:
- run it as-is and write down or save the fastest ip DNS's it gives you
[but ignore anything with 192.168. on it obviously]
DNSJumper Settings:
- save your 2 current DNS settings using the Backup Button
- add your 2 new DNS settings by checking "Manual Dns Servers"
- - type in the 2 new DNS's you got from the Namebench software
- - push the blue "+" button to add the DNS's you typed
- - give the new DNS's a name to save them (I put namebenchFastest)
- - push the "Add New Dns Server" button
- the new name you typed will be selected as #61
- push the "Apply Dns" button
- make sure you can get to a website then close DNS Jumper
[if you mess up just select "Restore" from the drop down then click "Apply Dns"]
NetBalancer Settings:
- You can close the "System Traffic" box. (You don't need it)
- You can close the "Process Info" box. (You don't need it)
- You can close the "Connections" box. (You don't need it)
- pick "All Network Adapters" from the Adapter list
- sort it descending by the "Downloaded" column
- push the "Settings" button (it looks like tools)
- On the settings page...
- - check "Start tray icon automatically when starting Windows"
- - check "Check for news and new version on startup"
- - uncheck "Resolve addresses in connections list"
- - uncheck "Log errors to System Events log"
- - select Kb for "Traffic Unit"
- - uncheck "Ignore local traffic"
- - check "Limit multiple instances of a process as one"
- - check "Show decimals"
- - check "Show only online processes"
- - uncheck "Balance network only when"
- - uncheck "Recalculate bandwidth every"
- - check "Include ignored processes when counting system traffic"
- - check "Download" and type "128" Kbps
- - check "Upload" and type "75" Kbps
- - push the "Apply" button
[To limit bandwidth check "Download" & "Upload" then click the "Apply" button.]
[To release all bandwidth uncheck Download" & "Upload" then click the "Apply" button.]
- - click the "Priorities and Traffic Chart" tab
- - - - pick "High" for the default traffic priority
- - - - uncheck "Show default priority as blank"
- - - - select the "prefer lower latency" option
- - - - push the "Apply" button
[There is also an option to add latency for both upload & download on this screen]
(I tested upload net delays from 40ms to 300ms, personally I like 40ms)
[There is also the option to drop a percent of incoming or outgoing packets]
(drop download packs for bullets to miss you, drop upload packs to delay your position)
[These options allow your to add or remove as much lag compensation as you want easily]
[If you add 200ms delay to upload it will take 200ms for your bullets to connect]
[This quick test immediately shows you that lag compensation is not overly helpful in many situations]
- - - -
- - - -
- - - -
TCPOptimizer Settings:
- on the "General Settings" tab...
- - select "Custom" option (from the bottom right corner)
- - drag "Connection Speed" to your download speed (15 Mbps at top)
- - check "Modify All Network Adapters"
- - type '1500' for the "MTU"
- - select 'disabled' for "TCP Window Auto-Tuning"
- - select 'none' for "Congestion Control Provider"
- - select 'enabled' for "TCP Chimney Offload"
- - select 'enabled' for "Receive-Side Scaling State"
- - select 'enabled' for "Direct Cache Access (DCA)"
- - select 'enabled' for "NetDMA (TCPA)"
- - type'64' for "Time to Live (TTL)"
[TTL is the number of hops, by setting this lower you won't get many foreign gamers, but many far away websites won't load either, a game with a friend on say the same block & isp may only need a TTL of 10, thus by setting this to 25, then you would only be able to game with players nearby; however, some IPs and/or routers ignore and/or reset your packets TTL settings, to see if this option is available to you use a tracert, count the hops, and make sure your TTL settings are working correctly]
- - select 'disabled' for "ECN Capability"
- - select 'disabled' for "Windows Scaling heuristics"
- - select 'enabled: 0' for "Checksum Offloading"
- - check "Window Scaling" under 'TCP 1323 Options'
- - do not check "Timestamps"
- on the "Advanced Settings" tab...
- - select "Custom" option (from the bottom right corner)
- - type '2' for "MaxConnectionsPerServer"
- - type '4' for "MaxConnectionsPer1_0Server"
- - type '4' for "LocalPriority"
- - type '5' for "HostPriority"
- - type '6' for "DnsPriority"
- - type '7' for "NetbtPriority"
- - select 'disabled' for "SynAttackProtect"
- - type '1' for "TcpMaxDataRetransmissions"
- - select 'disabled: 0' for "LargeSystemCache"
- - select 'default: 1' for "Size"
- - type '0' for "QoS: NonBestEffortLimit"
- - select 'disabled: ffffffff' for "Network ThrottlingIndex"
- - select 'enabled: 1' for "TcpAckFrequency"
- - select 'enabled: 1' for "TcpNoDelay"
- - select 'disabled: 0' for "TcpDelAckTicks"
- - type '0' for "NegativeCacheTime"
- - type '0' for "NetFailureCacheTime"
- - type '0' for "NegativeSOACacheTime"
- - type '65534' for "MaxUserPort"
- - type '5' for "TcpTimedWaitDelay" (slower PC's may need a '10' here)
- push the "Apply Changes" button and reboot when prompted
[some windows machines may not have all these registry items, if not then you may have add them manually for these settings to hold and they will work, if you don't how to do this nor what I'm talking about then stay out of your registry]
Once you get setup the PC and console won't be good at things like streaming video, or large downloads, anything that needs big buffers and high-bandwidth, but you will have a high ping, smaller buffers to flush, and smaller packets in general, therefore hopefully less jitter, less outgoing packets lost due to less overflow/conflicts, but more incoming packets dropped due to smaller buffers and no flow control nor any conflict handling. The idea was make it the highest priority for a bad host to easily get all your faster smaller packets on the 1st attempt but harder for you to process any of the larger packets coming from the host possibly needing multiple attempts. My first assumption was that the difference would be negligible but what happened was I actually got more hit markers and more assistance from lag compensation using this method and my KD rose some 30%, but the largest advantage came on the PS3 from lowering latency. Once my ping was cut from 80ms to 36ms my K/D increased some 300% for practically every match. [Despite having already opened all of the ports Treyarch recommended, and put my PS3 in the DMZ, I was only getting a 80ms ping 15ms jitter, but with all the additional tweaks my pings are 36ms with 1ms jitter, the biggest help coming from the gaming router priority settings.]
[glow=red,2,300]The Novel (my endless ranting)...[/glow]
I CAN'T STRESS ENOUGH THOUGH THAT ON PS3 LAG COMPENSATION IS NOT THE MAIN ISSUE. THE BIGGER PROBLEM (ignoring bad spawns) IS POINT-OF-VIEW CAMERA LAG. EVEN ON SPLIT-SCREEN WITH NO INTERNET CONNECTION WHEN A PLAYER IS RUNNING THE POV CAMERA JUMPS AHEAD OF HIS MOVING LOCATION SEVERAL FEET THUS LETTING MOVING PLAYERS SEE STILL PLAYERS SOME 300ms FASTER WHEN COMING THROUGH DOORWAYS, UP OR DOWN STAIRS, WHILE SWITCHING FROM CROUCHED TO STANDING POSITION BEHIND OBJECTS, AND WHILE TURNING AROUND CORNERS. (the player is allowed to shoot at the enemy, then once their body catches up to the camera firing location the bullets will connect (show the hitmarkers) effectively allowing moving players to shoot and kill stationary players 100's of milliseconds before they are ever actually visible) 300ms IS A RIDICULOUSLY LARGE AMOUNT OF DELAY see ovenbakedmuffin's youtube video for more info: www.youtube.com/watch?v=ZoFnIckyoxg [Basically the camera enters the room and a player can fire before their gun and upper body ever enter the enemy's view, many know this in it's lowest form as head glitching. Other's also complain "How'd you get in and kill me so fast? I pre-fired!" Well that's because, like I said, their body actually hadn't entered the room yet, the camera entered the room, shot, & killed you, then after you died the enemy's body (or hitbox) finally entered (and bullets come out of the actual POV camera location BUT NOT THE GUN!) that's why no bullets connect when you stationary pre-fired at the predicted location of a moving enemy.]
[I've notified Activision and Trearch (even Infinity Ward) about the camera sway issues. I believe this forward swaying camera was programmed on purpose. Black Ops 2 clearly has some code that tells a client console to try to predict where a moving player will be later and show them there rather than exactly where they are now [to help minimize the effects of internet lag] but client console predictions can either work to your advantage (when the prediction is correct) or to your disadvantage (when predictions are wrong). Perhaps your own POV camera also try's to predict where your player will be later rather than showing the POV as it is currently [again to help minimize the effect of internet lag] so that the camera is told by predictive code to jump slightly ahead of your body as you move quickly in 1 direction. But a stationary character's movement will be predicted as just stationary, therefore a moving player's predictive camera code lets them see a stationary player before their moving body actually arrives at the destination. This also may been done on purpose using net code since the fast running soldiers in the game appear to bend & lean forward as they run, thus their head (and camera POV) would enter the room 1st (before their lower body) when moving forward quickly. A client console would predict the forward moving player entering the room so a stationary player inside could fire early, unfortunately the enemy's camera would also do a prediction to see inside the room early, but practically no bullets will connect with the moving enemy entering the room because the host's packet reply will state "no" the enemy hasn't entered the area yet, then as the moving enemy enters and fires moments later, the host replies and states "yes" the stationary player was not moving therefore was still at the position where the bullets landed therefore the stationary player dies immediately, thus the host will cancel all other pre-fire bullet packets from said stationary player, ultimately resulting in an insta-kill of stationary players that are pre-firing in advance by predicting enemy movements correctly.
Perhaps 1 programming group wrote the net lag coding and another wrote the player movement coding. If so, this might explain why the 2 are not sync'd, and why a player's hitbox is not actually where it appears it should be on screen (because the net code from the host is checking real-time hit-box location instead of the predictive camera location). To fix this hit boxes would have to be sent to the host at their predicted camera locations rather than the client's actual body location so that clients can get hit markers on their predicted location since that is actually where we will fire, because we fire at what we can see, not at what we can't see. I've had quite a few gameplay's where I get every hit marker in the open air behind all the running players, so in my mind this game code fault has been fully verified.]
UPDATE: Despite having reduced lag so much that it became fairly easy to get 2 k/d+ nearly every game, most of my testing was done playing with no one else in my party on a PS3. Once I invited a friend from down the street to play with me (same isp / same open ports / same modem and router / 0.01ms ping away / because I set up his connection too) then it gave most enemies a large amount of lag compensation. Once again almost no bullets where getting hitmarkers and I was being insta-killed despite having already chased down and shot other players in the back plus gotten 4-5 hit markers from 25 bullets. We both went way negative (0.6kd) when we didn't both setup a camp together, even then it was nearly impossible to stay alive for long (oddly enough though it seemed I could knife enemies easier). My friend backed out of the lobby, and I played a game alone, once again I got a 2.66k/d no camping (I believe I went 29/11, I save fresh good games to my channel). My friend's K/D is 2.23 so us both getting a 0.6k/d while playing together is ridiculous, we should dominate the lobby. So, if you feel lag comp is killing you on PS3 (and have already done all the steps to open your ports plus set the console ip to high priority) stop inviting neighborhood friends to your lobby then see how you do.
However; when I invite distant friends the game gets easier (I had my first few flawless PS3 public games after someone in Ohio invited me to their lobby, I'm in Alabama) so there must be a problem in the lag comp net code that gives an unfair advantage to distant players (high latency) who chose to play together on the same team (or visa-versa, gives a disadvantage to teams that live close together?) (more testing must be done to determine if the issue is at the isp level or if it could be due to poor game programming...)
Low latency games on xBox were the opposite. Lower pings (300mi+ with less than 40ms) made the game practically unplayable. Setting my download speed to 130kb, upload to 75kb, with an additional upload delay of 40-75ms resulted in positive KD gameplays. So lag comp on xBox does provide a slightly unfair advantage to laggy connections.
I've pretty much finished this tutorial. I know it's a lot of info. This took a lot of money and time, so any size donation will be accepted: DONATE. I'm thinking this setup will reduce lag much better than a LagBuster with Counter-Measure ($219) ;D unfortunately, though my setup might be better, it might also cost you about twice as much money [fortunately for me the only thing I had to buy was 2 cable modems and 2 gaming routers, most of the other stuff I already had laying around since I just closed my computer repair shop]
THE END.