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