一. 计算机网络体系结构1. 计算机网络的组成2. 计算机网络的分类3. 标准化工作及相关组织4. 性能指标4.1 速率4.2 带宽4.3 吞吐量4.4 时延4.5 时延带宽积4.6 往返时延RTT4.7 利用率5. 分层结构5.1 OSI参考模型5.2 OSI参考模型各层功能和对应重要协议5.3 TCP/IP参考模型5.4 五层参考模型二. 物理层1. 数据通信1.1数据通信专业名词介绍1.2 设计数据通信三个问题三种数据通信方式串行传输与并行传输同步传输与异步传输1.3 奈氏准则与香农定理奈氏准则(奈奎斯特定理)香农定理奈氏准则和香农定理区别2. 编码与调制2.1 编码与调制概念2.2 四种编码与调制方法数字数据编码为数字信号数字数据调制为模拟信号模拟数据编码为数字信号模拟数据调制为模拟信号3. 数据的交换方式3.1 电路交换3.2 报文交换3.3 分组交换数据报方式虚电路方式3.4 三种数据交换方式选择4. 物理层传输介质4.1 导向性传输介质4.2 非导向性传输介质5. 中间设备5.1 中继器5.2 集线器(多口中继器)三. 数据链路层1. 封装成帧和透明传输2. 差错控制2.1 检错编码奇偶校验码CRC循环冗余码2.2 纠错编码3. 流量控制与可靠传输机制3.1 停止-等待协议3.2 后退N帧协议(GBN)3.3 选择重传协议(SR)4. 介质访问控制4.1 信道划分介质访问控制4.2 随机访问介质访问控制ALOHA协议CSMA协议CSMA/CD协议CSMA/CA协议4.3 轮询访问介质访问控制轮询协议令牌传递协议5. 局域网基本概念和体系结构5.1 以太网10BASE-T以太网以太网MAC帧高速以太网5.2 无线局域网6. VLAN基本概念与原理7. 广域网及其相关协议7.1 PPP协议7.2 HDLC协议8. 链路层设备8.1 网桥8.2 以太网交换机
知识预览:
网络:指的是网一样的东西或网状的系统。如:电信网络,通过电话线链路连接起来的网络。
计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
如上图,计算机系统包括各种系统的手机端及电脑端。通过路由设备(也可以是中继器、交换机等)将这些系统用线路连接起来。这里的线路有的可以是逻辑线路,如手机和路由器连接。之后再由于功能完善的软件来实现资源共享和信息传递。同时还要有软件的支撑才能实现每个终端与终端之间的资源共享和信息传递。
简单来说计算机网络是一个互连的、自治的计算机集合。其中互连是指通过通信链路互联互通。自治是终端及各个结点之间是没有主从关系的,是高度自治的。
计算机网络有以下功能:
数据通信
如:两台电脑之间可以通过邮件传递信息。
资源共享
同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据等资源。
硬件共享如:网络打印机。软件共享如:如远程访问另一台电脑上的软件。数据共享如:上传和下载文件。
分布式处理
多台计算机各自承担同一工作任务的不同部分。如:Hadoop分布式平台。
提高可靠性
分布式引申功能,可以提高网络可靠性。采用分布式处理如果网络中的一台主机宕机,就可以用另一台机器(替代机)来实现宕机计算机的任务。
负载均衡
也是分布式引申功能。由于使用了分布式可以让各个计算机之间更加亲密执行任务更加高效。
计算机网络的发展:
第一阶段
美国国防部高级研究计划局(ARPA)设计一个分散的指挥系统,阿帕网:
如上图由四个分布在不同地区的结点组成。通过无线分组交换网及卫星通信网连接。可以看到如果其中一个结点失去连接,其他结点仍然可以继续通信。
但是这样做有一个弊端:阿帕网只可以连接同一类型的网络。随着信息量的增长,希望可以实现不同网络的互连,互联网诞生了。
之后在1983年阿帕网接受TCP
因特网也是现在全球范围内最大的互联网。所以上面的阿帕网就是因特网的前身。
所以网络把许多计算机连接在一起,而互联网则把许多网络连接在一起,因特网是世界上最大的互联网。
第二阶段(三级结构)
1985年起,美国国家科学基金会NSF围绕
这种网络是三层结构:
第一层是企业网,这一层次用户如果想连接到互联网上需要再连接到第二层的地区网。并且第二次地区网会再连接到第一层的主干网。
随着网络发展越来越多的用户都可以连接到这个互联网中。所以就会导致网络的信息量急剧增大。政府决定把这些主干网交给一些私人公司来经营,并且开始对介入因特网的单位进行收费。这也就到了第三阶段。
第三阶段(多层次ISP结构)
ISP即因特网服务提供者
其实这里也是沿用了之前的三层结构,只不过是把网络的管理权分散。用户通过支付给ISP服务费(网费)之后才能使用ISP服务,以申请到一个IP地址,就可以常有网络。
具体做法是,全世界会有一个IP池,由一个因特网管理机构尽心管理。如果ISP供应商要给用户提供服务并分配IP,首先就要从IP池中申请一个IP地址,然后再分配给用户。这样每个用户就会有一个IP地址。
只要每个本地ISP都安装路由器连接到了地区ISP,而地区ISP也由路由器连接到主干ISP,就可以完成因特网中所有数据分组转发任务。
但是随着流量激增,人们对于网络要求也越来越高。就开始研究怎么更快地转发数据和分组。因此就诞生了上图地因特网交换点(IXP)。原本
计网概念功能总结:
首先从组成部分上:计算机网络是由硬件、软件、协议(一系列规则和约定的集合)组成的。
硬件即终端系统和中间设备(如:路由器、交换机等)。软件就是在端系统上应用,甚至中间设备上也有软件。协议就是指定了各个硬件之间的通信的规则,计算机网络每个层次都有很多协议,根据这些协议就可以规定数据如何封装、打包、传输等。
从工作方式上:可以把计算机网络分为边缘部分和核心部分。
边缘部分
边缘部分就是一些端系统组成,这些端系统不仅包括计算机,还包括服务器,网络摄像头等设备。这些设备可以实时捕获信息,并将信息实时发布出去,这些都是边缘部分。
核心部分
光有边缘部分还不够,还需要核心部分提供服务,边缘系统才能实现端系统与端系统之间的通信。核心部分包括路由器中间设备还有一些网络连接起来。核心部分和边缘部分连接起来就构成了计算机网络。
注意这里系统之间的通信是进程之间的通信。那么两个端系统进程之间的通信主要包括两种方式:
C
即客户端到服务器端的通信方式。是因特网最传统最常用的服务。这种方式,多个端系统之间的进程呈现出服务与被服务的关系。
与之对应还有一种B
P2P方式
即对等连接。这种情况下端系统身份都是对等的,都有提供服务的服务者和使用服务的享受者(客户端)的身份。
如:磁力链下载。假如有
所以可看到
之前提到过计算机网路有两个功能分别是数据通信及资源共享。所以可以从功能组成方面分为:通信子网、资源子网。
通信子网可以实现数据通信。
之前提到过计算机网络可以按照层次划分,在OSS参考模型中从上到下划分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
其中下三层即网络层、数据链路层、物理层代表的就是通信子网,因为是由各种传输介质、通信设奋、相应的网络协议组成。
通信子网可以让这个网络具有传输、交换、控制和存储功能,同时也能实现联网计算机之间的通信。
这三层实现计算机通信设备有:网络层(路由器)、数据链路层(交换机、网桥)、物理层(集线器、中继器)。
资源子网可以实现资源共享
上面三层,即应用层、表示层、会话层是资源子网。能实现资源共享功能的设备和软件的集合。
资源子网可以向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源等服务。
其实可以理解为上三层是对数据的封装和处理。下三层就是将这个数据送往上层。中间的传输层起到很重要的媒介作用,其大致作用是为了弥补上三层要求的服务和网络层提供的服务之间的差距,并且向高层用户屏蔽通信子网当中的一些细节,可以说传输层起到了承上启下的作用。
计算机网络按照性质不同可以分为以下几类:
按分布范围:分广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
最广的范围是广域网,分布范围从几十到几千公里,是因特网的核心部分。它的任务是通过长距离来发送数据。
城域网能覆盖一个城市。而局域网在地理上是一个较小的范围,如:一个学校、一个办公楼等。
最后个人区域网就是将如电脑、手表等通过无线技术连接起来的网络,也成为无线个人区域网。
这里主要学习广域网和局域网,这两个网络通常使用广播技术。这种网络类型不仅仅是地理上的差别,更重要的是看使用的是什么技术,广域网用的是交换技术、局域网用的是广播技术。
按照使用者分:公用网、专用网。
公用网如中国移动、中国联通等。
专用网(内网)是某个部门或者行业为了特殊用途需要构建的网络。如:军队、企业部门等。
按照交换技术来分:电路交换、报文交换、分组交换。
这几种方式讲的是数据传输方式。
电路交换如:打电话。原理是首先会建立连接,占用一个通信资源。之后通话过程中会一直占用这个资源。最后打完电话后会释放链接归还通信资源。有这三个步骤的交换方式是电路交换。所以电路交换特点就是在通话的全部时间内通话的两个人是完全占有中间的资源不能被别人使用。
报文交换和分组交换技术特点是都使用存储转发技术。主要区别是主体不一样:分组就是将报文数据切开分成不同的组。报文就是一个完整的文件。
报文交换和分组交换存储转发就是现在要发送的数据首先要放到路由器上传输,此时路由器会存下来这个数据来检查要往哪发,之后再转发出去转发给正确的路由方向。
按照拓扑结构可以分为以下结构:
拓扑结构其实就是把网络中结点(可以是路由器、交换机这些中间设备,也可以是端系统中的主机),变成上图中的小圆圈。把通信链路抽象成一条线。将圆圈和线结合在一起就是上面拓扑结构。
常见的拓扑结构如上图。可以看到总线型所有的结点都连接在一条总线上。星型就是由中间结点向四周结点四散。环形就是将结点链接成环状。最后的网状型就是现在常用的拓扑结构,常用于广域网。
按照传输技术分:广播式网络、点对点网络
广播式网络是共享公共通信信道,常应用在局域网中。用的是总线型的拓扑结构。特点是一个结点(主机)发送消息,其他都可以收到。
点对点网络是使用分组存储转发和路由选择机制。常应用在广域网中,广域网基本都是点对点的网络。指的是在网络当中如果两台主机需要通信,但是没有直接连接,就需要很多中间结点实现分组存储转发和路由的选择。特点是发送消息只有被接受方可以听到,其他结点都接受不到消息。
计算机网络组成和分类总结:
标准化对计算机网络至关重要。要实现不同厂商的硬、软件之间相互连通,必须遵从统一的标准。
标准分类有:法定标准(由权威机构制定的正式的、合法的标准),如:OSI。事实标准(某些公司的产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准),如:TCP
RFC是一种因特网标准形式,即只要是因特网标准就一定是RFC的形式,但是不代表所有的RFC都是因特网标准。
RFC要上升为因特网正式标准的四个阶段:
标准化工作相关组织:
国际标准化组织ISO:主要贡献是建立了OSI参考模型、HDLC协议。
国际电信联盟ITU:制定了通信准则。
国际电气电子工程师协会IEEE:是一个学术机构,建立了IEEE802系列标准、5G协议。
Internet工程任务组IETF:负责因特网相关标准的制定。
标准化工作及组织总结:
计算机网络性能指标由:速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率决定。前三个指标密切相关,其中的核心是吞吐量。
速率即数据率或称数据传输率或比特率。指连接在计算机网络.上的主机在数字信道上传送数据位数的速率。
这里的比特是计算机中数据量的单位。单位是b
假如发送端要发送十位比特数据
换算单位:
千1kb
s b s 兆1Mb
s kb s b s 吉1Gb
s Mb/s kb s b s 太1Tb
s Gb s Mb s kb s b s
注意这里的是速率换算,其实基本换算就是
"带宽"原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。
在很长一段时间内通信的主干线路传送的都是模拟信号。选择传送的都是
在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的"最高数据率"单位是"比特每秒",b
带宽也可以理解为网络设备所支持的最高速度。
假如有如上图所示的一条链路(信道),并且这个链路的带宽是
在第一微秒,交换机(或主机)往链路上发送
再经过
同理
如果链路带宽是
这就是带宽不同所导致的区别。如果带宽变大在单位时间内往链路上注入的数据量会变多,但是不能影响传播速度。
表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b
吞吐量受网络的带宽或网络的额定速率的限制。即指某个网络设备每秒中能通过的最高数据量。
这里的交换机可以理解为服务器与客户端之间的中介。上图中客户端计算机与交换机之间的链路带宽有
假如说当前客户端主机要访问两台服务器。第一个服务器速率是
指数据(报文
这个时延包括四大类:发送时延(传输时延)、传播时延、排队时延、处理时延。
如果题中要求总时延,如果题中都考虑到,则需要将四种时延全部加和。
下面讲解着四种时延出现位置:
两个主机之间通过链路(路由器等)进行连接。
发送时延
首先是发送时延:从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。
假如
可以看到发送时延的快慢和两个因素有关:一个是发送数据的比特位长度。另一个是发送快慢。则发送时延公式:
假设
传播时延
传播时延是电磁波在信道上传播一定距离所花费的时间。所以传播时延取决于电磁波传播速度和链路长度。
上面的例子就是将
计算公式如下:
假设电磁波在这条信道上传播速率是
所以传播时延和上面的发送时延区别是,发送时延发生的是在主机内部的,而传播时延是发生在机器外的信道上的。
排队时延与处理时延
指的是等待输出
如上图,假如这十个比特已经在路由器上了,但是路由器此时要处理的数据很多,所以会让这十位比特先等待,这个等待其实就是将这些数据放到路由器的缓存上,在缓冲阻塞这段时间就是排队时延。如果阻塞时间结束,路由器就会对这十位比特数据进行转发工作,同时转发也需要一定的时间,因为路由器要识别这十位数据要发送到哪,别还要验证这个数据有没有出错。而识别数据的发送位置和验证数据有没有出错时间就是处理时延。
所以在路由器上发生的是排队时延和处理时延。
综上所述,如果主机的带宽变为
指的是时延和带宽的乘积:
带宽是发送端在发送数据时可以达到的最高速率,强调的是发送速率,单位是b
传播时延指一个比特从主机
时延带宽积又称为以比特为单位的链路长度。即"某段链路现在有多少比特"。是一个数据容量的指标。
指的是从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
开始是发送方的第一个比特位刚放到信道上的时间。结束是接收到受到发送方的第一个比特为止。这一段时间是往返时延RTT。
而RTT越大,在收到确认之前,可以发送的数据越多。
RTT包括:
往返的传播时延
传播时延指的是电磁波在信道上传输一段距离所花费的时间。往返的传播时延
末端处理时间
通常是接收方在接受到数据后会对数据进行一个处理,然后再发出一个确认帧。
所以RTT不包括传输时延,也就是不包括主机将数据放到信道上的时间。
利用率分两种:信道利用率和网络利用率。
计算机网络中如果主机
故信道利用率计算:
网络利用率就是将所有信道的利用率加权再求平均值。
上图是时延与利用率的关系。可以看到利用率越高时延越大。如果信道利用率很高,则时延也会很高,会导致传输数据速率会降低。
性能指标总结:
假如两台计算机要实现资源共享
发送文件前要完成以下的工作:
发起通信的计算机必须将数据通信的通路进行激活。
即计算机会发出一些命令,保证要传送的数据能够在这条通路上正确的发送,及接受。
高速网络如何识别目的主机
发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
准备工作分为两种:一种是主机是否做好接收文件的准备。第二个是接受主机是否有空间存储要来接受的文件。
确保差错和意外可以解决
除了上面五个工作外,计算机在发送文件前要处理工作还有很多。这么多的问题放在一起很难同时解决,所以计算机网络要将这些大问题分解为一系列的小问题。故这就是计算机网络要分层的原因。
分层结构中有很多抽象的名词,这里进行解释:
实体
实体指的是每一层当中活动元素叫做实体。且在同一层的实体称为对等实体。
协议
一系列的规则与约定。协议是水平方向的,及对等实体之间才有协议。
接口
每两层之间的通道就是接口。在计算机网络中接口是逻辑上的。
服务
指的是每两个层次之间提供的功能称为服务。在计算机网络中上层使用下层提供的服务。
分层的基本原则:
上图是计算机网络中正式的分层结构。其中网络和各层单元数据关系也进行了展示。根据上图解释上面各个名词:
实体:第
如上图主机
协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。
这样一组或一系列的协议就可以规定某一个层次的功能。这里的协议是水平的。如上图第四层和第五层的协议不一样,也不能相互使用。
协议有三大要素:
语法:规定传输数据的格式。如:
语义:规定所要完成的功能。如:
同步:规定各种操作的顺序。
接口(访问服务点SAP):上层使用下层服务的入口。如上图的
服务:下层为相邻上层提供的功能调用。因为是上下两层之间的服务,所以是垂直的。
最后,可以将网路各层的数据单元进一步抽出来,分析各个层之间的包含关系:
首先是SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
还有PCI协议控制信息:控制协议操作的信息。可以理解为一些控制信息。
PDU协议数据单元:对等层次之间传送的数据单位。PCI
总结:
网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构,是分层结构。
每层遵循某个
计算机网络体系结构包括上面?
它包括计算机网络中的各个层次,以及各个层次需要完成的功能,同时还包括每一层所对应的协议。
第
体系结构是抽象的,而实现是指能运行的一些软件和硬件。
分层结构总结:
计算机网络分层结构可以分为:
根据这两种模型,就可以总结出一个新的
四层和五层模型都是基于七层OSI参考模型。
为了解决计算机网络复杂的大问题,将大问题分成一个一个小问题,因此就产生了分层结构,且每一层都是按功能来分的。
根据这个分层,早起每个公司都有自己的网络体系结构。为了支持这些支持异构网络系统的互联互通。国际标准化组织(ISO) 于1984年提出开放系统互连(OSI) 参考模型。但是这种OSI参考模型只在研发上有很多借鉴意义,而实际市场上是失败的。
OSI参考模型有七层,自上而下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
同时之前提到过计算机网络按照功能可以分为资源子网(负责处理数据)和通信子网(负责数据通信),通信子网对应的就是七层模型中的下面三层。资源子网就是七层模型的上面三层。而传输层是资源子网和通信子网的接口。
OSI参考模型通信过程:
两个主机之间进行通信,如果进行网络通信就一定要有中间系统(路由器)介入。采用OSI模型
物理层有一层传输介质(光纤、电缆等)。且对等层次之间都有一个协议,如:数据链路层和中间系统的数据链路层之间会有协议来规定这两层的功能是一样的。
可以看到上面四层就好像直接由主机
而下面三层就需要介入中间系统,如果中间系统较多,消息还要继续传递给下一个中间系统。所以这个消息传播过程是点到点的。不仅要知道目的主机(地址)还要知道下一步地址。
每一层对数据具体操作如下:
应用层
会将主机
这里的
表示层
之后继续往下传,本层再加上一个头部信息就是下一层的PDU。直到数据链路层,在加上头部同时还加上了尾部。
最后的物理层会将这个信息转换为二进制比特信息。
这些信息到了接收消息的主机
下面会依次介绍各个层对应的功能和协议。
应用层
应用层是离主机层最近的一层。所以应用层定义是所有能和用户交互产生网络流量的程序,即只要连上网络才能使用的程序就是属于应用层。如:典型应用层服务:文件传输(协议是FTP)、电子邮件(协议是SMTP)、方维网(协议是HTTP)。
表示层
主要用于处理在两个通信系统中交换信息的表示方式。通常是对语法和语义的处理。
表示层功能如下:
数据格式变换
不同主机的编码可能会不一致,所以为了使不同的主机能够进行数据交换,所以就需要表示层实现数据格式交换。类似于翻译官的角色。如:将二进制比特流信息转换为图片等。
对数据进行加密和解密
数据的压缩和恢复
如:视频聊天,图像大小很大,可以先将每一帧的图片进行压缩再发送到信道上,接收主机的表示层会对压缩的图片进行恢复。
这一层次在五层结构中会被纳入应用层和规划层中。主要协议有:JPEG、ASCII。
会话层
表示层会使用到会话层的服务。向表示层实体
假如一个主机打开两个进程,对其中一个进程进行网络请求操作不会影响到另一个进程内的变化。这就是因为每个进程之间都有互相独立的会话。
更详细功能是:
建立、管理、终止会话
使用校验点可使会话在通信失效时从校验点
假如要传输一个很长的数据,可以将这个数据分段,每个分段之间可以插入校验点(同步点)。其作用是在通话失败时可以恢复到校验点继续通信。这样就不用再从头开始传送。所以适用于传输大文件。
会话层主要协议:ADSP、ASP
传输层
传输层是自下而上,第一个作为端到端通信的层次,同时也是上面三层资源子网和下面三层通信子网之间的接口。
负责主机中两个进程的通信,即端到端(上面三层)的通信。传输单位是报文段或用户数据报。
传输层四大功能:
可靠传输、不可靠传输
有两台主机进行通信,中间有很多路由器构成一个网络
可靠传输指的是如果发送一个大的文件,这个文件会被切成报文段,一个一个放到链路上进行传输。传送到接收端后,每次接收端都会返回一个确认消息给发送端。只有发送端收到接收端上一个报文确认信息之后才会继续发送下一个报文段。如果接收端一直没有确认消息,发送端会再次发送当前报文段,直到接收端确认后才能发送下一个报文段。这就是可靠传输,一个基于确认机制的过程。
不可靠传输就是不需要建立连接,发送方会直接给接收方发送消息,不用接收方确认就会继续发送下一段报文。
通常在发送小数据的时候用不可靠传输。(如微信消息)。
差错控制
如发送的报文段失序,丢包等,需要进行纠正。
流量控制
如发送端给接收端发送很长一段数据,而接收端接受能力有限,不可能一次性接受完,所以会控制发送方速度。
复用分用
复用:多个应用层进程可同时使用下面运输层的服务。(多个用户使用一个IO资源发送消息时,我们称之为"复用"。)
分用:运输层把收到的信息分别交付给上面应用层中相应的进程。(多个用户使用一个IO资源接收消息时,我们称之为"分用" 。)
复用和分用可以理解为,从一座城市的不同商家(进程)发出的快递(数据包)上了同一辆运输车(复用),到了驿站后根据取件码(端口号)让每个收货人(目标进程)取走对应的快递(分用)
主要协议有:TCP、UDP。
网络层
是七层中最重要的层次。主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。如果数据报过长就会对数据报进行切割,切割成一个一个分组,再放到链路上进行传递,这样可以使传输的过程更加灵活。
网络层四大功能:
路由选择
如上图所示,中间的路由器可以组成多个线路,具体要选择哪种路线要看当时的网络情况,通过相应的路由算法计算出最佳路径。这就是路由选择过程。
流量控制
协调发送端和接收端的速度问题,主要是针对发送端速度。
差错控制
通信两结点之间约定规则,如:奇偶校验,接收方会根据规则来检查受到的分组有没有错误,且有纠错的功能。
拥塞控制
若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
主要协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
数据链路层
主要任务是把网络层传下来的数据报组装成帧。数据链路层
功能如下:
成帧(定义帧的开始和结束)
也就是说数据包组装成帧之后会形成一个较长的比特流序列,对于这样的比特流序列要定义帧从哪开始,从哪结束。只有定义完帧的起始和结束位置,才能在接收端提取出帧的部分。
差错控制
包括帧错和位错。可以检测错误也可以纠正帧错误。
流量控制
对于发送方和接收方速度协调问题。
访问(接入)控制
主要是对信道控制访问。
上图四个主机,都会连接在一个传输介质上,如果在广播式网络中,数据链路层就要处理这种访问接入控制的问题。控制哪台主机可以占用信道。因为在广播式网络中,同一时间只能有一台主机发送信息,其他都处于监听状态。
主要协议:SDLC、HDLC、PPP、STP。
物理层
主要任务是在物理媒体上实现比特流的透明传输。即将数据转换为电信号形式放在信道上传输即可。物理层传输单位是比特。
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
如上图将比特流转换为右边电信号。
功能如下:
定义接口特性
如:确定接口电缆插头有多少引脚等。
定义传输模式
传输模式有三种:单工(通信只能单向)、半双工(两个主机都可以作为发送方和接收方,但同一时间只能有一个主机发送信息)、双工(支持双向通信,如:打电话)
定义传输速率
比特同步
发送端发送一个
比特编码
如:用什么电压表示
主要协议:Rj465(水晶头)、802.3
TCP/IP参考模型有四层:
与OSI参考模型相比,TCP/IP参考模型将应用层、表示层和会话层合并为应用层,数据链路层和物理层合并为网络接口层。各个层次介绍:
上图右边的是协议栈,先有协议栈才有的TCP/IP参考模型。自下而上是每一层所对应的协议。
OSI参考模型与TCP/IP参考模型相同点:
都分层
基于独立的协议栈的概念
可以实现异构网络互联
即能实现不同厂家生产的设备进行通信。
不同点:
OSI参考模型定义了三点主要内容:服务、协议、接口。这是与TCP/IP不同的一点。
OSI先出现,参考模型先于协议发明,不偏向特定协议。
TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次。
在网络层和传输层这两个层次上,两个模型通信方式会有不同:
面向连接分为三个阶段:第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。
而面向无连接没有这么多阶段,它直接进行数据传输。无连接有一个重要协议,即IP协议。
TCP/IP在网络层很注重IP协议,故是无连接。
五层参考模型综合了OSI和TCP/IP的优点。
应用层可以支持各种网络应用,主要协议有:FTP、SMTP、HTTP。
传输层:进程与进程之间的数据传输。主要协议有:TCP、UDP。
网络层:源主机到目的主机的数据分组路由与转发。主要协议有:IP、ICMP、OSPF等。
数据链路层:把网络层传下来的数据报组装成帧。主要协议:Ethernet(以太网)、PPP等。
物理层:实现比特传输。
五层参考模型的数据封装与解封装:
这两台主机进行通信,中间会有路由器、交换机等中间系统。这里省略。因为在这两种中间系统进行封装和解封装过程和主机过程一致。
首先应用层会加入一些控制信息,这个控制信息形成的传输单元就是报文。
接着将这个报文切分成段,放到传输层上进行传输,再加上传输层的控制协议,因此就形成一个个报文段。
在网络层,就是将数据单元再加上网络层控制信息(H3),就形成一个数据报
当然数据报过长也可以进行分组。
之后到链路层,数据报会组成帧,并且头部,尾部会加上链路层的控制信息。形成的传递单元是帧。
对于帧,物理层不会追加信息,直接会转成比特流形式。传输单元是比特。
接着将比特流放到链路上进行传输。传输到中间系统时,就要进行要给解封装过程。
到了接收方物理层,是比特序列。之后接收方数据链路层会还原成链路层帧,之后将链路层控制信息去掉就是网络层数据与控制信息。之后每一层去掉对应层的控制信息,知道应用层去掉对应控制信息之后就可以将原始数据返还给接收方。
五层参考模型是学习的关键。
第一章总结:
知识总览:
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
注意这里的传输媒体是指传输介质,包括导向型和非导向型。
物理层主要任务:确定与传输媒体接口有关的一些特性。即定义标准。如:路由器后面的插口(接口)是一样的,网线的水晶头也是一样的。
物理层特性:
机械特性
定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
电气特性
规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
如:某网络在物理层规定,信号的电平用
功能特性
指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
如:描述一个物理层接口引脚处于高电平时的含义
规程特性(过程特性)
定义各条物理线路的工作规程和时序关系。
需要对数据通信有一个大致理解。下图是一个典型的数据通信模型:
接着接收端内部操作再将比特流数据转换为原始消息。这个转换过程就是物理层以上几层所要做的事情。
以上每一部分都有对应的专业名词:
输入端可以叫做信源。调制解调器是发送器。而接收端的调制解调器叫做接收器。中间的公用电话网是传输系统。
同时还可以再进一步统一这些专业名词:
数据data
传送信息的实体,通常是有意义的符号序列。上面的例子就是
信号
数据的电气
信源
产生和发送数据的源头。
信宿
接收数据的终点。
信道
信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。所以信道有方向性。
信道可以分为两种:
所以通信的目的是传送消息。消息包括:语音、文字、图像、视频等。
码元
码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为
假如主机要发送二进制数据给另一台主机,如果这些数据要放到链路上传输就要转换为电信号形式。主机
如上图,比特
速率
速率也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
码元传输速率:别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特(Baud) 。
例:若
B
数字信号有多进制和二进制之分,但码元速率与进制数无关,只与码元长度(宽度)
信息传输速率:别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特
即
码元传输速率和信息传输速率关系:若一个码元携带
例1:某一数字通信系统传输的是四进制码元,
四进制码元系统:
码元传输速率就是
Baud,信息传输速率就是 b/s 十六进制码元系统:
码元传输速率就是
Baud,信息传输速率就是 b/s 系统传输的是比特流,通常比较的是信息传输速率,所以传输十六进制码元的通信系统传输速率较快。
例2:已知八进制数字信号的传输速率为
八进制位数有
位比特长度,所以 B可以传送 b/s。且二进制只有 位比特长度,所以 B可以传送 位二进制bit/s。 即
bit/s
例3:已知二进制数字信号的传输速率为
二进制只有
位比特长度,所以 B码元可以传输 位比特长度信息,而变换为四进制则需要两位比特长度,故 B
带宽
在模拟信号系统中:当输入的信号频率高或低到一定程度,使得系统的输出功率成为输入功率的一半时(即-3dB),最高频率和最低频率间的差值就代表了系统的通频带宽,其单位为赫兹(Hz)。
在数字设备中:表示在单位时间内从网络中的某一点到另一点所能通过的"最高数据率"/单位时间内通过链路的数量,常用来表示网络的通信线路所能传输数据的能力。单位是比特每秒(bps)。
描述的是信道的最优性能。拥有更宽的带宽,也就是有更大的信息运送能力,一秒钟能送到信道上的比特数就越多。
设计数据通信系统要考虑的
从通信双方信息的交互方式看,可以有三种基本方式:
单工通信
只有一个方向的通信而没有反方向的交互,仅需要一条信道。使用场景:广播,一个人讲其他人听。
半双工通信
通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。使用场景:两个人使用对讲机说话。
全双工通信
通信双方可以同时发送和接受信息,也需要两条信道。使用场景:两个人打电话。
串行传输:将表示一个字符的
串行传输特点:速度慢,费用低,适合远距离。
并行传输:将表示一个字符的
并行传输特点:速度快,费用高,适合近距离。
在计算机内部的数据传输就是并行传输。
计算机实现数据接收同步方式有两种:
同步传输:在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。在传送数据时,需先送出
如上图接收方在收到发送方两个同步字符后,就会准备开始接收数据字符了。也就是实现了发送方和接收方的时钟同步。
异步传输:异步传输将比特分成小组进行传送,小组可以是
假如一台主机发送以上几个字节的数据,与同步传输区别在于,在发送端并不是连续发送这几个字节,而是断断续续的。如上图的字节
发送端发送这
起始位和终止位通常默认为
异步传输常见例子就是:键盘输入信息。计算机对输入信息处理就是异步传输。
同步和异步区别:同步传输种发送方和接收方时钟是统一的,字符与字符间的接收与发送是同步的没有间隔的,是以一个区块形式传输的。异步传输则不要求接收方和发送方时钟完全一样,字符与字符间的接收和发送是异步的。
同步传输与异步传输与串行传输与并行传输关系:
如吃面包时候,面包师可以一直做,顾客则需要一直吃(同步传输),顾客可以有一个(串行传输)也可以有多个(并行传输)。
若面包师根据心情断断续续做面包,则顾客也是断断续续吃面包(异步传输),顾客可以有一个(串行传输)也可以有多个(并行传输)。
数据通信基础知识总结:
先来介绍失真概念:在计算机网络中就是信号在传递时发生扭曲变化。
上满信号波形即使在信道中受到干扰,还是可以根据接收信号波形来识别出数据。但下面这种情况就很难识别:
影响失真程度的因素:码元传输速率(越快失真程度就越严重)、信号传输距离、噪声干扰、传输媒体质量(质量越差失真越严重)。
失真一种情况:码间串扰
假如在传输数据时候是通过电话路网(模拟信道)上传输,此时可以将数字信号调制为多种模拟信号
在实际传输中信道上布满了各种各样频率的信号。上图左边数字是信号带宽,可以看到并不是所有带宽都快有通过信道的,
而
故码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象。
为了解决这个问题就提出了奈氏准则。
奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为
注意:只有在奈氏准则和香农定理中带宽单位才是Hz。
这里的
例:在无噪声的情况下,若某通信链路的带宽为
由于有
个相位,每个相位有 种振幅,所以总共 种信号形式。(在下一节编码与调试中会具体讲到) 所以最大数据传输率
kb/s
上面的奈氏准则只是规定了最高的极限码元传输速率,但是并没有规定比特的传输最高速率。所以香浓定理可以解决这个问题。
香农定理和奈氏准则相比,不仅定义了在信道种传输的比特极限传输速率,同时还考虑到了信道当中会经常存在的电磁干扰,即噪声的影响。噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比(通常题中会给出)就很重要。
信噪比
香农定理:在带宽受限且有噪声的信道中,为了不产生误差(接收端可以清晰地分辨码元),信息的数据传输速率有上限值。
上面的
根据这个准则可以得出以下四条结论:
例:电话系统的典型参数是信道带宽为
dB ,则 故信道的极限数据传输速率
kb/s
奈氏准则
是在带宽受限无噪音条件下,为了避免码间串扰,推导出码元传输极限值是
公式:
要想提高数据率,就要提高带宽
香农定理
是带宽受限有噪声条件下的信息传输速率。侧重比特传输速率。
公式:
要想提高数据率,就要提高带宽/信噪比。
公式选择:如果给出噪声条件就用香农定理,如果么有给出就用奈氏准则。如果题中给出信噪比同时还给出一个码元对应多少比特(V),此时就要两个公式都算出结果,取其最小值。
例子:二进制信号在信噪比为
题中即给出信噪比,同时还给出二进制,即一个码元对应一个比特。所以两个公式都要用取其最小值。
奈氏准则:
b/s 香浓定理:
b/s 所以最大的数据速率可达到
b/s
先来看基带信号与宽带信号概念:这两个其实是信道上传送信号的两种形式。之前学过信道上的按传输信号可以分为数字信号和模拟信号,引入基带信号与宽带信号这两个概念后,信道上的按传输信号还可以分为基带信号与宽带信号。
基带信号
基带信号将数字信号
来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号,并且是模拟信号。
基带传输中会规定
宽带信号
将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)。
宽带信号是把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
即如果放到数字信道上传输就是基带传输,放到模拟信道上传输就是宽带传输。且在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)。在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)。
上面是预备知识下面介绍编码与调制:
数据可以是数字的也可以是模拟的,如计算机语言就是二进制的
具体就是数字数据
而对于模拟数据
四种方法是:数字数据编码为数字信号、数字数据调制为模拟信号、模拟数据编码为数字信号、模拟数据调制为模拟信号。
计算机所发送的数据是
这种编码方式有很多种,本质其实就是规定
这里重点介绍前三种编码:
非归零编码
高
特点是:编码容易实现,但没有检错功能,且无法判断一个码元的开始和结束,以至于收发双方难以保持同步。
假如要发送的是一长条连续的
归零编码
信号电平在一个码元之内都要恢复到零的这种编码成编码方式。
如二进制
对于归零编码,在整个传输过程中,处于低电平情况很多,而且低电平时间久。信道利用率低。
反向不归零编码
信号电平翻转表示
与归零编码区别是在一个码元内不会发生跳变。
可以看到如果发送端是全
所以综合上面三个编码优点就形成了曼彻斯特编码。
曼彻斯特编码
将一个码元分成两个相等的间隔,前一个间隔为低电平后一个间隔为高电平表示码元
可以看到每一个码元都会发生跳变。跳变可以作为时钟信号用于发送方和接收方同步,接收方每次都能检测出码元跳变,就可以知道接收方发送了几个比特。
另外每一个码元都被调成两个电平,所以数据传输速率只有调制速率的
即一个时钟周期内有两个码元,但是只有一个比特。
差分曼彻斯特编码
同
可以看到,只有下一个编码是
4B
比特流中插入额外的比特以打破一连串的
对于4B
计算机所发出的是数字信号,所以要放到模拟信道上传输就要先经过调制解调器调制为模拟信号,然后才能在信道上传输。到了接收端再由接收端调制解调器实现解调过程,将模拟信号转成数字信号,进而交给信宿,由信宿将数字信号解释为
所以数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。
调制可以分为:ASK、FSK、PSK、QAM
ASK
调幅,
FSK
调频,
PSK
调相,
调幅
调幅基础上,对于幅度进一步细分,调成几个相位。或者是在调相的基础上,对于每种相位,再细分调成不同的幅度。
例:某通信链路的波特率是
即对于每一种相位,都会有四种振幅形式。整个信号就会有
种波形。即对应 种码元。
种码元需要 比特位表示。且题中给出一秒传输 个码元,一个码元表示 比特位。 则信息传输速率位:
b/s。
计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)。
最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。它主要包括三步:抽样、量化、编码。
抽样
对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。
为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:
量化
把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。
之前的抽样会得到一些离散的点,但是点所对应的纵坐标或者所对应的电平值差异很大,有小数的也有整数的幅值。所以需要把这些小数的幅值和整数幅值统一为整数,并且按照一定的分级标准分段。如:
编码
把量化的结果转换为与之对应的二进制编码。
量化之后会得到一系列的整数电平幅值。可以把这些整数电平幅值看作几种信号状态。每种信号状态就对应着一种码元。因此,假如有四种状态,就可以用两个比特为表示。同理
结合上图再总结模拟数据编码为数字信号过程:
首先对于上图不规则的模拟信号,要先对其进行周期性扫描抽样。具体可以是每一个相等的周期就对信号采样一次。采样就是对信号取样,看在这个时候对应的电压是多少。
接着量化就是将抽样后的点的电压会有小数和整数幅值,此时全部都统一为整数,并且按照一定的分级标准转换为对应的数字值。
最后编码,如上图左侧比特位有四位,即所对应的就是
上面提到过采样定理:为了使所有的离散信号 , 能够不失真地代表被抽样的模拟数据,需要使用采样定理 :
模拟信号都是正弦波 构成的,每个模拟信号都可以过滤出一个正弦波。假如现在有两个正弦波:
正弦波A,
正弦波B,
正弦波A和正弦波B都可以求信号频率,信号频率也就是带宽,即
针对B波形,确定采样频率方式如下:
对于一个正弦波,公式:
未知参数
结论:
在一个 正弦波周期内,采样
如果
因此采样定理中规定,采样频率必须大于等于
人耳能听到的声音是
信号在传输过程中,可能信道会很长,而且可能环境很恶劣,会导致传输的模拟信号受到一定的衰减,所以要把模拟信号调制成新的模拟信号以应对突发情况。
即为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式。模拟的声音数据是加载到模拟的载波信号中传输的。
假如两个打电话,需要经过信号发射塔传送给接收方。通过话筒传出来的声音(声波),频率很低。这种声波很难以应对信道上的突发影响。因此需要将这个声波信号调制成高频的模拟信号,这个高频信号在信道上即使受到影响接收方也可以清楚恢复出原来的信号。这个模拟信号在信道上传输到接收方时,接收端通过解调器将这个信号解调成原来的基带信号。
编码与调制总结:
在之前讲过如果两台计算机要进行通信,之间要有链路连接。假如现在有六台计算机,之间都是使用有线的链路进行连接:
如果要实现两两互连,则需要
中间的交换设备可以是交换机(局域网)、路由器(广域网)等。通过这个交换设备链路就变成
这里的交换是通过某些交换中心将数据进行集中和传送。进而传输线路为各个用户共用,从而大大节省通信线路,降低系统费用。
当交换设备更多的时候可以形成要给交换网络:
所以本小节介绍的数据交换方式有四种:电路交换、报文交换、分组交换。其中报文交换和分组交换都属于存储转发交换方式。分组交换又可以分为数据报方式和虚电路方式。
如下图所示有两台主机进行连接:
假定
先看一下电路交换原理:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。
具体要结合电路交换的阶段:建立连接(呼叫
建立连接(呼叫
发送端会首先向最近的离它最近的交换设备
接着交换设备
如果主机
至此主机
通信(数据传输)
再通信过程中,两台主机都可以发送数据,即全双工通信方式。
在两台主机发送完数据后就进入第三阶段。
释放连接(拆除电路)
假如主机
主机
这个释放应答过程中设备会依次断开连接。
电路交换特点:独占资源,用户始终占用端到端的固定传输带宽(通信过程中选择的线路不能被其他主机占用)。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。
电路交换优缺点:
报文:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。通俗讲就是指单次要发送的数据块,长度不确定。
报文交换原理(可以用存储转发概括):无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式。
如上图,发送端要发送一个数据块,数据块可以称为信息,这个信息加上报头就形成报文。报文中包含源主机地址和目的主机地址,还有一些相关的控制信息。
首先报文会发送到交换设备
这里的路由信息是指每个交换设备都会维护一张较大的路由表,根据这个路由表就可以判断接下来可以走哪几个路由器(如何到目的主机最短)。
根据路由信息可以看到交换设备
之后设备
报文交换原理优缺点:
是现在网络中最常使用的交换方式。
分组:大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。
分组交换的原理:分组交换与报文交换的工作方式基本相同,都采用存储转发方式,形式上的主要差别在于,分组交换网中要限制所传输的数据单位的长度,一般选
如上图,发送源需要发送一个大数据块。这里如果不对大数据库进行切割就是报文交换方式。采用分组交换这里会对大数据块进行切割。将大数据库切割成一个个小数据块。接下来在每个小数据块上都加上控制信息就形成一个个小分组。
控制信息包括源地址和目的地址及分组编号。有编号是因为在传输过程中交换设备会根据网络状况选择不同路线发送这些小数据块,所以在目的主机需要根据这个编号进行按序重组。还原出原来的正确报文。
首先第一个分组发送给交换设备,交换设备在受到这个分组后仍和报文交换一样会进行差错检测及路由选择。如果分组路由选择如下所示:
交换会根据网络进行路由选择。各个分组在传输过程中变得无序。最后全部发送给目的主机后,目的主机根据分组编号将这些分组重组成合适的报文,再交付给上层。
分组交换优缺点:
上面是分组交换的基本原理,在分组交换下会有两种方式:数据报方式和虚电路方式。
下图两个主机进行数据报传输:
主机
这就是数据报交换方式。其实也就是上面讲的分组方式。
数据报方式特点:
数据报方式为网络层提供无连接服务。发送方可随时发送分组,网络中的结点可随时接收分组。
无连接服务指的是不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
同一报文的不同分组达到目的结点时可能发生乱序、重复与丢失。
每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。
分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。
在无连接的情况下如果丢弃部分分组,会有一定的机制将丢弃的分组再重新发送。所以分组只是早到还是晚到问题。
网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适于长报文、会话式通信(通常采用电路交换方式)。
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
虚电路是指一条源主机到目的主机类似于电路的路径( 逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表, 每一项记录了一个打开的虚电路的信息。
虚电路方式结合电路交换方式,所以采用电路交换方式三个阶段:建立连接(呼叫
也就是在虚电路方式中和电路交换方式一样,在两台主机之间好像建立了一个连接。数据发送过程如下:
建立连接
主机会发送一个呼叫请求,交给结点
如果主机
要注意的是在建立连接阶段,呼叫请求和呼叫应答都是以分组形式存在的。而分组包含源主机地址和目的主机地址。当源主机发送"呼叫请求"分组并收到"呼叫应答"分组后才算建立连接。
数据传输
在数据传输过程中,传输的是分组,每个分组携带虚电路号,分组号,检验和等控制信息。而不需要携带物理地址。因为在连接建立好后分组路径就唯一确定。但是要携带虚电路号,这个虚电路号就是唯一标识,它的意义在于如果主机
释放连接
源主机发送"释放请求"分组以拆除虚电路。
与电路交换流程一致。
虚电路方式特点:
虚电路方式为网络层提供连接服务。源结点与目的结点之间建立一条逻辑连接,而非实际物理连接。
连接服务:首先为分组的传输确定传输路径(建立连接的过程),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
所以这里的连接服务和无连接服务是要不要在传输数据之前先事先建立好一个连接,如果需要建立好这样一条连接就叫连接服务。如果不需要建立连接就是无连接服务。
一次通信的所有分组都通过虚电路顺序传送,分组不需携带源地址、目的地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。
分组通过虚电路上的每个结点时,结点只进行差错检测,不需进行路由选择。
每个结点可能与多个结点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。
致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该结点或该链路的虚电路将遭到破坏,需要重新建立连接。
数据报与虚电路对比:
交换方式选择条件:
传输介质也称传输媒体
传输媒体并不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为
传输介质可以分为导向性传输介质(电磁波被导向沿着固体媒介(铜线
导向性传输介质有:双绞线、同轴电缆、光纤
双绞线
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。绞合可以减少对相邻导线的电磁干扰。
为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)。
生活中常见的双绞线:
双绞线特点:双绞线价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几公里到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号。对于数字传输,要用中继器将失真的信号整形。
同轴电缆
同轴电缆由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分为两类:
生活中常见的同轴电缆:
同轴电缆与双绞线对比:由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示
光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲。在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。
光纤主要由纤芯(实心的)和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。
所以光纤具有超低损耗,传送超远距离特点。实际上可以射入多条光线。如果射入多条光线就有了多模光纤和单模光纤。
多模光纤:
多模光纤可以在发送端发射多条光线。但是反射过程中损耗明显,所以适合近距离传输。
单模光纤:
将光纤的直径减小到只有一个光的波长,所以光纤就沿着直线传播,基本上没有发生反射。适合远距离传输。
两种光纤对比:
生活中常见的光纤:
而将多根光纤放在一起就是光缆,一根光缆少则只有一根光纤,多则包括十至数百根光纤:
光线特点:
非导向性传输介质常见的有三类:无线电波(信号向所有方向传播)、微波(信号固定方向传播)、红外线和激光(信号固定方向传播)。
无线电波
有较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。
微波
微波通信频率较高、频段范围宽,因此数据率很高。
应用:地面微波接力通信(微波像接力一样在地表被各个中继站传输到其他中继站)、卫星通信(将中继站放到真空环境下,只需要三个中继卫星就可以实现全球通信)。
卫星通信优点:通信容量大、距离远、覆盖广、可以实现广播通信和多址通信。
卫星通信缺点:传播时延长(
红外线与激光
把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再在空间中传播。
传输介质总结:
诞生原因:由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。
中继器的功能:对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。
上图是中继器,其功能可以概况为:再生数字信号。对于模拟信号处理是放大器,这里不做考察。
中继器的两端:两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。
且中继器两端可连相同媒体,也可连不同媒体。中继器两端的网段一定要是同一个协议(中继器不会存储转发)。
5-4-3规则:网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障。这个规则规定了一个网段内只能有五个网段、在这五个网段内只能有四个物理层网络设备(中继器)、并且只有三个段可以挂接计算机。
功能与中继器一样,都是将信号再生,放大的设备。
集线器的功能:对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。
上面一个集线器连接五台计算机。集线器通常的拓扑结构就是星形拓扑。集线器可以增加信号传输距离。不具备信号定向传送能力指的是假如上面两台计算机进行通信,发送方将信号给了集线器后,集线器会对信号进行放大。发大好后会从所有端口转发出去。这就是剩下四台计算机都能接收到信号。四个接收方在接收到数据后会判断数据地址是否给自己,如果不是就会丢弃掉。这种方式也即广播方式。
正因为有这种广播形式就会产生冲突。假如两台主机通信,同时第三台也要通信,此时就会产生冲突碰撞。集线器解决方法是停止传输过段时间再传输数据。所以集线器是一个大冲突域。是不能分割冲突域的。
因为集线器在一个时钟周期内只能实现一组通信。所以一台集线器连接数目较多,而且其他主机都要同时进行通信这样就会导致产生信息碰撞,降低集线器传输数据效率。故连在集线器上的工作主机平分带宽。
知识点预览:
数据链路层研究思想如下:
可以看到数据是自上而下,先封装再解封装、再封装、最后解封装的过程。然而在研究数据链路层的时候,很多情况下只是关心协议栈中水平方向的各个数据链路层。所以当
数据链路层术语:
结点:指的是主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
可以看到任何两个结点之间的连线都叫做一条链路。这个链路强调的是物理层面上的物理通道。介质传输就有两种:有线的和无线的。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
所以数据链路层是负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。即将上层网络层传输的数据报安全无差错传给相邻结点。
数据链路层功能概述:数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
数据链路层功能:
为网络层提供服务。服务有三种:无确认无连接服务、有确认无连接服务、有确认面向连接服务。
无确认无连接服务常常用于实时通信,或者误码率较低通信信道。即源主机在发送数据的时候不用事先跟目的主机建立好链路的连接,而且目的主机收到数据帧时候也不需要返回确认,如果帧丢失了数据链路层也不负责重发,而直接交给上一层处理。
有确认无连接服务也是事先不需要建立连接,但是目的主机在收到数据的时候必须要发回一个确认。如果源主机发现在规定时间内没有收到目的主机确认信息,就会将刚刚没有收到确认的帧重新传输一次。可以提高链路层可靠性。适用于误码率较高的通信信道(无线通信)。
有确认面向连接服务是最安全最可靠的。事先建立好连接,同时接收端收到一个帧之后就要返回一个确认帧。发送端收到这个确认帧才会继续发送下一个。
链路管理,即管理连接的建立、维持、释放(用于面向连接的服务)过程。
组帧
流量控制
差错控制,差错有帧错和位错两种。
封装成帧过程其实就是将网络层IP数据报加头加尾形成链路层的数据传送单元,即帧。
封装成帧定义:是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
上图的帧首部和帧尾部就叫帧定界符,其中包含很多控制信息。根据帧定界符接收端就可以确定帧的起始位置和结束位置。
根据帧定界符可以实现帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
另外帧的首部到帧尾部长度叫做数据链路层的帧长。
显然为了提高帧的传输效率,都应该使帧的数据部分尽可能大于首部和尾部,也就是说帧的数据部分会比较大。链路层协议规定规定索要传送帧的最大数据部分上限,也就是说帧的数据部分会有一个极限值。这个极限值叫做最大传送单元(MTU)。不同协议MTU长度也不同。所以在传送数据的时候,数据部分一定要
对于发送端的组帧过程有四种常见的方法:字符计数法、字符(节)填充法、零比特填充法、违规编码法。
在具体讲述四种方法之前先了解一下透明传输概念:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就"看不见"有什么妨碍数据传输东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时, 就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
字符计数法
帧首部使用一个计数字段(即第一个字节,八位)来标明帧内字符数。
对于每一个帧来说第一个字节都是规定了帧内有多少个字符数。因此就可以区分出每一个帧。
缺点是如果第一个帧的帧首部出现错误,就会导致接收错误。接收方就会出现同步错误。
字符填充法
字符填充法的帧有三个部分:SOH、装在帧中的数据部分、EOT
SOH(Start of header):帧首部的开始字节。
EOT(End of transmission):帧尾部的结束字节。
接收端根据SOH知道这是帧的开始,根据EOT知道这是帧的结束。
适用情况:
当传送的帧是由文本文件组成时,因为文本文件的字符都是从键盘上输入的,都是ASCII码不会与SOH和EOT发送冲突。所以不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。这是一种较为理想的情况。
当传送的帧是由非ASCI码的文本文件组成时(二进制代码的程序或图像等),帧的数据部分会与SOH和EOT发送冲突,但依然采用字符填充方法实现透明传输。
字符填充法具体实现如下:
假如原始数据的数据部分出现了很多控制字符,如EOF、SOH。即发生字符与界限符冲突。此时就要对这样的原始数据进行字符填充。其实就是在控制字符前面加上转义字符。这个转义字符也是一个八位的比特组合。
此时接收端就会将转义字符后的界限符当作数据。如果发生的界限符冲突的是转义字符,同样在前面加一个转义字符即可。这样将原始数据进行字符填充就可以放到链路上传输了。
综上所述字符填充法就是在发送端填充转义字符,在接收端将所有转义字符全部删除,最后剩下来的就是原始数据。
零比特填充法
这种方法允许数据帧中包含任意个数的比特。
其界限符是一样的。如上图所示如果数据部分也出现一个界限符就会产生界限冲突。零比特填充法就是要解决这个问题。
具体操作是:
在发送端,扫描整个信息字段,只要连续
原始数据:
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续
综上所述就是在发送端填充
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
违规编码法
是在物理层比特编码的时候来实现透明传输的方法。
在曼彻斯特编码中每一个码元对应的电平只有:高
这种方法实现简单,局域网的IEEE802标准就采用这种方法。
四种方法对比:由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
概括来说,传输中的差错都是由于噪声引起的。噪声分为全局性噪音和局部性噪音。
全局性
由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性
外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。是这里重点探讨的。
这些差错来源会导致两种差错:位错(比特位出错,
对于帧错解决是如果当前对于通信质量好、有线传输链路采用无确认无连接服务。对于通信质量差的无线传输链路采用有确认无连接服务和有确认面向连接服务。
所以对于不同的链路可以采用不同的可靠传输机制。这里重点介绍位错检测和纠正问题。
首先要明确一点对于链路层的差错控制,在任何一个结点的链路层都是可以实现的。只要两个结点建立了连接关系,那么结点就需要对发送方传送来的数据进行差错检验和纠正。
检测错误采用检错编码,纠正错误采用纠错编码。其中检错编码有两种:奇偶校验码和循环冗余码CRC(普遍采用的方式)。纠错编码主要学习海明码。
链路层编码和之前的物理层编码是两个概念:数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
上面提到的冗余编码指的是在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。即发送方会将数据添加几位比特的冗余码,作用是冗余码和原来的数据可以构成某种规则,把这个组合发出去后,接收方就按照和发送方共同的规则来检查数据是否有问题。如果符合规则则数据没有问题,反之数据有问题。
主要有奇偶校验码和循环冗余码CRC(普遍采用的方式)
首先有
奇校验码:整个校验码(有效信息位和校验位)中
偶校验码:整个校验码(有效信息位和校验位)中
例子:如果一个字符S的ASCII编码从低到高依次为
答案:
。 因为原字符的编码采用奇校验,所以
的个数是奇数,然而当同时发生两位跳变时 的个数仍为奇数,所以 不能被检测。
奇偶校验码特点:只能检查出奇数个比特错误,检错能力为
是一种常见的检测方式。
原理:
首先准备待传有效数据
发送方要发送的消息是一长串的比特流,那么采用CRC时候就要在发送端将待发送的数据切割成一段又一段的小的比特组合。每段比特组合都是等长的,假设是
对于每一个组都加上冗余码构成帧。
上面
基本上题中给出的形式是
此时就需要将面的多项式转换为比特形式。方法是在多项式前面加上系数,再将
这两个多项式相等,所以将前面的系数提出来,即
有时候多项式会提到阶,这个阶就是多项式最高位的
此时有了这个生成多项式,也有了
在要发送数据
后面加上 位 。这里的 取决于生成多项式位数 。之后再除以生成多项式。这里的除法是二进制除法(异或,同 异 )。这里会得到一个商和余数,重点是余数,这个余数就是 位FCS。这个 位FCS替换 位 即可。
之后接收方收到
如果余数为
十进制解释CRC原理:
计算冗余码步骤:
加
多项式
模
接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数
例:要发送的数据是
首先生成多项式
之后要发送的数据
最后的余数就是FCS
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即"凡是接收端数据链路层接受的帧,我们都能以非常接近于
所以在现在的传输中可以认为凡是接收端数据链路层接收的帧均无差错。
但是这种方式不是可靠传输,可靠传输是指数据链路层发送端发送什么,接收端就收到什么。而链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输,因为有些帧因为差错会被丢弃,并不会对丢弃帧做处理。
这里要学习的纠错编码是海明码。
海明码不仅可以发现错位,并找到错误位置,同时还能纠正错误。与之前学习的编码性质相同,海明码也需要加上冗余码。并且奇偶校验码和CRC循环冗余码都是在低位加上冗余位,但是海明码要根据一定规则在数据位中安插校验码。
流程:
这里先将一下海明距离概念:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距)。一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。如:
根据海明距离可以得到一个结论:如果要检验的跳变位数(出错)是
具体海明码流程如下:
确定校验码位数
数据有
例子:如果要发送的数据是
数据的位数
,将 带入不等式用穷举法可以得到满足不等式的最小 也就是
的海明码应该有 位,其中原数据 位,校验码 位。所以其中原数据 位,校验码 位。
确定校验码和数据的位置
规定校验码放在序号为
如:要发送的数据是
则需要在由低位到高位的,
的位置依次填入校验码。填入之后,数据依次填入。
求出校验码的值
这一步有一个关键思想:分组。
例子:如果要发送的数据是
1**
)和*1*
)、以及**1
)。对应如下:
可以看到:
所以相当于根据校验位实现对所有数据进行分组。分组后求出校验码可以采用奇偶校验方式求出(通常采用偶校验)。
采用偶校验让
同理可以得到
故完整海明码如下:
检错并纠错
若接收方收到的数据为
按照校验码负责校验位将数据写出来:
由于是偶校验,可以看到
纠错方法一:找到不满足奇
纠错方法二:
先将上面的校验位写出来:
如果上面矩阵每一行都满足偶校验,则
将上面结果从高位到低位排列成二进制数:
差错控制总结:
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
链路层和网络层都有流量控制,区别是:
流量控制方法有两种:滑动窗口协议、停止等待协议(一种特殊的滑动窗口协议)。其中滑动窗口协议又包括两种:后退
停止等待协议
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
可以看到这种方式传输效率很低。
滑动窗口协议
假如发送端的发送窗口有
当前发送方发送
当发送窗口收到由接收端发送的
当然也有可能发送
三种协议窗口大小:
停止等待协议:发送窗口大小
后退N帧协议(GBN):发送窗口大小
选择重传协议(SR):发送窗口大小
链路层的滑动窗口大小是固定的。
可靠传输、滑动窗口、流量控制区别:
流量控制滑动窗口可靠传输总览:
在链路上除了比特(每一帧)会发生差错,底层信道还会出现丢包问题。
丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。这里的数据包其实就是一个数据,在链路层可以叫做帧,在网络层可以叫做IP数据报或者是分组,在传输层可以叫做报文段。
为了解决这个丢包问题,同时也为了实现流量控制,就需要有这样的停止等待协议。
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据 (发送方),一方接收数据(接收方)。且因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
"停止等待"协议就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
停止等待协议两种应用情况:无差错情况和有差错情况
无差错情况
发送方发送数据,先发送
要注意每发送
有差错情况
但是在实际中经常出现差错。出现差错有以下几种情况:
数据帧丢失或检测到帧出错
计算机内部会有一个超时计时器:每次发送一个帧就启动一个计时器。如果发送方发送一帧,在计时器结束后发送方还没有收到接收方的确认消息,发送方会再次将这一帧发送给接收方。
这里的超时计时器设置的重传时间应当比帧传输的平均RTT(帧往返传播时延,即一帧开始发送到发送方收到确认帧这段时间)更长一些。
实现这个重传机制,需要在发送方发完一个帧后,必须保留这个帧的副本。并且数据帧和确认帧必须编号,即接收端如果收到两个帧编号一致,就可以知道这是一个重传帧,所以这个编号可以解决接收端帧的重复、帧的丢失问题。
同时,如果接收端发现帧出现错误,接收端会丢弃掉这个帧,并且也不会给发送端发送帧确认消息。所以之后在计时器结束后发送端会再次发送这一帧。
ACK丢失(确认帧丢失)
因为有超时计时器帮助,所以当确认帧丢失后,发送端在计时器结束后会继续向接收端发送刚刚没有收到确认帧的那一帧,接收端在收到这个帧后根据帧编号会丢弃掉重复的帧,重传确认帧给接收端。
ACK迟到
如上图,当发送端发送
可以看到使用确认及超时重传机制可以使得在不可靠的传输网络上实现相对来说比较可靠的通信。
停止等待协议性能分析:优点是简单易于实现。缺点是信道利用率太低。
这里的信道利用率指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。公式为:
如上图,信道利用率
所以可以看到停止等待协议信道利用率很差。
例题:一个信道的数据传输率为
设数据帧长度为
,数据传输率为 kb/s,即 。 且单向传输时延是
ms。所以 一个周期总时延 。并且题中要求利用率 。
上面每次只发送一帧,所以导致通道利用率不高,所以发送端可以一次发送多帧:
这种一次发送多帧技术称为流水线技术。同时要对停止等待协议做出一定的改进:
必须要增加一个序号范围。
每个传送的帧必须有一个唯一的编号。如上图中一次发送三个数据帧,要保证这三个数据帧都是不同的编号。
发送方必须要缓存多个分组
每次需要缓存发送帧所有副本,及时在丢帧,错帧时重传帧。
停止等待协议总结:
上面的流水线技术下也有可能会出现发送帧丢失、迟到等现象。为了解决这些差错有了后退N帧协议和选择重传协议。
对于要发送的所有帧会分别进行编号。但是这里的编号可以复用。因为有发送窗口这样一个概念:发送方维持一组连续的允许发送的帧的序号。简单来说发送方要发送的数据必须在发送窗口中。
同样接收方也维护一个接收窗口:指接收方维持一组连续的允许接收帧的序号。这里接收窗口只能有一个。
发送流程:
首先发送方要发送
至此
接着
可以看到发送窗口有四区域组成:已经发送完的帧、已经发送但是等待确认的帧、还能发送的帧(可以有空)、还不能发送的帧(还没有在发送窗口中)
再看一下发送方和接收方具体细节,即GBN中发送方必须响应的三件事:
上层调用
即网络层如果要让链路层发送数据,链路层应该在GBN协议中做什么。
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送。如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会儿再发送。(实际实现中, 发送方可以缓存这些数据,窗口不满时再发送帧)。
收到一个ACK(确认帧)
GBN协议中,对
超时事件
协议的名字为后退N帧
GBN协议中接收方要做的事:
如果正确收到
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum
(下一个按序接收的帧序号)。
假设发送窗口尺寸为expectedseqnum=2
下一个期待收到的是
接着接收方收到
直到
注意这里的发送方滑动窗口并不是可以无限大。若采用
假如
个比特位进行编号,标号能表示四位 。那么发送端窗口尺寸大小就是
GBN协议重点总结:
累积确认
如果接收方按序接收到
偶尔捎带确认
接收方也可以给发送方发送数据,在发送数据时,接收方可以将确认帧放到要发给发送端的数据中。
接收方只按顺序接收帧,不按序无情丢弃。
expectedseqnum
中保存的值就是下一个期望接收的值。
确认序列号最大的、按序到达的帧
发送窗口最大为
例1:数据链路层采用了后退N帧( GBN )协议,发送方已经发送了编号为
由于有累计确认机制,所以这里再超时后接收到最大帧号是
,这就意味着 号帧及之前的帧都已经确认,所以会接着发送 四个帧。
例2:主机甲与主机乙之间使用后退N帧协议(GBN )传输数据,甲的发送窗口尺寸为
先计算甲发送全部数据需要事件:甲一次要发送比特位数是
,且带宽是 Mb/s,所以发送一次所需要时间是 ms。即甲一次全部传输需要 ms。 再计算甲发送第一个帧之后,收到确认帧时间:甲、乙之间的单向传播时延是
ms,所以一帧往返时延是 ms。 接着这两个数据就课看出,甲在发送完窗口中所有数据后(
ms),还没有收到第一个帧的确认帧( )ms。 所以一个往返时延是
ms,总共需要传输 ,那么平均数据传输率就是 Mb/s
GBN协议优点:因连续发送数据帧而提高了信道利用率。
GBN协议缺点:在重传时必须把原来已经正确传送的数据帧重传,使得传送效率降低。
后退N帧协议总结:
解决GBN协议中批量重传的问题方法是:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。这就是本节课要将的选择重传协议(SR)核心思想。
SR协议中接收方和发送方都有窗口:
如上图窗口的接收窗口和发送窗口都为
发送方窗口可以由发完被确认的、已经发送但等待确认的、发完被确认的、还能发送的、还不能发的这几部分组成:
接收方由希望收到但没收到的、收到且确认的(缓存)、等待接收的、已经接收、还不能被接收的:
SR发送方必须响应的三件事:
上层调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧。否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
收到了一个ACK
如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
如上图,
超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方要做的事:
窗口内的帧来者不拒
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧(收谁确认谁),直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
上图
假如
SR协议运行过程:
假设当前有
首先发送端发送
之后的
由于接收端没有收到
之后接收端接收到
注意这里的滑动窗口并不是可以无限大。若采用
假如用
个比特位进行编号,可以表示 四位数字。那么对应接收和发送窗口尺寸是
这里发送窗口最好等于接收窗口。因为大了会溢出,小了没意义。
SR协议重点总结:
对数据帧逐一确认,收一个确认一个
只对窗口内的帧。
只重传出错的帧。
接收方有缓存
若采用
例子:数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为
由于
号帧确认,且 号帧情况未知,所有重传帧是 ,即重传帧数是 。
SR协议总结:
传输数据使用的两种链路:点对点链路、广播式链路。
点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。如:两个人打电话。
广播式链路:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构有总线型、星型(逻辑总线型)。如:对讲机。常用介质访问控制协议。
假如当前采用总线型,如果同时有两个人往中间的链路发送消息,就会导致消息冲突。介质访问控制就是要解决这个问题。
介质访问控制的内容就是,采取一定的措施, 使得两对节点之间的通信不会发生互相干扰的情况。介质访问控制可以分为两类:静态划分信道和动态分配信道(灵活)。
这里的静态划分信道就是信道划分介质访问控制是本节得学习重点。主要包括四种控制方式:频分多路复用FDM、时分多路复用TDM、波分多路复用WDM、码分多路复用CDM。
而动态分配信道会在之后介绍,动态分配信道分为两种:轮询访问介质访问控制(常用协议是令牌传递协议)、随机访问介质访问控制(主要有ALOHA协议、CSMA协议、CSMA
介质访问控制总览:
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。这种预先分配信道的方式是静态分配方式(静态划分信道)。
如上图,当前有三组计算机进行通信。这里引用多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。采用多路复用技术后通信状态如下:
中间得信道是共享信道,这三台发送端数据都可以在信道上进行传输。
可以看到三台发送端将数据通过复用器发送到链路上,在接收端再通过分用器将合起来的数据分别送到对应的目的主机。
这种多路复用技术就是把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
上面的数据都在一条信道也不会干扰,是因为采用了信道划分介质访问控制。包括四种控制方式
频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
这里的带宽是通信过程中的频率带宽,以Hz为单位
特点是充分利用传输介质带宽,系统效率较高。由于技术比较成熟,实现也比较容易。
时分多路复用TDM
与上面的FDM区别在于TDM的每一个主机并不是任何一个时间都占用信道,是交替使用信道,且频率一致。
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
上面的TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。和链路层的帧不是同一个。
这种方式信道利用率较低。假如一个TDM帧传输
可以看FDM类似操作系统的并行(同时前进)。TDM类似操作系统的并发(轮流交替)。
统计时分复用STDM
是对时分多路复用TDM的改进。可以明显提高信道利用率。
如上图,四台主机
STDM主要部分有一个集中器,其功能是将四个低速用户连接起来,将四台主机发送的数据几种起来,再通过高速线路发到接收端。另外上面的每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
假如一个STDM帧传输率是
波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
可以看到与频分多路复用很相似。
码分多路复用CDM
上图
这里常用的分离方式是码分多址(CDMA,是码分复用的一种方式)。这个CDMA协议也是电信网2G的简称。具体操作方式:
先将
由于在发送的时候这个序列中的
而对于比特
接着就是对这两个向量进行线性代数上的运算,让
通过计算可以得知
则两个向量到了公共信道上,线性相加。
接着线性相加的数据到了
即
总结CDMA发送过程:
使用CDMA的每一个站会事先被指派一个唯一的
但为了方便,我们会将码片中的
注意:CDMA为每个站分配的码片序列不仅不一样,而且还两两相互正交(正交就是两个序列对应位置相乘,然后相加,结果为
每个站每次收到的信息都是各个站的码片序列之和(指的是码片序列对应位置相加,原来有几位,收到的就是几位)
规格化内积:对应位置相乘,再相加,然后除以码片序列长度
此过程可以证明不同站之间码片序列两两正交(结果为
任何一个码片向量和自己做规格化内积结果都为
所以,我们会用到上边的结论,每次收到信息后,会对各个站的码片序列进行规格化内积,验证该站是否发送了数据,并且发送了什么数据(验证的前提是,接收站得提前知道发送站的码片序列,然后用发送站的码片序列对接收到的消息进行规格化内积,看结果为
,还是 。这里 代表没发送消息, 代表发送了比特 , 代表发送了比特 )
随机访问介质访问控制是动态分配信道(动态媒体接入控制
随机访问介质访问控制特点是所有用户可随机发送信息。发送信息时占全部带宽。这种随机性会导致不协调的问题,因为所有用户如果都可以随机发送信息,可能有几个用户如果不相互协调,而同时发送信息会导致数据冲突的问题。所以需要有协议来解决这种别协调导致的冲突问题。
ALOHA协议有两种:纯ALOHA协议、时隙ALOHA协议。其中时隙ALOHA协议是对纯ALOHA协议的改进。
纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发。
如上图所示,可以看到每一个站点在任何时间都可以发送数据帧。其中
首先对于站点
之后站点
发送冲突检测方式:如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。即等到接收方同时收到
所以这里解决冲突方式是:超时后等一随机时间再重传。直到发送方收到来自接收方的确认帧。
时隙ALOHA协议
可以看到上面纯ALOHA协议随机性太强,导致数据发送成功率低。这里数据发送成功率用数据吞吐量表示。
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
这里时间片就对应上面的
如果结点发送的帧在发送过程中
两种协议总结:
全称是载波监听多路访问协议CSMA (carrier sense multiple access)。
检测原理:当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
协议思想:发送帧之前,监听信道。监听结果有两种:信道空闲(发送完整帧)、信道忙(推迟发送)。
对于推迟多久、或者是否立即发送完整帧有三种不同协议:1-坚持CSMA、非坚持CSMA、p-坚持CSMA。
1-坚持CSMA
1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想:如果一个主机要发送消息, 那么它先监听信道。
空闲则以
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
如果信道上此时发送冲突,但是并没有检测冲突过程,所以还是会坚持将数据发送完,这时候就导致了数据浪费。
三种CSMA对比总结:
载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)。
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。应用与总线型网络。CD:碰撞检测(冲突检测),"边发送边监听",适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据,说明用于与半双工网络(一方发送数据乙方接收数据,但是也可以互换)。
因为电磁波在总线上总是以有限的速率传播的。所以即使当前信道空闲,还是要进行传输。
传播时延对载波监听的影响:
可以看到当
如上图在数据产生碰撞后仍会到达接收端,两个主机互相发送数据都有在一段时间后到达目的机,即使数据产生碰撞,在双方接收到碰撞数据帧之后都会检测出数据帧出错,所以都会停发。
假设单程端到端的传播延迟是
若
由于
最迟多久才能知道自己发送的数据没和别人碰撞?
当
趋近于 时,也就是数最迟是 时候才能直到数据没和别人碰撞。即最多是两倍的总线端到端的传播时延( )。 同理最短知道发送数据碰撞事件是
。
在CSMA/CD协议中采用截断二进制指数规避算法计算碰撞后重新的发送时机:
第一次重传,
,r从 选,重传推迟时间为 或 ,在这两个时间中随机选一个。 若再次碰撞,则在第二次重传时,
, 从 中选,重传推迟时间为 或 或 或 ,在这四个时间中随机选一个。 若之后再碰撞,则重复上述步骤。当重复
次仍不能发送就报错。
可以看出若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
例:在以太网的二进制回退算法中,在
可以看到碰撞次数为
次,大于 此时,所以 。则 。 故站点会在
之间选择一个随机数。
但还有一种情况,假如
由于帧最晚可以在
所以可以得出最小帧长
故以太网规定最短帧长为
CSMA
载波监听多点接入
CSMA
协议工作原理:在发送数据前,先检测信道是否空闲。
如果空闲:则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息。信道忙则等待。接着接收端会收到RTS,同时会向发送端响应CTS(clear to send)。
上面的RTS和CTS就能很好解决隐蔽站的问题。假如有
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC循环冗余码来检验数据是否正确,正确则响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。这种重传有上限,具体次数根据系统决定。
CSMA
CSMA
CSMA
回顾:
信道划分介质访问控制(MAC Multiple Access Control )协议:基于多路复用技术划分资源。
在网络负载重情况下:共享信道效率高,且公平。在网络负载轻情况下:共享信道效率低。
随机访问MAC协议:冲突用户根据意愿随机发送信息,发送信息时可独占信道带宽。
在网络负载重情况下:产生冲突开销。在网络负载轻情况下:共享信道效率高,单个结点可利用信道全部带宽。
轮询访问MAC协议
上面几种方式只有随机访问MAC协议会发生数据帧冲突。
轮询访问MAC协议常见的有两类:轮询协议、令牌传递协议。
原理:主结点轮流"邀请"从属结点发送数据。
如上图,主节点会一个个询问四个主机是否具有消息发送,在没有询问到的主机即使有数据也不能发送。询问过程其实就是发送一个数据帧,这个数据帧较短,只是用来询问。
可以看到这种协议方式不会产生数据冲突。同时一次询问主机会让一台主机占用一个信道,这台主机享用整条信道带宽。
问题:
有轮询开销
如上图有四个主机和一个主节点。如果主机个数很多,主节点就需要多次轮询询问。这个询问时间会有较大的开销。
等待延迟
越靠后的主机等待时间越长。
单点故障
如果主节点宕机,则整个网络系统都会瘫痪。实际中会建立多个备用主机当主节点,当一个主节点宕机,备用节点可以替代当主节点。
上图是令牌协议常用的令牌环网,在逻辑上是环形结构,但在物理上是星型结构。TCU转发器其实就是在传递数据帧时的转发接口,可以传递所有经过的帧,而且为接入栈发送和接收数据提高一个接口。
这里的令牌是一个特殊格式的MAC控制帧,不含任何信息。可以控制信道的使用,确保同一时刻只有一一个结点独占信道。
执行原理:
如上图所示,假如当前令牌环网中所有主机都是空闲的,那么令牌会在网络中一直循环传递,直到传递到有一个主机需要发送数据。在主机拿到令牌后首先要对令牌的标志位进行修改,这个修改意义是将令牌从空闲状态变为使用状态。然后在令牌的控制帧之后加上数据,因此就构成一个令牌数据帧。然后会将令牌发送出去,这个发送过程也是环状发送,没经过一个主机都会检查其中地址,如果地址不对应就会传递给下一个主机,直到发送到目的主机手中。目的主机会复制一份令牌帧,接着传递下一个主机,直到最后令牌回到发送端主机。
此时发送端主机要检查令牌帧是否出错,如果出错要进行重传,没有出错就会将令牌内的帧回收,并将令牌改回闲置状态。继续传递给下一条主机。之后要发送数据的主机步骤如上。
所以每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
令牌开销
有的时候令牌会在传输过程中消失,此时会重新产生一个令牌。
等待延迟
假如主机
单点故障
如果其中一台主机宕机,那么环就会断掉。解决方法是用备用机。
这种采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
介质访问控制总结:
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点:
局域网以上特点是由网络拓扑,传输介质与介质访问控制方法,三个要素组成的。
网络拓扑分为四种:星型拓扑、总线型拓扑、环形拓扑、树型拓扑
星型拓扑
中心节点是控制中心,任意两个节点间的通信最多只需两步,传输速度快,并且网络构形简单、建网容易、便于控制和管理。但这种网络系统,网络可靠性低,网络共享能力差,有单点故障问题。
总线型拓扑
网络可靠性高、网络节点间响应速度快、共享资源能力强、设备投入量少、成本低、安装使用方便,当某个工作站节点出现故障时,对整个网络系统影响小。
是一种常用的拓扑结构。
环形拓扑
系统中通信设备和线路比较节省。有单点故障问题。由于环路是封闭的,所以不便于扩充,系统响应延时长,且信息传输效率相对较低。
树型拓扑
易于拓展,易于隔离故障,也容易有单点故障。
局域网按照传输介质可以分为有线局域网和无线局域网。
有线局域网常用介质:双绞线、同轴电缆、光纤。无线局域网常用介质:电磁波。
局域网介质访问控制方法:
CSMA
常用于总线型局域网,也用于树型网络。
令牌总线
常用于总线型局域网,也用于树型网络。结合令牌传递和总线网络特点。
它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
令牌环
用于环形局域网,如令牌环网。
局域网分类:
以太网
以太网是应用最为广泛的局域网,包括标准以太网(
令牌环网
物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。由于造价贵,已是"明日黄花"。
FDDI网 (Fiber Distributed Data Interface)
物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
ATM网(Asynchronous Transfer Mode)
较新型的单元交换技术,使用
无线局域网(Wireless Local Area Network; WLAN)
采用IEEE 802.11标准。平时的WiFi是无线局网的一种应用。
可以看到上面很多标准都是IEEE802标准。IEEE 802系列标准是IEEE 802 LAN
重要标准有以下几个:
MAC子层和LLC子层:IEEE802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LC子层和介质访问控制MAC子层。
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
是局域网技术的一种。以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公 司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA
以太网在局域网各种技术中占统治性地位:
以太网两个标准:
这两个区别在于帧的格式上会有两个字节的微小不同。
以太网提供无连接、不可靠的服务:
所以以太网只实现无差错接收(丢弃错误帧),不实现可靠传输。
以太网传输介质发展:粗同轴电缆
以太网拓扑结构发展:物理拓扑刚开始是总线型结构,再后来是星型拓扑结构。
星型拓扑是现在以太网最常用的物理拓扑。中间有个物理层的集线器,可以对比特进行简单的转发。也就相当于将主机要发送的数据广播出去。所以使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA
故以太网拓扑在逻辑上总线型,而物理上是星型。但传统的以太网逻辑上和物理上都是总线型。
10BASE-T以太网是常见的以太网。10BASE-T是传送基带信号的双绞线以太网,
物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。采用曼彻斯特编码。
使用采用CSMA/CD介质访问控制机制。所以10BASE-T以太网数据帧会发生冲突和碰撞。
计算机与外界有局域网的连接是通过通信适配器实现的。
是在主机箱内部插入的网络接口板,也叫做网络接口卡NIC(network interface card),即网卡。但是现在网卡一般直接嵌入到主板上。
适配器上装有处理器和存储器(包括RAM和ROM),而ROM上有计算机硬件地址MAC地址。
MAC地址:在局域网中,硬件地址又称为物理地址,或MAC地址。实际上就是标识符,唯一ID。所以每个网卡适配器有一个全球唯一的
最常用的MAC帧是以太网V2的格式。
可以看到最上面是网络层的IP数据报,到链路层需要对数据报进行一个封装。对于链路层的封装需要加头(目的地址、源地址、类型)加尾(FCS)。为了使接收端和发送端保持一个接收同步,就需要在MAC层往物理层传递的帧前面插入一个
这个前导码前面七个字节叫做前同步码。都是由
以太网MAC帧包括:前面
后面还会有
第四个就是数据部分,是最关键的部分。数据部分的长度是可变的(
与IEEE 802.3的区别:
速率
100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
支持全双工和半双工,可在全双工方式下工作而无冲突。这里全双工形式如下:
可以看到星型拓扑中间节点变为交换机,每一个交换机端口就是一个冲突域。因此一个主机在一个冲突域中既能发送数据又可以接收数据不会发生冲突。所以在全双工情况下不使用CSMA
吉比特以太网
在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。
10吉比特以太网在光纤,上传送10Gb/s信号。采用介质是光纤。只支持全双工,无争用问题。
以太网总结:
先来看一下IEEE802.11标准:IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
上图是IEEE802.11的多个标准,对该标准进行完善和扩充。WiFi协议需要满足802.11b和802.11g所定义的标准。
802.11的MAC帧头格式:因为MAC帧的长度较长,且IEEE802.11当中MAC帧的各个字符种类很多,所以这里只讲述MAC帧头。
假如现在有两台主机
上图是一个MAC帧头,解释如下:
地址
接收端即上面例子的
地址
发送端即上面例子的
地址
这里目的地址即上面例子中
地址
这里源地址即上面例子中
上面是IEEE802.11一种帧类型,还有以下几种:
刚才四种地址帧格式就是WDS(无限分布式系统)。前面三种格式只有三个地址。BSSID
是基站地址。
上面WDS就是不同服务集内的两个移动站之间的通信(漫游)。IBSS就是一个服务集内的移动站点不通过基站的直接通信。To AP就是服务集内的移动站点向基站的通信。From AP 就是服务集内基站向移动站的通信。
无线局域网分类:
有固定基础设施无线局域网
可以看到假如一个主机要给基站内部的主机通信,实现起来很简单。发送端只用发送数据帧给基站,基站根据数据帧找到目的主机发送即可。因此一个基本覆盖范围就是基本服务集(BSS)。所有主机在本BSS中都可以进行直接通信。
但是有两台基本服务集,且两台主机要进行跨区域通信,此时就要借助分配系统DS。假如上图左边
这样几个基本服务集(BSS)组合在一起就形成一个扩展服务集ESS。如家庭网络WiFi名叫服务集标识符,每一个WiFi都是一个无线接入点,对应一个基站。
无固定基础设施无线局域网的自组织网络
指没有任何转发设备,如集线器、转发器、路由器、基站等设备。只有一些主机组成一个网络。每一台主机都快有充当主机以及路由器的功能,即每台主机既可以发送数据,也可以帮忙转发数据,各个结点之间的地位相同。
传统局域网有一定的局限性:
缺乏流量隔离:即使把组流量局域化道一个单一交换机中,广播流量仍会跨越整个机构网络(ARP、RIP、DHCP协议)。即一个主机发送广播帧,其他主机都可以收到。
管理用户不便:如果一个主机在不同组间移动,必须改变物理布线,连接到新的交换机上。
路由器成本较高:局域网内使用很多路由器花销较大。
解决以上问题需要引入VLAN概念:虚拟局域网VLAN (Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组有某些共同的需求。每个VLAN是一个单独的广播域
经过VLAN划分,一个局域网中可以划分出两个广播域。而且不仅可以在一个交换机所连接的主机上进行划分,可以在一个大的局域网中进行划分。如上图,每一个局域网内部有划分为两个虚拟机局域网VLAN1和VLAN2。
VLAN实现:
如上图,交换机四个端口连接了四台主机。
当前
上图的VLAN ID指的是处于哪个虚拟局域网当中。端口与之前一样。假如VLAN ID=1
。此时交换机直到主机
以上这种实现方法是基于接口的VLAN技术。同时还有基于MAC地址的VLAN技术:
可以看到交换机VLAN表变了,右边变为MAC地址。原理同上。
上面是交换机内部虚拟局域网通信,下面看交换机和交换机之间如何进行通信:
假如tag=1
,表示的是当前数据帧属于VLAN1的。接着这个新的数据帧会通过链路发送给交换机
上面增加标签tag
字段其实就是对数据帧进行改变,再多插入
VLAN标记的前两个字节表明是IEEE 802.1Q帧,接下来4位没用,后面
注意:
所以可以知道A和E之间可以实现访问,而对于A和D、H之间不能实现访问控制,因为不在一个虚拟局域网内。
注意:虚拟网络建立在网络交换机之上,它以软件方式来实现逻辑工作组的划分与管理。
广域网(WAN, Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
如上图,中间是大型广域网,旁边是连接两个局域网,从而实现相隔很远的局域网的互连。中间连接结点是结点交换机,是链路层设备,该设备和路由器功能很像,但要注意结点交换机只能在单个网络中转发分组,路由器可以在多个网络之间转发分组。
广域网和局域网一大区别是:广域网所覆盖的网络结构体系层次从链路层一直到网络层。但是局域网只覆盖链路层和物理层,这两个层次。并且局域网普遍采用多点接入技术,广域网通常采用点对点,一个发送端一个接收端通过链路相连这样一种全双工或半双工通信模式。广域网强调资源共享,局域网强调数据传输。
目前最常用两种广域网协议是:PPP协议和HDLC协议
点对点协议PRP(Pont-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。PPP协议和之后要学习的HDLC协议都只支持全双工链路。
PPP协议应满足的要求:
简单
对于链路层的帧, 无需纠错,无需序号,无需流量控制。
封装成帧
要在帧头和帧尾加上帧定界符
透明传输
与帧定界符一样比特组合的数据应该如何处理:异步线路(逐个字节发送)用字节填充,同步线路(一位一位比特发送)用比特填充。
多种网络层协议
封装的IP数据报可以采用多种协议。
多种类型链路
要满足:串行
差错检测
采用CRC循环冗余,发现错误直接丢弃帧即可。
检测连接状态
检测链路是否正常工作。
最大传输单元
在PPP协议帧中,数据部分是上层交付下来的IP数据报,所以对于这样的数据部分有一个最大传送单元要求MTU,这个MTU不超过
网络层地址协商
要知道通信双方的网络层地址。即PPP协议需要满足一个通信双方可以通过一些协议来确定双方网络层地址是多少。
数据压缩协商
PPP发送数据时,需要对数据进行压缩。
PPP协议无需满足要求:
纠错
只需要检测错误即可
流量控制
交给上层负责流量控制
序号
无需对帧编号
不需要支持多点线路
即PPP协议只需要满足点对点之间的连接过程即可。
PPP协议三个组成部分(PPP协议实现三个功能):
PPP协议工作原理:
如上图,首先设备之间无链路,即还没有连上网,先要点开宽带连接输入账号密码,如果账号密码正确就相当于建立好了一个物理链路。这个时候通过LCP将物理链路构造成一个LCP链路,接着LCP链路再经过NCP配置协商,形成一个NCP链路。
PPP协议帧格式:
可以看到PPP帧是以字节为单位的,第一个字节和最后一个字节是
第二部分
协议部分用于标识这个IP数据报或者说信息部分是什么类型,类型可能是:IP数据报、LCP的数据、网络层控制数据等。
最后的FCS就是为了实现差错检测,采用CRC循环冗余检验算法安排的
所以可以看到在PPP协议中帧格式是以字节为单位的,所以传输的数据都是整数个字节。因此PPP协议是面向字节的协议。
高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。
数据报文可透明传输,用于实现透明传输的"
采用全双工通信。所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
HDLC的站:有主站、从站、符合站。
根据这三种站就有三种数据操作方式:
正常响应方式
假如从站要发送消息,要先经过主站同意。
异步平衡方式
每一个站都可以进行对别的栈的数据传输。每个站都是平等的地位。
异步响应方式
从站可以不经过主站同意就可以进行数据传输。
HDLC帧格式:
首位都增加一个标志符字段,而且标志符字段都是一样的二进制数
地址为
控制
PPP协议和HDLC协议相同点:
PPP协议和HDLC协议不同点:
可靠传输一般交给传输层。因为现在对于网络速率要求比较高,如果在链路层和网络层还要进行差错检测以及纠正的话,这样花费时间和延迟就更高。所以一般情况下用PPP协议多。
PPP协议和HDLC协议总结:
根据之前的学习可以知道主机和集线器之间的距离不能很远,一把不超过
第一种方式就是采用光纤方式,由于光纤信号损耗很小,所以可以采用光纤扩展以太网范围,使得两台主机通信的距离可以变得更远。
如上图,光纤需要有一个调制器和解调器,将电信号转换为光信号,在光纤上传输,之后再将光信号通过解调器转换为电信号传给集线器
第二种方法就是利用集线器将很多集线器再组合起来,这样每一个集线器所构成的区域就是冲突域。冲突域指的是在物理层设备所连接的主机之内进行通信的话,同一时间只能有一台主机发送信息。
这样做的好处在于,可以实现跨域通信,一台主机可以和很远另一台在主干集线器下的设备进行通信。同时扩大了以太网地理范围。但是这样也有缺点,原本冲突域内只有四台主机,发生冲突可能性比较小。但是当前主干集线器导致冲突增加。因此导致实际通信效率变低。
为了实现冲突小,而且能扩大以太网范围,可以在链路层对以太网进行扩展。主要使用网桥和交换机。
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
与集线器区别是,集线器会通过所有端口转发出去,而网桥会选择端口进行转发,如果端口都不能转发会直接丢弃掉。
如上图,网桥将几个以太网进行连接,形成一个更大的以太网。而原来的每一个以太网就是一个冲突域。或称为网段。
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
使用网桥优点:
过滤通信量,增大吞吐量。
可以将各个冲突域分割开,如上图A和B通信同时E也能和F进行通信。
假如每一个网段数据传输速率(带宽)是
扩大了物理范围。
提高了可靠性。
当网络出现故障时,通常只会一个网段受到影响。
可互连不同物理层、不同MAC子层和不同速率的以太网。
网桥可以分为两类:透明网桥和源路由网桥。
透明网桥
透明网桥:透明指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备,工作通过自学习算法进行。
如上图六台主机通过两个网桥进行连接,连接好后网桥就会产生一个转发表(地址
假设A给B发送数据帧,因此A发送的数据会通过链路广播出去,B可以收到。同时数据也会传到网桥接口处,这里定义网桥左边是接口
如果之后哪一台主机再给
接着再按照目的地址
之后如果
接着数据帧会在网段中广播给
之后从
如果此时
接着网桥会查询目的地址
总结:发送端发送数据到接收端流程如下:
源地址+哪个接口收到数据帧
写入转发表。之后网桥会接着在转发表中查询目的主机(接收端地址),如果没有查到则将数据从另一个接口广播出去。这个转发表并不是一成不变的,会有刷新时间。
源路由网桥
指在发送帧时,把详细的最佳路由信息(路由最少
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
上图迷宫可以类比实际中复杂网络。源站的发现帧会以广播方式在迷宫中进行传播。此时发现帧会有多条路径从起点到终点,每次一条路径到达终点,重点目的站会发送一个响应帧(或者发现帧会原路返回)。所以可以得到
又叫多端口多接口网桥。
随着技术发展,每个网桥接口变得越来越多,这样一个网桥就变为以太网交换机。以太网交换机通常会有十几个端口(接口)。每一个端口都可以连接集线器或者直接连在主机上。
与网桥原理一样,每一个端口都是一个冲突域。
但是以太网独占传输媒体带宽。假如上图中一个冲突域的带宽是
以太网交换机的两种交换方式:直通式交换机和存储转发式交换机。
直通式交换机
只检查帧的目的地址。目的地址长度是
延迟小,但是可靠性低(不会对错误帧进行检查),无法支持具有不同速率的端口的交换。
存储转发式交换机
将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
可靠性高,可以支持具有不同速率的端口的交换,但是延迟大。是生活中经常使用的。
无论用哪一种交换方式最终都是希望交换机能够找到一个转发的端口,才把这个数据帧转发出去。而交换机转发机制与网桥自学习功能几乎一致,唯一不同的是交换机接口有多个。
此时如果
接着交换机查询目的地址
之后如果
转发表中每一个表项都会设置一个生存周期,当超过生存周期就会被删除,这是为了及时刷新转发表。
冲突域与广播域:
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
例子:下图有几个冲突域与广播域
一个广播域,四个冲突域(物理层设备集线器无法分割冲突域)。
链路层设备总结: