Fundamentals of Computer Networks ECE 478/578

advertisement
Fundamentals of Computer Networks
ECE 478/578
Lecture #14: InternetWorking
Instructor: Loukas Lazos
Dept of Electrical and Computer Engineering
University of Arizona
Intrernetworking
An arbitrary collection of networks interconnected to provide host-tohost packet delivery
Router
Host
2
The Internet Protocol (IP)
A common protocol that bridges the heterogeneity between hosts of
different types of networks.
E.g. Interconnection of hosts H1 and H8
3
“Best Effort” Networking
IP is a datagram connectionless protocol
Does not provide any type of guarantee about packet delivery
Out of order packet deliveries, duplicate packets, no error correction
If packets are lost, IP does not try to recover or retransmit (though
lower or higher layer functionalities may do so)
IPoAC (IP over Avian Carriers) RFC 1149. Use pigeons to carry IP
packets
IPoAC has been implemented successfully carrying 9 packets with
55% packet loss, and delay from 3,000-6,000 sec.
4
IPV4 Packet Format
4-bit
8-bit
4-bit
Version Header Type of Service
Length (TOS)
3-bit
Flags
16-bit Identification
8-bit Time to
Live (TTL)
16-bit Total Length (Bytes)
8-bit Protocol
13-bit Fragment Offset
16-bit Header Checksum
32-bit Source IP Address
32-bit Destination IP Address
Options (if any)
Payload
5
IP Packet Header Fields(1)
Version number (4 bits)
Indicates the version of the IP protocol
Necessary to know what other fields to expect
Typically “4” (for IPv4), and sometimes “6” (for IPv6)
Header length (4 bits)
Number of 32-bit words in the header
Typically “5” (for a 20-byte IPv4 header)
Can be more when “IP options” are used
Type-of-Service (8 bits)
Allow packets to be treated differently based on needs
E.g., low delay for audio, high bandwidth for bulk transfer
6
IP Packet Header Fields(2)
Total length (16 bits)
Number of bytes in the packet
Maximum size is 63,535 bytes (216 -1)
… though underlying links may impose harder limits
Fragmentation information (32 bits)
Packet identifier, flags, and fragment offset
Supports dividing a large IP packet into fragments
… in case a link cannot handle a large IP packet
Time-To-Live (8 bits)
Used to identify packets stuck in forwarding loops
… and eventually discard them from the network
7
Time To Live (TTL) Field
Potential robustness problem
Forwarding loops can cause packets to cycle forever
Confusing if the packet arrives much later
Time-to-live field in packet header
TTL field decremented by each router on the path
Packet is discarded when TTL field reaches 0…
…and “time exceeded” message is sent to the source
8
Protocol Field
Protocol (8 bits)
Identifies the higher-level protocol
E.g., “6” for the Transmission Control Protocol (TCP)
E.g., “17” for the User Datagram Protocol (UDP)
Important for demultiplexing at receiving host
Indicates what kind of header to expect next
protocol=6
protocol=17
IP header
IP header
TCP header
UDP header
9
Checksum Field
• Checksum (16 bits)
– Sum of all 16-bit words in the IP packet header
– If any bits of the header are corrupted in transit
– … the checksum won’t match at receiving host
– Receiving host discards corrupted packets
• Sending host will retransmit the packet, if needed
134
+ 212
134
+ 216
= 346
= 350
Mismatch!10
10
IP Addresses Field
Two IP addresses
Source IP address (32 bits)
Destination IP address (32 bits)
Destination address
Unique identifier for the receiving host
Allows each node to make forwarding decisions
Source address
Unique identifier for the sending host
Recipient can decide whether to accept packet
Enables recipient to send a reply back to source
11
Fragmentation and Reassembly
Various networks accept different packet size
E.g.
Each fragment is itself a self-contained IP datagram transmitted over
various physical networks
Each IP datagram is re-encapsulated for each physical networks
12
Header Fields
13
IPV4 Addresses
A unique 32-bit number
Identifies an interface (on a host, on a router, …)
Represented in dotted-quad notation
12
34
158
5
00001100 00100010 10011110 00000101
14
A Flat Architecture
Suppose hosts had arbitrary addresses
Then every router would need a lot of information
…to know how to direct packets toward the host
1.2.3.4
5.6.7.8
host
host
2.4.6.8
...
1.2.3.5
host
host
5.6.7.9
host
2.4.6.9
...
host
LAN 2
LAN 1
router
WAN
router
WAN
router
1.2.3.4
1.2.3.5
forwarding table
15
IP Addressing
Routing protocols need addresses to find the destinations
IP addresses are hierarchical (Why?)
Network part
Host part
Class-based Addressing
16
Class A:
IP Address Classes
Initial byte: 0 – 127, 126 Nets; (0, 127 reserved); 16,777,214 hosts per network
MIT IP: 18.9.22.169
Class B:
Initial byte: 128 – 191; 16,384 networks; 65,532 hosts per network
Arizona IP: 129.196.134.37
Class C:
Initial byte: 192 – 223; 2,097,152 networks; 254 hosts per network
Your home IP: 192.168.1.67
17
Think of Postal Addresses
Mail Addresses
Zip code: 85721
Street: E. Speedway Blvd.
Building on street: 1230
Room in building: 357
Name of occupant: John Smith
Delivering mail
Deliver letter to the post office in the zip code
Assign letter to mailman covering the street
Drop letter into mailbox for the building/room
Give letter to the appropriate person
18
Hierarchy in IP Addresses
Divided into network and host portions (left and right)
12.34.158.0/24 is a 24-bit prefix with 28 addresses
12
34
158
5
00001100 00100010 10011110 00000101
Network (24 bits)
Host (8 bits)
19
Subnetting
20
An Example of Subnetting
21
Easier to Route Packets
Number related hosts from a common subnet
1.2.3.0/24 on the left LAN
5.6.7.0/24 on the right LAN
1.2.3.4
1.2.3.7
host
host
1.2.3.156
...
5.6.7.8
host
host
5.6.7.9
host
5.6.7.212
...
host
LAN 2
LAN 1
router
WAN
router
WAN
router
1.2.3.0/24
5.6.7.0/24
forwarding table
22
22
Easy to Add New Hosts
No need to update the routers
E.g., adding a new host 5.6.7.213 on the right
Doesn’t require adding a new forwarding entry
1.2.3.4
1.2.3.7
host
host
1.2.3.156
...
5.6.7.8
host
host
5.6.7.9
host
5.6.7.212
...
host
LAN 2
LAN 1
router
WAN
router
WAN
router
host
5.6.7.213
1.2.3.0/24
5.6.7.0/24
forwarding table
23
23
Classless Inter-Domain Routing (CIDR)
Use two 32-bit numbers to represent a network.
Network number = IP address + Mask
IP Address : 12.4.0.0
Address
Mask
IP Mask: 255.254.0.0
00001100 00000100 00000000 00000000
11111111 11111110 00000000 00000000
Network Prefix
Written as 12.4.0.0/15
for hosts
CIDR: Hierarchal Address Allocation
Prefixes are key to Internet scalability
Address allocated in contiguous chunks (prefixes)
Routing protocols and packet forwarding based on prefixes
Today, routing tables contain ~150,000-200,000 prefixes
12.0.0.0/16
12.1.0.0/16
12.2.0.0/16
12.3.0.0/16
12.0.0.0/8
:
:
:
12.254.0.0/16
12.3.0.0/24
12.3.1.0/24
:
:
12.3.254.0/24
12.253.0.0/19
12.253.32.0/19
12.253.64.0/19
12.253.96.0/19
12.253.128.0/19
12.253.160.0/19
:
:
:
Obtaining a Block of Addresses
Separation of control
Prefix: assigned to an institution
Addresses: assigned by the institution to their nodes
Who assigns prefixes?
Internet Corporation for Assigned Names and Numbers
Allocates large address blocks to Regional Internet Registries
Regional Internet Registries (RIRs)
E.g., ARIN (American Registry for Internet Numbers)
Allocates address blocks within their regions
Allocated to Internet Service Providers and large institutions
Internet Service Providers (ISPs)
Allocate address blocks to their customers
Who may, in turn, allocate to their customers…
Are 32-bit Addresses Enough?
Not all that many unique addresses
232 = 4,294,967,296 (just over four billion)
Plus, some are reserved for special purposes
And, addresses are allocated in larger blocks
Many devices need IP addresses
Computers, PDAs, routers, tanks, toasters, …
Long-term solution: a larger address space
IPv6 has 128-bit addresses (2128 = 3.403 × 1038)
Short-term solutions: limping along with IPv4
Private addresses
Network address translation (NAT)
Dynamically-assigned addresses (DHCP)
Hard Policy Questions
How much address space per geographic region?
Equal amount per country?
Proportional to the population?
What about addresses already allocated?
Address space portability
Keep your address block when you change providers?
Pro: avoid having to renumber your equipment
Con: reduces the effectiveness of address aggregation
Keeping the address registries up to date
What about mergers and acquisitions?
Delegation of address blocks to customers?
As a result, the registries are horribly out of date
Download