====== Characterising the latency of in-flight Internet ====== I flew on one of China Southern's A330-300 from either Guangzhou to Amsterdam. They have free in-flight Internet services. I tried pinging my server over VPN. ===== Data collected ===== Here are the data collected: **France: ** --- 10.1.6.1 ping statistics --- 30 packets transmitted, 28 received, 6% packet loss, time 29045ms rtt min/avg/max/mdev = 1299.277/1563.621/2020.470/193.351 ms, pipe 3 termux@g5:~$ **US East Coast** --- 10.1.9.1 ping statistics --- 30 packets transmitted, 25 received, 16% packet loss, time 29040ms rtt min/avg/max/mdev = 1284.474/1553.176/2768.412/298.258 ms, pipe 3 termux@g5:~$ ** US West Coast** Murica: --- 10.1.9.1 ping statistics --- 30 packets transmitted, 30 received, 0% packet loss, time 29029ms rtt min/avg/max/mdev = 1253.185/1424.774/1779.591/126.560 ms, pipe 2 termux@g5:~$ When these readings were taken, my plane was at the following location: Location: 52N 65E Altitude: 10668m The Internet appeared to have gone through carrier grade NAT, my IP address was ''36.110.115.35'', which is located in Beijing (39.9042° N, 116.4074° E). You can't ping that IP address. ===== Calculations ===== By making the assumption that I received Internet via a geostationary satellite, and the satellite is midway between my plane and Beijing, I figured out that the lower bound communication round-trip time the plane and the Beijing Internet gateway to be about 0.51s. This is assuming the following communication route: Plane->Satellite->Beijing->Satellite->Plane. The calculation can be done by converting the longitude, latitude, altitude notation into spherical polar coordinate, then convert it into Cartesian coordinate. You can then figure out the distance between two Cartesian coordinate, and convert it into time. The exact calculation is //left as an exercise to the reader.// By ping scanning ''36.110.115.0/24'' from my home Internet connection (Norwich Virgin Media), I figured out that the round-trip time delay between my home and that server room to be about 0.31s. It can be safely assumed that the ping time between my server in France and that server room in Beijing is roughly the same, because of the topology of the undersea communication cables, and other previous experiences. By adding the satellite delay and the ping time I measured at home , I get about 0.82s. So where are the other 0.7s coming from? ===== Further investigations ===== I guess further calculation are required. Here are what can be done: - Compute the worst case distance from a ground station to a satellite - the visibility of the satellite needs to be taken into account. Careful consideration must be taken to avoid the problem of self-occlusion. In previous calculation, I made the assumption that the satellite is halfway between Beijing and the plane. - Measure the ping time throughout the flight, and possible figure out where the satellite is in terms of longitude? Do let me know if anyone has other great ideas.