Chapter 5 Network Layer

Network layer - concerned with delivering packets from source to destination, often through many intermediate routers, called Internet Message Processor on the Internet. IP is the routing protocol of the Internet but is often used to mean all the protocols. Used here, IP means the protocol of the network layer.

Router/gateway/bridges

 

  1. Connectionless - Internet view using the routing protocol IP.
  2. Connection-oriented - Phone company view.
  3. Subnet internal organization

     

  4. Comparison of Datagram and Virtual Circuit Subnet


        Issue                                                           Datagram                                                 Virtual Circuit

    Connection Setup None Required
    Addressing Packet contains full source and destination address Packet contains short virtual circuit number identifier.
    State information None other than router table containing destination network Each virtual circuit number entered to table on setup, used for routing.
    Routing Packets routed independently Route established at setup, all packets follow same route.
    Effect of router failure Only on packets lost during crash All virtual circuits passing through failed router terminated.
    Congestion control Difficult since all packets routed independently router resource requirements can vary. Simple by pre-allocating enough buffers to each virtual circuit at setup, since maximum number of circuits fixed.

Routing algorithms - determines on which output line an incoming packet should be transmitted. Virtual circuit determines once at setup, datagram for each packet.

  1. Issues
    1. Changing topology due to router crashes, line failures, subnet modification.
       
    2. Fairness and optimality often contradictory. At right, A to A', B to B' and C to C' is optimal but unfair to X and X'.
       
    3. Reducing hops through routers tends to reduce delay and bandwidth consumed, improving throughput of network.
       
    4. Static routing methods do not adapt to changes on traffic, topology, etc. Routes determined off-line and loaded to routers.
       
    5. Adaptive routing methods change routes with traffic, topology, etc. in attempt to optimize on some criteria.
       
  2. Optimality Principle - If router J lies on optimal path from I to K, then J to K also optimal. Diagram below has optimal path I to K of I-C-J-K, hence I-C-J optimal to J since J lies on optimal path I-K.

     

  3. Sink Tree (minimum spanning tree) - Set of all optimal paths from all sources to a given destination (e.g. the root). Can be found using the shortest path algorithm from destination to all sources giving optimal though not necessarily unique route. Note that a tree has no cycles. Figure a) at right is network b) is sink tree with root at B.
     
  4. Shortest Path Algorithm - Determines the optimal path through a graph based upon the criteria of  number of hops, distance, cost, etc.

Routing methods

  1. Flooding
  2. Distance-vector routing - Used on Internet till 1979.
    1. Distance may be any metric (measure).
    2. Routing table - indexed by each router in subnet, contents is estimate of best output line and distance metric to router.
    3. Method using delay time as metric
      • Send ECHO packet to immediate neighbors which respond back ASAP, record response time in table.
      • Regularly send table with estimate of time to each subnet router to all neighbors.
      • On receiving table from neighbor X and time to X for each table entry (all subnet routers) compute time estimate for going through X to another router Y.
      • If lower to go through X to Y than going through another neighbor, add X to table so packets destined to Y are routed through X.
Router J is connected to A, I, K, and H. J sends ECHO to connected routers and measures delay time of each to respond back with routing table. The delay is added to the time required to route through a router connected to J to another router, the minimum delay route is added to the routing table of J.

  1. Link State Routing  - Currently widely used on Internet. Determines complete topology and delays to neighbors, then distributes to all other routers so that each can compute shortest path to any router.
    1. Discover neighbors addresses by sending ECHO packet on all outgoing lines.
    2. Measure the cost to each of its neighbors (time to receive ECHO response divided by two).
      • To include load as a factor the timer is started when ECHO packet placed in queue, to ignore load the timer is started when ECHO packet reaches head of queue.
      • Using load can cause oscillation when two parallel paths are available since the load will be shifted back and forth to the lowest delay channel.
    3. Construct packet containing all information about neighbors just learned. The packet from A would include information about B and E.
    4. Distribute packet to all other routers. Tricky because routers will receive packet at different times so will use different information for routing. Flooding used to distribute with a sequence number for each new packet sent.
      • Routers keep track of (router, sequence number, age), remembering and forwarding the highest sequence numbered ones and discarding duplicates and lower sequence numbered ones as a means of stemming the flood.
      • Aging - Since a rebooted router would start at sequence number 0, all other routers would discard the new but low sequence numbered packets.
        • Age field is initialized to an arbitrary value, perhaps 60, then decremented one by each router forwarding the packet  to prevent packets from circulating forever.
        • A router holding a packet decrements the age once per second. When age = 0 for a packet, the packet is discarded and routing information for that router forgotten so that packets from a rebooted router will eventually be accepted.
    5. Each router computes shortest path to all other routers using most current information from other routers, store in table containing router and output line to router to use.
    6. OSPF (Open Shortest Path First)  - Used on Internet, based on link state, more later.

