0:00
Today's class focus on DHCP and Network Address Translation techniques.
Both of them are very useful in maximizing the usage of limited IP addresses.
The Dynamic Host Configuration Protocol,
DHCP automatically configures hosts that connect to a TCP/IP network.
An earlier protocol, Bootstrap Protocol,
allowed a diskless workstations to be remotely booted in a network.
It used a well known UDP port number 67 for the server port and a 68 for the client port.
DHCP builds on the capability of
Bootstrap Protocol to deliver configuration information to a host.
This capability is used extensively by Internet service providers to assign
temporary IP addresses to hosts and maximize the usage of their limited IP address space.
When a host wish to obtain an IP address,
the host broadcasts a DHCP-discover message in its physical network.
The server in the network responds with
a DHCP offer message that provides an IP address and another configuration information.
Several servers and memory apply to the host says the host select one of the offers and
a broadcast a DHCP request message that includes the ID of the server.
The selected server then allocates the giving IP address to the host and assigns
a DHCP accurate message assigning
the IP address to the host for some period or release time.
Previously we have seen three ranges of private addresses or
called unregistered addresses have been set aside for use in private Internets.
Packets with private unregistered addresses are valid inside of their private networks.
However, they are discarded out by routers in the global Internet.
Network Address Translation, NAT refers to a method for mapping
packets from hosts in private Internet into packets that can traverse the Internet.
It also transfers packets arriving from
the global Internet to the appropriate destination machine in the private network.
To do so, a device acts as an agent between a private network and a public network.
By NAT a number of hosts can share a limited number of registered IP addresses.
We limit our discussion to the case where
a single register IP address is shared by machines
in a private network networks as follows.
When a machine in a private network generates
a packet that has a destination outside as a private network,
the packet is transferred to a NAT router.
For example, this figure shows a packet with source IP
address 10.0.0.1, a private address.
When the packet leave the NAT box after translation,
it has a router-source IP address 198.60.42.12,
unregistered global IP address of the NAT box.
The NAT router maintains a table for
mapping packets from the private network into the Internet and back.
Each time a machine generates a packet destined for the Internet,
a new entry is created in a table in the NAT router.
The entry contains the private IP address of the machine,
say 192.168.0.10 as well as a TCP or UDP port number of the packet,
say X, in this example.
Another port number that is not already in
use is selected assigned to the given packet, say Y.
The NAT router then sends a packet into the Internet with a registry
that global IP address that is 128.100.10.15 in this example.
When the response packets arrive,
although they have been the same global IP address as the destination,
the port number is used to retrieve
the original private IP address and port number by looking at the table.
So packets can then be delivered to the appropriate machine.
In theory, one public IP address can support up
to 2^16 different private IP addresses by network address translation technique,
because a TCP/UDP port number has
16 bits so that it can be used for the table entries in NAT box.
But one has to consider the overhead of NAT operation and a runtime.
And one potential problem is that NAT is implementing it at its IP layer,
but it takes advantage of up
transport layer information using TCP/UDP port number for the lookup table.
This actually violates the OSI layer architecture.
That is, a higher layer utilizes
a service provided by the lower level but not vice versa.
This concludes today's.