Addressing

dargspurΔίκτυα και Επικοινωνίες

27 Οκτ 2013 (πριν από 3 χρόνια και 11 μήνες)

198 εμφανίσεις

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

0

0

bit index:

1
-
7

network

8
-
31

host (machine)

Class A:

Class B:

0

0

2
-
15

network

16
-
31

host

1

1

bit index:

Class C:

0

1

3
-
23

network

24
-
31

host

1

1

bit index:

0

2

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

0 1 2 3

1 1 1 0

bit index:

Multicast group address

4
-
31

Class D:

Class E:

0 1 2 3 4

5
-
31

Reserved for future use

1 1 1 1 0

bit index:


These addresses are used to represent multicast groups


Discussed later


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

Class B private network

Class C private network

172.16.0.1

172.16.0.2

172.16.0.3

172.16.0.4

172.16.3.14

172.16.3.15

172.16.3.16

172.16.3.17

172.16.3.18

192.168.0.1

192.168.0.2

192.168.0.3

192.168.0.4

192.168.0.5

192.168.0.6

192.168.0.7

192.168.0.8

M

M

M

M

M

M

M

M

M

M

M

M

M

M

M

M

Multi
-
homed Machines

Class B private network

Class C private network

172.16.0.1

172.16.0.2

172.16.0.3

172.16.0.4

172.16.3.14

172.16.3.15

172.16.3.16

172.16.3.17

172.16.3.18

192.168.0.1

192.168.0.2

192.168.0.3

192.168.0.4

192.168.0.5

192.168.0.6

192.168.0.7

192.168.0.8

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

Network N1 (Class B)

Address: 137.207.0.0

Network N2 (Class C)

Address: 194.201.61.0

Network N3 (Class A)

Address: 24.0.0.0

Internet

137.207.0.0

P1

194.201.61.0

P2

24.0.0.0

P3

*

P4

P4

P1

P2

P3

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

header

extension headers

data

optional

IPv6 Header Format

version

traffic class

flow label

0 4 12 31

payload length

hop limit

next header

32 48 56 63

source address

destination address

64 96 128

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
.
2
9*10
9

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
*10
14

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

Logical Data Chunk

Packet 1

Packet 2

Packet 3

Packet 4

P5

0 1500 3000 4500 6000 6800

Offset:0

Offset:1500

Offset:3000

Offset:4500

Offset:6000

Length:1500

Length:1500

Length:1500

Length:1500

Length:800

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

Packet 1

Packet 2

Packet 3

Packet 4

P5

Offset:0

Offset:1500

Offset:3000

Offset:4500

Offset:6000

Length:1500

Length:1500

Length:1500

Length:1500

Length:800

Packet 1

Packet 2

P3a

Packet 4

P5

Offset:3000

Length:1000

P3b

Offset:4000

Length:500

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