

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Glossary &mdash; Traffic Control 1.1.4 documentation </title>
  

  
  
    <link rel="shortcut icon" href="_static/favicon.ico"/>
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="_static/theme_overrides.css" type="text/css" />
  

  
    <link rel="top" title="Traffic Control 1.1.4 documentation" href="index.html"/>
        <link rel="prev" title="Running a Traffic Control CDN" href="faq/administration.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-nav-search">
        

        
          <a href="/" class="icon icon-home"> Traffic Control
        

        
          
          <img src="_static/tc_logo.png" class="logo" />
        
        </a>

        
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

        
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
          
          
              <ul>
<li class="toctree-l1"><a class="reference internal" href="basics/index.html">CDN Basics</a><ul>
<li class="toctree-l2"><a class="reference internal" href="basics/content_delivery_networks.html">Content Delivery Networks</a></li>
<li class="toctree-l2"><a class="reference internal" href="basics/http_11.html">HTTP 1.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="basics/caching_proxies.html">Caching Proxies</a></li>
<li class="toctree-l2"><a class="reference internal" href="basics/cache_revalidation.html">Cache Control Headers and Revalidation</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="overview/index.html">Traffic Control Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="overview/introduction.html">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_portal.html">Traffic Portal</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_server.html">Traffic Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview/traffic_vault.html">Traffic Vault</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="admin/index.html">Administrator&#8217;s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_ops_using.html">Using Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_ops_extensions.html">Managing Traffic Ops Extensions</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_router.html">Traffic Router Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_stats.html">Traffic Stats Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_server.html">Traffic Server Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/traffic_vault.html">Traffic Vault Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin/quick_howto/index.html">Quick How To Guides</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="development/index.html">Developer&#8217;s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="development/traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="development/traffic_server.html">Traffic Server</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="faq/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq/general.html">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/development.html">Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/administration.html">Running a Traffic Control CDN</a></li>
</ul>
</li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="">Glossary</a></li>
</ul>

          
        
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="index.html">Traffic Control</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="index.html">Traffic Control 1.1.4</a> &raquo;</li>
      
    <li>Glossary</li>
      <li class="wy-breadcrumbs-aside">
        
          <a href="_sources/glossary.txt" rel="nofollow"> View page source</a>
        
      </li>
  </ul>
  <hr/>
</div>
 		  
    		  <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      		  
      		  
        		  <a href="faq/administration.html" class="btn btn-neutral" title="Running a Traffic Control CDN"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      		  
    		  </div>
  		  
          <div role="main" class="document">
            
  <div class="section" id="glossary">
