3. Responsibilities of network layer
• To control the operations of data
transmission
• Routing and switching Technologies
• packet forwarding and sequencing
• error handling
• Addressing the creation of logical routers
• congestion control
4. NETWORK LAYER DESIGN ISSUES:
Responsible for delivering packets between endpoints
over multiple links.
Network Layer is the lowest layer in the OSI Reference
Model that deals with end-to-end transmission.
Store‐and‐Forward Packet Switching
restating the context of network layer protocols
Services Provided to the Transport Layer
Implementation of Connectionless Service
Implementation of Connection‐Oriented Service
Comparison of Virtual‐Circuit and Datagram Subnets
5. Store-and-forward packet switching:
1)Host H1 is directly connected to one of the ISP’s routers, A, perhaps as a home
computer that is plugged into a DSL modem.
2)In contrast, H2 is on a LAN, which might be an office Ethernet, with a router, F,
owned and operated by the customer.
3)A host with a packet to send transmits it to the nearest router, either on its own LAN
or over a point-to-point link to the ISP.
4)The packet is stored there until it has fully arrived and the link has finished its
processing by verifying the checksum.
5)Then it is forwarded to the next router along the path until it reaches the destination
host, where it is delivered.
6)This mechanism is store-and forward packet switching
7. Packet switching:
Data is divided into small parts (packets)
Packets are transmitted from node to node,
processed and forwarded
Also known as store‐and‐forward switching
Two connection types
Connectionless: datagram
Connection‐oriented: virtual circuit
Note:
Subnet: Logical subdivision of an IP Network
or Dividing a network into 2 or more networks is called
subnetworking .
8. Services Provided to TransportLayer:
a)The services should be independent of the router technology.
b) The transport layer should be shielded from the number,
type, and topology of the routers present.
c) The network addresses made available to the transport layer
should use a uniform numbering plan, even across LANs and
WANs.
d)Topology of network should be hidden
e)Network layer designers have freedom in writing specs of
services to transport layer
9. Connection‐Oriented or Connectionless?
Two competing camps
Internet community:
connectionless routers job is moving packets
and nothing else subnet isinherently unreliable
hosts should provide error & flow control
Ex:Internet
Telephone companies:
connection‐oriented subnet should provide
reliable service successful experience with
telephone system without connections, QoS is
hard to achieve
Ex:ATM(Asynchronous Transfer Mode)
11. Implementation of Connectionless Service
1)No connection setup
2)Message is broken into packets
3)Called datagram (in analogy with telegram)
4)Each packet is individually routed
5)Routers decides line based on routing table
6)Packets may follow different paths
7)Not guaranteed to arrive in order
12. Implementation of Connection‐OrientedService:
Path from source to destination must be
established before any data can be sent
Connection is called a VC (virtual circuit)
analogy with physical circuit in phone system
why virtual?
Avoid choosing new route for each packet
Same route used for all packets in connection
Each packet has ID for which VC it belongs to
13.
14. Example:Connection‐Oriented
H1 has established connection 1 with
H2
First entry in each routing table
H3 later establishes connection with
H2
If packet with ID 1 comes from H1 Send
it to router C, give it ID 1
If packet with ID 1 comes from H3 Send it to router C,give it ID 2
Why ID2?
11
15. Example: Connection‐Oriented
A can easily know connection 1 packets of H1 from
connection 1 packets of H3
C cannot do this
Thus, A assigns different connection ID to outgoing traffic for
second connection
To avoid conflicts, routers need ability to replace connection
IDs in outgoing packets
This is called label switching
17. Trade‐Offs
VC allow packets to contain short ID
datagram must contain full destination
address
for short packets, significant overhead
OTOH, VC need table space in routers
Datagram subnet needs entry for every
possible destination
VC subnet just needs an entry for each VC
But!! VC setup packet have to be routed
same as datagram
18. Routing Algorithm:
Network Layer Software responsible for deciding which output line an
incoming packed should be transmitted on.
Datagrams:
require computation of decision making tables for each packet
Virtual Circuit:
routing decision are made only when a new virtual circuit is being set up.
Session Routing:
data packets follow the same routing for the entire session.
Certain properties are desirable in a routing algorithm: correctness,
simplicity, robustness, stability, fairness, and efficiency
A routing table can be either static or dynamic.
A static table is one with manual entries. A dynamic table is one that is
updated automatically when there is a change somewhere in the Internet.
A routing protocol is a combination of rules and procedures that lets
routers in the Internet inform each other of changes.
19.
20. Routing vs. Forwarding:
Routing:
Filling and Updating routing tables
Forwarding:
making the decision which routes to use based on routing tables.
Adaptive vs. Non-Adaptive Algorithms.
Non-Adaptive Algorithms:
Routing decision is based on pre-computed measurements or
estimates and do not update the table based on current traffic and
topology
Adaptive Algorithms:
Change their routing decisions to reflect changes in the topology
and traffic.
21. Suppose that there is enough traffic between A and A′, between
B and B′, and between C and C′ to saturate the horizontal links.
To maximize the total flow, the X to X′ traffic should be shut off
altogether. Unfortunately, X and X′ may not see it that way.
Evidently, some compromise between global efficiency and
fairness to individual connections is needed. This is called
tradeoff between fairness and efficiency.
22. Optimality Principle
If router J is on the optimal path
from router I to router K, then the
optimal path form J to K also falls
along the same (optimal path)
route.
Each portion of a best path is also a
best path; the union of them to a
router is a tree called the sink tree
23.
24. Shortest Path Algorithm
a) Dijkstra’s algorithm computes a sink tree on the graph
b) Each link is assigned a non-negative weight/distance
c) Shortest path is the one with lowest total weight
d) Using weights of 1 gives paths with fewest hops
Algorithm:
a) Start with sink, set distance at other nodes to infinity
b) Relax (i.e., evaluate) distance to adjacent nodes
c) Pick the lowest adjacent distance node, add it to sink
tree
d) Repeat until all nodes are in the sink tree
In multicast routing, each involved router needs to
construct a shortest path tree for each group.
28. Flooding
every incoming packet is sent out on every outgoing line except the
one it arrived on.
generates vast numbers of duplicate packets, in fact, an infinite
number unless some measures are taken to damp the process.
One such measure is to have a hop counter contained in the header
of each packet that is decremented at each hop, with the packet
being discarded when the counter reaches zero.
the hop counter should be initialized to the length of the path
from source to destination.
If the sender does not know how long the path is, it can initialize
the counter to the worst case, namely, the full diameter of the
network.
A variant of flooding called selective flooding partially addresses
these issues by only sending packets to routers in the same direction.
In selective flooding the routers don't send every incoming packet on
every line but only on those lines which are going approximately in the
right direction.
Flooding broadcasts packets, but creates loops in the systems.
29. RPF eliminates the loop in the flooding
process.
Reverse Path forwarding
30. Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)
Define
dx(y) := cost of least-cost path from x to y
Then
dx(y) = minv{c(x,v) + dv(y)}
where min is taken over all neighbors v of x
x
3-30
v1
v2
v3
y
3
2
6
18
25
20
31. Bellman-Ford example
u
3-31
w
z
2
2
x
1
3
1
1
y 2
5
3
5
v
Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
B-F equation says:
du(z) = min {c(u,v) +dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2+ 5,
1 + 3,
5 + 3} = 4
Node that achieves minimum is next
hop in shortest path ➜ forwarding table
32. 3-32
Distance Vector Algorithm
• Each node x maintains thefollowing
➡ Its own distance vector Dx = [Dx(y): y $ N ] (N is the set of nodes)
✦ Dx(y) = estimate of least cost from x to y
➡ cost to each neighbor v:c(x,v)
➡ its neighborsʼ distance vectors. For each neighbor v, x maintains
Dv = [Dv(y): y $ N ]
• from time-to-time, each node sends its own distance vector estimate to
neighbors
• when x receives new DV estimate from neighbor, it updates its own DV
using B-F equation:
• Under minor, natural conditions, the estimate Dx(y) converge to the
actual least cost dx(y)
Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊N
33. Distance Vector Algorithm
Iterative, asynchronous:
each local iteration caused by:
• local link cost change
• DV update message from
neighbor
Distributed:
• each node notifies neighbors
only when its DV changes
➡ neighbors then notify their
neighbors if necessary
Each node:
wait for (change in local link
cost or msg from neighbor)
recompute estimates
if DV to any dest has
changed, notify neighbors
3-33
34. ∞ ∞ ∞
∞ ∞ ∞
from
cost to
x y z
x 0 2 7
y
z
from
from
from
cost to
x y z
cost to
x y z
7 1 0
x ∞ ∞ ∞
y 2 0 1
z ∞ ∞ ∞
x ∞ ∞ ∞
y ∞ ∞ ∞
z
x 0
y.2
z. 7
0 1
1 0
x z
1
2
7
y
node x
table
node y
table
node z table
cost to
x y z
Dx(y) = min{c(x,y) + Dy(y), c(x,z) +Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) +
Dz(z)}
= min{2+1 , 7+0} = 3
2 3
time
3-34
35. x 0 2 7
y ∞ ∞ ∞
z ∞ ∞ ∞
from
cost to
x y z
from
from
from
cost to
from
cost to
∞ ∞
cost to
x y z
from
cost to
from
cost to
from
cost to
from
cost to
7 1 0
cost to
x y z
x ∞ ∞ ∞
y 2 0 1
z ∞
x ∞ ∞ ∞
y ∞ ∞ ∞
z
2 0
7 1
x y z
x 0 2 3
y. 1
z. 0
7 1
x y z
x 0 2 7
y 2 0 1
z 0
x y z
x 0 2 7
y 2 0 1
z 3 1 0
2 0
3 1
x y z
x 0 2 3
y. 1
z. 0
x y z
x 0 2 3
y 2 0 1
z 3 1 0
x y z
x 0 2 3
y 2 0 1
z 3 1 0
x z
1
2
7
y
node x
table
node y
table
node z
table
Dx(y) = min{c(x,y) + Dy(y), c(x,z) +Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) +
Dz(z)}
= min{2+1 , 7+0} = 3
time
3-35
36. Distance Vector Routing
a) Distance Vector Routing uses the Bellman-Ford routing algorithm
b) Distance vector is a distributed routing algorithm
c) Shortest path computation is split across nodes (each router
maintains its own routing table giving the best known distance (and
link to use) to every router in the network).
Algorithm:
a) Each node knows distance of links to its neighbors
b) Each node advertises vector of lowest known distances to all
neighbors
c) Each node uses received vectors to update its own
d) Repeat periodically
37. Steps:
Step-01:
Each router prepares its routing table. By their local knowledge. each router knows
about-
All the routers present in the network
Distance to its neighboring routers
Step-02:
Each router exchanges its distance vector with its neighboring routers.
Each router prepares a new routing table using the distance vectors it has obtained
from its neighbors.
This step is repeated for (n-2) times if there are n routers in the network.
After this, routing tables converge / become stable.
38.
39. Initialization of tables in distance vector routing
In distance vector routing, each node shares its table with
its immediate neighbor periodically (eg every 30s) and when
there is a change.
40. 40
Updating in distance vector routing
Step 1: Add cost (2) to table received from neighbor (C).
Step 2: Compare Modified Table with Old Table (row by row).
If Next node entry is different, select the row with the smaller cost. If tie, keep
the old one.
If Next node entry the same, select the new row value (regardless of whether
new value is smaller or not).
41. Two-node instability – what can happen with distance vector routing
Both A and B know
where X is.
Link between A and X
fails. A updates its
table immediately.
But before A can tell B,
B sends its info to A!
A, using B’s info, up-
dates its table (error!).
Then A send its table
to B and B updates its
table (more error).
Both routers keep up-
dating tables, event-
ually hitting infinity. In
the meantime, chaos!
42. 42
Two-node instability – what can happen with distance vector routing
Possible Solutions to two-node instability:
1. Define infinity to be a much smaller value, such as 100.
Then it doesn’t take too long to become stable. But now
you can’t use distance vector routing in large networks.
2. Split Horizon – instead of flooding entire table to each
node, only part of its table is sent. More precisely, if node
B thinks that the optimum router to reach X is via A, then
B does not need to advertise this piece of info to A – the
info has already come from A.
3. Split Horizon and Poison Reverse – Normally, the distance
vector protocol uses a timer. If there is no news about a
route, the node deletes the route from its table. So when A
never hears from B about the route to X, it deletes it.
Instead, Node B still advertises the value for X, but if the
source of info is A, it replaces the distance with infinity,
saying “Do not use this value; what I know about this route
comes from you.”
46. The Count-to-Infinity Problem :
Distance Vector (DV) algorithm has a convergence issue in that it can
converge to a correct routing map slowly because it reacts rapidly to good
news but leisurely to bad news Failures can cause DV to “count to infinity”
while seeking a path to an unreachable node.
51. Routing: distance vector
Split horizon hack:
Lie to neighbour about
distance if routing via
neighbour
A B C D E
1 2 3 4 initially
lie
2 3 4 1 iteration
3 4 2 iterations
4 3 iterations
Faster not possible!!
52. Routing: distance vector
Split horizon hack:
Hack does not always work
Example:
D goes down
A and B lie to C
A offers to B route to D
B offers to A route to D
Loops again!!!
53. 3-53
Hierarchical Routing
So far we assumed
• All routers are identical
• Network is “flat”
• These are not true in practice
scale: with 200 million destinations:
• canʼt store all destinations in routing tables!
• routing table exchange would swamp links!
administrative autonomy
• internet = network ofnetworks
• each network admin may want to control routing in its own network
54. 3-54
Hierarchical Routing
• aggregate routers into regions, autonomous systems (AS)
• routers in same AS run same routing protocol
➡ intra-AS routing protocol
➡ routers in different AS can run different intra-AS routing protocol
gateway router
➡ at “edge” of its own AS
➡ has link to router in another AS
58. Inter-AS tasks
• suppose router inAS1 receives
datagram destined outsideof
AS1:
➡ router should forward packet to
gateway router, but which one?
AS1 must:
1. learn which destinations are
reachable through AS2,
which through AS3
2. propagate this reachability
info to all routers inAS1
job of inter-AS routing!
AS2
3b
AS3
3c
3a
1c
1a
AS1 1d
1b
2a
2c
2b
other
networks
other
networks
3-58
59. 3-59
Intra-AS Routing
• also known as Interior Gateway Protocols (IGP)
• most common Intra-AS routing protocols:
➡ RIP: Routing Information Protocol (open - Internet)
➡ OSPF: Open Shortest Path First (open – Internet)
➡ IGRP: Interior Gateway Routing Protocol(Cisco proprietary)
60. Transport layer: TCP, UDP
Routing protocols IP protocol
•path selection •addressing conventions
•RIP, OSPF, BGP •datagram format
• packet handling conventions
forwarding
table
ICMP protocol
• error reporting
• router “signaling”
Link layer
Physical layer
The Internet Network layer
Host, router network layerfunctions:
Network
layer
3-60
61. IP datagram format
ver length
32 bits
data
(variable length,
typically a TCP
or UDP segment)
16-bit identifier
header
checksum
time to
live
32 bit source IPaddress
for
fragmentation /
reassembly
total datagram
length (bytes)
upper layer protocol
to deliver payload to
head.
len
type of
service
IP protocol version
number
header length
(bytes)
“type” of data
max number
remaining hops
(decremented at
each router)
flgs
fragment
offset
upper
layer
32 bit destination IPaddress
Options (if any) E.g. timestamp,
record route
taken, specify
list of routers
to visit.
3-61
62. IP Fragmentation & Reassembly
• network links have MTU
(maximum transmission unit):
largest possible link-level
frame.
➡ different link types,
different MTUs
• large IP datagram divided
(“fragmented”) within net
➡ one datagram
becomes several
datagrams
➡ “reassembled” only at final
destination
➡ IP header bits used to
identify, order related
fragments
fragmentation:
in: one large datagram
out: 3 smaller datagrams
3-62
reassembly
63. IP Fragmentation and Reassembly
length
=4000
ID
=x
fragflag
=0
offset
=0
ID
=x
offset
=0
fragflag
=1
length
=1500
length
=1500
ID
=x
fragflag
=1
offset
=185
length
=1040
ID
=x
fragflag
=0
offset
=370
One large datagram becomes
several smaller datagrams
Example
• 4000 byte datagram
• MTU = 1500bytes
1480 bytes in
data field
offset =
1480/8
3-63
64. IP Addressing: introduction
• IP address: 32-bit
identifier for host, router
interface
• interface: connection
between host/router
and physical link
➡ routerʼs typically have
multiple interfaces
➡ host typically has
one interface
➡ IP addresses associated
with each interface
223.1.1.1
223.1.1.3
223.1.2.2
223.1.2.1
223.1.1.2
223.1.1.4 223.1.2.9
223.1.3.2
223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223
3-64
1 1 1
65. Subnets
• IP address:
➡ subnet part (high
order bits)
➡ host part (low order bits)
• Whatʼs a subnet ?
➡ device interfaces with
same subnet part of IP
address
➡ can physically reach each
other without intervening
router
223.1.1.1
3-65
223.1.1.3
223.1.1.2
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
Subnet (223.1.3.0/24)
67. IP addressing: CIDR
CIDR: Classless InterDomain Routing
➡ subnet portion of address of arbitrary length
➡ address format: a.b.c.d/x, where x is # bits in subnet portion of address
11001000 00010111 00010000 00000000
200.23.16.0/23
subnet
part
host
part
3-67
68. 3-68
IP addresses: how to get one?
Q: How does a host get IP address?
• Static allocation: hard-coded by system admin in a file
• DHCP: Dynamic Host ConfigurationProtocol:
dynamically get address from as server
➡ “plug-and-play”
69. 3-69
DHCP: Dynamic Host Configuration Protocol
Goal: allow host to dynamically obtain its IP address
from network server when it joins network
Can renew its lease on address in use
Allows reuse of addresses (only hold address while connected)
Support for mobile users who want to join network
DHCP overview:
➡ host broadcasts “DHCP discover” message [optional]
➡ DHCP server responds with “DHCP offer” message [optional]
➡ host requests IP address: “DHCPrequest” message
➡ DHCP server sends address: “DHCP ack” message
70. 3-30
NAT: Network Address Translation
• Motivation: local network uses just one IP address as far as outside world
is concerned:
➡ range of addresses not needed from ISP: just one IP address for all devices
➡ can change addresses of devices in local network without notifying outside world
➡ can change ISP without changing addresses of devices in local network
➡ devices inside local net not explicitly addressable, visible by outside world (a security plus).
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local network
(e.g., home network)
10.0.0/24
rest of
Internet
Datagrams with source or
destination in this network
have 10.0.0/24 address for
source, destination (as usual)
All datagrams leaving local
network have same single source NAT IP address:
138.76.29.7,
different source port numbers
71. 3-71
ICMP: Internet Control Message Protocol
• used by hosts & routers to
communicate network-level
information
➡ error reporting: unreachable host,
network, port, protocol
➡ echo request/reply (usedby ping)
• network-layer “above” IP:
➡ ICMP messages carried inIP
datagrams
• ICMP message: type, code plus first 8
bytes of IP datagram causing error
Type Code description
0
3
3
3
3
3
3
4
0
0
1
2
3
6
7
0
echo reply (ping)
dest. network unreachable
dest host unreachable
dest protocol unreachable
dest port unreachable
dest network unknown
dest host unknown
source quench (congestion
control - not used)
echo request (ping)
route advertisement
router discovery
TTL expired
bad IP header
8 0
9 0
10 0
11 0
12 0
72. 3-72
Traceroute and ICMP
• Source sends series of UDP segments to destination
➡ first has TTL=1
➡ second has TTL=2,etc.
➡ unlikely port number
• When nth datagram arrives to nth router:
➡ router discards datagram
➡ and sends to source an ICMP message (type 11, code 0)
➡ ICMP message includes name of router & IP address
• when ICMP message arrives, source calculates RTT
•traceroute does this 3times
Stopping criterion
• UDP segment eventually arrives at destination host
• destination returns ICMP “port unreachable” packet (type 3, code 3)
• when source gets this ICMP, stops.
73. 3-73
IPv6
• Initial motivation: 32-bit address space soon to be completely allocated.
• Additional motivation:
➡ header format helps speedprocessing/forwarding
➡ header changes to facilitateQoS
IPv6 datagram format:
➡ fixed-length 40 byte header
➡ no fragmentation allowed
74. IPv6 Header (Cont)
Priority: identify priority among datagrams in flow
Flow Label: identify datagrams in same“flow.”
(concept of“flow” not welldefined).
Next header: identify upper layer protocol for data
ver pri flow label
payload len next hdr hop limit
source address
(128 bits)
32 bits
3-74
75. 3-75
Other Changes from IPv4
• Checksum: removed entirely to reduce processing time at each hop
• Options: allowed, but outside of header, indicated by “Next Header” field
• ICMPv6: new version ofICMP
➡ additional message types, e.g. “Packet Too Big”
➡ multicast group management functions
76. 3-36
Transition From IPv4 To IPv6
• Not all routers can be upgraded simultaneous
➡ no “flag days”
➡ How will the network operate with mixed IPv4 and IPv6 routers?
• Tunneling: IPv6 carried as payload in IPv4 datagram among
IPv4 routers
A B E F
tunnel
Logical view:
Physical view:
IPv6
A
IPv6
B
IPv6
E
IPv6
F
IPv6 IPv6 IPv6 IPv6
IPv4 IPv4
Flow: X
Src: A
Dest: F
data
Flow: X
Src:A
Dest: F
data
Src: A
Dest: F
data
Src:B
D
Flo
e
ws
:
X
t:
E Src: A
Dest: F
data
Src:B
D
Flo
e
ws
:
X
t:
E
A-to-B:
IPv6
E-to-F:
IPv6
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
77. ICMP
Internet Control Message Protocol (ICMP) is a companion protocol to IP.
ICMP defines a collection of error messages that are sent back to the
source host whenever a router or host is unable to process an IP datagram
successfully.
Examples of error messages:
1. Destination Unreachable: Could be due to link failure or router unable
to
locate destination
2. Time Exceeded: When TTL decrements to 0.
3. ICMP – Redirect: Tells source host that there is a better route to the
destination.
4. ECHO REQUEST: To see if a destination is alive and reachable.
5. ECHO REPY
6. Source Quench: Used to throttle hosts that were sending too many
packets.
78. ARP
Address Resolution Protocol (ARP)
An IP address (4-bytes) needs to be mapped into a link-level address (e.g. a
6- bytes Ethernet or MAC address) before a packet encapsulated in a
frame can be delivered to a host on a network (LAN) or to a router on a
LAN that will forward it.
A source host on a LAN broadcasts an ARP REQUEST packet with the
IP address of the destination host (“Who owns this IP address?”) and
the destination host replies with an ARP REPLY packet containing its
MAC address. The source host caches the destination MAC address for
future use.
Then the source host sends the MAC/Ethernet frame containing the IP
packet to the destination host.
To allow mappings to change (e.g. if an Ethernet NIC card breaks or is
replaced) entries in the ARP cache are timed out every 15 minutes.
79. RARP, DHCP
Reverse Address Resolution Protocol (RARP)
This answers the reverse question, i.e. given an Ethernet address, what is
the corresponding IP address. Used when booting a diskless workstation
on the LAN.
Upon boot-up, RARP allows a workstation to broadcast its Ethernet
address and ask if any one knows its IP address (“Does anyone know
my IP address?”) The RARP server responds with the IP address of the
workstation.
A disadvantage of RARP is that it uses a destination address of all 1s
(limited broadcasting) to reach the RARP server. However, such
broadcasts are not forwarded by routers, so a RARP server is needed
on each LAN in an organization.
Once a workstation has its IP address it can contact the file server for
the image of the OS, file server’s IP address, default router’s IP address.
Each of these requests is a separate request-reply. This is inefficient.
80. DHCP
Dynamic Host Configuration Protocol (DHCP)
An IP address can be automatically assigned to a client host from a pool of IP
addresses. IP addresses assigned automatically are leased for a fixed amount of
time.
DHCP allows both manual IP address and automatic assignment and has
replaced both RARP and BOOTP.
The DHCP server need not be on the same LAN as the requesting client host.
Since the DHCP server may not be reachable by broadcasting, a DHCP relay
agent is needed on each LAN.