Differences between link state and distance vector

Distance vector
  • Information indirectly through connected routers
  • Count to infinity problem
  • Convergence routing
Link state
  • Information directly from all routers
  • No count to infinity problem
  • Shortest path routing
From the link state packets broadcast in (b) between each router of (a)
  • Router B would construct a table with the following entries.
    • The best path to E is through router C,
    • B-C is cost 2
    • C-E is cost 1
    • the total cost of 3 of B-C-E,
    • all other paths are greater cost.
Destination A B C D E F
Router A - C C C F
Cost 4 - 2 5 3 6

Give the table for D.
  1. Hierarchical Routing - Router tables grow proportionally with number of routers, reach point where not feasible for all routers to have full knowledge of network. Used on Internet.
    1. Divide network routers into groups called regions where each router can route packets anywhere within region.
    2. Send all out of region packets to router that connects region to other regions. May have multiple out of region routers depending upon destination.
    3. Benefit - Reduced router table size.
      • The two level network below 17 routers require 4 entries for each region and 2 to 5 entries for routers within a region 3 and 5 respectively, a total of 6 to 9 table entries.
      • A flat network of 17 routers would require 16 table entries for each router.
    4. Cost
      • Increased path length required to route through a router hierarchy.
      • Possible congestion point at router if inter-region traffic heavy.
    5. Optimal - For N routers optimal levels is ln N requiring e ln N table entries per router.
  • Router 1A in Region 1 is connected to Region 4 through router 1C.
    • A packet arriving at 1A destined for 4C would be routed:
    • 1A-1C-3B-4A-4C at a cost of 4 hops = 3 hops 1A to Region 4 + 1 hop to 4C.

  1. Broadcast Routing - Sending packet to all destinations simultaneously. Possible approaches:
    1. Send packet to individual destinations, wastes bandwidth and requires source to have complete list of destinations.
    2. Flooding but generates too many packets and consumes too much bandwidth. Burden on network.
    3. Multi-destination routing, a packet includes list of destinations, router generates new packet with destination list reachable on the output line used. Distribute bandwidth use through routers. Burden on source.
    4. Sink tree or any spanning tree from source router. All routers must know spanning tree used and broadcast received packet on all but the arrival channel. Uses minimum number of packets but global spanning tree information may not be available (for link state shortest path determined from each router not globally, no spanning tree for distance-vector).
    5. Reverse path forwarding attempts to approximate spanning tree routing without tree information.
      1. Source router broadcasts on all channels.
      2. A router receiving broadcast packet notes source router and the arrival channel.
        • If broadcast arrives on channel normally used for sending packets to source router it is assumed to be first time seen so forwarded on all other channels.
        • If broadcast arrived on different channel to source than in router table assumed to be duplicate and discarded.
        • If the source router is not in the table, the packet is broadcast on all but arrival channel with source router and arrival channel of broadcast packet noted in table.
      3. The text considers an example (p369, Fig.5-16).
        • For comparison (b) has source router I at the root of a sink tree.
        • All routers would normally send packets to the source router along the sink tree using the optimal path (e.g. I-B would follow I-F-D-C-B).
        • Using reverse path forwarding the path may differ from the sink tree, on receiving a broadcast packet from the source router on the usual channel, each router would forward packet on all channels except the one received under the assumption the receiving channel was optimal.
        • In this case was simply the reverse of the sink tree path normally used for sending to the packet source.
        • In diagram (c) H sends a packet to K but K expects to receive packets from M so the packet is discarded rather than forwarded.
        • The optimal case using the sink tree requires a maximum of 4 hops maximum (I-N-M-K-L) and 14 total packets.
        • Using reverse path forwarding requires a maximum of 5 hops (4 for I-N-M-K-L plus 1 to B) and 23 total packets with the extra, duplicate packets sent to the leaf nodes.

  • Note that the text in diagram (c) performs too well since the diagram follows the sink tree precisely.
  • A more realistic example is above where the reverse path forwarding (e.g. a packet traveling I-E follows I-H-E) differs from the sink tree path (e.g. I-E follows I-F-A-E).
  • The leaf nodes of the tree are discarded packets.
  • For example, assume O had never received a packet sourced from I.
  • O would receive the I packet from both N and J, assuming that J packet arrived first at O it would be forwarded to N which would discard having already received a packet from I on I channel.
  • When O received the packet from N, having already noted that packets sourced from I arrive first on J, O discards the packet from N.
