Addressing: The What' and Where' of Communication
Addressing: The What' and Where' of Communication
Addressing: The What' and Where' of Communication
A Closer Look
IP Addresses
TCP/IP networks use IP for the network layer
protocol
IP defines 4 octet addresses
– 4 billion possible addresses
Usually written in the form A.B.C.D
– A, B, C, and D are each 1 octet (0-255), normally
written in decimal notation
– Thus, IP addresses fall in the range:
0.0.0.0 – 255.255.255.255
IP Addresses
Originally intended for separate
internets (interconnected LANs)
– Thus, the 32 bit size was not a concern
– 48 bits is generally considered a fairly safe
size for globally unique addressing
– Computers connected to ARPANET (and
later incarnations) were just given
consecutive addresses
1.0.0.0, 1.0.0.1, 1.0.0.2, …
IP Addresses
Class B:
bit index: 0 1 2-15 16-31
1 0 network host
Class C:
bit index: 0 1 2 3-23 24-31
1 1 0 network host
IP Address Classes
Class A:
– Range: 1.0.0.0 – 126.0.0.0
– Networks: 128 max, Machines: 65537-1.6 million
– e.g. huge networks, such as large military/government organizations
(e.g. FBI), the @Home network, etc…
Class B:
– Range: 128.1.0.0 – 191.255.0.0
– Networks: 16384 max, Machines: 257-65536
– e.g. Internet service providers (ISPs) (dial-up)
Class C:
– Range: 192.1.0.0 – 223.255.255.0
– Networks: 2 million max, Machines: 1-256
– e.g. Small businesses
IP Address Classes
The IP address classes are self-identifying
– Which means that given the address, you can
determine what class an address is
• Actually, using only the first number
– Examples:
• 137.207.32.2 (server.uwindsor.ca)
– 137 -> Class B
• 24.0.0.1 (@Home DHCP server)
– 24 -> Class A
Other IP Address Classes
Class D:
bit index: 0 1 2 3 4-31
1 1 1 0 Multicast group address
•These addresses are used to represent multicast groups
•Discussed later
Class E:
bit index: 0 1 2 3 4 5-31
1 1 1 1 0 Reserved for future use
•These addresses were left open to be used and divided
into classes as needed
Special IP Addresses
0.0.0.0: Used to indicate that this machine is without an
assigned IP
– Used during bootstrapping (e.g. requesting an IP from a DHCP
server)
<all 0s (binary)><hostID>: Used to send messages to
some machine on this network
255.255.255.255: Used to send broadcast messages
across this machine’s network
<netID><all 1s (binary)>: Used to send broadcast
messages to the specified network
127.0.0.1: Used to send messages back to this machine
(called loopback or localhost)
IP Addressing Comments
In IP addressing:
– 0’s usually represent ‘this’
– 1’s usually represent ‘all’
Broadcasting, although discussed here
in terms of addressing, will be
discussed further
Loopback
The 127.0.0.1 address, does not normally exist on
the network
– Either as the source address or destination address of a
packet
The address is used internally by NICs
– When a NIC receives a message addressed with
127.0.0.1 to be transmitted, it passes the message
directly to the receiver hardware
– The receiver hardware returns the message to the
operating system exactly as if the message were
received from the network
• However, the message never entered the network medium
Internal IP Addresses
Depending on the address class needed by
an organization, a range of internal
addresses is available:
– Class A: 10.0.0.0 – 10.255.255.255
– Class B: 172.16.0.0 – 172.31.255.255
– Class C: 192.168.0.0 – 192.168.255.255
IP routers outside a private (connection-
shared) network, will not forward datagrams
designated for addresses in these ranges
Multi-homed Machines
192.168.0.8 192.168.0.4
Class C private network
172.16.3.18
Class B private network
Example:
– Address: 137.207.32.2
– Subnet Mask: 255.255.0.0
Address: 10001001110011110010000000000010
Mask: 11111111111111110000000000000000
Net Address: 10001001110011110000000000000000
Network address: 137.207.0.0
Routing in Action
Internet
Network N1 (Class B)
Address: 137.207.0.0
P4
P1
137.207.0.0 P1
194.201.61.0 P2
24.0.0.0 P3
P2 * P4 P3
3A57:0000:0000:9CD5:3412:912D:6738:1928
IPv6 Features
16 octet addresses (128 bits)
Larger numbers of address classes
– More accurate control of network/machine counts
Variable-sized headers
– Optional information can be placed into the header
when needed
– Reduces header size in most cases
Extendible protocol
– IPv6 allows for new header information to be
added to support different protocols
IPv6 Features
Automatically reconfigurable
– Addresses can be automatically reassigned
dynamically
– e.g. when a certain number of nodes join the
network, a different address class may be desired
Autoconfigurable
– The use of autoconfiguration (such as DHCP)
allows dynamic private addressing and dynamic
public addressing
IPv6 Datagram Format
optional
32 48 56 63
64 96 128
source address destination address
IPv6 Integration
Will IPv6 replace IP addresses?
– Who knows?
Currently, temporary solutions have made
IPv4 addresses capable of lasting longer than
originally predicted
If and when IPv6 is to be integrated, the
process must be a transition
– Closing the entire Internet down to convert
hardware and software to IPv6 not going to
happen
– Some stations may take longer to transition than
other stations
• e.g. Bob’s Internet Shack vs. the Telus Network
IPv6 Integration
NAT (network address translators) provide one
example of such a temporary solution
NATs provide three benefits:
1. NATs provide IP masquerading
• Messages using these addresses pass through a network
address translator (NAT) to be transformed into external IPs
2. NATs provide IP sharing
• ISPs for example, have many customers, but significantly
less at any given time are logged onto their system
– IP addresses can be assigned dynamically to these customers
when they log in
3. NATs provide schemes to allow networks to use either
IPv4 or IPv6
– Addresses would be converted as they pass through a NAT
IPv6 Integration
Another method that may be used for the
transition between IPv4 and IPv6 is address
inclusion:
– IPv4 addresses could be embedded into IPv6
addresses
• Translation between the two types of addresses is
possible without any other information
– Some problems exist with this approach, but in
general it simplifies communication between
IPv6 networks and IPv4
Special IPv6 Addresses
0:0:0:0:0:0:0:0 Used to indicate that this machine
is without an assigned IP
– Used during bootstrapping (e.g. requesting an IP from a
DHCP server)
0:0:0:0:0:0:0:1 Used to send messages back to
this machine (called loopback)
– These two addresses are not valid on the actual
network medium (same as with IPv4)
00:… Reserved (including IPv4 and IPX address
inclusion)
FF:… Multicast addresses
IPX
Internetwork Packet
Exchange Addresses
IPX
IPX was originally created to replace IP
In reality, it is used primarily on LANs
In conjunction with the SPX protocol,
formed one of the two protocol suites
used in Netware networks
– SPX is to TCP, what IPX is to IP
Still can be (although rarely is) used
today in Windows networks
IPX Addresses
IPX uses a 2 component address (like
IP):
– The network portion (4 octets)
– The machine portion (6 octets)
Unlike IP, these sizes are constant
– So there are no IPX address classes
IPX uses sizes large enough to
accommodate all categories of networks
IPX Addresses
The network portion of an IPX address is 4
octets (32 bits)
– This allows for 4.29*109 networks (4 billion)
– This is almost enough for everyone on earth to
have their own network
The machine portion of an IPX address is 6
octets (48 bits)
– This allows for 2.81*1014 machines on each
network (281,475 trillion)
IPX Addresses
The scalability of IPX addresses is not
their only benefit
The constant size of the network and
machine address portions simplifies
extracting each portion
– As a result, machines that process IPX
networks can process IPX datagrams more
quickly
• Such as network nodes, routers, etc.
IPX Addresses
Why 48 bits for the machine portion?
– 48 bits allows for way too many machines, more
than will be needed for many years
• By the time machine IDs run out, network hardware and
software will have been obsolete by many years!
– Using 48 bits allows hardware to use the
machine’s MAC address as the machine portion
• This makes auto-configuration (dynamic IPX address
assignment) easier/faster
IPX Addresses
If IPX has been around since the NetWare days,
why don’t we use it for the Internet, instead of IP?
– Good question! Why don’t we?
– Frankly, IPX has a bad reputation, because initially it
was used with SPX and other bandwidth-munching
protocols
– IPX can be used in conjunction with TCP (TCP/IPX),
and it would make an excellent replacement for
TCP/IP
• However, standards organizations (e.g. ISO) want to use the
protocols they develop, and not ones developed by
corporations, such as Novell
Fragmentation & Reassembly
Packets can arrive out of order in
connectionless networks
Packets must be reordered during reassembly
During fragmentation, the portion of data that
each fragment represents must be identified
– Since the length of a packet’s data can always be
determined, all that is necessary is to use the offset
of the start of the packet’s data in the larger data
chunk
Fragmentation & Reassembly
Length:1000 Length:500
Offset:3000 Offset:4000
Fragmentation & Reassembly
Re-fragmentation (at gateways, routers, …) is
expensive
– The re-fragmenting node must process each
packet, fragmenting it into smaller packets
– Another reassembling node must collect these
packets and assemble them into larger packets
– Each of these operations involved memory
processing, which is expensive when applied to
many packets per second
Fragmentation & Reassembly
Re-fragmentation (particularly in routers) should
be avoided at all costs
– To virtually eliminate re-fragmentation in a network,
the maximum transmission unit (MTU) should be
determined and used as the packet size
– A network’s MTU is the largest size that can be used
for packets that will not result in any re-fragmentation
by any routers, or other multi-homed nodes
– Schemes for determining the MTU dynamically have
been developed, but are beyond the scope of this
course
IP Datagrams
IP datagrams are packets sent over IP
networks using connectionless messaging
Datagrams can be used directly within
network-capable programs by sending
datagrams via UDP (user datagram protocol)
Datagrams are used transparently by TCP to
provide connection-based transport
IP Datagrams
bits Name Description Used For
4 Version Version (equal to 4) All
4 IHL Header length All
8 TOS Type of Service (obsolete) -
16 Length Total length of datagram (header included) All
16 ID Identifier: used in reassembly to identify packets Reassembly
1 DF Should the datagram be re-fragmented, if necessary? Routers (re-frag)
1 MF Are there more fragments in the sequence? Reassembly
13 Offset Offset of data that this datagram represents Reassembly
8 TTL Hop limit Routers
8 Protocol Transport protocol used for this packet (UDP, TCP) Acknowledgement
16 Checksum Checksum of the header All
32 SA Source address All
32 DA Destination address All
? Options Future features -
? Padding Fills remaining space -
IP Datagram Routing
When an IP-enabled router receives a datagram, it:
– Receives a datagram through one of its ports
– Deletes the datagram, if the hop count (TTL in IPv4, Hop limit
in IPv6) has a non-positive value
– If the hop count is positive, it is decremented and processing
continues
– Determine the destination address’ network address
– Uses the destination network address to find an entry in the
routing table
– Uses the routing table entry to determine to which port the
datagram should be sent
– Sends the datagram through the correct port
IPv6 Datagrams