Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
application transport network data link physical The Routing & the IP network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical network data link physical network data link physical network data link physical application transport network data link physical The network layer moves transport layer segments from host to host in the network, to deliver them to their destination. This layer involves each and every host and router in the network. Network layer functions transport packet from sending to receiving hosts network layer protocols in every host, router three important functions: path determination: route taken by packets from source to destination - routing algorithms switching: move packets from router’s input to appropriate router output call setup: some network architectures require router call setup along path before data flows (connection oriented networks) application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Datagram networks: the Internet model no call setup at network layer routers: do not maintain state for the end-to-end connections no network-level concept of a “connection” packets are typically routed using only destination host ID which is carried in the packet packets between same source-destination pair may take different paths application transport network data link 1. Send data physical application transport network 2. Receive data data link physical Routing Routing protocol Goal: determine a “good” path (sequence of routers) thru the network from the source to the destination Graph abstraction for routing algorithms: graph nodes are routers graph edges are physical links link cost: delay, distance, # of hops, rate structure or congestion level = $$ Other costs?? 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 “good” path: typically means minimum cost path other definitions also possible Hierarchical Routing Our routing study thus far – an idealization all routers are identical the network is “flat” … not true in practice Why? scale: with 55 million+ destination hosts: can’t store all destinations in routing tables! routing table exchange would swamp links! administrative autonomy internet = network of networks each network admin may want to control routing in its own network Hierarchical Architecture of the Internet Legend router border router Inter-AS level connection host LAN Intra Domain level (AS) intra domain network (AS) inter AS network LAN level Hierarchical Routing aggregate routers into regions, called “autonomous systems” (AS) routers in same AS run same routing protocol “intra-AS” routing protocol routers in different AS can run different intraAS routing protocol gateway routers special routers in AS run intra-AS routing protocol with all other routers in AS also responsible for routing to destinations outside AS run inter-AS routing protocol with other gateway routers Internet AS Hierarchy Inter-AS border (exterior gateway) routers Intra-AS interior (gateway) routers Internet inter-AS routing: BGP BGP (Border Gateway Protocol): the de facto standard Path Vector protocol: similar to Distance Vector protocol each Border Gateway broadcasts to neighbors (peers) the entire path (I.e, sequence of ASs) to destination Intra-AS and Inter-AS routing C.b a C Gateways: B.a A.a b A.c d A a b c a c B b •perform inter-AS routing amongst themselves •perform intra-AS routers with other routers in their AS network layer inter-AS, intra-AS routing in gateway A.c data link layer physical layer Intra-AS and Inter-AS routing C.b a Host h1 C b A.a Inter-AS routing between A and B A.c a d c b A Intra-AS routing within AS A B.a a c B Host h2 b Intra-AS routing within AS B We’ll examine specific inter-AS and intra-AS Internet routing protocols shortly IP Addressing: introduction IP address: 32-bit identifier for host or router interface interface: connection between host or router and the physical link routers typically have multiple interfaces hosts typically have only one IP addresses are associated with the interface, not the host or the router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 223.1.3.1 dotted-decimal notation: 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 IP Addressing IP address: network part (high order bits) host part (low order bits) What’s a network ? (from the IP address perspective) device interfaces with the same network part of their IP address hosts can physically reach each other without an intervening router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 LAN 223.1.3.1 223.1.3.2 Example: network consisting of 3 IP networks (for IP addresses starting with 223, the first 24 bits are the network address – more later) IP Addresses Given the notion of a “network”, let’s look closer at IP addresses: “classful” addressing class A 0 network host (24 bits) 27 = 127 networks B 10 224 = 16.8 million+ hosts network host (16 bits) 214 = 16,384 networks C 110 216 = 65,536 hosts network 221 = 2 million+ networks D 1110 multicast address host (8 bits) 28 = 256 hosts (28 bits) 228 = 268.4 million+ hosts 1.0.0.0 to 127.255.255.255 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 32 bits What is the address space size (number of hosts) for each class? Map of the Internet Abbreviated Format of the Address Ranges 224.0.0.0 - 239.255.255.255 224/4 The minimum & maximum values of the range: 11100000.00000000.00000000.000000002 11101111.11111111.11111111.111111112 E0.00.00.0016 … EF.FF.FF.FF16 The first part of the abbreviation is the common byte(s) in the range The second part of the abbreviation is the number of bits, which are common for the all members of the range The private address ranges Used locally Never used in the Internet Gateways do not forward the packets addressed to private addresses The network, which uses the private address range can be connected to the Internet by the NAT (Network Address Translation) Name Start of the range End of the range Subnet mask Class A 10.0.0.0 10.255.255.255 255.0.0.0 Class B 172.16.0.0 172.31.255.255 255.255.0.0 Class C 192.168.0.0 192.168.255.255 255.255.255.0 IP addressing: CIDR classful addressing: inefficient use of address space, address space exhaustion e.g., class B network is allocated enough addresses for 65K hosts, even if only 2K hosts exist in that network CIDR: Classless InterDomain Routing network portion of address of arbitrary length address format: a.b.c.d/x, where x is # bits in the network portion of an address network part host part 11001000 00010111 00010000 00000000 200.23.16.0/23 IP addresses: how to get one? Hosts (host portion): hard-coded by system admin in a file DHCP: Dynamic Host Configuration Protocol: dynamically get address (RFC 2131): “plug-and-play” host broadcasts “DHCP discover” msg DHCP server responds with “DHCP offer” msg host requests IP address: “DHCP request” msg DHCP server sends address: “DHCP ack” msg Why different Intra- and Inter-AS routing ? Policy: Inter-AS: admin wants control over how its traffic is routed, who routes through its net. Intra-AS: single admin, so no policy decisions needed Scale: hierarchical routing saves table size, reduces update traffic Performance: Intra-AS: can focus on performance Inter-AS: policy may dominate over performance Intra-AS Routing Also known as Interior Gateway Protocols (IGP) Most common IGPs: RIP: Routing Information Protocol (legacy) OSPF: Open Shortest Path First (common) EIGRP: Enhanced Interior Gateway Routing Protocol (proprietary – Cisco Systems) Distance-vector routing algorithm (DVR) The different names of the background mathematical algorithm: Backward search algorithm Bellman-Ford algorithm Goal: search the smallest delay paths for the traffic For this reason in each router a table is created, which contains: The interface to the smallest delay path to every node The estimated delay of each path This table is called distance vector The link state tables of an example network A 1 2 5 B 4 router D 3 C 1 6 G 1 Legend 1 physical link 1 E F 4 A B C D E F G A B 0 2 2 0 5 4 1 C D 5 1 4 6 1 0 3 1 1 E F 1 6 0 4 4 0 G 1 1 0 3 0 1 1 Routing tables (Step 1) A Router Destination CA,j B C D Bellman-Ford algorithm E F G Inter Inter Inter Inter Inter Inter Inter C C C C C C B,j face C,j face D,j face E,j face F,j face G,j face face 2 A A 5 A 1 A - - - 4 B 3 C C - 1 D C D 6 3 1 1 C - E 1 B C D 2 5 1 B C D C - E - - 1 E 1 E F - - 6 F - 4 F G - - 1 G - - 4 Distance vector Modified entry 4 1 F G Unmodified entry Step 1 Shortest paths in the routing table of the router A Bellman-Ford algorithm A Legend CA,D=1 CA,B=2 CA,C =5 B Router Physical link D C Temporarily step of the algorithm E CA,G = Least cost path F G h CA,B Path CA,C 1 2 3 2 2 2 4 5 0 A-B A-B A-B 5 4 3 2 A-B 2 A-B - h=1 CA,F= Path CA,E= CA,D Path CA,E Path CA,F CA,G Path - - A-C-F A-D-E-F 6 5 A-C-G A-D-C-G A-D-E-CG A-D-E-CG - A-C A-D-C A-D-E-C 1 1 1 A-D A-D A-D 2 2 A-D-E 11 A-D-E 6 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E C-G-F 4 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E-C-G-F 4 - - Path Routing tables (Step 2) Router A B C Bellman-Ford algorithm D E F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path A B C D E F G 2 4 1 2 11 6 B D D D C C 2 A 4 3 5 10 5 C A C C C 4 4 D B 2 1 5 1 E E E G A Router Routing tables resulted from the previous step Destination CA,j 1 3 2 A A E 1 5 4 E E C B 2 5 1 1 D C C D 4 2 F C C D 11 10 2 5 4 C C G E E 1 G E 6 5 1 4 2 1 F C C C C C F G Inter Inter Inter Inter Inter Inter Inter CB,j face CC,j face CD,j face CE,j face CF,j face CG,j face face 2 A A 5 A 1 A - - - 4 B 3 C C - 1 D C D 6 3 1 1 C - E 1 B C D 2 5 1 B C D C - E - - 1 E 1 E F - - 6 F - 4 F G - - 1 G - - 4 4 1 G F Step 2 Bellman-Ford algorithm A Shortest paths in the routing table of the router A CA,D=1 CA,B=2 CA,C =4 C B D E CA,G =6 F G CA,F=11 h=2 h CA,B Path CA,C 1 2 3 2 2 2 4 5 0 A-B A-B A-B 5 4 3 2 A-B 2 A-B - CA,E=2 Path CA,D Path CA,E Path CA,F CA,G Path - - A-C-F A-D-E-F 6 5 A-C-G A-D-C-G A-D-E-CG A-D-E-CG - A-C A-D-C A-D-E-C 1 1 1 A-D A-D A-D 2 2 A-D-E 11 A-D-E 6 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E C-G-F 4 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E-C-G-F 4 - - Path Bellman-Ford algorithm Routing tables (Step 3) Router A B C D E F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path A B C D E F G 2 3 1 2 6 5 B D D D D D 2 A 4 3 4 9 5 C A A C C 3 4 E B 2 1 2 1 E E G G Router A 1 3 2 A A E 1 5 3 E E E B 2 4 1 1 D D C D 3 2 C C C D 6 6 2 4 3 G G G G G 1 G E 5 5 1 3 2 1 F C C C C C F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path Routing tables resulted from the previous step A B C D E F G 2 4 1 2 11 6 B D D D C C 2 A 4 3 5 10 5 C A C C C 4 4 D B 2 1 5 1 E E E G 1 3 2 A A E 1 5 4 E E C 2 5 1 1 D C C D 4 2 F C 11 10 2 5 4 C C G E E 1 G 6 5 1 4 2 1 C C C C C F Bellman-Ford algorithm Routing tables (Step 4) Router A B C D E F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path A B C D E F G 2 3 1 2 5 4 B D D D D D 2 A 4 3 4 6 5 C A A C C 3 4 E B 2 1 2 1 E E G G Router 1 3 2 A A E 1 4 3 E E E A B 2 4 1 1 D D C D 3 2 C C C 5 6 2 4 3 G G G G G 1 G D 4 5 1 3 2 1 E C C C C C F F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path Routing tables resulted from the previous step A B C D E F G 2 3 1 2 6 5 B D D D D D 2 A 4 3 4 9 5 C A A C C 3 4 E B 2 1 2 1 E E G G 1 3 2 A A E 1 5 3 E E E 2 4 1 1 D D C D 3 2 C C 6 6 2 4 3 G G G G G 1 G 5 5 1 3 2 1 C C C C C F Step 3-4 Bellman-Ford algorithm Shortest paths in the routing table of the router A CA,D =1 A A CA,D =1 B CA,B =2 B CA,B =2 CA,C =3 D C CA,C =5 CA,C =3 CA,E=2 CA,C =4 D C E F G CA,F =6 h CA,B Path CA,C 1 2 3 2 2 2 4 5 0 A-B A-B A-B 5 4 3 2 A-B 2 A-B - F E h=3 Path G CA,D Path CA,E Path CA,F h=4 Path CA,G Path - - A-C-F A-D-E-F 6 5 A-C-G A-D-C-G A-D-E-CG A-D-E-CG - A-C A-D-C A-D-E-C 1 1 1 A-D A-D A-D 2 2 A-D-E 11 A-D-E 6 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E C-G-F 4 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E-C-G-F 4 - - CA,F =5 CA,E=2 Bellman-Ford algorithm Routing tables (Step 5) Inter Inter Inter Inter Inter Inter Inter G F E D C B A Router Destination CA,j face CB,j face CC,j face CD,j face CE,j face CF,j face CG,j face A B C D E F G 2 3 1 2 5 4 B D D D D D 2 A 4 3 4 6 5 C A A C C 3 4 E B 2 1 2 1 E E G G Router Routing tables resulted from the previous step A 1 3 2 A A E 1 4 3 E E E B 2 4 1 1 D D C D 3 2 C C C D 5 6 2 4 3 G G G G G 1 G E C C C C C F 4 5 1 3 2 1 F G Destination CA,j Path CB,j Path CC,j Path CD,j Path CE,j Path CF,j Path CG,j Path A B C D E F G 2 3 1 2 5 4 B D D D D D 2 A 4 3 4 6 5 C A A C C 3 4 E B 2 1 2 1 E E G G 1 3 2 A A E 1 4 3 E E E 2 4 1 1 D D C D 3 2 C C 5 6 2 4 3 G G G G G 1 G 4 5 1 3 2 1 C C C C C F Bellman-Ford algorithm Step 5 and the final result A Shortest paths in the routing table of the router A CA,C =3 A CA,D =1 B CA,B =2 B CA,B =2 CA,C =3 D CA,E=2 C CA,G =4 CA,D =1 CA,G =4 F G CA,F =5 h CA,B Path CA,C 1 2 3 2 2 2 4 5 0 A-B A-B A-B 5 4 3 2 A-B 2 A-B - Path E h=5 G CA,D Path CA,E Path CA,F C E F h=6 CA,F =5 Path CA,G Path - - A-C-F A-D-E-F 6 5 A-C-G A-D-C-G A-D-E-CG A-D-E-CG - A-C A-D-C A-D-E-C 1 1 1 A-D A-D A-D 2 2 A-D-E 11 A-D-E 6 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E C-G-F 4 3 A-D-E-C 1 A-D 2 A-D-E 5 A-D-E-C-G-F 4 - - D CA,E =2 Link-state routing algorithm The different names of the background mathematical algorithm: Forward search Dijkstra algorithm Shortest path (SP) The SP is the optimal path, however, this is not obviously the geometrically shortest path Other factor, which can be taken into account: Number of routers in the path delay cost Average traffic Reliability of the links in a certain path Dijkstra’s algorithm Dijkstra's algorithm, named after its inventor the Dutch computer scientist Edsger Dijkstra , solves a shortest path problem for a directed and connected graph G(V,E) which has nonnegative (>=0) edge weights Dijkstra's algorithm is known to be a good algorithm to find a shortest path The method… Dijkstra’s algorithm Finds the shortest path between a source node and the rest Finds routes between nodes by cost precedence Assumes every cost is a positive number Supports directed or bidirectional communication Dijkstra’s algorithm Initialisation – Example network A CA,B=2 CA,D=1 B CA,C=5 D G C E F M={A} Step 1 Dijkstra’s algorithm Node B C D E F G Cost of the least cost path Path 2 5 1 A-B A-C A-D - - - Node Expression Value Evaluation Resulted action B CA,D+LD,B CA,D+LD,C CA,D+LD,E >2 4<5 No change C E 1+= 1+3=4 1+1=2 2< New path New path F CA,D+LD,F 1+= = No change G CA,D+LD,G 1+= = No change A CA,B=2 CA,D=1 B CA,C=4 G D C F M={A,D} E CA,E=2 Least cost new node: D Step 2 Dijkstra’s algorithm Node B C D E F G Cost of the least cost path Path 2 4 1 2 - - A-B A-D-C A-D A-D-E Node Expression Value Evaluation Resulted action C E CA,B+LB,C CA,B+LB,E 2+4=6 6>4 2+= >2 No change No change F CA,B+LB,F 2+= = No change G CA,B+LB,G 2+= = No change A B CA,C=4 G A CA,B=2 CA,D=1 B F E CA,E=2 M={A,B,D} CA,B=2 CA,D=1 CA,C=3 D C Least cost new node (with smaller IP address) : B G D C CA,F=6 F E CA,E=2 M={A,B,D,E} Step 3 Dijkstra’s algorithm Node B C D E F G Cost of the least cost path Path 2 4 1 2 - - A-B A-D-C A-D A-D-E Node Expression Value Evaluation Resulted action C F CA,E+LE,C CA,E+LE,F 2+1=3 2+4=6 3<4 6< New path New path G CA,E+LE,G 2+= = No change A B CA,C=4 CA,B=2 CA,D=1 B F E CA,E=2 M={A,B,D} CA,B=2 CA,D=1 CA,C=3 D C G A G D C CA,F=6 F E CA,E=2 M={A,B,D,E} Least cost new node: E Step 4 Dijkstra’s algorithm Node B C D E F G 3 6 1 2 Cost of the least cost path 2 A-B A-D-E-C A-D A-D-E A-D-E-F Path - Node Expression Value Evaluation Resulted action F G CA,C+LC,F CA,C+LC,G 3+6=9 3+1=4 9>6 No change New path 4< A A B CA,B=2 CA,D=1 CA,C=3 B CA,B=2 CA,D=1 CA,C=3 D C CA,F=4 G F Least cost new node: C E CA,E=2 M={A,B,C,D,E} D C G CA,F=4 F E CA,E=2 M={A,B,C,D,E,G} Step 5 Dijkstra’s algorithm Node B Cost of the least cost path Path 2 A-B C D E F G 6 4 3 1 2 A-D-E-C A-D A-D-E A-D-E-F A-D-E-C-G Least cost new node: G Node Expression Value Evaluation Resulted action F CA,G+LF,G 4+1=5 5<6 New path A B CA,C=3 A CA,B=2 CA,D=1 B CA,C=3 D C CA,F=4 G F E CA,E=2 M={A,B,C,D,E} CA,B=2 CA,D=1 D C G CA,F=4 F E CA,E=2 M={A,B,C,D,E,G} Dijkstra’s algorithm Step 6 (final result) Node Cost of the least cost path Path B C D E F G 2 3 1 2 5 4 A-B A-D-E-C A-D A-D-E A-D-E-C-G-F A-D-E-C-G A B CA,B=2 CA,D=1 CA,C=3 D C G CA,F=4 F E CA,E=2 M={A,B,C,D,E,F,G} Second example Step 1 Dijkstra’s algorithm Second example Step 2 Dijkstra’s algorithm Second example Step 3 Dijkstra’s algorithm Second example Step 4 Dijkstra’s algorithm Second example Step 5 Dijkstra’s algorithm Second example Step 6 Dijkstra’s algorithm Second example Step 7 Dijkstra’s algorithm Second example Step 8 Dijkstra’s algorithm Second example Step 9 Dijkstra’s algorithm Second example Step 10 Dijkstra’s algorithm Second example Step 11 Dijkstra’s algorithm Second example Step 12 Dijkstra’s algorithm Differences between the forward and the backward search algorithms Forward search (Dijkstra algorithm) It increases the scope of the search in each step with including new node Backward search (Bellman-Ford algorithm) It increases the scope of the search in each step with including new hop Comparison of the distance-vector and the link-state algorithms Distance vector: Each router sends distance-vector, but to its neighbours The distance-vector contains the estimated distance to all other nodes Older method Problem of the ”count-to-infinity” due to the fact, that the bad news are distributed too slowly Link-state: Each router sends link-state distance-vector to all others The link-state distance-vector contains the distance to the neighbours, only The distance value to the neighbour (called link-state) is accurate Recent method