Current time: 12-10-2019, 12:04 PM Hello There, Guest! (LoginRegister)

Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CDN Determination
06-18-2010, 02:56 AM
Post: #1
CDN Determination
How does webpagetest determine that an object is downloaded from a CDN? Is there a list of CDN host names to compare to? Or, is it a list of IPs that are known to be associated with CDNs? Is that list available?

Thanks in advance.
Find all posts by this user
Quote this message in a reply
06-18-2010, 03:05 AM
Post: #2
RE: CDN Determination
There is a known list of CDN's. The domain for a request is looked up and the host name as well as any CNAME alias' are compared against the known list to see if it is recognized. If you are using a CDN that isn't recognized just shoot me a sample test and I'll get it added in the next release.

Unfortunately the checks are done on the test systems themselves so it has to wait for a code update on the testers to get updated.

This list is in the glossary at the end of this page: http://www.webpagetest.org/result/100617...imization/ but is a little out of date (MaxCDN has been added since the table was updated). As I move the docs to a wiki it will be a lot easier to keep things up to date.

The ultimate authority is in the code :-) - http://code.webpagetest.org/svn/pagetest...orting.cpp (CPagetestReporting::IsCDN).

Here is the actual check:

name.Find(".akamai.net") > -1 || // Akamai
name.Find(".akamaiedge.net") > -1 || // Akamai
name.Find(".llnwd.net") > -1 || // Limelight
name.Find("edgecastcdn.net") > -1 || // Edgecast
name.Find("hwcdn.net") > -1 || // Highwinds
name.Find(".panthercdn.com") > -1 || // Panther
name.Find(".simplecdn.net") > -1 || // Simple CDN
name.Find(".instacontent.net") > -1 || // Mirror Image
name.Find(".footprint.net") > -1 || // ?????
name.Find(".ay1.b.yahoo.com") > -1 || // Yahoo distribution
name.Find(".google.com") > -1 || // Google distribution
name.Find(".internapcdn.net") > -1 || // Internap
name.Find(".cloudfront.net") > -1 || // Amazon CloudFront
name.Find(".netdna-cdn.com") > -1 || // NetDNA
name.Find(".cotcdn.net") > -1 || // Cotendo CDN
name.Find(".cachefly.net") > -1 || // Cachefly (also anycast - support to be added)
name.Find(".nyucd.net") > -1 // Coral Cache
Visit this user's website Find all posts by this user
Quote this message in a reply
06-18-2010, 03:23 AM
Post: #3
RE: CDN Determination
Thanks for this detailed response. I think I get it. How do I find all the CNAME aliases for a given host. For instance, http://www.webpagetest.org/result/100611...imization/ shows that pagetest was able to determine that i.cdn.turner.com was a CDN but this is not in the list checked in the code.

Thanks
Find all posts by this user
Quote this message in a reply
06-18-2010, 03:34 AM
Post: #4
RE: CDN Determination
Pagetest looks at the full DNS response (not just what is exposed in the test results) and it looks like that is CNAMEd to footprint.net:

c:\>nslookup i.cdn.turner.com

Non-authoritative answer:
Name: cdn.cnn.com.c.footprint.net
Addresses: 192.221.100.126
207.123.46.126
8.12.222.126
Aliases: i.cdn.turner.com
Visit this user's website Find all posts by this user
Quote this message in a reply
06-18-2010, 03:36 AM
Post: #5
RE: CDN Determination
That's what I needed. Thank you Patrick!
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 2 Guest(s)