计算机网络
第\(1\)章 概论
\(1.1\)信息时代的计算机网络
“三网融合”:指的是电信网络、有线电视网络和计算机网络,随着技术的发展,电信网络和有线电视网络都逐渐融入了现代计算机网络的技术。
\(Internet\)有两种中文译名:
\((1)\)因特网:这个译名是全国科学技术名词审定委员会推荐的,是较为准确的官方译名,但未得到推广。
\((2)\)互联网:这是目前流行最广的,事实上的标准译名。\(Internet\)是由数量极大的各种计算机网络互连起来的,采用互联网的译名可以体现出\(Internet\)最主要的特征。
注:曾有人把\(internet\)译为国际互联网,其实互联网本来就是覆盖全球的,所以国际两字是多余的。
对于仅在局部范围互连起来的计算机网络,只能称之为互连网,而不能叫做互联网,需要区分互连网和互联网。
互联网的两个重要基本特点:连通性和共享。
\(1.2\)互联网概述
\(1.2.1\)网络的网络
起源于美国的互联网现已发展成为世界上最大的覆盖全球的计算机网络。
计算机网络(简称为网络)由若干节点(\(node\))和连接这些节点的链路(\(link\))组成。网络中的节点可以是计算机、集线器、交换机或路由器等。
互连网(\(internetwork\)或\(internet\))是由多个网络通过一些路由器相互连接起来,构成的一个覆盖范围更大的计算机网络。因此互连网是“网络的网络”(\(network\ of\ networks\))。
网络的表示方法一般是一朵云。用云表示网络时,可能存在两种情况。一种是,云表示的网络已经包含了网络中的计算机。第二种是,为了讨论问题的方便,将计算机画在云的外面。
习惯上,与网络相连的计算机称为主机(\(host\))。互连网中必不可少的路由器,是一种特殊的计算机,但不能称为主机。
总的来说,网络是把许多计算机连接在一起,互连网是把许多网络通过一些路由器连接在一起,与网络相连的计算机常称为主机。
网络互连并不是把计算机简单地在物理上连接,因为这无法达到计算机之间相互交换信息的目的。还必须在计算机上安装许多能使得计算机交换信息的软件才行。在谈论网络互连时,就隐含表明了这些计算机已安装可正常工作的适当软件。
\(1.2.2\)互联网基础结构发展的三个阶段
首先辨析两个名词\(internet\)和\(Internet\)。
以小写字母\(i\)开始的\(internet\)(互连网)是一个通用名词,泛指由多个计算机网络互连而成的计算机网络。在这些计算机网络之间的通信协议可随意选择,不必要是\(TCP/IP\)协议。
以大写字母\(I\)开始的\(Internet\)(互联网,或因特网)是一个专用名词,指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用\(TCP/IP\)协议族作为通信的规则,且其前身是美国的\(ARPANET\)。
第一阶段是从单个网络\(ARPANET\)向互连网发展的过程。\(1969\)年美国国防部建立了第一个分组交换网\(ARPANET\),最初只是一个单一的分组交换网络。\(70\)年代开始研究网络的互连技术,出现了互连网络,成为现今互联网的雏形。\(1983\)年\(TCP/IP\)协议成为\(ARPANET\)上的标准协议,使得所有使用\(TCP/IP\)协议的计算机都能利用互连网相互通信,因此\(1983\)年是互联网的诞生时间。
第二个阶段的特点是建成了三级结构的互联网。美国建成国家科学基金会网\(NSFNET\),是一个三级计算机网络,分为主干网,地区网和校园网(或企业网)。这种计算机网络覆盖了美国主要的大学和研究所,并且成为互联网中的主要组成部分。
第三个阶段的特点是逐渐形成了全球范围的多层次\(ISP\)结构的互联网。\(1993\)年开始,\(NSFNET\)逐渐被若干个商用的互联网主干网替代,出现了互联网服务提供商(或互联网服务提供者)\(ISP(Internet\ Service\ Provider)\)
\(ISP\)提供接入到互联网的服务,并需要收取一定费用。依此来区分是否是\(ISP\)。
根据提供服务的覆盖面积大小和所拥有的\(IP\)地址数量不同,\(ISP\)也分为不同层次:主干\(ISP\),地区\(ISP\)和本地\(ISP\)。
互联网交换点\(IXP\)的主要作用就是允许两个\(ISP\)网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
内容提供者(\(content\ provider\))是在互联网上向所有用户提供视频文件的公司,他们并不提供互联网的转接服务,而是提供视频内容的服务。
互联网的迅猛发展始于\(20\)世纪\(90\)年代,由欧洲原子核研究组织\(CERN\)开发的万维网\(WWW(World\ Wide\ Web)\)被广泛应用在互联网上。
\(1.2.3\)互联网的标准化
互联网协会\(ISOC\),下属一个技术组织叫作互联网体系结构委员会\(IAB\),\(IAB\)下又设有两个工程部:互联网工程部\(IETF\),互联网研究部\(IRTF\)。
所有的互联网标准都是以\(RFC\)的形式在互联网上发表的。\(RFC\)(\(Request\ For\ Comments\))的意思就是请求评论。
\(RFC\)有如下特点:
\((1)\)所有的\(RFC\)文档都可从互联网上免费下载。
\((2)\)任何人都可以用电子邮件随时发表对某个文档的意见或建议。
\((3)\)不是所有的\(RFC\)文档都是互联网标准,只有很少一部分\(RFC\)文档才能变成互联网标准。
\((4)\)\(RFC\)文档按发表时间的先后编上序号,如\(RFC\ xxxx\)。一个\(RFC\)文档更新后就使用一个新的编号,并在文档内指出原来的老编号文档,旧文档保留。
制定互联网正式标准要经过三个阶段:
\((1)\)互联网草案\((Internet\ Draft)\):互联网草案的有效期只有六个月,在这个阶段还不能算是\(RFC\)文档。
\((2)\)建议标准\((Proposed\ Standard)\):这个阶段开始成为\(RFC\)文档。
\((3)\)互联网标准\((Internet\ Standard)\):如果经过长期检验,证明某个建议标准可以成为互联网标准时,就给它分配一个标准编号,记为\(STDxx\)。一个互联网标准可以与多个\(RFC\)文档相关联。
除了建议标准和互联网标准这两种\(RFC\)文档,还有三种\(RFC\)文档,即历史的、实验的、和提供信息的\(RFC\)文档。
\(1.3\)互联网的组成
互联网从工作方式上看,可以分成两大块:
\((1)\)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
\((2)\)核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
\(1.3.1\)互联网的边缘部分
处在互联网边缘的部分就是连接在互联网上所有的主机,这些主机称为端系统。端系统小的可以是一台个人电脑,大的可以是大型计算机(称为服务器)。端系统的拥有者可以是个人,也可以是企业,还可以是\(ISP\)。
”计算机之间通信“就是”主机A的某个进程和主机B上的另一个进程进行通信“。即通信的单位是进程。
端系统之间的通信方式有两种:客户-服务器方式(\(C/S\)方式)和对等方式(\(P2P\)方式)。
\(1.\)客户-服务器方式
客户\((client)\)和服务器\((server)\)都是指通信中所涉及的两个应用进程。
客户-服务器方式描述的是进程之间服务和被服务的关系。
客户是服务请求方,服务器是服务提供方。
客户程序:
\((1)\)被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,用户程序必须知道服务器程序的地址。
\((2)\)不需要特殊的硬件和很复杂的操作系统。
服务器程序:
\((1)\)可同时处理多个远地或本地客户的请求。
\((2)\)系统启动后一直不断运行着,被动地等待并接受各地客户的请求,服务器程序事先不需要知道客户程序的地址。
\((3)\)一般需要强大的硬件和高级的操作系统。
客户与服务器建立连接后,通信可以是双向的,客户和服务器都能发送和接收数据。
客户和服务器都指的是计算机进程(软件)。使用计算机的人称为用户\((user)\)。
\(2.\)对等连接方式
对等连接简写为\(P2P\)。两台主机在通信时并不区分谁是服务请求方,谁是服务提供方。只要都安装了对等连接软件(\(P2P\)软件)就能平等的对等通信。
本质上仍是客户-服务器方式,只是对等连接中的每一台主机既是客户又是服务器。
\(1.3.2\)互联网的核心部分
网络的核心部分要向边缘部分提供连通性。网络核心起特殊作用的是路由器\((router)\),是一种特殊计算机。是用来实现分组交换的关键组件,任务是转发收到的分组。分组转发是网络核心部分最重要的功能。
\(1.\)电路交换
从通信资源分配的角度看,交换就是按照某种方式动态地分配传输线路的资源。
主叫端和被叫端建立连接,是一条专用的物理通路。
电路交换的方式有三个步骤:建立连接\(\rightarrow\)通话\(\rightarrow\)释放连接。
电路交换的重要特点是:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
用电路交换来传送计算机数据时,线路的传输效率往往很低。因为计算机数据往往是突发地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到\(10\%\)甚至\(1\%\)。被用户占用的通信资源绝大部分时间内都是空闲的。
\(2.\)分组交换
分组交换采用存储转发技术。通常把要发生的整块数据叫做报文,先将较长的报文分成更小的等长数据段,每一个数据段前加上一些必要的控制信息组成的首部\((header)\),就构成了一个分组\((packet)\)。分组又称为包,首部又称为包头。
分组的首部包含了目的地址和源地址等控制信息,每一个分组能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。
主机是为用户进行信息处理的,路由器用来转发分组,即进行分组交换。
分组交换的优点:
高效:在分组传输中动态分配传输带宽,对通信链路逐段占用。
灵活:为每一个分组独立地选择最合适的转发路由。
迅速:以分组作为传送单位,不先建立连接就能发送分组。
可靠:保证可靠性的网络协议和分布式多路由的分组交换网。
分组交换的问题:
分组在各路由器存储转发时需要排队,会造成一定的时延。
无法确保通信时端到端所需的带宽(而电路交换通过建立连接保证通信时所需的各种资源)。
分组必须携带必要的控制信息,造成了一定的开销。分组交换网还需要专门的管理和控制机制。
\(3.\)报文交换
也是基于存储转发原理的,但是时延较长,几分钟到几小时不等。
总结:
若要连续传送大量的数据,且传送时间远大于建立连接的时间,则电路交换的传输速率较快。
报文交换和分组交换不需要事先分配传输带宽,因此在传输突发数据时可提高整个网络的信道利用率。
分组交换比报文交换的时延小,灵活性也更强。
从第四代蜂窝移动通信网开始,无论是话音通信还是数据通信,都要采用分组交换。
\(1.4\)互联网在我国的发展
略。
\(1.5\)计算机网络的类别
\(1.5.1\)计算机网络的定义
\(1.5.2\)不同类别的计算机网络
\(1.\)按作用范围分类
\((1)\)广域网\(WAN(Wide\ Area\ Network)\):作用范围几十到几千公里。
\((2)\)城域网\(MAN(Metropolitan\ Area\ Network)\):作用范围一般是一个城市。
\((3)\)局域网\(LAN(Local\ Area\ Network)\):用微型计算机或者工作站通过高速通信线路连接,地理上局限在较小的范围(一般\(1km\)左右)。
\((4)\)个人区域网\(PAN(Personal\ Area\ Network)\):个人工作区域的电子设备通过无线技术连接起来,也称为无线个人区域网\(WPAN(Wireless\ PAN)\)。
\(2.\)按使用者分类
\((1)\)公用网\((pubilc\ network)\):指电信公司出资建造的大型网络。缴费的用户均可使用,也可称为公众网。
\((2)\)专用网\((private\ network)\):某个部门为满足本单位特殊业务工作需要而建成的网络(\(VPN\)就是通过虚拟连接进入专用网).
\(3.\)把用户接入互联网的网络
叫做接入网\(AN(Access\ Network)\)。又称为本地接入网或居民接入网。
\(1.6\)计算机网络的性能
\(1.6.1\)计算机网络的性能特征
\(1.\)速率
比特是信息论中信息量的单位。速率指的是数据的传送速率,也称为数据率或比特率。单位是\(bit/s\)(或\(b/s\),或\(bps\))。\(k=10^3\),\(M=10^6\),\(G=10^9\),\(T=10^{12}\)。这样\(4\times 10^{10}bit/s=40Gbit/s\)。网络的速率通常指的是额定速率或标称速率。\(1\ Byte=8\ bits\)。
\(2.\)带宽
\((1)\)带宽本来指某个信号具有的频带宽度。这种意义下带宽的单位是赫兹。
\((2)\)计算机网络中带宽表示网络中某通道传送数据的能力。网络带宽表示在单位时间内网络中的某信道所能通过的最高数据率,单位就是数据率的单位\(bit/s\)。
\(3.\)吞吐量
单位时间内通过某个网络的实际数据量。
\(4.\)时延
时延是指数据从网络的一端传送到另一端所需的时间。也称为延迟或迟延。
\((1)\)发送时延 发送时延是主机或路由器发送数据帧所需要的时间。就是发送数据帧的第一个比特算起,到最后一个比特发送完毕所需的时间。
\((2)\)传播时延 传播时延是电磁波在信道中传播一定的距离所需要的时间。
发送时延与传输信道的长度无关,发生在发送器内部。而传播时延与发送速率无关,传播距离越远,传播时延越长。
\((3)\)处理时延 主机或路由器在收到分组时需要一定时间进行处理。例如分析分组的首部、从分组中提取数据、差错检验或查找转发表。
\((4)\)排队时延 分组在进入路由器后要在输入队列中排队等待处理。
\(5.\)时延带宽积
又称为以比特为单位的链路长度。
\(6.\)往返时间\(RTT\)
互联网上的信息不仅仅是单方向传输而是双向交互的,因此我们需要知道交互一次的时间。
假定\(A\)向\(B\)发送数据,\(B\)接收到数据后立即向\(A\)发送确认,\(A\)接收到确认信息后才能继续发数据。这段时间首先是\(A\)的发送时间,其次是往返时间\(RTT\)(假定\(B\)确认时间很短,忽略\(B\)的发送时间),那我们可以算出有效数据率。
\(7.\)利用率
利用率有信道利用率和网络利用率。信道利用率表明某信道有百分之几的时间有数据通过,网络利用率是网络中所有信道利用率的加权平均。
信道利用率并非越大越好,根据排队论的理论,利用率越大,该信道引起的排队时延也迅速增加。类比成公路上的车流量,车流量越大,所需要等待的时间就越长。该理论有网络时延的计算公式。
\(D_0\)为网络空闲时的时延,\(D\)为网络的当前时延,\(U\)为网络利用率,则
信道利用率或网络利用率过高就会产生非常大的时延。
\(1.6.2\)非性能特征
费用、质量、标准化、可靠性、可拓展性和可升级性、易于管理和维护。
\(1.7\)计算机网络体系结构
\(1.7.1\)体系结构的形成
计算机网络是分层的。国际标准化组织\(ISO\)提出了开放系统互连基本参考模型\(OSI/RM(Open\ Systems\ Interconnection\ Reference\ Model)\),简称为\(OSI\)。
\(OSI\)是个抽象的概念,\(1983\)年形成了正式文件,即\(ISO\ 7498\)国际标准,就是七层协议的体系结构。
法律上的国际标准是\(OSI\),而事实上的国际标准是\(TCP/IP\)。
\(1.7.2\)协议与划分层次
为进行网络中的数据交换而建立的规则、标准或约定称为网络协议,简称为协议。
网络协议由三要素组成:
\((1)\)语法:数据与控制信息的结构或格式。
\((2)\)语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
\((3)\)同步:事件实现顺序的详细说明。
分层的好处:
\((1)\)各层之间是独立的。
\((2)\)灵活性好。
\((3)\)结构上可分割开。
\((4)\)易于实现和维护。
\((5)\)能促进标准化工作。
计算机网络的各层及其协议的集合就是网络的体系结构。计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。
体系结构是抽象的,而实现则是具体的,是真正运行的计算机软件和硬件。
\(1.7.3\)五层协议的体系结构
从上往下是:应用层、运输层、网络层、数据链路层、物理层。
\(1.\)应用层
应用层是体系结构中的最高层。
应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。应用层交互的数据叫做报文。
\(2.\)运输层
运输层的任务是向两台主机进程之间的通信提供通用的数据传输服务。有复用和分用的功能,复用是多个应用层进程可以同时使用下面运输层的服务。
运输层主要使用两种协议:
\((1)\)传输控制协议\(TCP(Transmission\ Control\ Protocol)\)
提供面向连接的、可靠的数据传输服务、数据传输的单位是报文段。
\((2)\)用户数据报协议\(UDP(User\ Datagram\ Protocol)\)
提供无连接的尽最大努力的数据传输服务(不保证数据传输的可靠性),数据传输的单位是用户数据段。
\(3.\)网络层
为分组交换网上两个不同的主机提供通信服务。
网络层有两个具体的任务:
\((1)\)路由选择:通过一定算法,在互联网的每一个路由器上,生成一张用于转发分组的转发表。
\((2)\)转发:路由器收到分组时,要按照转发表上的路径将分组转发到下一个路由器。
互联网的网络层协议使用的是无连接的网际协议\(IP(Internet\ Protocol)\)。因此网络层也叫做网际层或\(IP\)层。
网络层使用\(IP\)协议,因此分组也叫做\(IP\)数据报,或简称数据报。“分组”和“数据报”作为同义词使用。
\(4.\)数据链路层
简称为链路层。链路层的任务是实现两个相邻节点之间的可靠通信。在两个相邻节点的链路上传送帧。
数据链路层将网络层交下来的\(IP\)数据报组装成帧。每一帧包括数据和必要的控制信息。
如有差错就简单的丢弃掉帧,如果要对差错改正,就要使用可靠传输协议。
\(5.\)物理层
物理层上传输数据的单位是比特。
物理层的任务是实现比特\(0,1\)的传输。物理层还有确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。但是物理传输媒体,如双绞线、同轴电缆等并不在物理层协议内,而在物理层协议之下。
\(OSI\)参考模型把对等层次之间传送的数据单元称为该层的协议数据单元\(PDU(Protocol\ Data\ Unit)\)。
各层协议实际上就是在各个对等层之间传递数据时的各项规定。
\(1.7.4\)实体、协议、服务和服务访问点
实体\((entity)\):表示任何可发送或接收信息的硬件或软件进程。
协议:控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能向上一层提供服务。
要实现本层协议,还需要使用下一层的服务。
在同一系统相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点\(SAP(Service\ Access\ Point)\)。
\(SAP\)是一个抽象概念,实际上就是逻辑接口。
\(OSI\)把层与层之间交换的数据的单位叫做服务数据单元\(SDU(Service\ Data\ Unit)\)。
注意:\(PDU\)与\(SDU\)是不同的。一是\(PDU\)是对等层之间交换数据的单位,\(SDU\)是层与层之间交换数据的单位。二是多个\(SDU\)可以合成一个\(PDU\),或一个\(SDU\)可以分成多个\(PDU\)。
现实中没有理想的情况,所以协议很复杂,需要应付所有的异常情况。
\(1.7.5\) \(TCP/IP\)的体系结构
沙漏计时器形状的\(TCP/IP\)协议族,设计理念是:网络核心部分越简单越好。
第\(2\)章 物理层
\(2.1\)物理层的基本概念
物理层考虑的是如何才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的作用就是:尽可能屏蔽掉传输媒体和通信手段的差异。
用于物理层的协议也常称为物理层规程\((procedure)\)。实际上物理层规程就是物理层协议。
\(2.2\)数据通信的基础知识
\(2.2.1\)数据通信系统的模型
一个数据通信系统包含三部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)。
源系统包括源点和发送器。源点设备产生要传输的数据,例如计算机产生的数字比特流。源点又称为信源或源站。通常源点产生的数字比特流要经过发送器编码后才能在传输系统中传输,典型的发送器是调制器。
目的系统包括接收器和终点。接收器接收传来的信号,并转换为目的设备能处理的信息,典型接收器是解调器。终点获取接收器传送来的数字比特流,并输出,也称为目的站或信宿。
通信的目的是传送消息,话音、文字、图像、视频等都是消息。
数据:是运送消息的实体,有意义的符号序列。
信号:信号是数据的电气或电磁的表现。
根据信号中代表消息的参数的取值方式不同,信号可分为两类:
\((1)\)模拟信号,或连续信号——代表消息的参数的取值是连续的。
\((2)\)数字信号,或离散信号——代表消息的参数的取值是离散的。
在使用时间域(或时域)的波形表示数字信号时,代表不同离散数值的基本波形称为码元。在使用二进制编码时,只有两种码元\(0,1\)。
\(2.2.2\)信道的基本概念
信道一般用来表示向某个方向传送信息的媒体。
\((1)\)单向通信(或单工通信)只能有一个方向的通信,而没有反方向的交互。
\((2)\)双向交替通信(或半双工通信)通信的双方都可以发送信息,但是不能同时发送。
\((3)\)双向同时通信(或全双工通信)通信的双方可以同时发送和接收信息。
基带信号(即基本频带信号):是来自信源的信号。基带信号一般包含较多低频分量,甚至直流分量,而许多信道不能传输这些分量,就需要对基带信号进行调制。
调制分为两类:
\((1)\)基带调制:仅对基带信号的波形进行变换,将数字信号转换成另一形式的数字信号,调制后仍是基带信号。把这种过程叫做编码。
\((2)\)带通调制:使用载波进行调制,将基带信号的频率范围搬到更高的频段。转换为模拟信号,载波调制后的信号称为带通信号。
编码方式:
带通调制方式:
\(2.2.3\)信道的极限容量
任何实际的信道都不是理想的,都不可能以任意高的速率进行传送。
数字通信的优点是:信号在信道上传输不可避免的会有失真,但在接收端只要能从失真的波形中识别出原来的波形,则这种失真可视为无影响。
码元传输的速率越高、信号传输的距离越远、噪声干扰越大或传输媒体质量越差,在接收端的波形的失真就越严重。
限制码元在信道上的传输速率的因素有以下两个:
\((1)\)信道能够通过的频率范围
具体信道所能通过的频率范围是有限的。信号中的许多高频分量往往不能通过信道。
码间串扰:接收端收到的信号波形失去了码元之间的清晰界限。
奈式准则:给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。在带宽为\(W(Hz)\)的低通信道中,若不考虑噪声影响,则码元传输的最高速率是\(2W\)(码元/秒)。传输的速率若超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
实际的信道是有噪声的,所以我们还必须知道信道的信噪比数值。
\((2)\)信噪比
信噪比就是信号的平均功率和噪声的平均功率之比,常记为\(S/N\)。通常使用分贝\((dB)\)作为度量单位。
香农公式指出:信道的极限信息传输速率\(C\)是
香农公式表明,信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。
若带宽已确定,信噪比也无法在提高,并且码元传输速率也达到上限,提高信息的传输速率就要用编码的方法,让一个码元携带更多比特的信息量。
码元所能携带的比特数:\(b=log_2M\),\(b\)是一个码元所携带的比特数,\(M\)是码元集的大小。可以反过来理解,若一个码元想要携带\(b\)个比特,则需要区分这些情况让每一个码元对应一种信号,共\(2^b\)种,所以需要\(2^b\)种码元。
香农公式的意义:只要信息的传输速率低于信道的极限信息传输速率,就一定可以找到某种方式做到无差错的传输。
奈式准则和香农公式的意义是不同的:奈式准则鼓励工程人员探索更加先进的编码技术,使每一个码元携带更多比特的信息量。香农公式则告诫工程人员,在有噪声的实际信道中,无论多么先进复杂的编码方式,都不可能超过香农公式给出的信息传输速率的绝对极限。
第\(3\)章 数据链路层
数据链路的信道有两种:
\((1)\)点对点信道:使用一对一的点对点通信方式。
\((2)\)广播信道:使用一对多的广播通信方式。必须使用共享信道协议。
本章最重要的内容是:
\((1)\)数据链路层的点对点信道和广播信道的特点,以及两种信道所使用的协议(\(PPP\)协议和\(CSMA/CD\)协议)的特点。
\((2)\)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
\((3)\)以太网\(MAC\)层的硬件地址。
\((4)\)适配器、转发器、集线器、网桥、以太网交换机的作用与使用场合。
不同的链路层可能采用不同的数据链路层协议。
\(3.1\)数据链路层的几个共同问题
\(3.1.1\)数据链路和帧
链路和数据链路并不相同。
链路\((link)\)是从一个节点到相邻节点的一段物理线路。数据链路\((data\ link)\)需要必要的通信的协议控制数据的传输,将实现这些协议的硬件和软件加到物理链路上,就构成了数据链路。
最常用的方法是使用网络适配器(网卡)来实现这些协议,一般的适配器都包括数据链路层和物理层的功能。
早期的数据通信协议叫做通信规程,规程和协议是同义词。
数据链路层的协议数据单元是帧。
数据链路层把网络层交下来的数据构成帧发送到链路上,把接收到的帧中的数据取出并上交给网络层。网络层的协议数据单元是\(IP\)数据报(或简称数据报、分组或包)。
\(3.1.2\)三个基本问题
数据链路层协议的三个基本问题:封装成帧、透明传输和差错检测。
\(1.\)封装成帧
封装成帧就是在一段数据前后分别添加首部和尾部。首部尾部的重要作用就是帧定界,首部和尾部还需要包括许多必要的控制信息。
每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元\(MTU(Maximum\ Transfer\ Unit)\)。
帧定界可以用特殊的帧定界符,控制字符\(SOH(Start\ Of\ Header)\)放在一帧的最前面,表示帧的首部开始。控制字符\(EOT(End\ Of\ Transmission)\)表示帧的结束。
\(2.\)透明传输
“在数据链路层透明传送数据”表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。
解决透明传输问题,就必须使数据中可能出现的控制字符\(SOH,EOT\)在接收端不被解释为控制字符。方法是:发送端的数据链路层在数据中出现控制字符\(SOH,EOT\)的前面插入一个转义字符\(ESC(Escape)\)。
这种方法称为字节填充或字符填充。
\(3.\)差错检测
比特在传输中可能产生差错,叫做比特差错。在一段时间内,传输错误的比特占比特总数的比率叫做误码率。为了保证数据传输的可靠性,需要采用差错检测技术,目前在数据链路层广泛使用的是循环冗余检验\(CRC\)。
循环冗余检验\(CRC\)的原理如下:
假设数据为\(k\)位,我们在数据后面添加\(n\)位冗余码,一共发送\((k+n)\)位。
\(n\)位冗余码按如下过程得出,待传送的数据为\(M\),首先我们指定出\((n+1)\)位的除数\(P\)。写成多项式形式\(M(x)\),在\(M(x)\)后面添加\(n\)个\(0\)得到\(x^nM(x)\),生成多项式\(P(x)\),设得到的新的帧为\(T(x)\)。核心思想是按照模\(2\)加法,即\(\oplus\),构造出\(T(x)=x^nM(x)\oplus R(x)\),使得\(T(x)\)作为被除数,\(P(x)\)作为除数,做模\(2\)除法的余数为\(00...0(n)\)。
例如\(P(x)=x^3+x^2+1\),最高位对应于\(x^3\),最低位对应于\(x^0\)。
\(R(x)\)为\(x^nM(x)\)与\(P(x)\)做模\(2\)除法的余数,\(Q(x)\)为模\(2\)除法的商。\(P(x)\)为\((n+1)\)位,\(R(x)\)为\(n\)位。我们可知,
在模\(2\)运算中,加法和减法相同,都是异或\(\oplus\),所以。
令
显然此时得到的新帧\(T(x)\)与\(P(x)\)的模\(2\)除法,商为\(Q(X)\),余数为\(00...0(n)\)。
过程为先给\(M(x)\)在后面添加\(n\)位\(0\),得到\(x^nM(x)\)。与\((n+1)\)位的生成多项式\(P(x)\)做模\(2\)除法,得到\((n)\)位的余数\(R(x)\)。\(x^nM(x)\)与\(R(x)\)做模\(2\)加法得到\(X^nM(x)+R(x)\)。
检验时,将接收到的帧与\(P(x)\)做模\(2\)除法,如果余数不全为\(0\),则证明发送比特差错。
注意:模\(2\)除法类似长除法,但是余数用模\(2\)减法得到,即异或。
为了进行验错而添加的冗余码叫做帧检验序列\(FCS(Frame\ Check\ Sequence)\)。\(CRC\)是验错方法,\(FCS\)是添加在数据后面的冗余码,在验错方法上可以是任意的。
数据链路层仅使用循环冗余检验\(CRC\)差错检测技术,只能做到对帧的无差错接受,即:“凡是接收端数据链路层接受的帧,我们都能以非常接近于\(1\)的概率认为这些帧在传输过程中没有产生差错”。
可以近似地表述为:凡是接收端数据链路层接受的帧均无差错。
可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。
我们并没有要求数据链路层向网络层提供可靠传输的服务。
传输差错分为两类:一类就是比特差错,另一类更复杂,帧没有比特差错,但出现了帧丢失、帧重复或帧失序。
应明确“无比特差错”和“无传输差错”并不是一个概念,而是包含的关系。
要做到可靠传输,还必须加上帧编号、确认和重传机制。
\(3.2\)点对点协议\(PPP\)
对于点对点链路,简单的点对点协议\(PPP(Point-to-Point\ Protocol)\)是目前使用最广泛的数据链路层协议。
\(3.2.1\)\(PPP\)协议的特点
\(PPP\)协议在\(1992\)年由\(IETF\)制定。\(1994\)年正式成为互联网标准。
\(1.\)\(PPP\)协议的需求
\((1)\)简单 \(PPP\)协议的首要要求是简单。简单使得厂商对协议的实现的互操作性提高了。这种数据链路层的协议十分简单,接收方每收到一个帧,就进行\(CRC\)检验,如果正确就收下这个帧;分之,就丢弃这个帧,其他什么也不做。
\((2)\)封装成帧 规定特殊字符作为帧定界符。
\((3)\)透明性 如果数据中碰到和帧定界符一样的比特组合,就要采取措施(转义字符\(ESC(Escape)\))。
\((4)\)多种网络层协议 在一条物理链路上同时支持多种网络层协议。
\((5)\)多种类型链路 能够在多种类型的链路上运行。
\((6)\)差错检测 对接收端的帧进行检测,并丢弃有差错的帧。
\((7)\)检测连接状态
\((8)\)最大传送单元 对每一种类型的点对点链路设置最大传送单元\(MTU\)的默认值。\(MTU\)是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
\((9)\)网络层地址协商
\((10)\)数据压缩协商
在\(TCP/IP\)协议族中,可靠传输由运输层的\(TCP\)协议负责。数据链路层的\(PPP\)协议不需要纠错。\(PPP\)协议不支持多点线路,而只支持点对点链路。\(PPP\)协议只支持全双工链路。(为了最简单,而不考虑半双工和单工链路的复杂问题)
\(2.\)\(PPP\)协议的组成
\((1)\)一个将\(IP\)数据报封装到串行链路的方法。\(PPP\)协议既支持同步链路也支持异步链路。
\((2)\)链路控制协议\(LCP(Link\ Control\ Protocol)\)。
\((3)\)网络控制协议\(NCP(Network\ Control\ Protocol)\)。
\(3.2.2\)\(PPP\)协议的帧格式
\(1.\)\(PPP\)协议帧的格式
\((1)\)首部 \(PPP\)协议的首段有四个字段:第一个字段是标志字段\(F(Flag)\)表示帧的开始(或结尾),\(1\)字节。第二个字段\(A\)是地址字段,\(1\)字节。第三个字段\(C\)是控制字段,\(1\)字节。第四个字段是协议字段,\(2\)字节。首部总共有\(5\)字节。
\((2)\)信息部分 信息字段是可变长的,不超过\(1500\)字节。
\((3)\)尾部 尾部的第一个字段是\(FCS\),\(2\)字节。最后一个字段是标志字段\(F\)表示帧的结尾。尾部总共有\(3\)字节。
\(2.\)填充方式
当信息字段中出现和标志字段\(F\)一样的比特组合时,就需要采取措施使得这种比特组合不会出现在信息字段中。
\((1)\)字节填充 当\(PPP\)使用异步传输时,使用字节填充。
\((2)\)零比特填充 当\(PPP\)使用同步传输时,使用零比特传输。
\(3.3\)使用广播信道的数据链路层
\(3.3.1\)局域网的数据链路层
局域网最主要的特点:
\((1)\)网络为一个单位所有。
\((2)\)地理范围和站点数目均有限。
局域网的主要优点:
\((1)\)具有广播功能,从一个站点可以很方便的访问整个网络。
\((2)\)便于系统的扩展和逐渐的演变,各设备的位置可灵活调整或改变。
\((3)\)提高了系统的可靠性、可用性和生存性。

浙公网安备 33010602011771号