Sie sind auf Seite 1von 58

Addressing

The ‘What’ and ‘Where’ of


Communication
Addressing
 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
Addressing 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
Addressing

 Addressing deals with how to define an


entity’s 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?
Addresses
 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
IP Addressing

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

 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
IP Addresses
 Even though there are 4 billion possible
IP addresses, they are running out
 Here’s 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)
Non-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 wasn’t a problem
Address Classes
 When private organizations started
joining the Internet, the needs became
obvious
– Some (fewer) networks have multitudes of
computers (thousands)
• e.g. The @Home network
– Some (many) networks have very few
computers (a few hundred or less)
• e.g. The Windsor Police Department
Address 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
IP Address Classes
Class A:
bit index: 0 1-7 8-31
0 network host (machine)

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

 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
Multi-homed Machines
192.168.0.1 192.168.0.2 192.168.0.3
M M
192.168.0.8 192.168.0.4M
Class C private network
M
M M M M M M
192.168.0.7M 192.168.0.6 192.168.0.5

172.16.3.16 172.16.3.15 172.16.3.14


172.16.3.17M
M M 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


Multi-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.16 172.16.3.15 172.16.3.14


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


Routers
 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
Network 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
Subnet 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)
Using 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
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

Network N2 (Class C) Network N3 (Class A)


Address: 194.201.61.0 Address: 24.0.0.0
IPv6

Next Generation Addressing


in TCP/IP Networks
IPv6
 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:

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

header extension headers data


IPv6 Header Format
0 4 12 31

version traffic class flow label

32 48 56 63

payload length next header hop limit

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

0 1500 3000 4500 6000 6800


Logical Data Chunk

Length:1500 Length:1500 Length:1500 Length:1500 Length:800


Offset:0 Offset:1500 Offset:3000 Offset:4500 Offset:6000
Packet 1 Packet 2 Packet 3 Packet 4 P5
Fragmentation & 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
Fragmentation & Reassembly

Length:1500 Length:1500 Length:1500 Length:1500 Length:800


Offset:0 Offset:1500 Offset:3000 Offset:4500 Offset:6000
Packet 1 Packet 2 Packet 3 Packet 4 P5

Packet 1 Packet 2 P3a P3b Packet 4 P5

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

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
Header 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
 For More materials,previous papers,text
books & many more visit
www.jntuworld.com

Das könnte Ihnen auch gefallen