Ping Pong?


All the references with this explanation are regarding Windows95.

Roughly with all the whines and moans about high pings plus the fact I was reformatting and setting up yet again. I took the opportunity to do a little testing, a little investigating and a little gathering of information.


This document is made up from simple testing, a bit of common sense and data stolen from other more advanced sites. (sorry but I wanted a single source of info rather than the fragmented information that is out there)
Content:

  • ISP
  • Phone Line
  • Modem
  • Init Strings
  • Com Ports
  • Network
  • Dial Up Networking
  • MTU
  • Updates.
    • Service Pack 1
    • Winsock
    • DUN1.2b
    • Kernel32
    • Winsock V2
    • Updated IP driver (Winsock V2)
    • Updated TCP driver (winsockV2)
    • Updated Ping utility

  • Special Note - Winsock
  • Special Note - Nuke
  • Special Note - DUN1.2b
  • Updates.

    • Service Pack 1 - The filename is simply "setup.exe", check Microsofts site. If you are using early windows95 then you should put the service pack on. There is no direct benefit but it is a little more resilient to crashes plus it plugs a problem with passwords and "damaged" OLE server.
    • Winsock 2 - WSOCKUPD.EXE. There is an updated winsock available from Microsoft which has a more reliable TCP stack and is said to increase speed slightly. (update - There is a speed increase when used with the updated TCP stack and IP drivers.)
    • Dial Up Networking 1.2b - MSDUN12.EXE. One of the latest updates in the DUN family. This replaces the complete DUN series of programs with what is said to be a faster more robust TCP/IP stack. It also adds other features such as PPP server and "multilink" which enables a set of modems to talk with another set on a remote system and by multiplexing the signal acts as if it is one connection.
    • Kernel32 - KRNLUPD.EXE. This is an updated kernel which fix's a bunch of memory leak problems but also has some references to helping with connections.

    Updates Install in order v4.00.950 v4.00.950a v4.00.950 B (OSR2)
    Service Pack 1 Install RE-Install DO NOT Install
    Kernel32 Update Install Install DO NOT Install
    DUN v1.2b Install Install Install
    Winsock V2 Install Install Install
    IP Driver for Winsock V2 Install Install Install
    TCP Driver for Winsock V2 Install Install Install
    Updated PING Install Install Install

    Special Note - WINSOCK

    Run a find from your start bar for "winsock*.*". You only need one in your windows/system there might be one in your windows\SYSBCKUP which is a backup from an install of some kind. Any others will cause problems especially if your using the wrong one!!! ie AOL Compuserv etc.


    Special Note Nuke

    We've all seen or felt the effects of network nukes. Generally these are caused through people sending corrupt or oversized TCP packets to a host/computer. Nukes can cause the TCP stack on a computer to simply crash (you drop off the internet) or cause the TCP stack to freeze (locking your computer up).

    The IP and TCP updates for winsock V2 have routines within them to ignore the oversized and corrupt TCP packets. The effect of the lost packet is unnoticeable.

    There is a very handy utility "Skream's Port Listener" which will help you track down who tried to bomb you off the network.

    (I'm not suggesting that the updates will totally solve the nuke problem, but the way I see it "if you're dumb enough to use nuking then you're probably dumb enough to use a method that's easily stopped").


    Special Note DUN1.2b

    Some people are having problems with this install of Dial Up Networking. The reason is DUN1.2b needs winsock v2.2 BUT DUN1.2b does NOT install it. You should be able to get a copy form either the Microsoft site or "TUCOWS".


    Swoops Notes

    For testing I simply used the "ping" facility built into Windows95. I basically pinged a host with the "-t" option for three minutes a time. (three separate sessions to make up for bad connections) Dumped these results into a spreadsheet and worked out the min/max and average. Using the notes on the right WITHOUT any software updates or changes I managed to reduce a 251ms ping down to 134ms. The PING.EXE within windows95 has some other features which I'll be testing soon'ish. One should allow us to work out the best TTL setting to use. The other to workout the best setting to reduce fragmentation. This all assumes I can work out how to do this ;)


    I am hitting more and more sites that confirm "software compression" must be turned off when playing net-games. In this case two dial-up connection settings would be worth while. One for general web-browsing etc the other for games playing.

    ISP - Internet Service Provider

    Not a lot I can say here. Check with friends, work colleagues and family. ISP's are business's like any other, some are good some are bad. I've yet to find any independent ISP reviews and no ISP is gonna advertise that they are bad. A lot of ISP's are offering free or not so free trails usually for a month. It might be well worth trying a few out before settling. Normally the trials are either free or if you decide NOT to use them you pay the normal month's fee for the service.


    Phone Line.

    Check it. Does it sound good? no crackles, hissing or distortion. Good. Otherwise ring your phone company and complain. They do not monitor every phone connection in the country so you are going to have to let them know if you have a problem and if you don't have a problem, well at least you've made a friend at the phone company.

    If you are using an extension try unplugging the extension and using the phone without it. If it’s the same and sounds good then we're in business. Otherwise get the extension replaced.


    Modem

    Check the connectors. Cheap ones are that, cheap. Expensive ones can be cheap as well so check 'em anyway. What you are looking for is good, robust, shielded cabling no fraying and straight strong pin connectors.

    Load the modem from "start bar/settings/control panel" Choose your modem and select "properties". Under the general tab make sure the modem shows a maximum speed of - 57600 for 33.6 or 28.8 modems and 115200 for 56K or X2 modems. (This is important, using 115200 will SLOW a 28.8/33.6 modem).

    Under the connections tab check you are using databits=8 Parity=None and Stopbit=1. It is not this in all cases but 99%. In the Advanced section make sure "use error control" IS selected. Plus "Use flow Control" is selected and have this marked as "hardware RTS/CTS". Compress data is a bit of an odd one. Some reports say to use it others say not to. My own testing shows little difference, so I leave it up to you.

    Modem General Settings

    Modem Advanced Connection Settings


    Init Strings

    Well with the onset of windows95, people tend to use the initialization string less and less. But don't be fooled, they can be important. There are so many modems on the market I can not go through specifics, but as a general guideline…

    Disable MNP5. MNP5 is an old compression method. At one time back in the days of 1200/2400/4800 speed modems MNP5 was a method of the modem compressing data packets and the receiving modem decompressing them. This in itself would increase the basic speed of a modem. Today with higher speed modems, MNP5 is still a feature but the time taken to compress and decompress the data packets adds more latency to your data stream then disabling the feature. The MNP5 compression is more than made up with "V42bis" which is pretty standard on all modern modem.

    Another one to disable is "retrains". Keep upshifts/downshifts knock off the retrains. This should stop your modem deciding to shift to a lowers rate half way through a game.


    Com Ports

    From "start bar/settings/control panel" choose System. Select "Device Manager" and pick up on your communications port. IE COM2. Select "Properties" and then "Port Settings". Make sure the Bits per second matches the modem speed, 15200 for X2/56K and 57600 for 28.8/33.6.

    OK the settings and OK the system properties. You may need to reboot.

     (This is simply to keep your com port inline with your modem settings)

    Communications Port Settings


    Network

    From "start bar/settings/control panel" choose Network. Find your "Dial Up Adapter" and select the properties. Look at the "Bindings" tab. Make sure TCP is checked and ALL others are unchecked.

    Move to the "Advanced" tab, select "Use IPX header compression" and mark this as NO. Select OK to exit the Dial Up Adapter.

    Next go to "TCP/IP -> Dial Up Adapter" On the bindings uncheck everything, on the WINS and DNS configuration make sure these are both disabled. OK the come out of TCP/IP properties and OK to exit Network settings.

    IF you do not use other network protocols. Delete all but TCP/IP and Dial up Adapter.

    (For internet calls TCP/IP is the only protocol you want going out through the Dial Up Adapter, others are gonna broadcast once in a while, you don't need it.)


    Dial Up Networking

    From "Start/Programs/Accessories" Choose Dial Up Networking and choose the icon for your ISP. Select the Properties for the connection and under the server types uncheck the "log on to network" also uncheck "NetBEUI" and "IPX/SPX Compatible". OK to exit and file/close the folder.

    (For internet calls TCP/IP is the only protocol you want going out through the Dial Up Adapter, others are gonna broadcast once in a while, you don't need it.)

    Dial Up Adapter Settings


    MTU

    There are a few programs about now which can alter the fundamental network/TCP settings used by your computer. "MTUSpeed", "PPPBoost" and "TweekDUN" are three contenders.

    These programs change your MaxMTU and a few other settings ie RWIN and TTL. Microsoft windows95 sets these up for a LAN, as we're using the internet and the differences mean speed it is wise to get these changed. Check with your ISP for the MTU or MaxMTU mine is 576 which is the norm for an ISP. But a lot are going for 1124 which I suspect is due to NT's clawing their way onto the providers workbenches.