<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../xslt/mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Graph Theory: Networking</title>
    <link rel="stylesheet" href="../../css/style_mozilla.css" type="text/css" media="screen"/>
  </head>
  <body>
    <div id="logobarleft">
      <a href="http://links.math.rpi.edu/">
        <img src="../../css/titlebar_left.gif" alt="Project Links Logo"/>
      </a>
    </div>
    <div id="logobarright">
      <img src="../../css/titlebar_right.jpg" alt="Artwork"/>
    </div>
    <div id="titlebar">Graph Theory: Networking</div>
    <div id="breadcrumbbar">
			Home &gt; Graph Theory: Networking
					&gt; The Internet
					&gt; Distance-Vector Routing</div>
    <div id="sidebar">
      <div class="toolmenu1">
        <a href="banana.html" class="toolmenu1">Crib Sheet</a>
      </div>
      <br/>
      <div class="toolmenu2">
        <a href="banana.html" class="toolmenu2">Library</a>
      </div>
      <br/>
      <div class="toolmenu3">
        <a href="banana.html" class="toolmenu3">Help</a>
      </div>
      <br/>
      <div class="toolmenu4">
        <a href="banana.html" class="toolmenu4">Map</a>
      </div>
      <br/>
      <div class="toolmenu5">
        <a href="problemlist.xml" class="toolmenu5">Problem List</a>
      </div>
      <br/>
      <div class="toolmenu5">
        <a href="../index.html" class="toolmenu5">Module Home</a>
      </div>
      <br/>
      <div class="toolmenu6">
        <a href="http://links.math.rpi.edu/" class="toolmenu6">Links Home</a>
      </div>
      <br/>
      <br/>
      <div class="toc_topic">
        <a class="toc_link" href="page1.xml">Introduction</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="page2.xml">Objectives</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="page3.xml">Prerequisites</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="">Foundations</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page4.xml">Directed Graphs</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page6.xml">Definitions</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page9.xml">Shortest Paths</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="">Shortest-Path Algorithms</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page11.xml">Problem Variations</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page13.xml">Dijkstra's Algorithm</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page16.xml">Bellman-Ford Algorithm</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="">Routing</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page19.xml">Overview</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page21.xml">Designing A Routing Protocol</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="">Telephone Networks</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page23.xml">Overview</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page25.xml">Routing Strategies</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page26.xml">Costs</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page27.xml">DNHR</a>
      </div>
      <div class="toc_topic">
        <a class="toc_link" href="">The Internet</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page29.xml">Overview</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page30.xml">Distance-Vector Routing</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page33.xml">Link-State Routing</a>
      </div>
      <div class="toc_subtopic">
        <a class="toc_link" href="page37.xml">What's Next?</a>
      </div>
    </div>
    <div id="sectionbar">
      <div id="spacerright" class="spacerright">-</div>
      <div>
        <a href="page30.xml" class="sections">concepts</a>
      </div>
      <div>
        <a href="" class="sectionsgrayed">discover</a>
      </div>
      <div>
        <a href="page31.xml" class="sections">apply</a>
      </div>
      <div>
        <a href="page32.xml" class="sectionshighlighted">collaborate</a>
      </div>
      <div>
        <a href="" class="sectionsgrayed">practice</a>
      </div>
      <div id="spacerleft" class="spacerleft">-</div>
    </div>
    <div id="content"><h1>Distance-Vector Routing</h1>
				<h2>Ideas for Fixing the Algorithm</h2>
				
				<h2>Path Vector:</h2>
				
				<p>
				The reason that
				<m:math><m:mi>B</m:mi></m:math>
				propagates a distance of infinity is that when
				<m:math><m:mi>B</m:mi></m:math>
				updates its path to
				<m:math><m:mi>C</m:mi></m:math>,
				it doesn't &quot;know&quot; that the path from
				<m:math><m:mi>A</m:mi></m:math>
				to
				<m:math><m:mi>C</m:mi></m:math>
				developed in the preceding stage goes through
				<m:math><m:mi>B</m:mi></m:math>.
				</p>
				
				<p>
				The <i>path-vector</i> idea for fixing this problem is to add
				information to the distance vector to eliminate the problem just
				described. One way to do this is to supply each entry in the distance
				vector with a specific path which takes into account the current
				estimate of the distance.
				</p>
				
				<p>
				<b>Warning: This approach may significantly increase the size
				of the tables containing the distance vectors.</b>
				</p>
				
				<h2>Split Horizon:</h2>
				
				<p>
				In the <i>split horizon</i> approach, a router remembers not the
				whole path to the destinations, but just the first nodes of those
				paths.  If a neighbor of a router is the first node on such a path,
				the router does not submit this information to the neighbor.
				</p>
				
				<p>
				<b>
				Warning: This approach eliminates the problem of counting to infinity
				if the problem is caused by two adjacent routers. In more complicated
				networks, the problem will persist.
				</b>
				</p>
				
				<h2>Source Tracing:</h2>
				<p>
				The idea of <i>source tracing</i> is to augment the distance
				vectors with the name of the router which <b>immediately
				precedes</b> the destination on the path from the router to the
				destination.  If a router changes its notion of the next hop for a
				destination
				<m:math><m:mi>D</m:mi></m:math>,
				then it uses the same neighbor for all destinations for which
				<m:math><m:mi>D</m:mi></m:math>
				lies along the shortest path.
				</p>
				
					<p><div class="problem"><a name="problem9"/><b>Problem
				9:
			</b><br/>
						
							<p>
								Can the additional information gathered in the source
								tracing method be used to reconstruct the whole path
								to the destination?
							</p>
						
						<a target="_new" href="answer6.xml">Answer</a>
					</div></p>
					<p><div class="problem"><a name="problem10"/><b>Problem
				10:
			</b><br/>
						
						<p>
						When and how does the information about the preceding node help to
						avoid loops?
						</p>
						
					</div></p>
				
			</div>
    <div id="nav">
      <a href="page31.xml" class="nav">back</a>
      <a href="page33.xml" class="nav">next</a>
    </div>
    <div class="copyright">
			Copyright 1999
			Rensselaer Polytechnic Institute. All Rights Reserved.
		</div>
  </body>
</html>

