* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Computer Networks (CS 778)
Survey
Document related concepts
Net neutrality law wikipedia , lookup
Deep packet inspection wikipedia , lookup
Point-to-Point Protocol over Ethernet wikipedia , lookup
Distributed firewall wikipedia , lookup
Internet protocol suite wikipedia , lookup
Network tap wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
Computer network wikipedia , lookup
Airborne Networking wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Transcript
Computer Networks (CS 778) Chapter 4, Internetworking This chapter examines issues of connecting networks together. We have considered building networks using pt-to-pt links, shared media and LAN bridges. Now we consider interconnecting different networks. There are two important problems that must be addressed. Heterogeneity Users of one type of network want to communicate with users of another type of network Scaling: The Internet doubles in size every year. Possibly having to go through several other types of networks in the process. The challenge of heterogeneity is to provide a useful and fairly predictable hostto-host service over many different networks. This causes the routing problem: How can we find efficient loop - free paths through a network with millions of nodes? Also there is a unicast and multicast addressing problem - providing suitable identifiers for all nodes. We consider a series of approaches to interconnecting networks. We trace the evolution of the TCP/IP Internet. Simple Internet Protocol (IP) How do we go beyond the (scalability) limitations of bridged networks? (I.e., How do we build inter-networks?) The terminology we will use is: H1 Network = directly connected or bridged network (AKA: physical network) Internetwork = interconnected collection of such networks (AKA: logical network or network of networks) H8 TCP R1 IP IP ETH R2 ETH IP FDDI FDDI TCP R3 IP PPP PPP IP ETH ETH Network 1 (Ethernet) Protocol layers used in connecting these networks H7 H2 H1 Routers (aka Gateways) = nodes interconnecting networks (e.g., R1, R2, R3) H3 Network 4 (point-to-point) Network 2 (Ethernet) IP key tool for scalable, heterogeneous internetworks (originally: Kahn-Cerf Protocol after its inventors) R1 R2 H4 Network 3 (FDDI) H5 R3 H6 H8 IP Service Model (host-host services over an internet) IP Service Model can’t guarantee packet delivery within a deadline since the underlying network technologies can arbitrarily delay packets. IP philosophy: Be undemanding so any technology in Internet can provide services IP Service Model has two parts: An addressing scheme (provides a way to identify all hosts in the internetwork) A best effort datagram service (connectionless) for data delivery 0 4 8 16 19 31 packets can be lost TOS Length Version HLen packets can be delivered out of order packets can be delivered in duplicate Ident Flags Offset packets can experience long delays TTL Protocol Checksum Datagram format SourceAddr Fields align on 32-bit boundaries DestinationAddr Version (specifies which IP version, e.g., IPv4) Pad Options (variable) (variable) Hlen (length of header in 32-bit words (5 or 6) Data TOS (type of service – for requesting some QoS) Length (length in bytes – max = 216 = 65,535) The 2nd word is for fragmentation-reassembly TTL (time-to-live: A hop-count limit used to stop looping packets) Protocol (demux key; id’s next prot); Checksum (1s-comp sum of 16-bit-header-words) Addrs (IP defines its own global address space (indep of physical nets); Options (not used) Fragmentation and Reassembly Each underlying network has its own max transmission unit (MTU) size e.g., Ethernet: 1500B; FDDI: 4500B; Wireless (802.11): 2312B, … Most are shorter than the 65,535B of an IP datagram. Two choices: Make maximum IP datagram size small enough to fit in any MTU or provide Fragmentation & Reassembly. (latter chosen – since new protocols always possible) When a host sends an IP datagram it can be any size (up to 65,535B). Strategy fragment when necessary (when MTU size is less than Datagram size) try to avoid fragmentation at source host (Host chooses a datagram size which fits the MTU of the first network protocol) re-fragmentation is possible (at any router– when In-MTU > Out-MTU) Each fragment is treated as a self-contained datagrams use AAL-CS-PDU (not ATM-cells) for ATM delay reassembly until destination host if there is a missing fragment, destination gives up on reassembly Fragmentation &Reassembly H1 R1 ETH IP (1400) Start of header Ident= x 0 Offset= 0 Rest of header R2 FDDI IP (1400) R3 H8 PPP IP (512) ETH IP (512) PPP IP (512) ETH IP (512) PPP IP (376) ETH IP (376) 1400 data bytes Assume MTU= 1500B Ethernet; 4500 FDDI; 532 for PPP. Start of header Ident= x 1 Offset= 0 Rest of header 512 data bytes Start of header Ident= x 1 Offset= 512 Rest of header 512 data bytes Start of header Ident= x 0 Offset= 1024 Rest of header 376 data bytes H1 sends 1420B datagram (20B header + 1400B data) to H8. Datagram goes thru 1st Ethernet & FDDI without fragmentation. But is fragmented into 3 datagrams for the PPP network. each fragment is a self-contained datagram indep of others, each IP datagram is re-encapsulated for each physical net. The headers: Flag=1 means there are more fragments to follow. Offset = how far into packet the 1st fragment byte is. Addressing example Application (eg, HTTP) data becomes TCP payload (TCP discussed in cpt 5, for now think of it as a process-to-process transport protocol) Header contains source and destination port numbers, since TCP transports data to processes at hosts, not just to hosts. Header contains: source and destination IP addresses; Transport layer protocol type Header contains: source & destination physical addresses and Ethernet network protocol type Header HTTP Request TCP Header IP Header Frame ChkSum Globally unique 32-bit IP Addrs (4 3-digit decimals separated by .’s) IP addresses are hierarchical (which belong to interfaces, not hosts) Network part (identifies the network; Routers have interfaces on multiple nets) Host part (identifies each host uniquely within the network) Different layouts for different size networks (classical scheme: class addresses) Class A (for large WANs): ½ of all IP addrs (126 nets (0, 127 reserved), ~2 billion hosts Class B (for Campuses): ¼ of all addrs. Class C (for LANs) 1/8 of all addresses. Class D (for specifying multicast grp) Class E (for experimental or future) Bit position: Class A 0 1 2 3 0 1 Class B 8 16 Net ID Host ID 7 1 0 31 24 Net ID Host ID 14 Class C 1 1 0 16 Net ID 21 Class D 1 1 1 0 Class E 1 1 1 1 Multicast address Reserved for experiments Host ID 8 Datagram Forwarding Every datagram contains destination’s address If destination is directly connected to source’s network, it is forwarded directly If not, forwarded to nexthop router, else forward to default router forwarding table maps network number into next hop each host has a default router each router maintains a forwarding table Network 1 (Ethernet) H7 Example (R2 forwarding table): Network Num. Next Hop 1 R3 2 R1 3 interface 1 4 interface 0 H2 H1 R3 H8 H3 Network 4 (point-to-point) Network 2 (Ethernet) R1 Interface 0 R2 Interface 1 H4 Network 3 (FDDI) Roughly speaking: Device Level Forwards what? Bridge Switch Router H5 link frames (layer-2 device) network packets (layer-2 device) internet datagrams (layer-3 device) H6 How is direct forwarding done?? ARP Address Translation & Address Resolution Protocol (ARP) We have discussed how to get IP datagrams to the right physical network. How does datagrams, once on network, get to right node on that network (host/router)? Datagrams have IP adrs. Physical hardware interfaces have other addrs. (eg, 48-bit Ethernet adr) In a few nets, physical address is encoded as host-part of IP addr (only possible if format is right). In most networks, each host/router maintains a table of IP to physical address bindings called ARP_table or ARP-cache (IP_Addr, Physical_Link_Addr). One way: Centrally created by a system administrator then copied to each host/router? Better way: Each host/router dynamically builds table contents using the network. Mapping changes over time (new Ethernet card or ?), so all entries time-out (eg, ~15 min) The protocol to build a translation table is called Address Resolution Protocol or ARP If an IP address is not in the ARP-cache, host/router broadcast an ARP query. Has source’s IP and link_adr, so every host/router can enter it (& refresh timeout). Target machine responds with its physical address ARP Request Format HardwareType: type of physical network (e.g., Ethernet) ProtocolType: type of higher layer protocol (e.g., IP) HLEN & PLEN: length of physical and protocol addresses Operation: request or response Source/Target-Physical/Protocol addresses Destination will update sender’s ARP-cache entry (even if it already has an entry for sender) since sender is likely to be sending a packet soon to which it may need to send and ACK (and timeout should be avoided as far as possible). If a node is not the destination and it does not have a sender entry, it does not enter one. (no reason to clutter cache 0 8 16 31 Since there is no reason to Hardware type = 1 ProtocolT ype = 0x0800 think a packet is going to be sent from the sender any HLen = 48 PLen = 32 Operation time soon.) SourceHardwareAddr (bytes 0 – 3) SourceHardwareAddr (bytes 4 – 5) SourceProtocolAddr (bytes 0 – 1) SourceProtocolAddr (bytes 2 – 3) TargetHardwareAddr (bytes 0 – 1) TargetHardwareAddr (bytes 2 – 5) TargetProtocolAddr (bytes 0 – 3) Request Format continued ARP HardwareType: Physical net type 0 ProtocolType: Higher layer protocol type (eg IP) 8 16 31 Hardware type = 1 ProtocolType = 0x0800 HLen = 48 PLen = 32 Operation SourceHardwareAddr (bytes 0– 3) SourceHardwareAddr (bytes 4– 5) SourceProtocolAddr (bytes 0– 1) SourceProtocolAddr (bytes 2– 3) TargetHardwareAddr (bytes 0– 1) TargetHardwareAddr (bytes 2– 5) TargetProtocolAddr (bytes 0– 3) HLEN & PLEN: Hardware/Protocol adr lengths Operation: request or response Source/Target-Physical/Protocol addresses H1 H2 150.100.76.20 150.100.76.21 H3 H4 150.100.76.22 150.100.76.23 ARP request (what is the MAC address of 150.100.76.22?) H1 H2 H3 H4 ARP response (my MAC address is 08-00-5A-C5-3B-94) IP-over-ATM and ATMARP R IP is the dominant internetworking layer, while 12.0.0.3 10.0.0.2 ATM is an economical high-speed backbone. H1 Great interest in overlaying IP on top of ATM. 10.0.0.1 The only problem in using ARP as defined is ATM net that there is no broadcast capability LIS10 LIS12 Three IP-over-ATM approaches 12.0.0.5 (CLIP, LANE, NHRP) H2 CLIP (Classical IP over ATM; RFC 2255) (Need efficient broadcast) Uses the LIS (Logical IP Subnet) abstraction (an ATM ARP Server resides on each LIS) ATM ARP server builds DB of (IP-addr, ATM-addr) pairs for its LIS; hosts ask for IP-addr) Allows a large ATM net to be subdivided into smaller nets (so ATM ARP service is efficient) Nodes on the same subnet have the same IP network-address and send datagrams directly. Nodes on different subnets have different IP network-address send datagrams through a router. IP Protocol stack change using LANE MAC IP LANE AAL5 ATM LANE LANE (LAN Emulation enables a host to resolve ATM address from MAC address) LEC: LAN Emulation Client (host, bridge or router) LECS: LAN Emulation and Configuration Server (New LEC finds LECS: gets LANE info, frame size, LES address) LES: LAN Emulation Server (New LEC sends MAC & ATM address to LES. LES returns the ATM address of the BUS to LEC) BUS: Broadcast and Unknown Server (maintains pt-multipt Virtual Connection to all clients for broadcast purposes) LEC LES LEC ATM network BUS LECS LEC LEC NHRP (NextHop Resolution Protocol Allows host/router to determine the dest ATM address from an IP address in direct manner. Main objective is to find shortest path through all LISs. Recall, CLIP ATM ARP severs resolves only ATM address in same LIS (requires router between LISs). Bascially, in NHRP, an ATM address which is outside the source’s LIS is resolved all the way to the destination, avoiding CLIP packet forwarding between adjacent LISs. NHRP uses a client-server approach (NHC-NHS pair replaces ATM ARP Servers): Next-Hop Clients (NHC) responsible for initiating NHRP resolution, in each LIS Next-Hop Servers (NHS) responsible for answering NHRP in each LIS NHCs & NHSs maintiain addr resolution cache or table. NHRP and CLIP Compared: LIS1 LIS2 Shortcut path (NHRP) ATM network LIS3 LIS4 LIS5 LIS6 Source (S) Destination (D) Router Router Router Router Router Default path (CLIP) More like the virtual Circuit approach (set up a path all the way thru maze of LISs first) IP basic mechanisms for dealing with heterogeneity and scale (summary) Heterogeneity: IP defines a best effort service model making minimal assumptions about the underlying networks (which is based on unreliable datagrams) A common packet format (fragmentation/reassemble used to make it work with different MTUs.) A global address space identifying all hosts (ARP makes it work with different underlying physical addresses) Scale: IP uses hierarchical aggregation to reduce the amount of information needed to forward packets. IP addresses are partitioned into network and host components Packets are first routed to the destination network Then delivered to the correct host on that network. DHCP (Dynamic Host Config Protocol) IP addrs cannot be configured once into a NIC by manufacturer (as in Ethernet) IP addresses need to be reconfigurable Also hosts need a default router IP address to send outside their network. Most O.S.s allow manual configuration of IP info on a host (by user or system admin) Drawbacks to manual configuration: host is not reachable until it is configured, error-prone (maintain uniqueness), volatility. Each administrative domain has one DHCP server providing configuration info to hosts. Instead of sys admin walking around to each host, the DHCP server stores configuration info from which it is automatically retrieved at host boot or connect time using one of two models: Sys Adm puts host config info (IP addr, default router..) in DHCP-tbl indexed on, eg, Ethernet-addr). DHCP server hands out info from a range of configurations on demand (all with same network addr) Would defeat “automatic” purpose if each host had to be preconfigured with DHCP-server adr. DHCP-server discovery: (booted/attached host broadcasts DHCPDISCOVER (to 255.255.255.255) Routers don’t forward (If there is 1 DHCP server for multiple domains – a relay agent router forwards to server DHCP-server uni-casts a reply to host with IP address IP addresses are leased from DHCP-Sever (must be renewed before lease expires). ICMP (Internet Control Message Protocol) IP may drop datagrams, but a message (NACK) gets sent to host/router on failure (by ICMP). Destination is unreachable Reassembly failed TTL timed out IP header checksum failed ICMP also defines control messages (router to host), e.g., ICMP-redirect (tells source host that there is a better route to destination) Used when there is more than one router in network (eg, R1 default and R2 also) When R1 gets datagram for which it knows R2 would be better choice, Sends ICMP-redirect back to sending host, instructing to use R2 in future for that destination. Host then adds this info to its forwarding table. VPN (Virtual Private Network) For situations where controlled connectivity is required (security…). Like a private network, but made available virtually over a public net. IP tunnel implements a VPN (with encryption, provides a secure pipe) In IP tunneling, virtual link is created at entrance router (R1) and given virtual interface number (which spccifies R2’s IP-address) Interface 0 Interface 1 Virtual interface 0 R1 gets datagram for R2 (dest=2.x), adds IP header with dest = 10.0.0.1, sends it out default so arrives at R2 (all datagrams for R2 go to default). R2 gets datagram, strips header, Forwards to destination on Network 2 Provides: secure private network virtual net of same capabilities (Mbone uses VPNs between multicast servers) R1 Forwarding Table . Network Number Next Hop 1 Interface 0 2 Virtual interface 0 Default Interface 1 Routing Forwarding vs Routing forwarding: selecting output port based on dest address and forwarding table Rows contain mapping from net# to Output interface or MAC info. Structure to optimize for net# lookup (may be hardware implmented), e.g., Network # NextHop 10 171.69.245.10 routing: process by which the forwarding table is built (using routing table) Table built by routing alg as precursor to forwarding table (rows = Net#, NextHop..) Table can be in same data structure as forwarding table, but that is rare. Structured to optimize for calculating changes in topology. (rarely impl in hdwre) Network # Interface MAC Address 10 if0 8:0:2b:e4:b1:2 Routing Protocol Problem: Find lowest cost path between two nodes Intradomain routing protocols first A (interior gateway protocols or IGPs) Domain: nodes under same admin control 3 Interdomain routing later (EGPs) Network as a Graph 6 1 4 C 2 1 B 9 E F 1 D Nodes are hosts, switches, routers, or networks (initial focus, hosts or routers) Edges are network links (edge costs indicate desirability of the link). Routing achieved by running a routing protocol among the nodes (distributed dynamic way to solve the problem of finding the lowest-cost path in the presence of link failures and changing edge costs) Distance Vector Algorithm Each node maintains a set of triples (vector) (Destination, Cost, NextHop) E.g., initially (assuming each cost=1, so least cost means fewest hops) Each routing table reflects dist=1 for ngbrs and infinity of non-ngbrs. Initial Distance Vectors: Intitial Routing Table at A: Info Stored |Distance to reach Node Dest Cost NextHop at Node | A | B | C | D | E | F | G B 1 B A 0 1 1 inf 1 1 inf C 1 C B 1 0 1 inf inf inf inf D infinity C 1 1 0 1 inf inf inf E 1 E D inf inf 1 0 inf inf 1 F 1 F E 1 inf inf inf 0 inf inf G infinity F 1 inf inf inf inf 0 1 G inf inf inf 1 inf 1 0 Final Routing Table A (converged) Dest Cost NextHop B 1 B C 1 C D 2 C E 1 E F 1 F G 2 F Every nodes sends distance vector to directly connected neighbors periodically (on the order of every several seconds) whenever table changes (called triggered update) Update local table when receive a “better” route A smaller cost Refresh existing routes; delete if they time out F B C D E G Routing Problems Example 1: Reaching stablility again after: F detects that link to G has failed F sets distance to G to infinity and sends update t o A A sets distance to G to infinity since it uses F to reach G A receives periodic update from C with 2-hop path to G A sets distance to G to 3 and sends update to F F decides it can reach G in 4 hops via A Example 2 (looping) link from A to E fails A advertises distance of infinity to E (C gets) B and C advertise a distance of 2 to E (B gets first) B decides can reach E in 3 hops thru C; advertises to A A decides it can read E in 4 hops; advertises this to C C decides that it can reach E in 5 hops… Loop breaking heuristics Set infinity to 16 Split horizon (don’t send routes learned from ngbr x to x) Split horizon with poison reverse (send to x but with inf) Dest Cost NextHop F-tbl: G 1 G F-tbl: G inf - A-tbl: G inf - A-tbl: G 3 C F:-tbl: G 4 A A-tbl: E inf - C-tbl: E inf - B-tbl: E 3 C A-tbl: E 4 B C:-tbl: E 5 A B C A D E F G Routing Information Protocol (RIP) One of the most widely used routing protocols in IP. Distributed with Unix BSD (accounts for its popularity to some extent) Canonical example of routing protocol built on Distance Vector alg. Only difference from the algorithm described is that nodes are networks, not routers. Routers using RIP send advertisements every 30 seconds. Router sends update when it receives a change causing update from another. Takes simple approach that the cost of every link is 1 (counts hops). Valid distances are 1 – 15. 16 represents infinity This limits RIPs usefulness to small networks (where there always exists routes with less than 16 hops) Link State Alg and Open Shortest Path First Protocol (OSPF) Link State Algorithm Strategy send to all nodes (not just ngbrs) info about direct connected links (not entire routing tbl Link State Packet (LSP) id of the node that created the LSP cost of link to each directly connected neighbor sequence number (SEQNO) time-to-live (TTL) for this packet Reliable flooding store most recent LSP from each node forward LSP to all nodes but the one that sent it generate new LSP periodically with incremented SEQNO start SEQNO at 0 when reboot decrement TTL of each stored LSP discard when TTL=0 OSPF uses Link State with added features (authentication, added hierarchy of domains being divided into areas, load balancing) Nodes calculate routes using this info and, e.g., Dijkstra’s shortest path algorithm Routing protocols such as LinkState and RIP do not scale to global Internet numbers. Global Internet Structure NSFNET backbone Stanford ISU Internet is not just random Ethernets. BARRNET MidNet regional regional Westnet Recent Past (~1990) regional Berkeley UNL PARC NCAR KU UNM Consisted of end user nets (each UA multiple physical nets with bridges/routers) connected to regional service provider nets (BARRNET, Westnet, MidNet..) built from pt-pt links (e.g., T3, DS-3, OC-3) & routers connected to national backbone (funded by NSF, originated out of ARPANET) Each service-provider and end-user net is independently administered (Autonomous System AS). We need to deal with two related scaling issues in the Global Internet (basically using hierarchy): Scalability of routing: minimize network-numbers carried in routing protocols & stored in tbls. Address uitilization: make sure IP address space does not get consumed too quickly. Internet Today: Interconnection of multiple backbone service provider nets (private; interconnected in arbitrary ways) some large corps connect directly others to non-backbone service providers (often aggregate connection at peering points) Large corporation AT&T, MCI Sprint… Backbone service provider Peering point “Consumer ” ISP “ Consumr ” ISP Large corporation Small corporation “Consumer”ISP Peering point Subnetting Original intent of IP addresses: uniquely identify one physical network Has drawbacks (numbers wasted) 2-host-net gets Class C and wastes 253 addresses; If ever 255 sites, need Class B – very popular – but 256-host-net wastes ~64,000) Instead of adding more network numbers (making forwarding tables larger), alternatively add another level to address/routing hierarchy: subnetting: Take a single IP network number, allocate the host numbers to several physical nets Only 214 or ~16,000 Class B net addresses altogether Subnets need to be close to each other (so they look like the same network to a distant router) Perfect subnetting situation is large campus or corportation Subnet masks define variable partition of host part Subnets visible only within site (covered by the whole network number) 16 16 Network number Host number Class B address 111111111111111111111111 00000000 Subnet mask (255.255.255.0) Network number Subnet ID Subnetted address Host ID Subnet Example Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0 128.96.34.15 Next Hop interface 0 interface 1 R2 Bitwise AND: IP-Addr AND Subnet Mask gives the subnet number. 128.96.34.1 Interface 0 H1 Forwarding table at router R1 Subnet Number Subnet Mask 128.96.34.0 255.255.255.128 128.96.34.128 255.255.255.128 128.96.33.0 255.255.255.0 R1 Interface 1 128.96.34.130 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128 128.96.34.139 128.96.34.129 H2 R2 H3 128.96.33.14 128.96.33.1 Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0 128 mask: 1000 0000 128-255 or 0-127 192 mask: 1100 0000 four segments 192-255, 128-191, 64-127, 0-63 Subnetting continued What is the proper subnet mask, given you want to create n subnets? In a class B network (16 bit network address) e.g., 131.107.0.0 and 6 subnets: 6=110 (3 bits use 3 highorder 1-bits) 1110 0000 0000 0000 = 224, 0 Subnet mask is 255,255,224,0 (acts as a filter to hide all but the host-id part of any subnet, i.e., 1-bit in a mask is like a “pipe” letting bits flow thru and a 0-bit is like a sponge trapping bits (leaving a 0-bit) ). Note, we use a default subnet mask for standard Class networks (e.g., for Class A nets use subnet mask = 255,0,0,0; Class B = 255,255,0,0 and Class A = 255,255,255,0. So, e.g., for Class B IP address, 131.107.16.200 ANDed with Class B subnet mask, 255,255,0,0 give network address = 131.107 and leaving host address of 16.200. Back to Class B subnet mask 255,255,224,0, how assign the 6 subnet addresses? Use highorder bits: 001 010 011 100 101 110 (can’t use all 3 zeros or all 3 1’s), so subnet ids are 0010 0000=32; 0100 0000= 64; 0110 0000=96; 1000 0000=128; 1010 0000=160; 1100 0000=192 So, eg., to send to host 12 on subnet 64 use IP 131.107.64.12. Then ANDing with subnet mask, 255,255,224 gives 131.107.64.0 = the correct subnet on the correct net. Subnetting continued2 At the other extreme: In a class B network (16 bit network address) e.g., 131.107.0.0 and 125 subnets: 125=111 1101 (7 bits use 7 highorder 1-bits) 1111 1110 0000 0000 = 254, 0 Subnet mask is 255,255,254,0. With a Class B subnet mask of 255,255,254,0, how do we assign the 125 subnet addresses? Start with highorder 7-bit: 0000 001 add low order 0000 0010 = 2 add 2 until you get 125 subnets (each will accommodate only 2 nodes however with host numbers, 0 and 1)) So subnet ids are: 2 4 6 8 10 …250 To send to host 1 on subnet 244 use IP 131.107.244.1 Then ANDing with subnet mask, 255,255,254 gives 131.107.244.1 = the correct subnet on the correct net. Forwarding Algorithm D = destination IP address for each entry (SubnetNum, SubnetMask, NextHop) D1 = SubnetMask & D if D1 = SubnetNum if NextHop is an interface deliver datagram directly to D (do ARP and deliver) else (NextHop is a router) deliver datagram to NextHop (don’t do ARP yet) Use a default router if nothing matches Can put multiple subnets on one physical network (forcing hosts on same physical network to talk through a router for security, departmentalizing..) Subnets not visible from the rest of the Internet (outside the subnet domain) Bottom line is subnetting helps scalability in two ways: Improves address assignment efficiency by not using up entire net address for every physical network Helps aggregate information (from a distance, complex internet looks like one net) Supernetting (CIDR classless Inter-domain routing) Addresses two scaling concerns: Growth of backbone routing tables (as more net numbers need to be stored) Potential for 32-bit IP address space exhaustion well before 4 billionth host is attached Called CIDR: Classless Inter-Domain Routing Breaks rigid boundarries between network and host numbers Assign block of contiguous net numbers (2n) to a group of nearby networks and give the group one net number (more flexibly than the fixed Class A,B,C scheme does). Represent blocks with a single pair (length, value) Tries to minimize the number of routes a router needs to know Tries to hand out addresses efficiently by: Aggregating routes: Lets us use single entry in forwarding table to reach lots of nets This problem centers on Class B addresses (with only 2 14 = 16,384 network numbers) Length gives # bits in network number (2 - 32) Value is the actual resulting network number Typically, a service provider or large corporation is given a block of addresses with one CIDR address (hands out addresses within that block) All routers must understand classless CIDR addressing (net #’s from 2 – 32) Problem: Now net#’s in a forwarding table may overlap e.g., 171.68 (16 bit) and 171.68.10 (24 bit). Principle of “longest match” applies (e.g., IP addr: 171.68.10.5 matches 171.68.10) Route Propagation Autonomous System (AS) (AKA: routing domain) corresponds to an administrative domain examples: University, company, backbone network Two-level route propagation hierarchy interior gateway protocol for intra-domain routing each AS selects its own Goal: finding optimal paths (OPTIMALITY) exterior gateway protocol For inter-domain routing Internet-wide standard Goal: find any path (REACHABILITY) Two major interdomain routing protocols EGP (Exterior Gateway Protocol) was first used when Internet was a simpler tree with one backbone BGP (Border Gateway Protocol) th version, so BGP-4 In its 4 Accomodates non-tree structure of current Internet Popular Interior Gateway Protocols RIP: Route Information Protocol distributed with Unix distance-vector algorithm based on hop-count OSPF: Open Shortest Path First recent Internet standard uses link-state algorithm supports load balancing supports authentication EGP: Exterior Gateway Protocol Overview designed for tree-structured Internet concerned with reachability, not optimal routes Protocol messages neighbor acquisition: one router requests that another be its peer; peers exchange reachability information neighbor reachability: one router periodically tests if the another is still reachable; exchange HELLO/ACK messages. routing updates: peers periodically exchange their routing tables (using a distance-vector algorithm) BGP-4: Border Gateway Protocol AS Types stub AS: has a single connection to one other AS multihomed AS: has connections to more than one AS refuses to carry transit traffic transit AS: has connections to more than one AS carries local traffic only carries both transit and local traffic Each AS has: one or more border routers one BGP speaker per AS that advertises: local networks other reachable networks Large corporation (transit AS only) gives path information “Consumer ” ISP Peering point Backbone service provider “ Consumr ” ISP Large corporation Small corporation “Consumer”ISP Peering point BGP Example Speaker for AS2 advertises reachability to P and Q networks 128.96, 192.4.153, 192.4.32, and 192.4.3, can be reached directly from AS2 Customer P (AS 4) 128.96 192.4.153 Customer Q (AS 5) 192.4.32 192.4.3 Customer R (AS 6) 192.12.69 Customer S (AS 7) 192.4.54 192.4.23 Regional provider A (AS 2) Backbone network (AS 1) Regional provider B (AS 3) Speaker for Backbone advertises networks 128.96, 192.4.153, 192.4.32, and 192.4.3 can be reached along the path (AS1, AS2). Speaker can cancel previously advertised paths IP Version 6 (originally: IPng (next generation) Motivation for a new IP version is same as motivation for, e.g., Subnetting, CIDR Address depletion (if set-top-boxes, electric meters, toasters get IP addrs, is 4 billion enough?) Routing Information problem (growth of routing table info needed in internet routers) Require new software for every host/router?? (IETF wants it as upward compatible as possible) While the IPng is at it, in addition to solving the 2 problems above, also considering; Support of real-time services (video conferencing etc. - RSVP QoS, etc.) Security support Auto-configuration (hosts automatically configure themselves) Enhanced routing functionality (e.g., for mobile hosts, etc.) Some of the specific changes from IPv4 to IPv6 include: Longer address fields (3.4 * 1038 128 bits: eg, 47CD:1243:AC09:0022:1432:A456:0123.B387 8 16-bit fields, instead of 4 8-bit fields. Classless Simplified header format (e.g., no checksum – reduces packet processing time in routers) Checking already done at the link layer and transport layer anyway Flexible support for options (more efficient, flexible) Flow label capability (for specifying QoS) Large Packet size (longer than 64KB – called jumbo packets up to 4 billion bytes) Fragmentation at the source only MBone (Multicast Backbone) Can be thought of as Internet Radio/TV (broadcasts live A/V in digital) Virtual overlay network on top of the Internet Mbone consists of multicast islands (with special Mrouters connected by IP tunnels) Each island (typically a LAN) supports hardware multicast. Currently uses Distance Vector Multicast Routing Protocol or DVMRP: When an island wants to join (e.g., G) its administator sends message to the Mbone mailing list. Nearby admin(s) contact G to setup tunnel(s). Typically each country has a backbone. Tunnels cross the Atlantic and Pacific, making it world-wide. Tunnels can be reshuffled.