Give the reverse path tree for a broadcast from D assuming no routers have any forwarding information about other routers.
  1. Multicasting - Sending to a select group. Might be used for selecting video on demand channels.

Dijkstra's Shortest Path Algorithm

The shortest path algorithm is in fact a general graph minimization algorithm where the metrics of the graph edges can represent distance, cost, time, etc. It is important in networking because of the desirability of minimizing network resources and is therefore employed by many routing algorithms.

The general idea behind the algorithm is to compute the shortest path from the destination node to other nodes until the starting node is reached. When complete each node points to its predecessor node on its own shortest path to the destination. From the starting node, the shortest path to the destination is then through the list of predecessor nodes.

Briefly, the algorithm given here is:

  1. k = destination
  2. At the k node,
  3. Find the new node k with the shortest connection that is not already on the shortest path to the destination and make it part of the shortest path.
  4. If k is the starting node then finished, otherwise go back to 2.

In the following, note in panels (c) that node G reached A through A at a distance of 6 and in (d) that node G reached A through E at a distance of 5. Since that produced the shortest distance of any connections (all eventually back to A) the G node was placed permanently with its shortest path to A through E.

Another approach is to consider 3 abstract data structures:

  1. queue ordered by minimum cost to reach a node, unexpanded nodes are added when a new node is expanded
  2. path list containing node and predecessor pairs
  3. closed list that contains nodes that have been expanded, we'll clean duplicates from the queue also.

The node at the head of the queue is always chosen for expansion and is added to the path and closed lists.

We halt when the goal is reached.

Queue Path Closed
A    
B2, G6   A
E4,G6,C9 (B,A) A, B
G5,G6,F6,C9 (E,B),(B,A) A,B,E
F6,C9,H9 (G,E),(E,B),(B,A) A,B,E,G
H8,C9,H9,C9 (F,E),(G,E),(E,B),(B,A) A,B,E,G,F
C9,C9,D10 (H,F),(F,E),(G,E),(E,B),(B,A) A,B,E,G,F,H
D10,D12 (C,F),(H,F),(F,E),(G,E),(E,B),(B,A) A,B,E,G,F,H,C
  (D,H),(C,F),(H,F),(F,E),(G,E),(E,B),(B,A) A,B,E,G,F,H,C,D


What is the final path for A-D?


Use Dijkstra's Algorithm to find the shortest path from A-D for 

 

Dijkstra's Shortest Path Algorithm
 #include <iostream>                                //  Network from Tanenbaum text
using namespace std;
 #define MAX_NODES 8                           //  Distance from i to j node
 #define INFINITY 1000000000                 //  0 if i=j or not connected
 int n;                                                   //         0  1  2  3  4  5  6  7
 int dist[MAX_NODES][MAX_NODES] =    { //         A  B  C  D  E  F  G  H
                                                                     {0, 2, 0, 0, 0, 0, 6, 0 }, //A 0 
                                                                     {2, 0, 7, 0, 2, 0, 0, 0 }, //B 1
                                                                     {0, 7, 0, 3, 0, 3, 0, 0 }, //C 2
                                                                     {0, 0, 3, 0, 0, 0, 0, 2 }, //D 3
                                                                     {0, 2, 0, 0, 0, 2, 1, 0 }, //E 4
                                                                     {0, 0, 3, 0, 2, 0, 0, 2 }, //F 5
                                                                     {6, 0, 0, 0, 1, 0, 0, 4 }, //G 6
                                                                     {0, 0, 0, 2, 0, 2, 4, 0 }  //H 7
                                      };
 typedef enum {permanent, tentative} labelID;
 //                        start  destination
 void shortest_path(int s, int t, int path[]){

        struct state {
                 int       predecessor;
                 int       length;
                 labelID label;
         } state[MAX_NODES];

         int i, k, min;                    

         n = MAX_NODES;
         for(i=0; i<n; i++) {                                 // Initialize state
                 state[i].predecessor = -1;
                 state[i].length = INFINITY;
                 state[i].label = tentative;
         }

         state[t].length = 0;
         state[t].label=permanent;   
         k=t;                                                    // Start at destination.

         do {                                                    // Label current shortest nonzero tentative paths  
            for(i=0; i<n; i++)                              // from all i connected to the current k node
                 if(dist[k][i] != 0 && state[i].label == tentative) 
                     if(state[k].length+dist[k][i] < state[i].length) {
                         state[i].predecessor = k;
                         state[i].length = state[k].length+dist[k][i];
                     }

            min = INFINITY;                                // Find tentatively labeled node with smallest length
            for (i=0; i<n; i++) 
                  if( state[i].label == tentative && state[i].length < min) {
                      min=state[i].length;
                      k=i;
                  }

            state[k].label = permanent;                // Make smallest path length permanent
         } while(k != s);                                    // k=current node, s=start

         i=0;
         k=s;
         do {    path[i++]=k;                             // Copy path from start to destination
                   k=state[k].predecessor;
         } while (k>=0);
 }

 int main(void) {
         int i, s=0, t=3;                                     // s=start node t=destination node
         int path[MAX_NODES];

         shortest_path(s, t, path);
         i = 0;
         cout << "Path ";
         do {    cout << path[i] << " ";
         } while (path[i++] != t );
 }

