-
Notifications
You must be signed in to change notification settings - Fork 11
/
preface.html
422 lines (309 loc) · 16.8 KB
/
preface.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Preface — Computer Networks: A Systems Approach Version 6.2-dev documentation</title>
<link rel="shortcut icon" href="static/bridge.ico"/>
<script type="text/javascript" src="static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="static/documentation_options.js"></script>
<script type="text/javascript" src="static/jquery.js"></script>
<script type="text/javascript" src="static/underscore.js"></script>
<script type="text/javascript" src="static/doctools.js"></script>
<script type="text/javascript" src="static/language_data.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="static/js/theme.js"></script>
<link rel="stylesheet" href="static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="static/pygments.css" type="text/css" />
<link rel="stylesheet" href="static/css/rtd_theme_mods.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Chapter 1: Foundation" href="foundation.html" />
<link rel="prev" title="Foreword" href="foreword.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Computer Networks: A Systems Approach
</a>
<div class="version">
Version 6.2-dev
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="foreword.html">Foreword</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Preface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#new-material-in-the-sixth-edition">New Material in the Sixth Edition</a></li>
<li class="toctree-l2"><a class="reference internal" href="#organization">Organization</a></li>
<li class="toctree-l2"><a class="reference internal" href="#acknowledgements">Acknowledgements</a></li>
<li class="toctree-l2"><a class="reference internal" href="#open-source">Open Source</a></li>
<li class="toctree-l2"><a class="reference internal" href="#how-to-contribute">How to Contribute</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="foundation.html">Chapter 1: Foundation</a></li>
<li class="toctree-l1"><a class="reference internal" href="direct.html">Chapter 2: Direct Links</a></li>
<li class="toctree-l1"><a class="reference internal" href="internetworking.html">Chapter 3: Internetworking</a></li>
<li class="toctree-l1"><a class="reference internal" href="scaling.html">Chapter 4: Advanced Internetworking</a></li>
<li class="toctree-l1"><a class="reference internal" href="e2e.html">Chapter 5: End-to-End Protocols</a></li>
<li class="toctree-l1"><a class="reference internal" href="congestion.html">Chapter 6: Congestion Control</a></li>
<li class="toctree-l1"><a class="reference internal" href="data.html">Chapter 7: End-to-End Data</a></li>
<li class="toctree-l1"><a class="reference internal" href="security.html">Chapter 8: Network Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="applications.html">Chapter 9: Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="supplements.html">Emerging Topics</a></li>
<li class="toctree-l1"><a class="reference internal" href="README.html">About This Book</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Computer Networks: A Systems Approach</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> »</li>
<li>Preface</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/preface.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="preface">
<h1>Preface<a class="headerlink" href="#preface" title="Permalink to this headline">¶</a></h1>
<p>It has been nearly ten years since the fifth edition of <em>Computer
Networks: A Systems Approach</em> was published. Much has changed in that
time, most notably, the explosion of the cloud and smartphone apps onto
the scene. In many ways, this is reminiscent of the dramatic effect the
Web was having on the Internet when we published the first edition of the
book in 1996.</p>
<p>The sixth edition adapts to the times, but keeps the <em>Systems Approach</em>
as its North Star. In broad strokes, we update and improve this new
edition in four main ways:</p>
<ul class="simple">
<li>We refresh the examples to reflect the current state of the world.
This includes deleting anachronisms (e.g., dial-up modem), using
popular applications (e.g., Netflix, Spotify) to motivate the
problems being addressed, and updating the numbers to represent the
state-of-the-art technology (e.g., 10-Gbps Ethernet).</li>
<li>We connect the dots between the original research that led to the
development of technologies like multicast, real-time video
streaming, and quality-of-service, and the now-familiar cloud
applications like Zoom, Netflix, and Spotify. This is in
keeping with our emphasis on the design process and not just the
end result, which is especially important today since so much of
the Internet’s functionality is primarily delivered by
proprietary commercial services.</li>
<li>We place the Internet in the broader context of the Cloud, and just
as importantly, in the context of the commercial forces that are
shaping the Cloud. This has minimal impact on the technical details
presented throughout the book, but it is discussed in a new
<em>Perspective</em> section at the end of each chapter. We hope one
side-effect of this discussion is to foster an appreciation for the
Internet’s continuous evolution, and the opportunity for innovation
this represents.</li>
<li>We distil the important principles of network design in a series
of <em>Key Takeaways</em> throughout the book. Each takeaway is a concise
statement of either a general system design rule or a fundamental
networking concept, drawing on the examples presented in the
surrounding text. Pedagogically, these takeaways correspond to the
high-level <em>learning objectives</em> for the book.</li>
</ul>
<div class="section" id="new-material-in-the-sixth-edition">
<h2>New Material in the Sixth Edition<a class="headerlink" href="#new-material-in-the-sixth-edition" title="Permalink to this headline">¶</a></h2>
<p>More specifically, the sixth edition includes the following major changes:</p>
<ul class="simple">
<li>New Perspective Section in Chapter 1 introduces the recurring
<em>Cloudification</em> theme.</li>
<li>New Section 2.8 describes the <em>Access Network</em>, including Passive
Optical Networks (PON) and 5G’s Radio Access Networks (RAN).</li>
<li>Refactored topics across Sections 3.1 (<em>Switching Basics</em>) and 3.2
(<em>Switched Ethernet</em>), including expanded coverage of VLANs.</li>
<li>Section 3.5 updated to include descriptions of <em>White-Box Switches</em>
and <em>Software-Defined Networks</em> (SDN).</li>
<li>New Perspective Section in Chapter 3 describes virtual network
ovelays, <em>VXLAN</em>, and the
role of overlays in the Cloud.</li>
<li>Refactored topics across Sections 4.1 (<em>Global Internet</em>) and 4.2
(<em>IP Version 6</em>).</li>
<li>New Perspective Section in Chapter 4 describes how the <em>Cloud</em>
impacts the Internet’s structure.</li>
<li>Section 5.2 expanded to include a discussion of <em>QUIC</em>.</li>
<li>Section 5.3 expanded to include a description of <em>gRPC</em>.</li>
<li>Sections 6.3 and 6.4 updated to include descriptions of <em>TCP CUBIC,
DCTCP,</em> and <em>BBR</em>.</li>
<li>Section 6.4 expanded to include a description of <em>Active Queue
Management</em> (AQM).</li>
<li>Section 7.1 expanded to include a description of <em>Protocol Buffers</em>.</li>
<li>Section 7.2 expanded to include a description of <em>HTTP Adaptive
Streaming</em>.</li>
<li>New Section 8.1 introduces the duality of <em>Threats</em> and <em>Trust</em>.</li>
<li>Refactored topics across Sections 8.3 (<em>Key Predistribution</em>) and
8.4 (<em>Authentication Protocols</em>).</li>
<li>New Perspective Section in Chapter 8 describes <em>Decentralized
Identity Management</em> and the role of <em>Blockchains</em>.</li>
<li>Section 9.1 updated to include a description of <em>HTTP/2</em>, along with
a discussion of <em>REST</em>, <em>gRPC</em>, and <em>Cloud Services</em>.</li>
<li>Section 9.3 expanded to include a description of modern <em>Network
Management Systems</em> including the use of <em>OpenConfig</em> and <em>gNMI</em>.</li>
</ul>
</div>
<div class="section" id="organization">
<h2>Organization<a class="headerlink" href="#organization" title="Permalink to this headline">¶</a></h2>
<p>To construct a networking course around the material in this book, it
can be helpful to understand the overall organization, which can be
characterized as having three major parts:</p>
<ul class="simple">
<li>Conceptual and foundational material, that is, the big ideas at the
heart of networking.</li>
<li>Core protocols and algorithms that illustrate how the foundational
ideas are put to practice.</li>
<li>Advanced material that might or might not fit in any single semester
course.</li>
</ul>
<p>This characterization can be applied at the Chapter level: Chapter 1
is foundational, Chapters 2, 3, 5, and 9 are core, and Chapters 4, 6,
7, and 8 cover more advanced topics.</p>
<p>This characterization can also be applied at the Section level, where
roughly speaking, each Chapter advances from basic concepts to
specific technology to advanced techniques. For example, Chapter 3
starts by introducing the basics of switched networks (3.1), then
covers the specifics of Switched Ethernet and the IP Internet
(3.2-3.4), and concludes with an optional discussion of SDN
(3.5). Similarly, Chapter 6 starts with foundational ideas (6.1-6.2),
then explores TCP congestion control (6.3), and concludes with
optional advanced material (6.4-6.5).</p>
</div>
<div class="section" id="acknowledgements">
<h2>Acknowledgements<a class="headerlink" href="#acknowledgements" title="Permalink to this headline">¶</a></h2>
<p>We would like to acknowledge the following people for their help with
new content:</p>
<ul class="simple">
<li>Larry Brakmo: TCP Congestion Control</li>
<li>Carmelo Cascone: White-Box Switches</li>
<li>Charles Chan: White-Box Switches</li>
<li>Jude Nelson: Decentralized Identity</li>
<li>Oguz Sunay: Cellular Networks</li>
<li>Thomas Vachuska: Network Management</li>
</ul>
<p>Along with the following individuals (GitHub users) for their various
contributions and bug fixes:</p>
<table class="hlist"><tr><td><ul class="simple">
<li>Mohammed Al-Ameen</li>
<li>Mike Appelman</li>
<li>Andy Bavier</li>
<li>Manuel Berfelde</li>
<li>Brian Bohe</li>
<li>Peter DeLong</li>
<li>Chris Goldsworthy</li>
</ul>
</td><td><ul class="simple">
<li>John Hartman</li>
<li>Ethan Lam</li>
<li>Diego López León</li>
<li>Matteo Scandolo</li>
<li>Mike Wawrzoniak</li>
<li>罗泽轩 (spacewander)</li>
<li>Arnaud (arvdrpoo)</li>
</ul>
</td><td><ul class="simple">
<li>Desmond (kingdido999)</li>
<li>Guo (ZJUGuoShuai)</li>
<li>Hellman (eshellman)</li>
<li>Xtao (vertextao)</li>
<li>Joep (joepeding)</li>
<li>Seth (springbov)</li>
</ul>
</td></tr></table>
<p>Finally, we would like to thank the following reviewers for their many
helpful comments and suggestions. Their impact was significant.</p>
<ul class="simple">
<li>Mark J. Indelicato, Rochester Institute of Technology</li>
<li>Michael Yonshik Choi, Illinois Institute of Technology</li>
<li>Sarvesh Kulkarni, Villanova University</li>
<li>Alexander L. Wijesinha, Towson University</li>
</ul>
</div>
<div class="section" id="open-source">
<h2>Open Source<a class="headerlink" href="#open-source" title="Permalink to this headline">¶</a></h2>
<p>Source for this book is available on
<a class="reference external" href="https://github.com/SystemsApproach">https://github.com/SystemsApproach</a>, and is available under terms of
the Creative Commons (CC BY 4.0) license. The community is invited to
contribute corrections, improvements, updates, and new material under
the same terms. Like many open source software projects, this one has
been seeded with once restricted content: the fifth edition of
Peterson and Davie, copyrighted by Elsevier. Our hope is that open
sourcing this material will both make it widely available and serve as
an attractor for new content: updating what’s already there, expanding
it to cover new topics, and augmenting the text with additional
teaching collateral.</p>
<p>If you make use of this work, the attribution
should include the following information:</p>
<div class="line-block">
<div class="line">Title: <em>Computer Networks: A Systems Approach</em></div>
<div class="line">Authors: Larry Peterson and Bruce Davie</div>
<div class="line">Copyright: Elsevier, 2012</div>
<div class="line">Source: <a class="reference external" href="https://github.com/SystemsApproach">https://github.com/SystemsApproach</a></div>
<div class="line">License: <a class="reference external" href="https://creativecommons.org/licenses/by/4.0">CC BY 4.0</a></div>
</div>
</div>
<div class="section" id="how-to-contribute">
<h2>How to Contribute<a class="headerlink" href="#how-to-contribute" title="Permalink to this headline">¶</a></h2>
<p>We hope that, if you use this
material, you are also willing to contribute back to it. If you are
new to open source, you might check out this How to Contribute to Open
Source (<a class="reference external" href="https://opensource.guide/how-to-contribute">https://opensource.guide/how-to-contribute</a>) guide. Among other
things, you’ll learn about posting Issues that you’d like to see
addressed, and issuing Pull Requests to merge your improvements back
into GitHub. We hope you’ve derived value from Computer Networks: A
Systems Approach over the years, and we’re eager to have you join us
in this new venture.</p>
<div class="line-block">
<div class="line">Larry & Bruce</div>
<div class="line">October 2020</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="foundation.html" class="btn btn-neutral float-right" title="Chapter 1: Foundation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="foreword.html" class="btn btn-neutral float-left" title="Foreword" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
© Copyright 2019
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>