Not all 1000 mile Internet connections are equal. The 1000 miles you are talking about are as the crow flies. But an Internet rout to that same connection could be two or more times that distance and it's not guaranteed that you will get the same rout every time you make that connection. Also, if your rout has a lot of hops, it's possible for any hop to have a heavy traffic load for whatever reason. This will slow down your connection speed. The best you can do if you want to measure the speed between two points is to do an average over time. As far as your operating system goes, the communications functions can be tweaked to maximize your connection speed for the hardware it's running on. Any machine has a hardware limit no matter what software it's running.