拟分为三个部分共14章展开, 三个部分是:第一部分:网络原理与技术、第二部分:网络工程与组网、第三部分:网络技术应用。第一部分包括计算机网络的主干知识,第二、第三部分可根据不同专业的要求在教学中灵活组合。电力、热动、电力电子、自动化、风能、机械等工科专业本科生以及工商管理学院的相关专业学生。
本书分为网络基础篇、网络协议篇和网络集成与应用篇三个部分。
全书共分10章,较为全面和系统地介绍了计算机网络的发展过程和典型的网络体系结构,介绍了物理层、数据链路层、网络层、传输层和应用层上的各种协议及其工作原理,既介绍成熟技术和经典协议,也介绍了一些新标准新技术的基本原理,此外还介绍了网络安全的基本概念和安全协议,最后是园区网组网案例分析。
每章后面附有习题,网络协议篇的每章后面安排有实验内容,这些实验基于主流网络操作系统和开源代码软件,不需要特殊的软硬件平台投入,既可以方便学生个人课后练习,也可以供教师简便地组织实验环节。
本书特点是系统性较强、内容丰富、结构清晰、论述严谨,既突出基本原理和技术思想,也强调工程实践。本书可供电气信息类和计算机类专业的大学本科生和研究生(特别是工程硕士)使用,也可供网络工程技术人员参考。
二十多年前,我初次接触了用于开放系统互连的OSI分层体系。那时,Internet还没有在全球商业化普及,电信、广播电视和计算机网络行业之间有着明确的疆域,电话和广播电视都在尝试将交互式的数字信息业务扩展到各自的系统中,一些实验室在研究利用电话网传输综合数字业务的ISDN技术,而我的论文课题,则是基于OSI参考模型的七层框架,提出一个中文的图文电视信息系统(Teletext)规范,并实现这样一个应用系统的服务提供端。这一挑战性的任务让我初次领略了网络协议的奥妙。
如今,ISDN、Teletext早已被Internet大潮所淹没,TCP/IP成为事实上“放之四海而皆准”的纲领。另一战场上,以太网标准在局域网领域“统一了三国”,并迅速向骨干网挺进,向下则逐渐蚕食着工业现场总线的疆土;光纤分布式数字接口(FDDI)、异步传输模式(ATM)、多协议标记交换(MPLS)技术一波接一波,彰显着计算机网络技术的发展速度。
但是,潮来潮去,总有一些核心的东西是有生命力的,譬如,ATM技术退出了市场,但标记交换的思想则依然以新的形式延续着;虽然电信、广播电视和计算机三网业务逐渐在向IP平台上融合,但是由于服务质量(QoS)的短板问题,IP网络上的语音和视频服务目前还无法取代传统的电信业务和成熟的广播电视业务。在市场上,产品技术可以分为流行或不流行,但背后的技术思想却常常被传承下来,并成为创新的起点。此外,分层的网络协议体系仍然是计算机网络的基础。鉴于此,在构思这本教程时,我认为,成熟的协议体系及其背后的技术思想,应该是教材和教学强调的重点,也是开启学生网络技术悟性的钥匙。
基于上述出发点,本教程强调分层的协议体系,以期为学生建立起完整和清晰的网络知识体系;主要内容基于国内外经典教程和网络工程实践中所提倡的五层体系结构展开,该结构框架是对OSI七层协议参考模型和TCP/IP架构的兼收并蓄,是迄今为止容纳广泛的网络协议最合适的容器。
在新旧内容取舍方面,本书既保留了一些经典协议,如HDLC、ALOHA等,目的是学习其思想方法;也介绍了一些有影响的新技术的基本原理,如网络层的QoS模型、传输层之上的实时传输协议RTP及RTCP、应用层的新型计算模式P2P及其两种代表应用(基于P2P的文件分发和因特网电话服务)。
此外,为了兼顾工科学生深造和宽口径就业的需求,本书还试图体现以下特色:
1)提供网络工程的视野。在给学生建立起清晰和系统的网络知识体系的同时,使其对网络工程技术有所了解。本书第三部分安排为网络集成与应用,先介绍典型的园区网组网知识,然后用案例的形式使学生对网络工程有一个全面了解,开阔学生专业视野,达到学以致用的目的。
2)强化实践动手环节。在第二部分(网络协议)的每一章后均安排了可以进行独立实验的环节,以加深学生对协议的理解,提高学生的动手能力。这些实验基于主流网络操作系统和开源代码软件,不需要特殊的软硬件平台投入,方便学生课后练习,也可供教师组织实验。
3)提供初步的网络应用编程训练。Socket API是网络协议体系和网络应用编程最好的结合点,在学习了网络各层协议的工作原理和园区网组网案例之后,本书最后一章介绍了基于Socket API 的网络应用编程的基本概念和方法,以期使学生对计算机网络的认识更加系统和完整。
4)跟踪最新的RFC标准文档。附录C中列出了本书涉及的一些RFC文档的当前最新版本信息(截至2010年6月),具有较好的参考价值,可供有兴趣的学生展开深入的研究和探索。
本教材兼顾了计算机网络考研大纲(2010年)要求,适合作为高等院校计算机、软件工程、信息安全、通信、电子信息等相关专业的本科生或工程硕士的教材和教学参考书,也可供网络信息工程技术人员学习参考。
本书由徐磊主编,阎光伟、胡海涛、李国栋和孙雅娟参与编写。其中,徐磊构思并拟定了全书的内容大纲,执笔编写了第1章、第4章、第5章和第10章及相关实验,阎光伟编写了第3章以及第8章的81、82、83节和实验一,胡海涛编写了第2章、第7章的71、72、75节以及第8章的84、85节和实验二,李国栋编写了第6章以及第7章的73、74节和相关实验,孙雅娟编写了第9章,全书由徐磊统稿。
本书教学建议及目录中标记为星号的内容可以根据学时安排选讲或不讲,供学生自学参考。
感谢对本书提出宝贵建议的专家和同行,感谢对本书部分实验进行了验证和辅助工作的研究生,感谢机械工业出版社华章分社对本书出版工作的大力支持。
由于时间和水平所限,书中难免存在不妥之处,殷切希望广大读者批评指正。
徐磊
2010年8月
计算机科学及应用
本书围绕分层的网络协议体系架构,从网络协议、网络工程和网络应用编程三个方面展开内容,方便读者系统和完整地认识计算机网络。
本书特点:
完整和清晰的网络知识体系。本书的主要篇幅围绕分层的网络体系架构展开,以因特网协议体系为重点,兼顾一般网络概念和流行的网络协议,内容涵盖经典网络协议、新型网络协议、无线网络和网络安全等内容。
理论和应用并重。本书的网络集成与应用篇兼顾了在计算机网络领域中有不同发展预期的读者需求。园区网组网和案例一章为读者提供了网络工程的视野;基于BSD Socket的网络应用一章则为读者介绍了网络应用编程的基本概念和方法。
强调实践动手能力的训练。在网络协议篇的每一章后面安排了基于开源代码软件的协议验证性实验,在最后一章后面安排了网络应用编程训练,使学生能够学以致用。
本书为教师提供教学课件、网络编程实验的参考程序及其源代码和部分习题答案,有需要者可登录华章网站(www.hzbook.com)下载。
前言
教学建议
第一部分网络基础
第1章计算机网络概论1
11计算机网络的演变和发展历史1
111计算机网络的起源和形成1
112开放的网络体系标准的发展3
113因特网时代3
12计算机网络的定义和组成5
121计算机网络的定义5
122计算机网络的组成5
123因特网的结构7
13计算机网络的分类8
14计算机网络的拓扑结构8
15计算机网络的主要性能参数10
151带宽和传输速率10
152时延、往返时延和时延变化10
153吞吐量、丢包率11
*16计算机网络的标准化工作和相关技术组织11
161因特网的标准组织11
162国际电信联盟12
163国际标准化组织12
164电气和电子工程师协会13
习题13
第2章计算机网络的体系结构14
21基本概念14
211分层的体系结构14
212有关术语及概念16
22ISO/OSI参考模型19
23TCP/IP体系结构21
24五层协议的体系结构23
习题25
第二部分网络协议
第3章物理层27
31物理层概述27
32数据通信基础知识27
321通信的基本概念27
322通信系统的模型与分类29
323数据通信主要技术指标31
324数据通信的方式32
33数据编码和调制技术35
331数字基带传输和数字频带传输35
332数字基带传输常见码型35
333脉冲编码调制37
334数字信号的调制37
335调制解调器39
34多路复用技术40
341频分多路复用技术40
342波分多路复用技术41
343时分多路复用技术41
344码分多路复用技术42
35数据交换技术43
351电路交换43
352分组交换45
36物理层的传输介质45
361导向传输介质46
362非导向传输介质48
37局域网的物理层51
371以太网的物理层结构52
372以太网的物理层实现54
373以太网介质相关标准55
*38广域网的物理层57
381PCM数字传输系统57
382同步光纤网SONET与同步数字体系SDH58
39无线网的物理层59
391无线LAN的物理层59
*392无线WAN的物理层61
习题62
实验双绞线的制作63
第4章数据链路层65
41数据链路层概述65
411数据链路层的基本概念65
412数据链路层协议的功能65
413差错校验的实现67
414可靠交付与确认机制69
42一个经典的数据链路层协议HDLC72
421HDLC的起源和影响72
422HDLC的工作原理73
43因特网中的点到点协议PPP75
431PPP协议简介75
432PPP的工作原理76
44局域网中的数据链路层协议78
441媒体访问控制方式78
442随机接入的媒体访问控制协议79
443IEEE 802参考模型81
444以太网的基本MAC帧83
45以太网技术的发展85
451以太网交换技术及高速以太网85
452虚拟局域网和IEEE 8021Q86
46无线局域网88
461无线局域网的组成88
462IEEE 80211的MAC子层协议89
463IEEE 80211的帧格式92
习题95
实验以太网帧的构成96
第5章网络层98
51网络层的基本概念98
511网络层的主要功能98
512网络层向上提供的两种服务99
52IPv4协议101
521IP数据报的格式101
522IP报文的分片103
53因特网上的地址机制104
531IP地址及IP报文的寻址104
532子网编址106
533无分类的域间编址CIDR110
534特殊用途的CIDR地址块114
535地址解析协议ARP115
536网络地址转换NAT116
54因特网上的路由机制118
541路由协议的基本概念118
542RIP协议120
543OSPF协议122
544BGP协议125
55因特网上的控制协议ICMP127
551ICMP报文127
552典型的ICMP应用实例129
56因特网上的多播130
561多播的概念130
562IP多播地址与硬件多播地址131
563因特网上的组管理协议IGMP132
*564多播的路由选择133
57下一代因特网协议IPv6134
571IPv6的背景及主要特点134
572IPv6的报文格式134
573IPv6地址136
574ICMPv6139
575向IPv6的过渡140
*58移动IP141
*59网络层的QoS144
591QoS的一般概念144
592集成服务145
593区分服务146
习题149
实验150
实验一地址解析协议ARP协议实验150
实验二ICMP协议实验151
实验三IP协议及traceroute路由跟踪152
第6章传输层155
61传输层的基本概念155
611面向连接和无连接服务155
612因特网上的端到端通信155
613端口和套接字的概念156
614传输层的多路复用与多路分解157
62因特网上的用户数据报协议158
621UDP概述158
622UDP数据报结构159
623UDP校验和160
63因特网上的传输控制协议160
631TCP概述160
632TCP报文段结构161
633TCP序号与确认162
634TCP重传机制163
635TCP连接管理164
636TCP流量控制168
637TCP拥塞控制169
*64用于多媒体传输的实时传输/传输控制协议172
习题173
实验174
实验一UDP协议实验174
实验二TCP协议实验175
第7章应用层177
71应用层的基本概念177
72网络应用的工作模式178
721C/S工作模式178
722B/S工作模式179
723P2P工作模式180
73因特网上的域名机制182
731分层的域名空间182
732域名服务器与域名解析183
74因特网上的基本应用184
741电子邮件184
742万维网189
743文件传输服务192
744远程登录193
745动态主机配置协议194
*746网络管理及简单网络管理协议195
*75因特网上的新型应用198
751基于P2P的文件分发199
752基于P2P的因特网电话服务203
习题206
实验HTTP协议实验207
第8章网络安全209
81网络安全概述209
811网络系统所面临的威胁209
812网络安全体系应提供的安全服务210
82网络攻击210
821网络攻击概述210
822拒绝服务攻击211
823恶意代码213
83网络安全基本技术216
831加密216
832数字签名219
833身份认证220
*834密钥分配223
*84网络安全协议228
841网络层安全协议IPSec228
842传输层安全协议SSL231
843电子邮件安全协议PGP237
844无线局域网的安全协议80211i239
*85安全标准与法律法规242
851网络安全评估标准242
852安全法律与法规244
习题246
实验247
实验一数字证书的生成与安装247
实验二SSL安全协议分析实验252
第三部分网络集成与应用
*第9章园区网组网及案例分析255
91网络结构255
911拓扑结构255
912三层组网结构255
913扁平化的两层结构257
92局域网硬件设备257
921集线器257
922交换机258
923路由器261
924三层交换机263
925无线局域网络设备264
93综合布线系统267
931综合布线系统的标准267
932综合布线系统的构成267
933综合布线系统的常用传输介质268
94IP地址的分配与管理269
941IP地址分配原则269
942IP地址分配方式269
943IP地址的管理271
95网络安全防护技术271
951防火墙271
952入侵检测274
953网络防病毒275
954VPN技术276
96因特网的接入277
961几种常用的因特网接入方式277
962园区网的因特网接入277
97园区网组网实例278
*第10章基于Socket API的网络应用编程280
101网络应用编程概述280
102Socket编程的基本概念281
1021BSD Socket API简介281
1022BSD Socket的种类282
1023BSD Socket API的基本知识282
103TCP Socket编程方法286
1031TCP Socket的工作流程286
1032TCP Socket应用编程示例287
104UDP Socket编程方法290
1041UDP Socket的工作流程290
1042UDP Socket应用编程示例291
105Raw Socket编程方法293
1051协议首部数据结构293
1052校验和的计算294
1053Raw Socket 应用编程示例295
106网络服务器的工作模式296
实验297
实验一基于UDP的对等通信编程297
实验二简单Web代理服务器298
第四部分附录
附录A英文缩写词汇表299
附录BEthereal简介与使用指南305
附录C有关RFC文档308
参考文献310