I did a traceroute for some online video streaming sites: Youtube, Netflix, Vimeo, and Hulu since I was really curious about it and those are the sites I regularly visit. I did it at three different locations: Home, Think Coffee, and ITP floor.
Traceroute Using Mac Terminal
I used Mac terminal for the traceroute, using command:
$ traceroute (site name)
The result looked like this:
It was fine when I traceroute Youtube.com from all three places. But weirdly, whenever I traceroute Netflix, Hulu, and Vimeo, it always gave me timeout after ~13 hops. In all places: home, coffee shop, and ITP floor.
Oh, just for a background, I live in Brooklyn and my ISP is Spectrum. I was expecting to get really different result, since I was assuming that NYU has its own private network. And I was curious how public network would route the packages.
Traceroute Using Ultratools.com
When I went to Think Coffee near school, I tried to use Mac Terminal to traceroute all sites. But strangely it gave me timeout since the beginning. So I tried to use Ultratools.com, an online IP Traceroute Tool.
But it was fine when I used Ultratools.com.
I was curious why I couldn’t use Mac Terminal to traceroute every site at Think Coffee. Then I tried to ping the sites and it worked perfectly fine.
— youtube.com ping statistics —
42 packets transmitted, 27 packets received, 35.7% packet loss
round-trip min/avg/max/stddev = 10.057/14.349/51.497/7.558 ms
I tried to google it and it probably because traceroute on Mac (or Linux) use UDP by default meanwhile online IP Traceroute Tool use ICMP. UDP will most likely get rejected by most firewalls. And I forgot to use -I while doing it on terminal.
Convert CSV File to Geojson
After I got all the results, I put them in a .csv file then I converted them to .geojson to that I could map the coordinates in map. Here are the .csv and .geojson that I used:
Data on my Github: CSV and Geojson Files
Visualize Results Using Mapbox.js
I took a class called Impossible Maps last semester. In that class, I learned about maps and data visualization using Mapbox. So I used Mapbox for the map tiles and generate the locations from geojson file.
Findings & Visualization
I created an interactive map to show how the traceroute is being visualized. Click here to see the interactive map of my traceroute results.
Here are the findings that I got showing how’s my daily network traffic and who’s responsible for it:
Youtube: Time Warner Cable Internet LLC, TATA COMMUNICATIONS (AMERICA) INC, Google LLC
Netflix: Time Warner Cable Internet LLC, Amazon.com, Inc
Hulu: Time Warner Cable Internet LLC, Fastly
Vimeo: Time Warner Cable Internet LLC, Akamai Technologies, Inc.
Youtube: NeuStar, Inc., Hibernia Networks (Netherlands) BV, Google LLC
Netflix: NeuStar, Inc., Hibernia Networks (Netherlands) BV, Amazon.com, Inc
Hulu: NeuStar, Inc., Hibernia Networks (Netherlands) BV, MCI Communications Services, Inc. d/b/a Verizon Business
Vimeo: NeuStar, Inc., Hibernia Networks (Netherlands) BV
Youtube: New York University, TATA COMMUNICATIONS (AMERICA) INC, Google LLC
Netflix: New York University, NYSERNet, Internet2, Amazon.com, Inc
Hulu: New York University, TATA COMMUNICATIONS (AMERICA) INC, NTT America, Inc.
Vimeo: New York University, Level 3 Parent LLC, Fastly
My hypothesis was kind of accurate that the initial traffic would be different from each place. I use Spectrum (it was Time Warner) at home and I assumed NYU has its own network. And public network would also be different. I wonder if it has something to do with NeuStar Inc because I used online IP Traceroute by NeuStar.
I didn’t really pay attention to the middle parties (where the hops go through) but I found it’s really interesting how the last hops landed. I’m guessing the last hops are where the companies (Youtube, Netflix, Hulu, and Vimeo) host their services. I knew that Youtube was acquired by Google back in 2006 so I wasn’t surprised that it’s hosted in Google server. But I didn’t know that Netflix use Amazon’s Cloud Services. I thought I saw it from somewhere that “Netflix delivers all of their videos from their own content distribution network and doesn’t use Amazon’s CloudFront CDN for video delivery at all.” So I was wrong. So I guess the parent’s company and the Content Delivery Network (CDN) can be different.
I think it’s very interesting to see how the traffic goes for each site. But I have some questions relating this traceroute:
- I’m guessing that the three sites (Netflix, Hulu, and Vimeo) were timeout because the packages were blocked. I guess some providers configure their routers to not generate the ICMP error message because of a security concern and the desire to not provide identifying information about their public routers. So, my question is: Why Google isn’t blocking the package for security reason?
- I noticed that there are a lot of hoping back and forth to different region/country. For example: Netflix’s traffic was going from Amazon server in Virginia then goes to Washington, then goes back to Virginia. Why does this happen? Isn’t that not cost efficient?