Solution: Path 0 1 4 5 7 3

Congestion Control Algorithms

Congestion occurs when demand exceeds capacity at any point in network. Demand could be for any resource such as channel bandwidth or router buffer storage.
 

Router internal buffer use

When available buffers exhausted router forced to drop incoming packets causing  sharp reduction in number of packets delivered.
Congestion causes performance degradation
  1. Common reasons for congestion on router - Congestion can occur on a router when packets arrive at a greater rate than possible to forward. Congestion can be sporadic or long term. When congestion occurs, packets must be discarded by the router. Congestion occurs at a bottleneck when:
    1. Packets arrive on several channels to be forwarded on a single channel.
    2. Incoming channel has a higher bandwidth than outgoing channel.
    3. Channel bandwidth is sufficient but router CPU processing is too slow to handle bookkeeping (queuing, routing table updates, etc).
    4. Router lacks sufficient memory buffer space.
    5. Under an end-to-end reliable protocol (e.g. TCP), even with infinite memory, congestion can get worse because packets have timed out (e.g. moving from queue back to front on router or due to delay in acknowledging on a receiver) resulting in duplicates, adding to the congestion.
      Is it worse for congestion to discard a data or an acknowledgement packet?

  2. Self Feeding - Congestion gets worse.
    1. One router becomes congested, starts discarding packets.
    2. Sending router waiting for acknowledge cannot discard packet until acknowledge received, times out and resends. Its buffers cannot be released so that it also becomes congested. Not the case of Internet, is the case of a reliable network.
       
  3. Congestion and Flow Control
    1. Congestion control is concerned with ensuring the subnet can accept the requested traffic, a global issue.
      • Can be managed by rerouting packets dynamically over network, possibly around congestion.
      • Best managed by routers.
      • Recall that link state routing exchanges a metric such as delay among routers allowing them to calculate the best route to a subnet destination.
    2. Flow control is concerned with whether the receiver can accept the traffic from the sender, an issue only between the two ends.
      • Best managed between the two ends.
    3. Congestion control is sometimes implemented using flow control, when the congestion occurs the host sources are told to slow down.
      • One possible problem with this approach is that under network congestion the slow down message adds to the traffic and may itself be discarded.
      • Another is that routers along the path leading to the congested router should participate in congestion control by routing around congestion or otherwise reducing the traffic at the congested router.
         
  4. General Principles of Congestion Control
    1. Open loop - Example: doctors office that schedules patients into time slots with no information about future office congestion state attempting to prevent congestion by estimating the time the doctor will spend with each patient.
      • Design attempts to prevent congestion from occurring through decisions on accepting new traffic, when to discard packets, and scheduling.
      • Decisions made without regard to current state depending upon good design to avoid congestion.
    2. Closed loop - Example: heating control system. Uses feedback to adjust to traffic changes. Has three parts:
      • Monitor system to detect when and where congestion occurs. Congestion measured by percentage of packets discarded, average packet delay, etc.
      • Pass information to places where action can be taken, usually along the path back to the traffic source. Congested router sending notice to source increases traffic.
      • Adjust system operation to correct the problem.
        • If router claims congestion too soon and source stops sending completely on receipt of congestion notice but restarts at same rate, traffic will oscillate and never converge to a steady rate.
        • Waiting too long makes system sluggish, nullifying benefit of congestion control.
        • Averaging of congestion over time can provide better overall measure of when to act.
           

