Chapter 25 Internet Routing Internetworking Technology How routing tables are built initially How routing software updates the tables as needed. Propagation of routing information in the global Internet General concept of routing information exchange, several routing update protocols used in the Internet. Static Vs. Dynamic Routing IP routing can be partitioned into two broad categories. Static routing: Routes are called static if they do not change – a static routing table is loaded with values when the system starts and the routes do not change unless an error is detected. Dynamic routing: system that can change routing table information over time. Static Routing In Hosts And A Default Route Static routing is easy to specify and does not require extra routing software. It does not consume bandwidth, and no CPU cycles are required to propagate routing information. However, it is relatively inflexible, it cannot accommodate network failures or changes in topology. Where is static routing used? Most hosts use static routing, especially in cases where the host has one network connection and a single router connects the network to the rest of the Internet. The host’s routing table contains two entries: one for the network to which the host attaches and a default entry that directs all other traffic to a specific router. Static Routing In Hosts And A Default Route (continued) Dynamic Routing And Routers To ensure that all routers maintain information about how to reach each possible destination, each router runs software that learns about destinations other routers can reach, and informs other routers about destinations that it can reach. The routing software uses incoming information to update the local routing table continuously. Dynamic Routing And Routers (continued) Routing In The Global Internet To limit routing traffic, the Internet uses a two level routing hierarchy: Routers and networks in the Internet are divided into groups, where each group is known as an autonomous system. All routers within a group exchange routing information. At least one router (possible more) in each group summarizes the information before passing it to other groups. Routing In The Global Internet (continued) How large is a group? What protocol do routers use within a group? How is routing information represented? What protocol do routers use between groups? The designers did not dictate an exact size nor specify an exact data presentation or protocol. The designers purposefully kept the architecture flexible enough to handle a wide variety of organizations – they decided to permit each organization to choose a routing protocol independently. Autonomous System Concept Autonomous System (AS): Concept of groups and routers A contiguous set of networks and routers all under control of one administrative authority Sufficiently flexible co accommodate many possibilities EX: AS can correspond to an entire corporation or university AS size can be made for economic, technical, or administrative reasons. Two Types Of Internet Routing Protocols Interior Gateway Protocols (IGPs) Routers within an autonomous system uses an Interior Gateway Protocol (IGP) to exchange routing information IGP is easy to install and operate, but may limit the size or routing complexity. Exterior Gateway Protocols (EGPs) A router in one autonomous system uses an Exterior Gateway Protocol (EGP) to exchange routing information with a router in another autonomous system. EGPs are more complex to install and operate than IGPs but EGPs offer more flexibility and lower overhead (i.e., less traffic) Two Types Of Internet Routing Protocols (continued) Routes And Data Traffic Data traffic for a given destination flows in exactly the opposite direction of routing traffic The Border Gateway Protocol (BGP) Version 4 is the current standard BGP, it is the Exterior Gateway Protocol used to exchange routing information among autonomous systems in the global Internet. ISPs use BGP-4 to obtain routing information from each other and from an authoritative route server Because all ISPs participate, a datagram from an arbitrary computer to an arbitrary destination will be forwarded correctly. The Routing Information Protocol (RIP) RIP Characteristics: Routing within an autonomous system: RIP is designed as an IGP used to pass information among routers within an autonomous system Hop Count Metric: RIP measures distance in network hops, each network between source and destination counts as single hop. RIP uses origin-one counting, meaning that a directly connected network is 1 hop away, not zero. Unreliable Transport: RIP uses UDP for all message transmission. RIP (continued) Broadcast Or Multicast Delivery: RIP is intended for use over LAN technologies that support broadcast or multicast Support For Default Route Propagation: Allows router to advertise a default route Distance Vector Algorithm: Uses distancevector approach to routing defined in Algorithm. Passive Version For Hosts: Allows a host to listen passively and update its routing table. The Open Shortest Path First Protocol (OSPF) Although RIP works well among a few routers, it does not scale to a large internet (since messages are large) To satisfy demand for a routing protocol that can scale to large organizations, the IETF devised an IGP known as OSPF. OSPF Areas One particular that makes OSPF more complex and powerful is hierarchical routing To achieve a hierarchy, a manager divides routers and networks into subsets that calls areas. OSPF allows communication between areas in addition to exchanging information within an area. One router in each area is configured to communicate with a router in one or more other area(s). The two routers summarize routing information they have learned from other routers within their respective area, and then exchange the summary. Multicast Routing Different between multicast routing and unicast routing: Internet multicast allows dynamic group membership and anonymous senders. An IP multicast group is anonymous in two ways: First, neither a sender nor a receiver knows (or can find out) the identity or the number of group members Second, routers and hosts do not know which applications will send a datagram to a group because an arbitrary application can send a datagram to any multicast group at any time. Chapter 25 Summary Both hosts and routers contain an IP routing table. Most hosts use static routing and some use dynamic routing The Internet is divided into a set of autonomous systems IGPs: exchange routing information within autonomous system EGPs: pass routes between autonomous system. BGP: is the primary EGP in the Internet Internet multicast allows dynamic group membership and an arbitrary source can send to multicast group without being a member. Chapter 26 Client – Server Interaction Introduction: Client-server interaction Basis forms for all network applications. Basic client-server model Client-sever interaction arises from the way networks protocols operate. Example applications use the clientserver paradigm. Functional Application Software Applications supply high-level services that users access Determine how users perceive the underlying internet Determine the format which information is displayed Define symbolic names identifier for physical and abstract resources on internet The Client-Server Paradigm The terms client and server refer to the two applications involved in a communication: The application that actively initiates contact is called a client The application that passively waits for contact is called a server. Network applications use a form of communication known as the client-server paradigm. Client Characteristics Is an arbitrary application program that becomes a client temporarily when remote access is needed. Is invoked directly by a user, and executes only for one section. Runs locally on a user’s personal computer. Actively initiates contact with a server Can access multiple services as needed, but actively contacts one remote server at a time. Does not require special hardware or a sophisticated operating system. Server Characteristics Is a special-purpose, privileged program dedicated to providing one service, but can handle multiple remote clients at the same time. Is invoked automatically when a system boots, and continues to execute through many sections. Runs on a shared computer Waits passively for contact from arbitrary remote clients. Accepts contact from arbitrary clients, but offers a single service. Requires powerful hardware and a sophisticated operating system. Requests, Responses, And Direction of Data Flow Information can pass in either or both directions between a client and a server A client sends a request (or a series or requests) to a server, and the server returns a response (or issues a series of responses) to the client. In other cases, the server provides continuous output without any request – as soon as the client contacts the server, the server begins sending data. Transport Protocols and ClientServer Interaction As the figure shows, a client or server application interacts directly with a transport-layer protocol to establish communication and to send or receive information. The transport protocol then uses lower layer protocols to send and receive individual messages Multiple Services On One Computer Powerful computer system can run multiple clients and servers at the same time. Requirements: The computer must have fast processor and large memory Must have an operating system that allows multiple application programs to execute concurrently (e.g., UNIX or Windows). Multiple Services On One Computer Identifying A Particular Service Transport protocols mechanism assigns each service a unique identifier and requires both the client and server to use the identifier. Protocol software uses the identifier to direct each incoming request to the correct server. Dynamic Server Creation Server is constructed in two parts: One that accepts requests and creates new thread for the request Another consists of the code to handle individual request. Connection-Oriented And Connectionless Transport Transport protocols support two basic forms of communication: connection-oriented or connectionless Connection-oriented: requires explicit connection, provides reliable data delivery. Clients and Server exchange data once connection is established. Connectionless: Permits an application to send a message to any destination at any time. When using connectionless, sending application must specify a destination with each message it sends. Service Through Multiple Protocols Servers need not choose between connectionless and connection-oriented transport – the same service can be made available over two or more transport protocols. There are two possible implementations of a multiprotocol server: First: two servers exist for the same service – one server uses connectionless, the other uses connection-oriented transport. Second: a single server program interacts with two or more transport protocols at the same time. Complex Client-Server Interactions A client application is not restricted to accessing a single service An application can first become a client of one service, and then become a client of another. The client contacts a different server (perhaps on a different computer) for each service. A client application is not restricted a accessing a single server for a given service. In some services, each server provides different information than servers running on other computers. A server is not restricted from performing further client-server interactions - a sever for one service can become a client of the other. Chapter 26 Summary Communication across a network or internet all use a single form of interaction. The interaction is called the client-server paradigm A program that passively waits for contact is called a sever, and a program that actively initiates contact with a server is called a client. A client program is often invoked by a user, and usually executes on the user’s private computer. Sever program usually run on large, server-class computers that have sophisticated operating systems. Clients and servers use transport protocols to communicate Chapter 26 Summary (continued) Both client and server are required to use identifier for the desired service. Client-server interaction can be complex. A single client can access more than one service. A client can access server on multiple machines, and a server for one service can become a client for other services.