newly developed high-speed digital technologies as a matter of course. Once end-to-end connectivity is bestowed by the use of IP in every system of the network, IP becomes a common platform to develop applica- tions and services. As with many protocols, developers must understand the ideas behind IP architectures before they can put them to good use, and those ideas invariably encompass a way of thinking that is worth examining. Intelligence Pushed to the End Systems An IP network consists of a set of intelligent hosts connected to a dumb net- work of routers that just provides datagram transmission-unreliably at that. IP is used at the network layer by both routers and hosts, relegating intelligence to the end systems. End systems are responsible for controlling IP network traffic, including end-to-end flow control and error detection. The router network is only required to undertake one simple task as effi- ciently as possible: the unreliable delivery of datagrams to the destination end system. End systems only know the behavior of the end-to-end traffic. The network does not send any notifications to the end systems indicating whether or not a packet has been delivered. Packet Switching, IP, and the IETF Figure 2-7 A dumb network with intelligent end systems. The Internet Consequently, IP networks are almost stateless; they do not need state information in order to route packets towards their destination. This lack of state in the network makes node failures less dramatic because they do not store any state information necessary for end-to-end communication. This represents an interesting approach to engineering high availability. When some area of the network fails for any reason, the traffic between end sys- tems is simply rerouted to avoid that area. Other routers can pick up the task of routing datagrams that were previously handled by the failed routers because no state information needs to be transferred between them for routing to resume. Thus, high availability is achieved by provisioning multiple path