Title: Addressing
1Addressing
- The What and Where of Communication
2Addressing
- Addressing is necessary for any communication
- To talk Appearance, name,
- To call Telephone numbers
- To mail Postal address
- To visit Postal address directions
- To E-Mail E-Mail addresses
- To instant message ICQ, AIM ID, etc.
- These addresses allow us to uniquely identify
the entity with which we wish to communicate
3Addressing a la Shoch
- Name/Identifier What
- Names normally identify the entity
- If an entity moves, the name/identity will remain
the same - Address Where
- Addresses identify the location of the entity
- If an entity moves, the address will change
- Route How to get there
- Routes identify the path to get to an entity
- If an entity moves, the route will change
4Addressing
- Addressing deals with how to define an entitys
location (uniquely) - Addressing is necessary for message delivery
- An address is the start and end point for the
route - However, routing is another subject
- Where do we want the message to go?
5Addresses
- We have already seen MAC addresses (for Ethernet
and some other LANs) - e.g. 02-60-8C-08-E1-0C
- 6 octet address
- Globally unique
- Defined statically by the hardware manufacturer
- Most people are familiar with the IP addresses
used by TCP/IP networks - e.g. 137.207.32.2
- 4 octet address
- Not necessarily globally unique
- Defined dynamically by DHCP servers or negotiated
by the operating system
6IP Addressing
7IP 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
8IP 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,
9IP Addresses
- Any computer connected to a TCP/IP network (e.g.
the Internet) must have an IP address - Further, any network interface card (NIC) using
TCP/IP to access an network (e.g. the Internet)
must have a different IP address
10IP Addresses
- Even though there are 4 billion possible IP
addresses, they are running out - Heres why
- Some of the bits are dedicated to header
information (discussed later) - ½ the addresses for each lost bit
- Addresses are categorized, and some of the
categories are running out of addresses (while
others are not)
11Non-Classed Addresses
- Part of the address represented the network the
computer resided on, and part represented the
computer itself - Network 7 bits (up to 128 networks)
- Computer 24 bits (up to 1.6 million computers
on each network) - Since there were very few networks on ARPANET
originally, this wasnt a problem
12Address Classes
- When private organizations started joining the
Internet, the needs became obvious - Some (fewer) networks have multitudes of
computers (thousands) - e.g. The _at_Home network
- Some (many) networks have very few computers (a
few hundred or less) - e.g. The Windsor Police Department
13Address Classes
- Quickly, the addresses were separated into 3
classes (plus room for more classes if needed) - Class A Fewer networks, many nodes
- Class B Medium networks, medium nodes
- Class C Many networks, fewer nodes
14IP Address Classes
Class A
0
bit index
1-7
8-31
0
network
host (machine)
Class B
bit index
0
2-15
16-31
1
0
network
host
1
Class C
bit index
0
3-23
24-31
1
2
1
network
host
1
0
15IP 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
_at_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
16IP 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 -gt Class B
- 24.0.0.1 (_at_Home DHCP server)
- 24 -gt Class A
17Other IP Address Classes
Class D
0 1 2 3
bit index
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
Reserved for future use
1 1 1 1 0
- These addresses were left open to be used and
divided into classes as needed
18Special 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) - ltall 0s (binary)gtlthostIDgt Used to send messages
to some machine on this network - 255.255.255.255 Used to send broadcast messages
across this machines network - ltnetIDgtltall 1s (binary)gt 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)
19IP Addressing Comments
- In IP addressing
- 0s usually represent this
- 1s usually represent all
- Broadcasting, although discussed here in terms of
addressing, will be discussed further
20Loopback
- 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
21Internal 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
22Multi-homed Machines
- There is no restriction preventing machines from
participating in multiple networks - A machine could have multiple NICs
- Each NIC would have its own MAC address
- On TCP/IP networks, each of these NICs would be
given a different IP address
23Multi-homed Machines
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.8
192.168.0.4
Class C private network
M
M
M
M
M
M
M
192.168.0.7
M
192.168.0.6
192.168.0.5
172.16.3.14
172.16.3.15
172.16.3.16
172.16.3.17
M
M
172.16.3.18
Class B private network
172.16.0.1
172.16.0.2
172.16.0.3
172.16.0.4
24Multi-homed Machines
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.8
192.168.0.4
Class C private network
192.168.0.7
192.168.0.6
192.168.0.5
172.16.3.14
172.16.3.15
172.16.3.16
172.16.3.17
172.16.3.18
Class B private network
172.16.0.1
172.16.0.2
172.16.0.3
172.16.0.4
25Routers
- Routers are multi-homed machines
- They have a number of network ports, each of
which represents a different path - Routers use tables that relate destinations to
network paths - Internet routers relate destination network
addresses with one of their network ports - When a datagram arrives at a router
- Its destination address is used to determine the
network address - The network address is used to look up the
destination port in the routing table
26Network Addresses
- An IP address can be used to calculate the
address of the network - The machine address is passed through a filter
(called a subnet filter) - This filter extracts the bits of the address that
represent the network and sets the bits that
represent the machine to zero - The filter determines which part of the address
represent the network address, by using the
subnet mask
27Subnet Mask
- The subnet mask is a binary number, that has 0s
in the machine portion of the address, and 1s in
the network portion - Most networks of each type use a constant subnet
mask - Class A 255.0.0.0
- (Binary 11111111000000000000000000000000)
- Class B 255.255.0.0
- (Binary 11111111111111110000000000000000)
- Class C 255.255.255.0
- (Binary 11111111111111111111111100000000)
28Using Subnet Masks
- 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
29Routing 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
P4
P2
P3
Network N2 (Class C) Address 194.201.61.0
Network N3 (Class A) Address 24.0.0.0
30IPv6
- Next Generation Addressing in TCP/IP Networks
31IPv6
- Due to the limited nature of existing IP
addressing (IPv4), a new version of IP addressing
was developed - This new scheme uses 16 octets for addresses,
instead of 4 octets - Written using hex notation
- 3A57000000009CD53412912D67381928
32IPv6 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
33IPv6 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
34IPv6 Datagram Format
optional
header
extension headers
data
35IPv6 Header Format
0 4 12
31
version
traffic class
flow label
32 48
56 63
payload length
hop limit
next header
64 96
128
source address
destination address
36IPv6 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. Bobs Internet Shack vs. the Telus Network
37IPv6 Integration
- NAT (network address translators) provide one
example of such a temporary solution - NATs provide three benefits
- NATs provide IP masquerading
- Messages using these addresses pass through a
network address translator (NAT) to be
transformed into external IPs - 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 - NATs provide schemes to allow networks to use
either IPv4 or IPv6 - Addresses would be converted as they pass through
a NAT
38IPv6 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
39Special IPv6 Addresses
- 00000000 Used to indicate that this
machine is without an assigned IP - Used during bootstrapping (e.g. requesting an IP
from a DHCP server) - 00000001 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
40IPX
- Internetwork Packet Exchange Addresses
41IPX
- 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
42IPX 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
43IPX Addresses
- The network portion of an IPX address is 4 octets
(32 bits) - This allows for 4.29109 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.811014 machines on each
network (281,475 trillion)
44IPX 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.
45IPX 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
machines MAC address as the machine portion - This makes auto-configuration (dynamic IPX
address assignment) easier/faster
46IPX Addresses
- If IPX has been around since the NetWare days,
why dont we use it for the Internet, instead of
IP? - Good question! Why dont 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
47Fragmentation 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 packets data can always be
determined, all that is necessary is to use the
offset of the start of the packets data in the
larger data chunk
48Fragmentation Reassembly
0 1500 3000 4500
6000 6800
Logical Data Chunk
Length1500
Length1500
Length1500
Length1500
Length800
Offset0
Offset1500
Offset3000
Offset4500
Offset6000
Packet 1
Packet 2
Packet 3
Packet 4
P5
49Fragmentation Reassembly
- Why do we use the data offset, and not just a
sequence of numbers to determine packet order? - Sometimes, packets can be fragmented at one
location, and must be re-fragmented at another
location (such as while passing through a network
incompatible with larger frame sizes) - These situations would require renumbering of all
packets in the sequence, which is not always
possible
50Fragmentation Reassembly
Length1500
Length1500
Length1500
Length1500
Length800
Offset0
Offset1500
Offset3000
Offset4500
Offset6000
Packet 1
Packet 2
Packet 3
Packet 4
P5
Packet 1
Packet 2
P3a
Packet 4
P5
P3b
Length1000
Length500
Offset3000
Offset4000
51Fragmentation 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
52Fragmentation 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 networks 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
53IP 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
54IP 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 -
55IP 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
56IPv6 Datagrams
bits Name Description Used For
4 Version Version (equal to 6) All
8 TOS Type of Service (status info) All
20 Flow label Future features -
16 Length Length of data in the datagram (header not included) All
8 Hop limit Hop limit (decremented to zero) Routers
16 SA Source address All
16 DA Destination address All
? H2H Hop to hop header Routing
? SRH Source routing header Routing
? FH Fragment header Reassembly
? E2E End to end options Reassembly
57Header Checksums
- Networks sometimes result in corrupt data
- Information in the header is equally susceptible
to this corruption - However, header information, when corrupt, can
cause more serious difficulties - For example, the destination address may have a
few bits changed, or the hop count, etc. - Corruption like this, is not always easy to
detect and fix - Corrupt data (determined by another checksum) can
be fixed by re-issuing the datagram - Header checksums are used to ease identification
of header corruption