08 Nov

Why airport wifi sucks?

Sitting at Kolkata airport. Noticed the usual “Free Wifi in the area!” message and connected to Tata Docomo Free wifi. Performance was quite poor.
Two key issues with wifi: 

  1. Using of only 2.4Ghz (802.11b/g/n with 20Mhz channel). No AP with 5Ghz box. (Click here to view scanner data). Should have been 5Ghz
  2. Entire traffic is getting tunnel via Mumbai i.e West India (while I am sitting on Eastern side). Adding up to latency and performance significantly.

Here are some of traces to random locations:

traceroute anuragbhatia.com
traceroute to anuragbhatia.com (, 64 hops max, 52 byte packets
 1 (  74.141 ms  55.771 ms  83.987 ms
 2 (  60.473 ms  56.363 ms  56.885 ms
 3  * (  57.123 ms  60.577 ms
 4 (  62.529 ms  57.420 ms  57.032 ms
 5 (  57.206 ms  57.201 ms  59.841 ms
 6  * * *
 7  ix-0-100.tcore1.mlv-mumbai.as6453.net (  60.127 ms *  59.179 ms
 8  if-9-5.tcore1.wyn-marseille.as6453.net (  163.571 ms  163.083 ms  165.671 ms
 9  if-8-1600.tcore1.pye-paris.as6453.net (  165.586 ms *  168.976 ms
10  if-2-2.tcore1.pvu-paris.as6453.net (  164.356 ms  160.600 ms  167.841 ms
11 (  204.567 ms  170.125 ms  164.025 ms
12  ae-1-19.bar1.munich1.level3.net (  187.130 ms  176.954 ms  175.734 ms
13  ae-1-19.bar1.munich1.level3.net (  173.793 ms  180.293 ms  175.585 ms
14  gw03.contabo.net (  174.955 ms * *
15  anuragbhatia.com (  179.955 ms *  179.185 ms


traceroute google.com
traceroute: Warning: google.com has multiple addresses; using
traceroute to google.com (, 64 hops max, 52 byte packets
 1 (  57.058 ms  56.659 ms  55.847 ms
 2 (  56.825 ms  58.513 ms  55.854 ms
 3 (  56.682 ms  60.542 ms  59.486 ms
 4 (  58.176 ms  57.624 ms  58.444 ms
 5 (  58.806 ms  57.714 ms  59.340 ms
 6  * * *
 7 (  58.810 ms  65.872 ms  69.436 ms
 8 (  58.748 ms  60.547 ms (  58.878 ms
 9 (  77.188 ms  80.828 ms  78.031 ms
10 (  82.458 ms  77.529 ms  79.603 ms
11  del01s07-in-f1.1e100.net (  77.242 ms *  76.067 ms


traceroute cloudaccess.net
traceroute to cloudaccess.net (, 64 hops max, 52 byte packets
 1 (  65.006 ms  73.056 ms  57.290 ms
 2  * (  55.313 ms  55.498 ms
 3 (  62.335 ms  58.146 ms  65.322 ms
 4 (  58.307 ms  64.118 ms  60.188 ms
 5 (  67.951 ms  58.059 ms  57.658 ms
 6  * * *
 7  ix-0-100.tcore1.mlv-mumbai.as6453.net (  60.601 ms  58.711 ms  58.611 ms
 8  if-9-5.tcore1.wyn-marseille.as6453.net (  170.234 ms  163.890 ms *
 9  if-8-1600.tcore1.pye-paris.as6453.net (  163.956 ms  165.691 ms  174.445 ms
10  if-2-2.tcore1.pvu-paris.as6453.net (  161.027 ms  165.970 ms  179.712 ms
11 (  164.602 ms  164.395 ms  163.093 ms
12  xe-1-2-2.chi11.ip4.gtt.net (  271.367 ms
    xe-8-2-2.chi11.ip4.gtt.net (  273.996 ms  265.810 ms
13  ip4.gtt.net (  266.941 ms  265.019 ms  265.221 ms
14  173-225-176-89.core2.sfld2.r256.net (  275.479 ms  272.507 ms  272.840 ms
15  border-router02-detroit.static.cloudaccess.net (  280.231 ms  268.907 ms  286.357 ms
16 (  269.869 ms !Z  270.031 ms !Z  270.207 ms !Z

So no matter wherever I push packets for, then hit hop 5 – Mumbai / VSNL AS4755 router because likely that is where the core L3 device (MSC/central authentication box) for this network is. This is big issue because likely Tata Docomo would be tunneling entire wifi traffic from anywhere in India, going to anywhere globally via Mumbai because that is where they put their wifi central box. What we need in India is more simpler deployments, more open source stuff so cost doesn’t becomes point of selection for keeping such devices central. And most important we need networks to peer at internet exchanges so atleast East region traffic stays within East and doesn’t has to travel thousands of kilometers to Mumbai just to hop on to another network.

Overall speeds seems to be capped at 1Mbps which is too low these days and here’s 100 packet ping to first hop ( showing how poor is the wireless signal performance.

ping -c 100
PING ( 56 data bytes
64 bytes from icmp_seq=0 ttl=255 time=52.365 ms
64 bytes from icmp_seq=1 ttl=255 time=51.391 ms
64 bytes from icmp_seq=2 ttl=255 time=48.985 ms
64 bytes from icmp_seq=3 ttl=255 time=264.974 ms
64 bytes from icmp_seq=4 ttl=255 time=252.179 ms
Request timeout for icmp_seq 5
64 bytes from icmp_seq=6 ttl=255 time=51.491 ms
64 bytes from icmp_seq=7 ttl=255 time=81.809 ms
64 bytes from icmp_seq=8 ttl=255 time=49.312 ms
64 bytes from icmp_seq=9 ttl=255 time=55.065 ms
64 bytes from icmp_seq=10 ttl=255 time=52.825 ms
64 bytes from icmp_seq=11 ttl=255 time=49.899 ms
64 bytes from icmp_seq=12 ttl=255 time=59.585 ms
64 bytes from icmp_seq=13 ttl=255 time=262.916 ms
64 bytes from icmp_seq=14 ttl=255 time=55.734 ms
64 bytes from icmp_seq=15 ttl=255 time=49.476 ms
64 bytes from icmp_seq=16 ttl=255 time=48.953 ms
Request timeout for icmp_seq 17
64 bytes from icmp_seq=18 ttl=255 time=299.531 ms
64 bytes from icmp_seq=19 ttl=255 time=315.367 ms
64 bytes from icmp_seq=20 ttl=255 time=49.276 ms
64 bytes from icmp_seq=21 ttl=255 time=48.629 ms
64 bytes from icmp_seq=22 ttl=255 time=59.231 ms
64 bytes from icmp_seq=23 ttl=255 time=54.367 ms
64 bytes from icmp_seq=24 ttl=255 time=49.607 ms
64 bytes from icmp_seq=25 ttl=255 time=62.368 ms
64 bytes from icmp_seq=26 ttl=255 time=50.263 ms
64 bytes from icmp_seq=27 ttl=255 time=167.378 ms
Request timeout for icmp_seq 28
64 bytes from icmp_seq=29 ttl=255 time=316.048 ms
64 bytes from icmp_seq=30 ttl=255 time=325.624 ms
64 bytes from icmp_seq=31 ttl=255 time=463.967 ms
64 bytes from icmp_seq=32 ttl=255 time=469.114 ms
64 bytes from icmp_seq=33 ttl=255 time=292.147 ms
64 bytes from icmp_seq=34 ttl=255 time=522.468 ms
64 bytes from icmp_seq=35 ttl=255 time=713.133 ms
64 bytes from icmp_seq=36 ttl=255 time=110.451 ms
Request timeout for icmp_seq 37
64 bytes from icmp_seq=38 ttl=255 time=342.196 ms
Request timeout for icmp_seq 39
64 bytes from icmp_seq=40 ttl=255 time=269.410 ms
64 bytes from icmp_seq=41 ttl=255 time=252.759 ms
64 bytes from icmp_seq=42 ttl=255 time=406.372 ms
64 bytes from icmp_seq=43 ttl=255 time=222.788 ms
64 bytes from icmp_seq=44 ttl=255 time=228.961 ms
64 bytes from icmp_seq=45 ttl=255 time=205.769 ms
64 bytes from icmp_seq=46 ttl=255 time=177.845 ms
Request timeout for icmp_seq 47
64 bytes from icmp_seq=48 ttl=255 time=347.503 ms
64 bytes from icmp_seq=49 ttl=255 time=285.772 ms
64 bytes from icmp_seq=50 ttl=255 time=428.171 ms
64 bytes from icmp_seq=51 ttl=255 time=306.871 ms
64 bytes from icmp_seq=52 ttl=255 time=246.806 ms
64 bytes from icmp_seq=53 ttl=255 time=213.304 ms
64 bytes from icmp_seq=54 ttl=255 time=175.060 ms
64 bytes from icmp_seq=55 ttl=255 time=262.179 ms
64 bytes from icmp_seq=56 ttl=255 time=421.965 ms
64 bytes from icmp_seq=57 ttl=255 time=339.597 ms
64 bytes from icmp_seq=58 ttl=255 time=334.415 ms
64 bytes from icmp_seq=59 ttl=255 time=461.400 ms
64 bytes from icmp_seq=60 ttl=255 time=439.854 ms
64 bytes from icmp_seq=61 ttl=255 time=475.714 ms
64 bytes from icmp_seq=62 ttl=255 time=269.855 ms
64 bytes from icmp_seq=63 ttl=255 time=223.720 ms
64 bytes from icmp_seq=64 ttl=255 time=190.660 ms
64 bytes from icmp_seq=65 ttl=255 time=70.555 ms
64 bytes from icmp_seq=66 ttl=255 time=51.592 ms
64 bytes from icmp_seq=67 ttl=255 time=57.906 ms
64 bytes from icmp_seq=68 ttl=255 time=54.205 ms
64 bytes from icmp_seq=69 ttl=255 time=250.238 ms
64 bytes from icmp_seq=70 ttl=255 time=62.416 ms
64 bytes from icmp_seq=71 ttl=255 time=51.538 ms
64 bytes from icmp_seq=72 ttl=255 time=48.953 ms
64 bytes from icmp_seq=73 ttl=255 time=193.173 ms
64 bytes from icmp_seq=74 ttl=255 time=183.505 ms
64 bytes from icmp_seq=75 ttl=255 time=371.035 ms
64 bytes from icmp_seq=76 ttl=255 time=77.897 ms
64 bytes from icmp_seq=77 ttl=255 time=51.497 ms
64 bytes from icmp_seq=78 ttl=255 time=54.808 ms
Request timeout for icmp_seq 79
64 bytes from icmp_seq=80 ttl=255 time=60.320 ms
64 bytes from icmp_seq=81 ttl=255 time=48.887 ms
64 bytes from icmp_seq=82 ttl=255 time=49.610 ms
Request timeout for icmp_seq 83
64 bytes from icmp_seq=84 ttl=255 time=51.179 ms
64 bytes from icmp_seq=85 ttl=255 time=64.214 ms
64 bytes from icmp_seq=86 ttl=255 time=64.161 ms
64 bytes from icmp_seq=87 ttl=255 time=168.550 ms
64 bytes from icmp_seq=88 ttl=255 time=163.238 ms
64 bytes from icmp_seq=89 ttl=255 time=164.712 ms
64 bytes from icmp_seq=90 ttl=255 time=62.995 ms
64 bytes from icmp_seq=91 ttl=255 time=65.484 ms
64 bytes from icmp_seq=92 ttl=255 time=50.530 ms
64 bytes from icmp_seq=93 ttl=255 time=54.615 ms
Request timeout for icmp_seq 94
64 bytes from icmp_seq=95 ttl=255 time=57.349 ms
64 bytes from icmp_seq=96 ttl=255 time=59.677 ms
64 bytes from icmp_seq=97 ttl=255 time=191.897 ms
64 bytes from icmp_seq=98 ttl=255 time=49.441 ms
--- ping statistics ---
100 packets transmitted, 90 packets received, 10.0% packet loss
round-trip min/avg/max/stddev = 48.629/182.123/713.133/147.560 ms

Since latency min is 48ms, quite clearly L3 end is far off in Mumbai and likely would be running ipsec or some other kind of VPN tunnels to the APs. This is ground level performance of what we hear in media “wifi business strategies“. Wifi as a technology is excellent but does take decent homework to deploy properly. Just hanging bunch of boxes and routing traffic from one MSC/central server placed far off doesn’t really helps. Wifi as a technology can help to offload stress on 3G/4G significantly as long as it is done in right way keeping in assumption that Wifi runs on “unlicensed spectrum” and interference can very much happen.
Time to catch up flight to next hop!

01 Feb

Sify broadband in rural areas


Sify is one of really interesting companies. One time pioneer of Indian internet market via chain of cyber cafes. Good old days. Present situation of Sify in consumer market is not significant. Latest earing figures clearly state company is moving towards enterprise segment.

Company is quite aggressive in enterprise segment offerings specially datacenters & corporate leased lines.
Is consumer market really over for Sify or there’s still some hope?


Well, consumer broadband market isn’t really over! Infact this is the main market which is yet to explode in India!

These are the factors which went against Sify:

  1. Company over estimated growth via Cybercafe chains. Cheap computers killed market of cyber cafe itself!
  2. Company failed to capture high end consumer segment and lost it to DSL players like BSNL/MTNL & Airtel. Quality of services was way too low (due to franchise model) adopted for distribution via last mile cable operators.
  3. Low end users were stolen by cheap wireless internet via 2G (and now 3G).
  4. Company tried using pointed wireless links when technology was very new & yet to become advance with MIMO & beam forming.
  5. Indian regulation which prohibits VoIP-PSTN connectivity again put them on back seat against main telcos like BSNL & Airtel.


Despite of these issues, I still see a huge potential for market which Sify tried to capture. Taking example of this village Radaur (where I am staying) – I can see over 20 connections to small computer shops, cell phone shops etc from Sify broadband. This is very interesting as a private broadband player is in village besides Govt. telecom player BSNL. Infact I can see lot of small shops giving priority to Sify over BSNL. I tried asking them for reason and here’s list of those:

  1. Fast installation 1-2days Vs 30+ days for BSNL.
  2. Fast fix in case of downtime – in few hours Vs 2-3 days for BSNL.
  3. No issues of breaking of cable (as in case of BSNL)


Well, these all issues are quite true. Most of these shops have subscribed to 256Kbps to 512Kbps plans and they work pretty well (as per my tests). Here Sify is using a “point to multi-point wireless network” to reach last mile. They run last mile over 60 degree sector antenna located in front of Radaur bus stand pointed towards village. Here’s the picture:



and here’s one of end user CPE antenna’s pointing towards it:




Unfortunately 1st picture isn’t clear.
It has small antenna with two parabolic antenna’s on top – one towards Yamunanagar city & other towards Ladwa village. It uses high end frequency band of 5.8Ghz which has over 40Mhz of bandwidth in free WiFi spectrum for tower backhaul. This sort of backhual works pretty well since one can get over 100Mbps for 40-50Km of distances (in this case Yamunanagar district is 20Km off from here) where they feed core network from leased fibers and run a MPLS on top of it. Though backhual capacity of such towers is quite high and for small village (with less users) – even last mile shared sector antenna too isn’t a problem. What surprises me is that – still at the end of day Sify offers similar or worst plans as compared to BSNL. Reason remains bit of backbone bandwidth costs, high amount of commission taken by middle re-sellers etc. Sify offcourse failing here to realize big market and capturing it with good marketing followed by massive deployment. At this point low end market will be again grabbed by cell phone players with 2G/3G while high end will sooner or later go to BSNL or other telcos (if last mile unbundle happens) since DSL is way more scalable then this technology apart from fact that BSNL won’t have any issue in backbone (when they have 104 pair fiber landing in village exchange!). Unless last mile unbundle happens, there’s hardly any technology which can provide wired broadband equivalent speeds for this network.


With hope for good future of broadband in India, time for me to wash my clothes! 😉