关于我们
![]() ![]() |
计算机网络
本书依据计算机网络技术发展的三条主线——互联网、无线网络与网络安全,系统地介绍网络的基本概念、网络体系结构、网络互联与分布式进程通信、Internet应用与网络安全技术;在系统讨论网络基本工作原理的同时,注重网络应用系统与网络应用软件设计、实现方法的学习;贴近技术发展的前沿,对当前研究与应用的热点——无线网络、移动互联网与物联网技术进行了系统的讨论。
作者吴功宜在40年前大学毕业留校参加工作时,曾经向一位老先生请教如何教好一门课。老先生送给作者的一句话是:“你要给学生一勺水,那么你自己就需要准备一桶水”。多年的教学实践使作者深刻地体会到:要教好一门课,教师需要通过教学研究,深入理解课程的精髓,掌握教学规律;通过科研来提高自身的学术水平,提高理论联系实际的能力。有以上两点还不够,还需要在教学的过程中,不断地向学生学习,了解初学者对某些问题的认识过程与规律,搞懂初学者对哪些问题不容易掌握,以及为什么不容易掌握。
在规划教材体系建设时,注意到理论知识学习和实际能力培养的关系问题。主教材内容定位与网络技术发展的总体水平,力求做到知识体系设计合理,难易程度适中,配套教材齐全,能够适应我国不同地区、不同学校和专业网络课程教学的基本要求。经过十多年的努力,基本形成了由“一本主教材、四本辅助教材和一个电子教案”构成的教材体系,为计算机网络课程教学改革提供了一个良好的平台。
主教材《计算机网络(第4版)》的特点是:
*,打牢网络理论与技术基础。
在知识结构的设计中,坚持以支撑互联网、移动互联网与物联网发展的共性技术为主线,每一章内容力求集中回答其中一个基本的问题。
通过剖析常用的网络应用实例,对网络应用系统的设计与实现方法进行讨论,帮助读者渐进、潜移默化地接受前人成熟的研究方法与成果,为继续学习和研究网络技术奠定基础。
第二,贴近技术发展前沿。
计算机网络是当今计算机科学与技术学科中发展*为迅速的技术之一,也是计算机应用中一个空前活跃的领域。作者潜心研读了近年来国内外计算机网络的重要著作、文献,并结合个人与科研团队的研究工作,贴近技术发展前沿,探讨计算机网络知识体系中“变”与“不变”的关系,分析学生学习过程中“难点”和为什么会成为难点的问题,突出计算机专业的特点,对相关章节内容做出了适当地取舍,相对较多地增加了无线网络的份量,形成第4版的知识体系。
第三,以“系统观”的思路组织网络知识体系。
计算机专业学生需要更强调计算机系统能力的培养。计算机专业学生系统能力的核心是培养学生具有设计和构建以计算技术为核心、新的应用系统的能力,而网络知识是计算机系统能力的重要组成部分。因此,计算机专业学生系统能力的培养要将计算机与计算机网络看成一个有机的整体,引导学生用计算机组成原理、操作系统的基础知识,去理解计算机网络基本工作原理,学会用软件编程的方法去实现网络服务功能,使得学生能够准确描述与构建出真实网络应用系统的模型,以及有效地构造网络应用系统的能力。教程在组织每一章、每一个知识点,以及习题、网络软件编程与硬件训练,都力求做到这一点。
第四,贯彻“以能力培养为导向”的教学理念。
计算机网络是一门应用性与实践性很强的课程。学生只有通过系统地训练,才有可能真正掌握和深入理解网络技术的基本理论与方法。教学团队在规划教材体系建设时,坚持“以能力培养为导向”的指导思想,经过近二十年的努力,形成了由“一本主教材、四本辅助教材和一个电子教案”构成的教材体系。
清华大学出版社为《计算机网络(第4版)》在线教学版配套开发了丰富的在线教学资源,可以在清华大学出版社的在线教学平台上进行练习与测试,实现教学互动、智能学习。
本书可以供计算机、软件工程、信息安全、物联网工程、传感网技术、通信工程与电子信息等相关专业的本科与硕士研究生作为计算机网络课程的教材或教学参考书,也可以作为从事信息技术的工程技术人员与技术管理人员学习、研究网络技术的参考书。
如果将“分组交换”概念的提出与ARPANET的出现作为计算机网络技术发展起点,那么计算机网络技术已经经历了半个多世纪的发展历程。回顾网络技术与应用发展的历程,可以清晰地看到它是沿着“互联网—移动互联网—物联网”的轨迹,“由小到大”一步一步地发展、壮大,“由表及里”地渗透到社会的各行各业与各个领域。
作者记得1984年*次在南开大学计算机系开设“计算机网络”课程时,计算机系一届的百名学生中只有7位学生选修了这门课程,人们对计算机网络都很陌生。30多年过去了,计算机网络*成功的应用——互联网——已经成为人们生活与工作环境的重要组成部分。互联网正在改变着人们的生活方式、工作方式与思维方式,也正在改变着世界经济与社会发展的进程。现在谈到计算机网络时,人们自然会联想到当前社会热议的几个关键词——“网络强国”“互联网+” 与“网络空间安全”。
作者在多年的网络教学与科研工作中,跟踪着网络技术研究与应用的发展,见证了计算机网络从互联网、移动互联网到物联网的高速发展过程。1995年作者参与研究并起草“天津市信息港工程规划纲要”,至今也是20年前的事了。在这20多年里,作者见证了我国互联网技术、社会信息化与信息产业的发展历程;在参与和主持城市信息化建设“九五”、“十五”与“十一五”发展规划的研究工作中,作者见证了我国互联网规模的快速增长与互联网概念逐渐被社会大众接受的过程,学会从宏观的角度去认识网络技术的发展,体会网络技术对信息产业与社会经济发展的重大影响。这些经历使得作者逐渐对计算机网络技术有了更加深刻、全面的认识。我国是网络应用的大国,但不是网络技术强国。要实现“网络强国”之梦,要通过“互联网+”的路径来推进我国经济发展模式的转型,要捍卫我国“网络空间安全”,就必须培养出大批的网络技术精英,大学计算机网络课程教学应该在培养网络技术高水平人才方面发挥重要的作用。
出于这样的认识,作者在修订《计算机网络》的第4版时,注意解决以下几个的问题。
*,打牢网络理论与技术基础。
根据作者科研和教学工作体会,在第4版的写作中力求做到“结构清晰,环环相扣,逐步递进;语言流畅,图文并茂,易读易懂”。在知识结构的设计中,坚持每一章内容力求集中回答计算机网络中一些基本的问题。这些问题是:
第1章基本概念: 什么是计算机网络?
第2章物理层: 网络中比特流传输是如何实现的?
第3章数据链路层: 网络中数据传输的正确性是如何保证的?前言计算机网络(第4版)第4章介质访问子层: *常用的Ethernet与WiFi的网络功能是如何实现的?
第5章网络层: 网络互联是如何实现的?
第6章传输层: 网络环境中分布式进程通信是如何实现的?
第7章应用层: 网络应用系统是如何设计与实现的?
第8章网络安全: 如何保证网络安全?
为了达到“打牢网络理论与技术基础”的目标,本书坚持加强“基础与方法论”的教学,在后续章节不断深化,并通过剖析常用的网络应用实例,对网络应用系统的设计方法进行总结,帮助读者渐进地、潜移默化地接受前人成熟的研究方法与成果,为进一步学习和研究网络技术奠定基础。
第二,贴近技术发展前沿。
计算机网络是当今计算机科学与技术学科中发展*为迅速的技术之一,也是计算机应用中一个空前活跃的领域。如果说广域网扩大了信息社会中资源共享的广度,城域网扩大了用户接入互联网的范围,局域网扩大了信息资源共享的深度,个人区域网与人体区域网增强了人类共享信息资源的灵活性,那么物联网就是在互联网技术的基础上,利用RFID和各种感知技术自动获取物理世界的信息,构建覆盖世界上人与人、人与物、物与物的各种智能信息系统。今后计算机与各种智能手机、PDA、传感器、射频标签(RFID)与移动智能终端设备都会连接到网络之中。
随着无线网络、互联网+、移动互联网与物联网技术与产业的发展,计算机网络教学也面临着一个快速变化的局面。计算机网络技术与知识更新的速度也会进一步加快,这就给从事计算机网络课程教学的教师提供了更大的发展空间,要求我们更快地改进网络课程的教学内容与方法。这是一个艰苦的过程。因为做“加法”的前提是要做好“减法”。增加新技术的内容比较容易,但是做“减法”时,删除过渡性技术与陈旧内容的过程的确很难。作者潜心研读了近年来国内外计算机网络的重要文献,并结合个人与科研团队的研究工作,认真探讨计算机网络知识体系中“变”与“不变”的关系,分析学生学习过程中“难点”和为什么会成为难点的问题。对相关章节的内容做出了适当取舍。
第三,以“系统观”的思路组织网络知识体系。
计算机专业学生需要更强调计算机系统能力的培养。计算机系统能力的核心是培养学生具有设计和构建以计算技术为核心、新的应用系统的能力,而网络知识是计算机系统能力的重要组成部分。因此,计算机专业学生系统能力的培养要将计算机与计算机网络视为一个有机的整体,引导学生用计算机组成原理、操作系统的基础知识,去理解计算机网络的基本工作原理,学会用软件编程的方法去实现网络功能,使得学生能够准确描述与构建出真实网络系统的模型,以及有效地构造网络系统的能力。本书在组织每一章、每一个知识点,以及习题、网络软件编程与硬件训练都力求做到这一点。在第7章“应用层”中,作者选取了代表性的Internet应用——Email、Web,尤其是FTP应用,从网络协议、软件编程与操作系统进程通信交互过程的角度,采用“系统观”的方法对前5章描述的计算机网络的概念、原理与实现方法进行了概括和总结。
第四,贯彻“以能力培养为导向”的教学理念。
“计算机网络”是一门应用性与实践性很强的课程。学生只有通过系统地训练,才有可能真正掌握和深入理解网络技术的基本理论与方法。教学团队在规划教材体系建设时,坚持“以能力培养为导向”的指导思想,经过20多年的努力,基本形成了由“1本主教材、4本辅助教材、1个电子教案和1个题库”构成的教材体系。与主教材配套的有《计算机网络教师用书》(第4版)、《计算机网络实验指导书》(第3版)、《计算机网络软件编程指导》、《计算机网络习题集与习题解析》(第2版)和“计算机网络题库”。
《计算机网络实验指导书》(第3版)编写了16个网络实验。该书作者总结了多年指导学生网络硬件实验课程的教学经验,参考了国际著名的网络公司的认证考试内容,设计了覆盖物理层到数据传输,从网络应用到网络安全的网络实验课题,实验内容覆盖了从基本的组网到网络设备配置,简单的网络环境编程到网络仿真的基本要求。每个实验给出了进一步掌握该实验内容的练习与思考题。实验所要求的设备相对比较简单,目前大多数学校都具备基本的实验要求。
《计算机网络软件编程指导》构思了13个网络软件编程题目。网络软件编程的选题考虑到不同层次网络协议的覆盖,同时将编程题目分为三个难度级,读者可以参考选题指导,根据不同的要求和不同的基础,有选择地、循序渐进地完成网络软件编程训练,配合主教材的学习,让学生“通过实际编程问题的训练,达到加深理解网络基本工作原理,掌握网络环境中软件编程方法,提高网络软件编程能力”的目的。
《计算机网络习题集与习题解析》(第2版)主要研究和参考了Cisco等重要网络设备制造商认证培训大纲与试题、计算机专业研究生入学统考大纲与试题、全国计算机等级考试(四级)网络工程师考试大纲与试题,并从网上收集了一些计算机、通信与软件产业人员的招聘考题,在系统地分析、比较的基础上,按照主教材的体系与教学要求,编写了习题解析与同步练习。该书的特点是: 教师可以使用或参考书中提供的习题作为课后练习;学生可以随着教学进度,自我检查知识掌握情况;可以作为计算机及相关专业学生准备参加计算机专业硕士研究生全国统考、求职考试的复习参考书。
《计算机网络教师用书》(第4版)具有三个特点: 一是对主教材的知识体系及每一章的知识点的结构均做出了分析,帮助任课教师对全局与局部内容的关系有准确地把握;二是作者根据多年的教学、科研积累,针对主教材各章节重要的知识点、难点,总结出300多道任课教师或学生曾经提出的问题,并逐一做出了解答;三是为了帮助教师组织好教学过程,教师用书将主教材每一章中较难的练习题都给出了解析,供任课教师参考。
按照主教材的体系,作者在“计算机网络题库”中收集、整理和补充了1000多道网络习题,并进行了详细的解析。
《计算机网络》的第1版于2003年出版,经过多年的努力,形成了比较完备的教学与教学资源体系。主教材于2007年修订出版了第2版;2011年修订出版了第3版。其中,第2版被评为普通高等教育“十一五”*规划教材;第3版被评为“十二五”普通高等教育本科*规划教材;第2版被评为2008年度“普通高等教育精品教材”。但是,作者自知“盛名之下,其实难符”。为了不辜负广大读者的期望,作者与团队成员多年来参照国内外知名大学教材,研究知名大学网络课程教学内容、教材与主要参考书、作业与实验,以及教学方法改革的动向;选择国际上*流行的教材为参照系,结合团队成员的科研与教学研究体会,使修订出版的《计算机网络》(第4版)在水平与质量上具有可比性。
教材的写作得到南开大学刘瑞挺教授、徐敬东教授、张建忠教授、吴英副教授、张玉副教授和许昱玮老师以及网络实验室很多学生的帮助。吴英副教授编著完成了书中的插图与习题,修改了第7章、第8章。刘立新老师帮助在网上查找了很多习题,作者在此表示感谢。同时,作者也非常感谢夫人牛秀卿教授,正是有她的理解和支持,才使作者能够安心研究和写作。
面对计算机网络技术的迅速更新和发展,要完成这样一个高标准的写作任务,作者感到压力很大。限于作者的学术水平,书中难免有错误与不妥之处,诚恳地希望读者批评指正。对于在使用前几版教材并提出过宝贵意见和建议的老师们深表感谢,也希望诸位继续关注和指教,共同为提高我国“计算机网络”课程的教学水平而努力。
吴功宜
2017年1月
吴功宜,南开大学计算机与控制工程学院教授、博士生导师。长期从事互联网、物联网与信息安全方向的教学与研究工作。历任南开大学计算机系主任、研究生院常务副院长、信息技术科学学院院长。从1984年开始为本科生和研究生讲授“计算机网络”等课程,连续从事“计算机网络”课程教学30年;在计算机网络与信息安全方向招收和指导硕士、博士研究生;主持和参加完成计算机网络与信息安全方向的科研项目20余项,发表学术论文50余篇;参加编著和出版的教材、专著共30余部,其中《计算机网络》被评为教育部高等教育精品教材、教育部“十二五”高等教育本科*规划教材;《计算机网络高级教程(第2版)》、《计算机网络高级软件编程技术(第2版)》与《网络安全高级软件编程技术》为“十一五”国家重点图书、计算机科学与技术学科前沿丛书与研究生系列教材(中文版);《物联网工程导论》为“十二五”国家重点图书、教育部“十二五”高等教育本科*规划教材;主持教育部考试中心《全国计算机等级考试(四级)网络工程师》大纲制定与教材编写任务。2000年获南开大学优秀教师特等奖;2003年获天津市“十五”立功奖章;2009年“以能力培养为导向的计算机网络教学体系建设”项目获天津市教学成果一等奖;享受国务院政府特殊津贴。
吴英,南开大学计算机与控制工程学院副教授、博士,硕士生导师。主要研究方向为计算机网络、物联网与网络存储,主持与参加科研项目8项,近年发表学术论文20余篇;编著与出版教材、译著共10部。多年来一直从事计算机网络、物联网导论与软件编程教学工作;曾获天津市教学成果一等奖1项。
第1章计算机网络概论1
1.1计算机网络的形成与发展1
1.1.1计算机网络发展阶段的划分1
1.1.2计算机网络的形成与发展2
1.1.3Internet的高速发展10
1.1.4宽带城域网与三网融合技术的发展10
1.1.5物联网的形成与发展11
1.2计算机网络技术发展的三条主线12
1.2.1*条主线: 从ARPANET到Internet12
1.2.2第二条主线: 从无线分组网到无线自组网、无线传感器网络13
1.2.3第三条主线: 网络安全技术13
1.3计算机网络定义与分类14
1.3.1计算机网络定义14
1.3.2我们生活与工作的网络环境15
1.3.3广域网18
1.3.4城域网20
1.3.5局域网23
1.3.6个人区域网23
1.3.7人体区域网25
1.4计算机网络的组成与结构26
1.4.1早期计算机网络的组成与结构26
1.4.2ISP的层次结构26
1.4.3Internet的网络结构27
1.5计算机网络拓扑结构29
1.5.1计算机网络拓扑的定义29
1.5.2计算机网络拓扑的分类与特点29
1.6分组交换技术的基本概念30
1.6.1数据交换方式的分类30
1.6.2线路交换的特点31
1.6.3分组交换的特点32
1.6.4数据报方式与虚电路方式34
1.6.5分组交换网中的延时36
1.6.6面向连接服务与无连接服务40
1.7网络体系结构与网络协议42
1.7.1网络体系结构的基本概念42
1.7.2OSI参考模型46
1.7.3TCP/IP参考模型50
1.7.4OSI参考模型与TCP/IP参考模型的比较52
1.7.5网络与Internet协议标准化组织和管理机构53
1.7.6一种建议的参考模型55
小结56
习题56
第2章物理层58
2.1物理层与物理层协议的基本概念58
2.1.1物理层的基本服务功能58
2.1.2物理层协议的类型59
2.1.3物理层向数据链路层提供的服务60
2.2数据通信的基本概念61
2.2.1信息、数据与信号61
2.2.2数据通信方式62
2.2.3传输介质的主要类型与特性66
2.2.4数据编码分类73
2.3频带传输技术74
2.3.1频带传输的基本概念74
2.3.2模拟数据信号编码方法74
2.3.3波特率的定义75
2.4基带传输技术77
2.4.1基带传输的定义77
2.4.2数字数据编码方法77
2.4.3脉冲编码调制方法78
2.4.4比特率的定义80
2.4.5奈奎斯特准则与香农定理81
2.5多路复用技术81
2.5.1多路复用的基本概念81
2.5.2时分多路复用83
2.5.3频分多路复用84
2.5.4波分多路复用85
2.6同步光纤网与同步数字体系85
2.6.1SONET与SDH的基本概念85
2.6.2基本速率标准的制定86
2.6.3SDH速率体系86
2.7接入技术88
2.7.1接入技术的分类88
2.7.2ADSL接入技术89
2.7.3HFC接入技术91
2.7.4光纤接入技术93
2.7.5移动通信接入技术95
小结98
习题98
第3章数据链路层100
3.1差错产生的原因与差错控制方法100
3.1.1设计数据链路层的原因100
3.1.2差错产生的原因和差错类型101
3.1.3误码率的定义102
3.1.4检错码与纠错码102
3.1.5循环冗余编码工作原理102
3.1.6差错控制机制105
3.2数据链路层的基本概念106
3.2.1链路与数据链路106
3.2.2数据链路层的主要功能106
3.2.3数据链路层与网络层、物理层的关系107
3.3数据链路层协议的演变与发展109
3.3.1面向字符型数据链路层协议的特点109
3.3.2面向比特型数据链路层协议的特点112
3.4点点协议115
3.4.1PPP协议的主要特点115
3.4.2PPP协议帧结构116
3.4.3PPP协议工作过程117
小结120
习题120
第3章数据链路层
本章将从差错产生的原因与差错控制方法入手,讨论基于点.点通信线路的数据链路层的基本概念与服务功能,以及典型的数据链路层协议。本章教学要求
理解: 数据传输过程中差错产生的原因与性质。
掌握: 误码率的定义与差错控制方法。
掌握: 数据链路层的基本概念。
了解: 数据链路层协议的分类方法。
掌握: 典型的数据链路层协议——PPP基本工作原理。
3.1差错产生的原因与差错控制方法[*4/5]3.1.1设计数据链路层的原因在讨论数据链路层的基本概念与协议前,需要讨论一个问题,那就是为什么要设计数据链路层?这个问题可以从以下三个方面来回答。
(1) 物理线路由传输介质与通信设备组成。在物理线路上传输数据信号是存在差错的。误码率是指二进制比特在数据传输过程中被传错的概率。在实际物理线路的传输过程中,人们需要进行大量测试,求出各种物理线路的平均误码率,或者给出某些特殊情况下的平均误码率。测试结果表明: 电话线路的传输速率在300~2400bps时,平均误码率在10-4~10-6之间;传输速率在4800~9600bps时,平均误码率在10-2~10-4之间。由于计算机网络对数据通信的要求是平均误码率必须低于10-9,因此普通电话线路不采取差错控制措施就不能满足计算机网络的要求。
(2) 设计数据链路层的主要目的是在有差错的物理线路的基础上,采取差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成无差错的数据链路,向网络层提供高质量的数据传输服务。
(3) 从参考模型的角度来看,物理层以上的各层都有改善数据传输质量的责任,数据链路层是*重要的一层。
3.1.2差错产生的原因和差错类型
我们将通过物理线路传输之后接收数据与发送数据不一致的现象称为传输差错(简称差错)。差错的产生是不可避免的,我们的任务是分析差错产生的原因与类型,研究检查是否出现差错以及如何纠正差错的差错控制方法。
差错的产生过程如图3.1所示。其中,图3.1(a)表示的是数据通过通信信道的过程;图3.1(b)表示的是数据传输过程中噪声的影响。
图3.1差错的产生过程
数据链路层第 3 章计算机网络(第4版)当数据信号从发送端出发经过物理线路时,由于物理线路存在着噪声,因此数据信号通过物理线路传输到接收端时,接收信号必然是数据信号与噪声信号电平的叠加。在接收端接收电路在取样时对叠加后的信号进行判断,以确定数据的0、1值。如果噪声对信号叠加的结果在电平判决时引起错误,这时就会产生传输数据的错误。
物理线路的噪声分为两类: 热噪声和冲击噪声。其中,热噪声是由传输介质导体的电子热运动产生的。热噪声的特点是: 时刻存在,幅度较小,强度与频率无关,但是频谱很宽。热噪声是一种随机的噪声,由热噪声引起的差错是一种随机差错。
冲击噪声是由外界电磁干扰引起的。与热噪声相比,冲击噪声的幅度比较大,它是引起传输差错的主要原因。冲击噪声持续时间与数据传输中每比特的发送时间相比可能较长,因此冲击噪声引起的相邻多个数据位出错呈突发性。冲击噪声引起的传输差错是一种突发差错。引起突发差错比特位的长度称为突发长度。通信过程中产生的传输差错是由随机差错与突发差错共同构成的。
3.1.3误码率的定义
误码率是指二进制比特在数据传输系统中被传错的概率,它在数值上近似等于Pe = Ne/N。其中,N为传输的二进制比特总数,Ne为被传错的比特数。
在理解误码率的定义时,需要注意以下几个问题。
(1) 误码率是衡量数据传输系统正常工作状态下传输可靠性的参数。数据信号在物理线路传输过程中一定会因为噪声、干扰等原因出现错误,传输错误是正常并且是不可避免的,但是一定要控制在一个允许的范围内。
(2) 对于一个实际的数据传输系统,不能笼统地说误码率越低越好,要根据实际传输要求提出误码率要求。在数据传输速率确定后,要求传输系统的误码率越低,则传输系统的设备就会越复杂,相应造价也就越高。
(3) 对于实际数据传输系统,如果传输的不是二进制数,需要折合成二进制数来计算。
(4) 差错的出现具有随机性,在实际测量一个数据传输系统时,只有被测量的传输二进制位数越大,才会越接近真实的误码率值。
3.1.4检错码与纠错码
在计算机通信中,研究检测与纠正比特流传输错误的方法称为差错控制。差错控制的目的是减少物理线路的传输错误,目前还不可能做到检测和校正所有的差错。人们在设计差错控制方法时提出以下两种策略。
(1) *种策略是采用纠错码。纠错码为每个传输单元加上足够多的冗余信息,以便接收端能够发现,并能够自动纠正传输差错。
(2) 第二种策略采用检错码。检错码为每个传输单元加上一定的冗余信息,接收端可以根据这些冗余信息发现传输差错,但是不能确定是哪一位或哪些位出错,并且自己不能够自动纠正传输差错。
纠错码方法虽然有优越之处,但是实现起来困难,在一般的通信场合不易采用。检错码方法虽然需要通过重传机制达到纠错目的,但是工作原理简单,实现起来容易,因此得到了广泛的使用。
3.1.5循环冗余编码工作原理
常用的检错码主要有奇偶校验码和循环冗余编码。奇偶校验码是一种*常见的检错码,它分为垂直奇偶校验、水平奇偶校验与水平垂直奇偶校验(即方阵码)。奇偶校验方法简单,但检错能力差,一般只用于通信要求较低的环境。目前,循环冗余编码(cyclic redundancy code,CRC)是应用*广泛的检错码编码方法,它具有检错能力强与实现容易的特点。
1. CRC的基本工作原理
CRC检错方法的工作原理可以从发送端与接收端两个方面进行描述。
(1) 发送端将发送数据比特序列当作一个多项式f(x),用双方预先约定的生成多项式G(x)去除,求得一个余数多项式R(x)。将余数多项式加到数据多项式之后,一起发送到接收端。
(2) 接收端用同样的生成多项式G(x)去除接收到的数据多项式f′(x),得到计算余数多项式R′(x)。如果计算余数多项式R′(x)与接收余数多项式R(x)相同,表示传输无差错;否则,表示传输有差错。出现差错,通知发送端重传数据,直至正确为止。
图3.2给出了CRC检错方法的工作原理示意图。
图3.2CRC校验工作原理示意图
CRC生成多项式G(x)由协议来规定,G(x)的结构及检错效果是经过严格的数学分析与实验后确定的。目前,已有多种生成多项式列入国际标准,例如:
CRC.12G(x)=x12+x11+x3+x2+x+1
CRC.16G(x)=x16+x15+x2+1
CRC.CCITTG(x)=x16+x12+x5+1
CRC.32G(x)=x32+x26+x23+x22+x16+x12+x11+x10
+x8+x7+x5+x4+x2+x+1
2. CRC校验的工作过程
CRC校验的工作过程如下。
(1) 发送端发送数据多项式f(x)·xk,其中k为生成多项式的*高幂值。对于二进制乘法来说,f(x)·xk的意义是将发送数据比特序列左移k位,用来放入余数。
(2) 将f(x)·xk除以生成多项式G(x),得f(x)·xk/G(x)=Q(x)+R(x)/G(x)其中,式中R(x)为余数多项式。
(3) 将f(x)·xk+R(x)作为整体,发送到接收端。
(4) 接收端对接收到的数据多项式f′(x)采用同样的运算,即f ′(x)·xk/G(x)=Q(x)+ R′(x)/G(x)求得计算余数多项式R′(x)。
(5) 如果计算余数多项式R′(x)等于接收余数多项式R(x),表示发送过程中没有出现差错;如果计算余数多项式R′(x)不等于接收余数多项式R(x),表示发送过程中出现了差错。
3. CRC检错方法的举例
实际的CRC校验码生成是采用二进制的模二算法(即减法不借位、加法不进位)计算出来的,这是一种异或操作。下面通过一些例子来进一步解释CRC的基本工作原理。
(1) 需要注意的问题
在用模二算法生成CRC校验码时,需要注意以下问题。
① 以CRC.12为例,G(x)=x12+x11+x3+x2+x+1,可以写为
G(x)=1×x12+1×x11+0×x10+0×x9+0×x8+0×x7+0×x6+0×x5
+0×x4+1×x3+1×x2+1×x+1×x0
尽管CRC.12的*高位是x12,k=12。而实际上用二进制表示时,它的位数N=13,也就是说用二进制表示G(x)应该是: 1100000001111。k=13-1=12。
② 如果在例子中给出生成多项式比特序列为11001,那么写成生成多项式应该为
G(x)=1×x4+1×x3+0×x2+0×x1+1×x0
生成多项式的N=5,k=5-1=4。
(2) 举例
下面举一个例子来具体说明CRC校验码的生成过程。
① 发送数据比特序列为110011(6比特)。
② 生成多项式比特序列为11001(N=5,k=4)。
③ 将发送数据比特序列乘以24,那么产生的乘积应为1100110000。
④ 将乘积用生成多项式比特序列去除,按模二算法求得余数比特序列为1001。
……
你还可能感兴趣
我要评论
|