5.3.2 Congestion Prevention Policies - Implemented at several levels, policies that affect congestion are:

Layer Policies
Transport 
  • Retransmission policy - go back n heavier load due to number of retransmits than selective repeat
  • Out-of-order caching policy -  go back n discards, selective repeat keeps
  • Acknowledge policy - Piggybacking ACKs versus separate but waiting to piggyback may result in timeout causing retransmit.
  • Flow control policy - Small window limits number of outstanding packets reducing data rate.
  • Timeout determination - Waiting too long causes packets to back up at source. Timing out too soon can produce retransmit duplicates adding to traffic.
Network
  • Virtual circuits versus datagram inside the subnet
  • Packet queuing and service policy - Number of queues per input/output line, order packets processed in queue.
  • Packet discard policy - Choice of which packet to discard.
  • Routing algorithm - Can avoid congestion by spreading traffic.
  • Packet lifetime management - Time to live used to discard packets, if too long orphans may clog network, too short may discard valid but slow packets. 
Data Link
  • Retransmission policy - same as transport layer
  • Out-of-order caching - same as transport layer 
  • Acknowledgment policy - same as transport layer
  • Flow control policy - same as transport layer

5.3.3 Traffic Shaping - Bursty traffic one cause of congestion. Open loop solution requires predictable rates that do not exceed some maximum.

Leaky Bucket - uses a finite queue as buffer where host packets enter queue at anytime but forwards packets to router at constant rate, creating an even flow from host.

5.3.4 Congestion Control in Datagram Subnets

Choke Packets - Router monitors output line utilization (why monitor output line?) to determine if utilization threshold exceeded using:

unew = auold + (1-a)f

where
   a - rate forgets recent history, 1 forgets nothing, 0 forgets all.
   f - 0 when not in use or 1 when in use, the instantaneous line utilization
   u - 0.0 to 1.0 recent line utilization

Example: a=1, f=0 no change unew = uold
Example: a=0, f=1 then unew = 1 or 100% utilization
 

When u > threshold enters warning state:

IP uses two windows on source host

Smaller windows utilize less available network capacity. Why?

Hop-by-Hop choke packets

Hop-by-Hop requires each router to reduce packet rate when a choke packet arrives providing immediate relief. The choke packet eventually reaches the source to reduce the overall packet rate.

5.5 Interworking - Connecting two or more networks, may be same or different networking protocols (IP, SNA, IPX, AppleTalk, etc.)

  1. Important terms - Gateway means any device that connects two or more different networks.
  2. Half gateway - Two gateways connected by wire running an agreed upon protocol between and other protocol on either network side.
  3. Bridges vs Routers
    Bridge handles data link frames whose data load contains a network packet, examines MAC address. Cannot examine data load to determine whether IP, IPX, etc.

    Nesting of Frame/Packet/Segment

    Ethernet Frame at Bridge
    Internet Packet at Router  - does not handle frames but the data load from the frame. Can determine whether IP, IPX, etc. networking protocol.

5.5.1 How Networks Differ

Item Some Possibilities
Service offered Connection-oriented vs connectionless
Protocols IP, IPX, SNA, AppleTalk, ETC.
Addressing Flat (802.x) vs hierarchical (IP)
Multicasting Yes or no (also broadcasting)
Packet size Every network has its own maximum
Quality of service May be present or absent (IP)
Error handling Reliable, ordered, and unordered delivery
Flow control Sliding window, rate control, other or none
Congestion control Leaky bucket, choke packets, etc.
Security Privacy rules, encryption, etc.
Parameters Different timeouts, flow specifications, etc.
Accounting By connect time, by packet, by byte, or not at all

5.5.2 How Networks can be Connected

5.5.3 Concatenated Virtual Circuit - All packets traverse same path.


  1. Host - connected to subnet, to establish connection to host in remote external subnet sends full destination address to router.
  2. Router - builds circuit to gateway providing access to external subnet nearest destination.
  3. Gateway - records circuit, builds circuit to next subnet. Process continue till destination reached. Relays packets converting formats and circuit numbers as required.
    Advantages
    1. Buffers can be reserved in advance.
    2. Sequencing automatic.
    3. Short headers.
    4. avoids delayed, duplicate packets.

    Disadvantages

    1. Table space required for each open connection.
    2. No alternate routing to avoid congestion.
    3. Vulnerable to router failures.

    Note that quality of service is that of the lowest providing network. If one of them does not provide reliable delivery then circuit is unreliable.

