Computer Networks
A Systems Approach
Sixth edition
Larry L. Peterson
Bruce S. Davie
Table of Contents
List of tables
- Tables in 1
- Tables in 2
- Tables in 3
- Tables in 4
- Tables in 5
- Tables in 6
- Tables in 7
- Tables in 9
List of figures
- Figures in 1
- Figures in 2
- Figures in 3
- Figures in 4
- Figures in 5
- Figures in 6
- Figures in 7
- Figures in 8
- Figures in 9
Landmarks
Copyright
Morgan Kaufmann is an imprint of Elsevier
50 Hampshire Street, 5th Floor, Cambridge, MA 02139, United States
Copyright 2022 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher's permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods, professional practices, or medical treatment may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
Library of Congress Cataloging-in-Publication Data
A catalog record for this book is available from the Library of Congress
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library
ISBN: 978-0-12-818200-0
For information on all Morgan Kaufmann publications visit our website at https://www.elsevier.com/books-and-journals
Publisher: Katey Birtcher
Acquisitions Editor: Steve Merken
Editorial Project Manager: Beth LoGiudice
Production Project Manager: Janish Paul
Designer: Bridget Hoette
Typeset by VTeX
Printed in United States
Last digit is the print number:987654321
Dedication
To the Open Source Community
Foreword
David D. Clark Massachusetts Institute of Technology, Cambridge, MA, United States
Readers: before you start the book, first take a moment and set your time machine to 1996. That is when the first edition of this book was published. Do you remember 1996? Were you alive then? People forget how long ago the foundations of the Internet were laid.
In 1996, the NSFNET had just been decommissioned, and the commercial phase of the Internet was just beginning. The first search engine (Alta Vistado you remember?) had just been demonstrated. Content delivery networks did not existAkamai was founded two years later in 1998, the same year Google was officially born. Cloud was only a distant haze on the horizon. And there was no such thing as residential broadband or consumer wireless. We used dial-up modemsthe 56K modem had just been invented. There were packet radios before then, but they were slower than dial-up and the size of a beer fridge. You needed a truck or at least a Jeep to be mobile.
And in 1995 or so, Larry and Bruce decided to write this book. It may be hard, from today's perspective, to remember how important a book like this was in 1996. It captured a lot of tacit knowledge and made it available to anyone who would read. And rather than just reciting a series of protocol descriptions, it taught how the parts fit together. It taught how the Internet worked, not just what the parts were.
One way to think about how the Internet has evolved is through the lens of the application designer. After all, the purpose of the Internet as a packet transport system is to support apps. Only geeks and performance freaks send packets for the fun of it. In 1996, if you wanted to build an application, the ecosystem included the IP packet transport service, TCP to smooth out the losses at the Internet layer, the DNS, and that was about it. Anything else the application designer needed had to be built from scratch.
Now an application designer has lots of resources to build on: cloud and cloud networks, other global networks that can hook services together, CDNs, app development environments, and so on. Some of these may seem quite different from what we had in 1996 and in detail they are. Consider cloud. (I hate the choice of the termto me cloud suggests something soft and fluffy, but if you have ever seen a data center the size of a football field that sucks megawatts, you would not think soft and fluffy. But never mind) Data centers have become very sophisticated about cost, energy efficiency, performance, and resilience. There is a lot to learn about how to build a modern data center. But the fundamentals are the same: packet forwarding, statistical capacity sharing, transport protocols, routing protocols, the pursuit of generality and broad utility, and the like.
Looking forward, technologies such as cloud are clearly central and this edition devotes considerable attention to cloud. Requirements such as improved security are critical, and the book discusses additional issues related to security: trust, identity, and the latest hot topicblockchain. However, if you were to look at the first edition, many of the foundational concepts are the same. But this edition is the modern version of the story, with up to date examples and modern technology. Enjoy.
October 2020
Foreword to the First Edition
David D. Clark Massachusetts Institute of Technology, Cambridge, MA, United States
The term spaghetti code is universally understood as an insult. All good computer scientists worship the god of modularity, since modularity brings many benefits, including the all-powerful benefit of not having to understand all parts of a problem at the same time in order to solve it. Modularity thus plays a role in presenting ideas in a book as well as in writing code. If a book's material is organized effectivelymodularlythe reader can start at the beginning and actually make it to the end.
The field of network protocols is perhaps unique in that the proper modularity has been handed down to us in the form of an international standard: the seven-layer reference model of network protocols from the ISO. This model, which reflects a layered approach to modularity, is almost universally used as a starting point for discussions of protocol organization, whether the design in question conforms to the model or deviates from it.