<span id="id1"></span><h1>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h1>
<dl class="glossary docutils">
<dt id="term-content-routing">302 content routing</dt>
<dd><a class="reference internal" href="overview/traffic_router.html#rl-http-cr"><span> HTTP Content Routing</span></a>.</dd>
<dt id="term-astats-stats-over-http">astats (stats_over_http)</dt>
<dd>An ATS plugin that allows you to monitor vitals of the ATS server. See <a class="reference internal" href="overview/traffic_monitor.html#rl-astats"><span> Cache Monitoring</span></a>.</dd>
<dt id="term-cache">cache</dt>
<dd>A caching proxy server. See <a class="reference internal" href="basics/caching_proxies.html#rl-caching-proxy"><span>Caching Proxies</span></a>.</dd>
<dt id="term-cachegroup">cachegroup</dt>
<dd>A group of caches that together create a combined larger cache using consistent hashing. See <a class="reference internal" href="overview/traffic_server.html#rl-cachegroup"><span> Cache Group</span></a>.</dd>
<dt id="term-consistent-hashing">consistent hashing</dt>
<dd>See <a class="reference external" href="http://en.wikipedia.org/wiki/Consistent_hashing">the Wikipedia article</a>; Traffic Control uses consistent hashing when using <a class="reference internal" href="overview/traffic_router.html#rl-http-cr"><span> HTTP Content Routing</span></a> for the edge tier and when selecting parents in the mid tier.</dd>
<dt id="term-5">content routing</dt>
<dd>Directing clients (or client systems) to a particular location or device in a location for optimal delivery of content See also <a class="reference internal" href="overview/traffic_router.html#rl-http-cr"><span> HTTP Content Routing</span></a> and <a class="reference internal" href="overview/traffic_router.html#rl-dns-cr"><span> DNS Content Routing</span></a>.</dd>
<dt id="term-coverage-zone-map">coverage zone map</dt>
<dd>The coverage zone map (czm) or coverage zone file (zcf) is a file that maps network prefixes to cachegroups. See <a class="reference internal" href="overview/traffic_router.html#rl-localization"><span> Localization</span></a>.</dd>
<dt id="term-delivery-service">delivery service</dt>
<dd>A grouping of content in the CDN, usually a determined by the URL hostname. See <a class="reference internal" href="overview/traffic_router.html#rl-ds"><span> Delivery Service</span></a>.</dd>
<dt id="term-edge-tier-or-cache">edge (tier or cache)</dt>
<dd>Closest to the client or end-user. The edge tier is the tier that serves the client, edge caches are caches in the edge tier. In a Traffic Control CDN the basic function of the edge cache is that of a <a class="reference internal" href="basics/caching_proxies.html#rl-rev-proxy"><span> Reverse Proxy</span></a>.  See also <a class="reference internal" href="overview/traffic_server.html#rl-cachegroup"><span> Cache Group</span></a>.</dd>
<dt id="term-traffic-ops-extension">(traffic ops) extension</dt>
<dd>Using <em>extensions</em>, Traffic Ops be extended to use proprietary checks or monitoring sources. See <a class="reference internal" href="overview/traffic_ops.html#rl-trops-ext"><span> Traffic Ops Extension</span></a>.</dd>
<dt id="term-forward-proxy">forward proxy</dt>
<dd>A proxy that works that acts like it is the client to the origin. See <a class="reference internal" href="basics/caching_proxies.html#rl-fwd-proxy"><span> Forward Proxy</span></a>.</dd>
<dt id="term-geo-localization-or-geo-routing">geo localization or geo routing</dt>
<dd>Localizing clients to the nearest caches using a geo database like the one from Maxmind.</dd>
<dt id="term-health-protocol">health protocol</dt>
<dd>The protocol to monitor the health of all the caches. See <a class="reference internal" href="overview/traffic_monitor.html#rl-health-proto"><span> Health Protocol</span></a>.</dd>
<dt id="term-localization">localization</dt>
<dd>Finding location on the network, or on planet earth. See <a class="reference internal" href="overview/traffic_router.html#rl-localization"><span> Localization</span></a>.</dd>
<dt id="term-mid-tier-or-cache">mid (tier or cache)</dt>
<dd>The tier above the edge tier. The mid tier does not directly serves the end-user and is used as an additional layer between the edge and the origin. In a Traffic Control CDN the basic function of the mid cache is that of a <a class="reference internal" href="basics/caching_proxies.html#rl-fwd-proxy"><span> Forward Proxy</span></a>. See also <a class="reference internal" href="overview/traffic_server.html#rl-cachegroup"><span> Cache Group</span></a>.</dd>
<dt id="term-origin">origin</dt>
<dd>The source of content for the CDN. Usually a redundant HTTP/1.1 webserver.</dd>
<dt id="term-parent-cache-or-cachegroup">parent (cache or cachegroup)</dt>
<dd>The (group of) cache(s) in the higher tier.  See <a class="reference internal" href="overview/traffic_server.html#rl-cachegroup"><span> Cache Group</span></a>.</dd>
<dt id="term-profile">profile</dt>
<dd>A group of settings (parameters) that will be applied to a server. See <a class="reference internal" href="overview/traffic_server.html#rl-profile"><span> Profile</span></a>.</dd>
<dt id="term-reverse-proxy">reverse proxy</dt>
<dd>A proxy that acts like it is the origin to the client. See <a class="reference internal" href="basics/caching_proxies.html#rl-rev-proxy"><span> Reverse Proxy</span></a>.</dd>
</dl>
</div>


          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
      
        <a href="faq/administration.html" class="btn btn-neutral" title="Running a Traffic Control CDN"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'1.1.4',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>