0% found this document useful (0 votes)
43 views

Ip Forwarding

IP forwarding uses network prefixes in routing tables instead of individual host addresses to improve scalability. Routers only need to store the much smaller set of network prefixes rather than the billions of individual host addresses. When a packet's destination network prefix matches an entry in the routing table, the packet is forwarded towards the next hop router for that prefix until arriving at the destination network, where a separate process delivers to the final host. This strategy saves substantial space in routing tables and improves lookup and processing speeds, allowing the Internet routing system to scale to support billions of hosts.

Uploaded by

Ankur Jadiya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Ip Forwarding

IP forwarding uses network prefixes in routing tables instead of individual host addresses to improve scalability. Routers only need to store the much smaller set of network prefixes rather than the billions of individual host addresses. When a packet's destination network prefix matches an entry in the routing table, the packet is forwarded towards the next hop router for that prefix until arriving at the destination network, where a separate process delivers to the final host. This strategy saves substantial space in routing tables and improves lookup and processing speeds, allowing the Internet routing system to scale to support billions of hosts.

Uploaded by

Ankur Jadiya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

1.10.1 IP Forwarding IP routers use datagram forwarding, described in 1.

4 Datagram
Forwarding above, to deliver packets, but the “destination” values listed in the forwarding
tables are network prefixes – representing entire LANs – instead of individual hosts. The goal
of IP forwarding, then, becomes delivery to the correct LAN; a separate process is used to
deliver to the final host once the final LAN has been reached. The entire point, in fact, of
having a network/host division within IP addresses is so that routers need to list only the
network prefixes of the destination addresses in their IP forwarding tables. This strategy is
the key to IP scalability: it saves large amounts of forwarding-table space, it saves time as
smaller tables allow faster lookup, and it saves the bandwidth and overhead that would be
needed for routers to keep track of individual addresses. To get an idea of the forwarding-
table space savings, there are currently (2013) around a billion hosts on the Internet, but only
300,000 or so networks listed in top-level forwarding tables. With IP’s use of network
prefixes as forwarding-table destinations, matching an actual packet address to a forwarding-
table entry is no longer a matter of simple equality comparison; routers must compare
appropriate prefixes. 26 1 An Overview of Networks An Introduction to Computer Networks,
Release 1.9.19 IP forwarding tables are sometimes also referred to as “routing tables”; in this
book, however, we make at least a token effort to use “forwarding” to refer to the packet
forwarding process, and “routing” to refer to mechanisms by which the forwarding tables are
maintained and updated. (If we were to be completely consistent here, we would use the term
“forwarding loop” rather than “routing loop”.) Now let us look at an example of how IP
forwarding (or routing) works. We will assume that all network nodes are either hosts – user
machines, with a single network connection – or routers, which do packetforwarding only.
Routers are not directly visible to users, and always have at least two different network
interfaces representing different networks that the router is connecting. (Machines can be
both hosts and routers, but this introduces complications.) Suppose A is the sending host,
sending a packet to a destination host D. The IP header of the packet will contain D’s IP
address in the “destination address” field (it will also contain A’s own address as the “source
address”). The first step is for A to determine whether D is on the same LAN as itself or not;
that is, whether D is local. This is done by looking at the network part of the destination
address, which we will denote by Dnet. If this net address is the same as A’s (that is, if it is
equal numerically to Anet), then A figures D is on the same LAN as itself, and can use direct
LAN delivery. It looks up the appropriate physical address for D (probably with the ARP
protocol, 7.9 Address Resolution Protocol: ARP), attaches a LAN header to the packet in
front of the IP header, and sends the packet straight to D via the LAN. If, however, Anet and
Dnet do not match – D is non-local – then A looks up a router to use. Most ordinary hosts use
only one router for all non-local packet deliveries, making this choice very simple. A then
forwards the packet to the router, again using direct delivery over the LAN. The IP
destination address in the packet remains D in this case, although the LAN destination
address will be that of the router. When the router receives the packet, it strips off the LAN
header but leaves the IP header with the IP destination address. It extracts the destination D,
and then looks at Dnet. The router first checks to see if any of its network interfaces are on
the same LAN as D; recall that the router connects to at least one additional network besides
the one for A. If the answer is yes, then the router uses direct LAN delivery to the destination,
as above. If, on the other hand, Dnet is not a LAN to which the router is connected directly,
then the router consults its internal forwarding table. This consists of a list of networks each
with an associated next_hop address. These xnet,next_hopy tables compare with switched-
Ethernet’s xhost,next_hopy tables; the former type will be smaller because there are many
fewer nets than hosts. The next_hop addresses in the table are chosen so that the router can
always reach them via direct LAN delivery via one of its interfaces; generally they are other
routers. The router looks up Dnet in the table, finds the next_hop address, and uses direct
LAN delivery to get the packet to that next_hop machine. The packet’s IP header remains
essentially unchanged, although the router most likely attaches an entirely new LAN header.
The packet continues being forwarded like this, from router to router, until it finally arrives at
a router that is connected to Dnet; it is then delivered by that final router directly to D, using
the LAN. To make this concrete, consider the following diagram: R1 R2 R3 A B C F E D:
200.0.1.37 200.0.0/24 200.0.1/24 Two LANs joined by three routers With Ethernet-style
forwarding, R2 would have to maintain entries for each of A,B,C,D,E,F. With IP for1.10 IP -
Internet Protocol 27 An Introduction to Computer Networks, Release 1.9.19 warding, R2 has
just two entries to maintain in its forwarding table: 200.0.0/24 and 200.0.1/24. If A sends to
D, at 200.0.1.37, it puts this address into the IP header, notes that 200.0.0 ‰ 200.0.1, and
thus concludes D is not a local delivery. A therefore sends the packet to its router R1, using
LAN delivery. R1 looks up the destination network 200.0.1 in its forwarding table and
forwards the packet to R2, which in turn forwards it to R3. R3 now sees that it is connected
directly to the destination network 200.0.1, and delivers the packet via the LAN to D, by
looking up D’s physical address. In this diagram, IP addresses for the ends of the R1–R2 and
R2–R3 links are not shown. They could be assigned global IP addresses, but they could also
use “private” IP addresses. Assuming these links are point-to-point links, they might not
actually need IP addresses at all; we return to this in 7.12 Unnumbered Interfaces. One can
think of the network-prefix bits as analogous to the “zip code” on postal mail, and the host
bits as analogous to the street address. The internal parts of the post office get a letter to the
right zip code, and then an individual letter carrier (the LAN) gets it to the right address.
Alternatively, one can think of the network bits as like the area code of a phone number, and
the host bits as like the rest of the digits. Newer protocols that support different net/host
division points at different places in the network – sometimes called hierarchical routing –
allow support for addressing schemes that correspond to, say, zip/street/user, or
areacode/exchange/subscriber. The Invertebrate Internet The backbone is not as essential as it
once was. Once Upon A Time, all traffic between different providers passed through the
backbone. The legacy backbone still exists, but today it is also common for traffic from large
providers such as Google to take a backbone-free path; such providers connect (or “peer”)
directly with large residential ISPs such as Comcast. Google refers to this as their “Edge
Network”; see peering.google.com and also 10.6.7.1 MED values and traffic engineering. We
will refer to the Internet backbone as those IP routers that specialize in large-scale routing on
the commercial Internet, and which generally have forwarding-table entries covering all
public IP addresses; note that this is essentially a business definition rather than a technical
one. We can revise the table-size claim of the previous paragraph to state that, while there are
many private IP networks, there are about 800,000 separate network prefixes (as of 2019)
visible to the backbone. (In 2012, the year this book was started, there were about 400,000
prefixes.) A forwarding table of 800,000 entries is quite feasible; a table a hundred times
larger is not, let alone a thousand times larger. For a graph of the growth in network prefixes /
forwarding-table entries, see 10.6.5 BGP Table Size. IP routers at non-backbone sites
generally know all locally assigned network prefixes, eg 200.0.0/24 and 200.0.1/24 above. If
a destination does not match any locally assigned network prefix, the packet needs to be
routed out into the Internet at large; for typical non-backbone sites this almost always this
means the packet is sent to the ISP that provides Internet connectivity. Generally the local
routers will contain a catchall default entry covering all nonlocal networks; this means that
the router needs an explicit entry only for locally assigned networks. This greatly reduces the
forwarding-table size. The Internet backbone can be approximately described, in fact, as
those routers that do not have a default entry. For most purposes, the Internet can be seen as a
combination of end-user LANs together with point-to-point links joining these LANs to the
backbone, point-to-point links also tie the backbone together. Both LANs and point-to-point
links appear in the diagram above. 28 1 An Overview of Networks An Introduction to
Computer Networks, Release 1.9.19 Just how routers build their xdestnet,next_hopy
forwarding tables is a major topic itself, which we cover in 9 Routing-Update Algorithms.
Unlike Ethernet, IP routers do not have a “flooding” delivery mechanism as a fallback, so the
tables must be constructed in advance. (There is a limited form of IP broadcast, but it is
basically intended for reaching the local LAN only, and does not help at all with delivery in
the event that the destination network is unknown.) Most forwarding-table-construction
algorithms used on a set of routers under common management fall into either the distance-
vector or the link-state category; these are described in 9 Routing-Update Algorithms.
Routers not under common management – that is, neighboring routers belonging to different
organizations – exchange information through the Border Gateway Protocol, BGP (10 Large-
Scale IP Routing). BGP allows routing decisions to be based on a fusion of “technical”
information (which sites are reachable at all, and through where) together with “policy”
information representing legal or commercial agreements: which outside routers are
“preferred”, whose traffic an ISP will carry even if it isn’t to one of the ISP’s customers, etc.
Most common residential “routers” involve network address translation in addition to packet
forwarding. See 7.7 Network Address Translation.

You might also like