Internetworking with TCP/IP- P4: TCP/IP has accommodated change well. The basic technology has survived nearly two decades of exponential growth and the associated increases in traffic. The protocols have worked over new high-speed network technologies, and the design has handled applications that could not be imagined in the original design. Of course, the entire protocol suite has not remained static. New protocols have been deployed, and new techniques have been developed to adapt existing protocols to new network technologies | Preface xxix pressive many industries recruit graduates from the course . Although such experimentation is safest when the instructional laboratory network is isolated from production computing facilities we have found that students exhibit the most enthusiasm and benefit the most when they have access to a functional TCP IP internet. The book is organized into four main parts. Chapters 1 and 2 form an introduction that provides an overview and discusses existing network technologies. In particular Chapter 2 reviews physical network hardware. The intention is to provide basic intuition about what is possible not to spend inordinate time on hardware details. Chapters 3-13 describe the TCP IP Internet from the viewpoint of a single host showing the protocols a host contains and how they operate. They cover the basics of Internet addressing and routing as well as the notion of protocol layering. Chapters 14-20 and 32 describe the architecture of an internet when viewed globally. They explore routing architecture and the protocols routers use to exchange routing information. Finally Chapters 21-31 discuss application level services available in the Internet. They present the client-server model of interaction and give several examples of client and server software. The chapters have been organized bottom up. They begin with an overview of hardware and continue to build new functionality on top of it. This view will appeal to anyone who has developed Internet software because it follows the same pattern one uses in implementation. The concept of layering does not appear until Chapter 11. The discussion of layering emphasizes the distinction between conceptual layers of functionality and the reality of layered protocol software in which multiple objects appear at each layer. A modest background is required to understand the material. The reader is expected to have a basic understanding of computer systems and to be familiar with data structures like stacks queues and .