5.4.3 Connectionless Internetworking

  1. Host - injects packet on subnet, fully addressed to destination.
  2. Router - Selects output line to gateway leading to destination.
  3. Gateway - Converts from one network format to another.
  4. Advantages
  5. Disadvantages

5.4.4 Tunneling - Avoids interwork conversion problems. When source and destination networks same, at gateway place packet inside intermediate network packet, deliver to destination gateway using intermediate network, remove unchanged packet and forward using original network protocol.


Example: IPX networks can be connected by tunneling through an IP network by connecting:

IPX network-------IPX/IP gateway--------IP network--------IP/IPX gateway--------IPX network
 

  1. Host - inserts packet on IPX subnet.
  2. Source IPX/IP Gateway - Accepts IPX packet and wraps IPX packet in IP packet data load, sends to destination gateway over IP network.
  3. IP Routers - Examine only IP packet for routing to destination IP/IPX gateway.
  4. Destination IP/IPX Gateway - Extracts IPX packet from IP packet data load, inserts IPX packet onto IPX subnet.

5.4.5 Internetwork Routing

5.4.6 Fragmentation - All packet networks have a finite packet size

 

5.4.7 Firewalls - Filter traffic based on some criteria

Packet filter - Standard router that inspects incoming/outgoing packets forwarding those that satisfy some criteria.
  • Criteria - Typically allowing/disallowing access to specific addresses/ports. Usually table driven, configured by system administrator.
  • Incoming - Simple since can block all incoming packets for ports used by Telnet, FTP, HTTP, etc.
  • Outgoing - More difficult since off-site locations can use any port or assign dynamically

Application filter - Examine content of packet data to determine how to process. Operates at application layer.

  • Example - Block access to certain words in Web page title.
  • Problems - Access usually not limited to single entity (e.g. dialups)
The architecture of a firewall with a secure computer bracketed by two packet filters.

To secure a host one filter restricts packets from outside and another restricts packets from inside. Known as the double moat approach.

Only restricting outside packets implies that inside is fully trusted, that none of the organization computers have been compromised.

5.5 Internet Network Layer

5.5.1 IP Protocol

5.5.2 IP Addresses - 32 bit in form of Network/Host

IP routing

Each router has table of (network,0) for distant networks and (this-network, host IP addresses) for local hosts.

When packet arrives at router:

5.5.3 Subnet and Classless Addressing - Appear as one network to outside but consists of multiple networks inside.

For a Class B network, what mask is needed for 16 subnets?

How many hosts would be on each?

 

5.5.4 Internet Control Protocols - IP used for packet transfer

5.5.5 Interior Gateway Routing Protocols

5.5.6 Exterior Gateway Routing Protocol: BGP (Border Gateway Protocol) - Used to connect organization networks running own version of an interior gateway routing protocol, must deal with politics. May not allow certain transit traffic, etc.

5.5.8 Mobile IP - When IP's move to different network but keep same IP

    Each site with mobile users must support home agent that acts on behalf of the mobile user, essentially forwarding any packets received for the mobile IP to its new network.

  1. Mobile IP
    1. When mobile IP arrives in new area listens for advertisement of services from foreign routing agents or broadcasts its arrival and waits for foreign agent response.
    2. Registers with foreign routing agent giving IP home routing agent address and data link address.
  2. Foreign routing agent
    1. Foreign agent contacts home routing agent sending in-care-of address to home routing agent.
    2. Receives packets for mobile IP from home routing agent, forwards to mobile IP.
  3. Home routing agent
    1. Routes packets for mobile IP to a willing foreign routing agent where mobile IP has moved, packet essentially tunneled through Internet (an IP packet inside an IP packet) from home router to foreign routing agent.
    2. When a packet arrives at home network for mobile IP the router ARP is responded to by the home agent with its data link address. Home agent may also send gratuitous ARP to router to replace mobile IP data link address with its own so that it will receive any packets destined for the mobile IP.
    3. To reduce latency due to tunneling through the home agent, the sender is given the IP address of the foreign agent to tunnel packets directly to the mobile IP.

5.5.9 CIDR IPv4 - Classless InterDomain Routing - Delaying the IP network explosion problem

5.5.10 IPv6


Document last modified: