本书是全球最具有权威性和经典性的计算机网络教材,我国各大专院校也广泛采用此书作为计算机网络课程的基本教材。作者Tanenbaum 教授以高深的理论造诣和丰富的实践经验,在书中对计算机网络的原理、结构、协议标准与应用等做了深入的分析与研究。
全书按照网络协议模型(物理层、数据链路层、介质访问控制子层、网络层、传输层和应用层),自底向上逐层讲述每一层所用的技术与协议标准,并给出大量实例。全书内容全面详实,体系清晰合理,叙述由简入繁、层层深入,自底向上方法也符合人类从底层到高层的认识规律,因此是公认的最适合网络入门的教材。
随着计算机网络的发展,本版对相关内容进行了大量修订、更新和补充,具体更新内容如下:
•无线网络(802.12和802.16)。
•智能手机使用的3G网络。
•RFID和传感器网络。
•使用CDNs进行内容分发。
•对等网络。
•实时媒体。
•网络电话。
•延迟容忍网络。
......(更多)
Andrew S. Tanenbaum 国际知名的计算机科学家,著名的技术作家、教育家和研究者,ACM和IEEE两会高级会员,荷兰皇家艺术和科学院院士,荷兰阿姆斯特丹Vrije大学计算机科学系教授。他讲授计算机网络、操作系统和计算机组成等课程30多年,教学成果卓著,其所著的多部计算机科学方面的教材已成为该领域内的范本,得到学术界和教育界的广泛认可,多次获得ACM及其他学术组织颁发的各项荣誉,包括1994年ACM Karl V. Karlstrom杰出教育奖、1997年ACM计算机科学教育杰出贡献奖、2002年Texty卓越教材奖、第10届ACM操作系统原理研讨会杰出论文奖等,他还入选了《世界名人录》。
David J. Wetherall 拥有美国麻省理工学院计算机科学博士学位,现为华盛顿大学西雅图分校计算机科学与工程系副教授。他的研究领域是网络系统,尤其是无线网络和移动计算、网络测量和Internet协议的设计、隐私和安全。
......(更多)
about the authors 10
1 introduction 23
1.1 uses of computer networks, 25
1.1.1 business applications, 25
1.1.2 home applications, 28
1.1.3 mobile users, 32
1.1.4 social issues, 36
1.2 network hardware, 39
1.2.1 personal area networks, 40
1.2.2 local area networks, 41
1.2.3 metropolitan area networks, 45
1.2.4 wide area networks, 45
1.2.5 internetworks, 50
1.3 network software, 51
1.3.1 protocol hierarchies, 51
1.3.2 design issues for the layers, 55
1.3.3 connection-oriented versus connectionless service, 57
1.3.4 service primitives, 60
1.3.5 the relationship of services to protocols, 62
1.4 reference models, 63
.1.4.1 the osi reference model, 63
1.4.2 the tcp/ip reference model, 67
1.4.3 the model used in this book, 70
computer networks contents
fifth edition
preface 6
about the authors 10
1 introduction 23
1.1 uses of computer networks, 25
1.1.1 business applications, 25
1.1.2 home applications, 28
1.1.3 mobile users, 32
1.1.4 social issues, 36
1.2 network hardware, 39
1.2.1 personal area networks, 40
1.2.2 local area networks, 41
1.2.3 metropolitan area networks, 45
1.2.4 wide area networks, 45
1.2.5 internetworks, 50
1.3 network software, 51
1.3.1 protocol hierarchies, 51
1.3.2 design issues for the layers, 55
1.3.3 connection-oriented versus connectionless service, 57
1.3.4 service primitives, 60
1.3.5 the relationship of services to protocols, 62
1.4 reference models, 63
1.4.1 the osi reference model, 63
1.4.2 the tcp/ip reference model, 67
1.4.3 the model used in this book, 70
computer networks contents
fifth edition
preface 6
12?contents
1.4.4 a comparison of the osi and tcp/ip reference models, 71
1.4.5 a critique of the osi model and protocols, 73
1.4.6 a critique of the tcp/ip reference model, 75
1.5 example networks, 76
1.5.1 the internet, 76
1.5.2 third-generation mobile phone networks, 85
1.5.3 wireless lans: 802.11, 90
1.5.4 rfid and sensor networks, 93
1.6 network standardization, 95
1.6.1 who’s who in the telecommunications world, 97
1.6.2 who’s who in the international standards world, 98
1.6.3 who’s who in the internet standards world, 100
1.7 metric units, 102
1.8 outline of the rest of the book, 103
1.9 summary, 104
2 the physical layer 109
2.1 the theoretical basis for data communication, 110
2.1.1 fourier analysis, 110
2.1.2 bandwidth-limited signals, 110
2.1.3 the maximum data rate of a channel, 114
2.2 guided transmission media, 115
2.2.1 magnetic media, 115
2.2.2 twisted pairs, 116
2.2.3 coaxial cable, 117
2.2.4 power lines, 118
2.2.5 fiber optics, 119
2.3 wireless transmission, 125
2.3.1 the electromagnetic spectrum, 125
2.3.2 radio transmission, 129
2.3.3 microwave transmission, 130
2.3.4 infrared transmission, 134
2.3.5 light transmission, 134
contents?13
2.4 communication satellites, 136
2.4.1 geostationary satellites, 137
2.4.2 medium-earth orbit satellites, 141
2.4.3 low-earth orbit satellites, 141
2.4.4 satellites versus fiber, 143
2.5 digital modulation and multiplexing, 145
2.5.1 baseband transmission, 145
2.5.2 passband transmission, 150
2.5.3 frequency division multiplexing, 152
2.5.4 time division multiplexing, 155
2.5.5 code division multiplexing, 155
2.6 the public switched telephone network, 158
2.6.1 structure of the telephone system, 159
2.6.2 the politics of telephones, 162
2.6.3 the local loop: modems, adsl, and fiber, 164
2.6.4 trunks and multiplexing, 172
2.6.5 switching, 181
2.7 the mobile telephone system, 184
2.7.1 first-generation (1g) mobile phones: analog voice, 186
2.7.2 second-generation (2g) mobile phones: digital voice, 190
2.7.3 third-generation (3g) mobile phones: digital voice and data, 194
2.8 cable television, 199
2.8.1 community antenna television, 199
2.8.2 internet over cable, 200
2.8.3 spectrum allocation, 202
2.8.4 cable modems, 203
2.8.5 adsl versus cable, 205
2.9 summary, 206
3 the data link layer 213
3.1 data link layer design issues, 214
3.1.1 services provided to the network layer, 214
3.1.2 framing, 217
3.1.3 error control, 220
3.1.4 flow control, 221
2.4 communication satellites, 136
2.4.1 geostationary satellites, 137
2.4.2 medium-earth orbit satellites, 141
2.4.3 low-earth orbit satellites, 141
2.4.4 satellites versus fiber, 143
2.5 digital modulation and multiplexing, 145
2.5.1 baseband transmission, 145
2.5.2 passband transmission, 150
2.5.3 frequency division multiplexing, 152
2.5.4 time division multiplexing, 155
2.5.5 code division multiplexing, 155
2.6 the public switched telephone network, 158
2.6.1 structure of the telephone system, 159
2.6.2 the politics of telephones, 162
2.6.3 the local loop: modems, adsl, and fiber, 164
2.6.4 trunks and multiplexing, 172
2.6.5 switching, 181
2.7 the mobile telephone system, 184
2.7.1 first-generation (1g) mobile phones: analog voice, 186
2.7.2 second-generation (2g) mobile phones: digital voice, 190
2.7.3 third-generation (3g) mobile phones: digital voice and data, 194
2.8 cable television, 199
2.8.1 community antenna television, 199
2.8.2 internet over cable, 200
2.8.3 spectrum allocation, 202
2.8.4 cable modems, 203
2.8.5 adsl versus cable, 205
2.9 summary, 206
3 the data link layer 213
3.1 data link layer design issues, 214
3.1.1 services provided to the network layer, 214
3.1.2 framing, 217
3.1.3 error control, 220
3.1.4 flow control, 221
14?contents
3.2 error detection and correction, 222
3.2.1 error-correcting codes, 224
3.2.2 error-detecting codes, 229
3.3 elementary data link protocols, 235
3.3.1 a utopian simplex protocol, 240
3.3.2 a simplex stop-and-wait protocol for an error-free channel, 241
3.3.3 a simplex stop-and-wait protocol for a noisy channel, 242
3.4 sliding window protocols, 246
3.4.1 a one-bit sliding window protocol, 249
3.4.2 a protocol using go-back-n, 252
3.4.3 a protocol using selective repeat, 259
3.5 example data link protocols, 264
3.5.1 packet over sonet, 265
3.5.2 adsl (asymmetric digital subscriber loop), 268
3.6 summary, 271
4 the medium access control sublayer 275
4.1 the channel allocation problem, 276
4.1.1 static channel allocation, 276
4.1.2 assumptions for dynamic channel allocation, 278
4.2 multiple access protocols, 279
4.2.1 aloha, 280
4.2.2 carrier sense multiple access protocols, 284
4.2.3 collision-free protocols, 287
4.2.4 limited-contention protocols, 292
4.2.5 wireless lan protocols, 295
4.3 ethernet, 298
4.3.1 classic ethernet physical layer, 299
4.3.2 classic ethernet mac sublayer protocol, 300
4.3.3 ethernet performance, 304
4.3.4 switched ethernet, 306
and correction, 222
codes, 224
codes, 229
data link protocols, 235
simplex protocol, 240
stop-and-wait protocol for an error-free channel, 241
stop-and-wait protocol for a noisy channel, 242
protocols, 246
sliding window protocol, 249
using go-back-n, 252
using selective repeat, 259
link protocols, 264
sonet, 265
digital subscriber loop), 268
control sublayer 275
allocation problem, 276
allocation, 276
for dynamic channel allocation, 278
protocols, 279
280
multiple access protocols, 284
free protocols, 287
protocols, 292
lan protocols, 295
physical layer, 299
mac sublayer protocol, 300
performance, 304
ethernet, 306
3.2 error detection and correction, 222
3.2.1 error-correcting codes, 224
3.2.2 error-detecting codes, 229
3.3 elementary data link protocols, 235
3.3.1 a utopian simplex protocol, 240
3.3.2 a simplex stop-and-wait protocol for an error-free channel, 241
3.3.3 a simplex stop-and-wait protocol for a noisy channel, 242
3.4 sliding window protocols, 246
3.4.1 a one-bit sliding window protocol, 249
3.4.2 a protocol using go-back-n, 252
3.4.3 a protocol using selective repeat, 259
3.5 example data link protocols, 264
3.5.1 packet over sonet, 265
3.5.2 adsl (asymmetric digital subscriber loop), 268
3.6 summary, 271
4 the medium access control sublayer 275
4.1 the channel allocation problem, 276
4.1.1 static channel allocation, 276
4.1.2 assumptions for dynamic channel allocation, 278
4.2 multiple access protocols, 279
4.2.1 aloha, 280
4.2.2 carrier sense multiple access protocols, 284
4.2.3 collision-free protocols, 287
4.2.4 limited-contention protocols, 292
4.2.5 wireless lan protocols, 295
4.3 ethernet, 298
4.3.1 classic ethernet physical layer, 299
4.3.2 classic ethernet mac sublayer protocol, 300
4.3.3 ethernet performance, 304
4.3.4 switched ethernet, 306
contents?15
4.3.5 fast ethernet, 308
4.3.6 gigabit ethernet, 311
4.3.7 10-gigabit ethernet, 314
4.3.8 retrospective on ethernet, 316
4.4 wireless lans, 317
4.4.1 the 802.11 architecture and protocol stack, 317
4.4.2 the 802.11 physical layer, 319
4.4.3 the 802.11 mac sublayer protocol, 321
4.4.4 the 802.11 frame structure, 327
4.4.5 services, 329
4.5 broadband wireless, 330
4.5.1 comparison of 802.16 with 802.11 and 3g, 331
4.5.2 the 802.16 architecture and protocol stack, 332
4.5.3 the 802.16 physical layer, 334
4.5.4 the 802.16 mac sublayer protocol, 335
4.5.5 the 802.16 frame structure, 337
4.6 bluetooth, 338
4.6.1 bluetooth architecture, 338
4.6.2 bluetooth applications, 339
4.6.3 the bluetooth protocol stack, 340
4.6.4 the bluetooth radio layer, 342
4.6.5 the bluetooth link layers, 342
4.6.6 the bluetooth frame structure, 343
4.7 rfid, 345
4.7.1 epc gen 2 architecture, 345
4.7.2 epc gen 2 physical layer, 346
4.7.3 epc gen 2 tag identification layer, 347
4.7.4 tag identification message formats, 349
4.8 data link layer switching, 350
4.8.1 uses of bridges, 350
4.8.2 learning bridges, 352
4.8.3 spanning tree bridges, 355
4.8.4 repeaters, hubs, bridges, switches, routers, and gateways, 358
4.8.5 virtual lans, 360
4.9 summary, 367
16?contents
5 the network layer 373
5.1 network layer design issues, 373
5.1.1 store-and-forward packet switching, 374
5.1.2 services provided to the transport layer, 374
5.1.3 implementation of connectionless service, 376
5.1.4 implementation of connection-oriented service, 377
5.1.5 comparison of virtual-circuit and datagram networks, 379
5.2 routing algorithms, 380
5.2.1 the optimality principle, 382
5.2.2 shortest path algorithm, 384
5.2.3 flooding, 386
5.2.4 distance vector routing, 388
5.2.5 link state routing, 391
5.2.6 hierarchical routing, 396
5.2.7 broadcast routing, 398
5.2.8 multicast routing, 400
5.2.9 anycast routing, 403
5.2.10 routing for mobile hosts, 404
5.2.11 routing in ad hoc networks, 407
5.3 congestion control algorithms, 410
5.3.1 approaches to congestion control, 412
5.3.2 traffic-aware routing, 413
5.3.3 admission control, 415
5.3.4 traffic throttling, 416
5.3.5 load shedding, 419
5.4 quality of service, 422
5.4.1 application requirements, 423
5.4.2 traffic shaping, 425
5.4.3 packet scheduling, 429
5.4.4 admission control, 433
5.4.5 integrated services, 436
5.4.6 differentiated services, 439
5.5 internetworking, 442
5.5.1 how networks differ, 443
5.5.2 how networks can be connected, 444
5.5.3 tunneling, 447
contents?17
5.5.4 internetwork routing, 449
5.5.5 packet fragmentation, 450
5.6 the network layer in the internet, 454
5.6.1 the ip version 4 protocol, 457
5.6.2 ip addresses, 460
5.6.3 ip version 6, 473
5.6.4 internet control protocols, 483
5.6.5 label switching and mpls, 488
5.6.6 ospf—an interior gateway routing protocol, 492
5.6.7 bgp—the exterior gateway routing protocol, 497
5.6.8 internet multicasting, 502
5.6.9 mobile ip, 503
5.7 summary, 506
6 the transport layer 513
6.1 the transport service, 513
6.1.1 services provided to the upper layers, 514
6.1.2 transport service primitives, 516
6.1.3 berkeley sockets, 518
6.1.4 an example of socket programming: an internet file server, 521
6.2 elements of transport protocols, 525
6.2.1 addressing, 527
6.2.2 connection establishment, 530
6.2.3 connection release, 535
6.2.4 error control and flow control, 540
6.2.5 multiplexing, 545
6.2.6 crash recovery, 545
6.3 congestion control, 548
6.3.1 desirable bandwidth allocation, 549
6.3.2 regulating the sending rate, 553
6.3.3 wireless issues, 557
6.4 the internet transport protocols: udp, 559
6.4.1 introduction to udp, 559
6.4.2 remote procedure call, 561
6.4.3 real-time transport protocols, 564
5.5.4 internetwork routing, 449
5.5.5 packet fragmentation, 450
5.6 the network layer in the internet, 454
5.6.1 the ip version 4 protocol, 457
5.6.2 ip addresses, 460
5.6.3 ip version 6, 473
5.6.4 internet control protocols, 483
5.6.5 label switching and mpls, 488
5.6.6 ospf—an interior gateway routing protocol, 492
5.6.7 bgp—the exterior gateway routing protocol, 497
5.6.8 internet multicasting, 502
5.6.9 mobile ip, 503
5.7 summary, 506
6 the transport layer 513
6.1 the transport service, 513
6.1.1 services provided to the upper layers, 514
6.1.2 transport service primitives, 516
6.1.3 berkeley sockets, 518
6.1.4 an example of socket programming: an internet file server, 521
6.2 elements of transport protocols, 525
6.2.1 addressing, 527
6.2.2 connection establishment, 530
6.2.3 connection release, 535
6.2.4 error control and flow control, 540
6.2.5 multiplexing, 545
6.2.6 crash recovery, 545
6.3 congestion control, 548
6.3.1 desirable bandwidth allocation, 549
6.3.2 regulating the sending rate, 553
6.3.3 wireless issues, 557
6.4 the internet transport protocols: udp, 559
6.4.1 introduction to udp, 559
6.4.2 remote procedure call, 561
6.4.3 real-time transport protocols, 564
18?contents
6.5 the internet transport protocols: tcp, 570
6.5.1 introduction to tcp, 570
6.5.2 the tcp service model, 571
6.5.3 the tcp protocol, 574
6.5.4 the tcp segment header, 575
6.5.5 tcp connection establishment, 578
6.5.6 tcp connection release, 580
6.5.7 tcp connection management modeling, 580
6.5.8 tcp sliding window, 583
6.5.9 tcp timer management, 586
6.5.10 tcp congestion control, 589
6.5.11 the future of tcp, 599
6.6 performance issues, 600
6.6.1 performance problems in computer networks, 601
6.6.2 network performance measurement, 602
6.6.3 host design for fast networks, 604
6.6.4 fast segment processing, 608
6.6.5 header compression, 611
6.6.6 protocols for long fat networks, 613
6.7 delay-tolerant networking, 617
6.7.1 dtn architecture, 618
6.7.2 the bundle protocol, 621
6.8 summary, 623
7 the application layer 629
7.1 dns—the domain name system, 629
7.1.1 the dns name space, 630
7.1.2 domain resource records, 634
7.1.3 name servers, 637
7.2 electronic mail, 641
7.2.1 architecture and services, 642
7.2.2 the user agent, 644
7.2.3 message formats, 648
7.2.4 message transfer, 655
7.2.5 final delivery, 661
contents?19
7.3 the world wide web, 664
7.3.1 architectural overview, 665
7.3.2 static web pages, 680
7.3.3 dynamic web pages and web applications, 690
7.3.4 http—the hypertext transfer protocol, 701
7.3.5 the mobile web, 711
7.3.6 web search, 713
7.4 streaming audio and video, 715
7.4.1 digital audio, 717
7.4.2 digital video, 722
7.4.3 streaming stored media, 731
7.4.4 streaming live media, 739
7.4.5 real-time conferencing, 742
7.5 content delivery, 752
7.5.1 content and internet traffic, 754
7.5.2 server farms and web proxies, 756
7.5.3 content delivery networks, 761
7.5.4 peer-to-peer networks, 766
7.6 summary, 775
8 network security 781
8.1 cryptography, 784
8.1.1 introduction to cryptography, 785
8.1.2 substitution ciphers, 787
8.1.3 transposition ciphers, 789
8.1.4 one-time pads, 790
8.1.5 two fundamental cryptographic principles, 794
8.2 symmetric-key algorithms, 796
8.2.1 des—the data encryption standard, 798
8.2.2 aes—the advanced encryption standard, 801
8.2.3 cipher modes, 805
8.2.4 other ciphers, 810
8.2.5 cryptanalysis, 810
20?contents
8.3 public-key algorithms, 811
8.3.1 rsa, 812
8.3.2 other public-key algorithms, 814
8.4 digital signatures, 815
8.4.1 symmetric-key signatures, 816
8.4.2 public-key signatures, 817
8.4.3 message digests, 818
8.4.4 the birthday attack, 822
8.5 management of public keys, 824
8.5.1 certificates, 825
8.5.2 x.509, 827
8.5.3 public key infrastructures, 828
8.6 communication security, 831
8.6.1 ipsec, 832
8.6.2 firewalls, 836
8.6.3 virtual private networks, 839
8.6.4 wireless security, 840
8.7 authentication protocols, 845
8.7.1 authentication based on a shared secret key, 846
8.7.2 establishing a shared key: the diffie-hellman key exchange, 851
8.7.3 authentication using a key distribution center, 853
8.7.4 authentication using kerberos, 856
8.7.5 authentication using public-key cryptography, 858
8.8 email security, 859
8.8.1 pgp—pretty good privacy, 860
8.8.2 s/mime, 864
8.9 web security, 864
8.9.1 threats, 865
8.9.2 secure naming, 866
8.9.3 ssl—the secure sockets layer, 871
8.9.4 mobile code security, 875
8.10 social issues, 878
8.10.1 privacy, 878
8.10.2 freedom of speech, 881
8.10.3 copyright, 885
8.11 summary, 887
contents?21
9 reading list and bibliography 895
9.1 suggestions for further reading, 895
9.1.1 introduction and general works, 896
9.1.2 the physical layer, 897
9.1.3 the data link layer, 898
9.1.4 the medium access control sublayer, 898
9.1.5 the network layer, 899
9.1.6 the transport layer, 900
9.1.7 the application layer, 900
9.1.8 network security, 901
9.2 alphabetical bibliography, 902
index 921
......(更多)
曾经有一段时间,AT&T公司资产的80%是本地回路中的铜。因此,AT&T公司实际上是世界上最大的铜矿主。幸运的是,这样的事实并没有在投资圈里广为人知。如果被别人知道,个别市场捣乱者就有可能买下AT&T公司,停止全美国的所有电话服务;然后把所有的电话线收回来卖给炼铜商,以此获得暴利。
这种很像沙漏计时器形状的TCP/IP协议族表明:TCP/IP协议可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP协议也允许IP协议在格式各样的网络构成的互联网上运行(所谓的IP over everything)。正因为如此,互联网才会发展到今天的这种全球规模。不难看出IP协议在互联网中的核心作用。
有关未来网络的预言有一个趋势,就是这些言论过几年就会显得很傻。 当前技术水平与很多人认为的全球无处不在的异构网络之间已经很接近了。
找到一个较高的空中位置来放置基站天线是蜂窝系统的一个主要问题。这个问题导致了一些电信运营商与罗马天主教会结成了联盟,因为罗马天主教会在全世界拥有大量很高的潜在天线放置地点,并且都在其统一管理之下。
早在ARPANET时代, 整个网络上只有数百台计算机,那时使用一个叫做‘hosts’的文件, 列出所有主机名字和对应的IP地址.
因为排队时延随时间变化,所以分组n发送到路由器n的往返时延实际上比分组n+1发送到路由器n+1的往返时延更大。的确,我们在上述例子中观察到了这种现象:到路由器6的时延比到路由器7的时延大。
......(更多)