• 一. 计算机网络体系结构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 以太网交换机

    一. 计算机网络体系结构

    知识预览:

    计网体系结构

    网络:指的是网一样的东西或网状的系统。如:电信网络,通过电话线链路连接起来的网络。

    计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。

    计算机网络概念

    如上图,计算机系统包括各种系统的手机端及电脑端。通过路由设备(也可以是中继器、交换机等)将这些系统用线路连接起来。这里的线路有的可以是逻辑线路,如手机和路由器连接。之后再由于功能完善的软件来实现资源共享和信息传递。同时还要有软件的支撑才能实现每个终端与终端之间的资源共享和信息传递。

    简单来说计算机网络是一个互连的、自治的计算机集合。其中互连是指通过通信链路互联互通。自治是终端及各个结点之间是没有主从关系的,是高度自治的。

    计算机网络有以下功能:

    1. 数据通信

      如:两台电脑之间可以通过邮件传递信息。

    2. 资源共享

      同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据等资源。

      硬件共享如:网络打印机。软件共享如:如远程访问另一台电脑上的软件。数据共享如:上传和下载文件。

    3. 分布式处理

      多台计算机各自承担同一工作任务的不同部分。如:Hadoop分布式平台。

    4. 提高可靠性

      分布式引申功能,可以提高网络可靠性。采用分布式处理如果网络中的一台主机宕机,就可以用另一台机器(替代机)来实现宕机计算机的任务。

    5. 负载均衡

      也是分布式引申功能。由于使用了分布式可以让各个计算机之间更加亲密执行任务更加高效。

    计算机网络的发展:

    计网概念功能总结:

    计网概念功能总结

    1. 计算机网络的组成

    首先从组成部分上:计算机网络是由硬件、软件、协议(一系列规则和约定的集合)组成的。

    硬件即终端系统和中间设备(如:路由器、交换机等)。软件就是在端系统上应用,甚至中间设备上也有软件。协议就是指定了各个硬件之间的通信的规则,计算机网络每个层次都有很多协议,根据这些协议就可以规定数据如何封装、打包、传输等。

    计网组成

    从工作方式上:可以把计算机网络分为边缘部分和核心部分。

    注意这里系统之间的通信是进程之间的通信。那么两个端系统进程之间的通信主要包括两种方式:

    1. C/S方式

      即客户端到服务器端的通信方式。是因特网最传统最常用的服务。这种方式,多个端系统之间的进程呈现出服务与被服务的关系。

      与之对应还有一种B/S通信方式。这种方式与C/S类似,只不过客户端换成了浏览器。用户通过浏览器向目标服务器发送请求,之后服务器受到请求后将响应数据再发送给浏览器。

    2. P2P方式

      即对等连接。这种情况下端系统身份都是对等的,都有提供服务的服务者和使用服务的享受者(客户端)的身份。

      如:磁力链下载。假如有A,B,C,D四台电脑,A下载500MB视频。P2P下载可以将A500MB文件切分为几个大小不等/相等的数据块,B电脑会先拿到一部分数据块,如250MB。之后B又马上给C传输200MB,同时B还会继续接收A的块数据。C之后会把150MB分给D。同时D也可以向A,B继续发送请求获取数据块。

      所以可看到B,C,D即使客户端又是服务器。

    之前提到过计算机网路有两个功能分别是数据通信及资源共享。所以可以从功能组成方面分为:通信子网、资源子网。

    其实可以理解为上三层是对数据的封装和处理。下三层就是将这个数据送往上层。中间的传输层起到很重要的媒介作用,其大致作用是为了弥补上三层要求的服务和网络层提供的服务之间的差距,并且向高层用户屏蔽通信子网当中的一些细节,可以说传输层起到了承上启下的作用。

    2. 计算机网络的分类

    计算机网络按照性质不同可以分为以下几类:

    计算机网络组成和分类总结:

    计算机网络组成和分类总结

    3. 标准化工作及相关组织

    标准化对计算机网络至关重要。要实现不同厂商的硬、软件之间相互连通,必须遵从统一的标准。

    标准分类有:法定标准(由权威机构制定的正式的、合法的标准),如:OSI。事实标准(某些公司的产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准),如:TCP/IP。

    RFC是一种因特网标准形式,即只要是因特网标准就一定是RFC的形式,但是不代表所有的RFC都是因特网标准。

    RFC要上升为因特网正式标准的四个阶段:

    1. 因特网草案( Internet Draft)这个阶段还不是RFC文档。
    2. 建议标准( Proposed Standard)从这个阶段开始成为RFC文档。可以发布到网上让其进行完善。
    3. 因特网标准

    标准化工作相关组织:

    国际标准化组织ISO:主要贡献是建立了OSI参考模型、HDLC协议。

    国际电信联盟ITU:制定了通信准则。

    国际电气电子工程师协会IEEE:是一个学术机构,建立了IEEE802系列标准、5G协议。

    Internet工程任务组IETF:负责因特网相关标准的制定。

    标准化工作及组织总结:

    标准化工作及组织总结

    4. 性能指标

    计算机网络性能指标由:速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率决定。前三个指标密切相关,其中的核心是吞吐量。

    4.1 速率

    速率即数据率或称数据传输率或比特率。指连接在计算机网络.上的主机在数字信道上传送数据位数的速率。

    这里的比特是计算机中数据量的单位。单位是b/s,kb/s,Mb/s,Gb/s,Tb/s。

    速率

    假如发送端要发送十位比特数据0101010101给接收端。这里假设可以在一秒内发送给接收端,则就说明速率是10b/s。

    换算单位:

    千1kb/s=103b/s

    兆1Mb/s=103kb/s=106b/s

    吉1Gb/s=103Mb/s=106kb/s=109b/s

    太1Tb/s=103Gb/s=106Mb/s=109kb/s=1012b/s

    注意这里的是速率换算,其实基本换算就是103。而在存储容量上换算是:1Byte(字节)=8bit(比特)。字节是存储容量中最常用的单位。且容量单位的b是大写的B,基本换算是210

    4.2 带宽

    "带宽"原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。

    在很长一段时间内通信的主干线路传送的都是模拟信号。选择传送的都是0/1这样的数字信号。所以说表示通信线路允许通过信号的频带范围就叫做线路的带宽。

    在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的"最高数据率"单位是"比特每秒",b/s,kb/s,Mb/s,Gb/s。

    带宽也可以理解为网络设备所支持的最高速度

    链路

    假如有如上图所示的一条链路(信道),并且这个链路的带宽是1Mb/s,即一秒可以往链路上传输发送1Mb的数据量。也就是主机在1us内可向链路发1bit数据。并且在这个链路上的传播速率为2×108m/s,也就是说电磁波1us可以向前传播200m。且链路长600m,每隔200米分个段。注意:信号是以电磁波为载体在链路上进行传输的。

    在第一微秒,交换机(或主机)往链路上发送1bit的数据。

    带宽

    再经过1us,第一个bit在这1us往前移动200m,交换机又往链路上传输1bit。

    带宽2

    同理3us时,情况如下:

    带宽3

    如果链路带宽是2Mb/s,即1us内可向链路发2bit数据。则3us后链路状况如下:

    带宽4

    这就是带宽不同所导致的区别。如果带宽变大在单位时间内往链路上注入的数据量会变多,但是不能影响传播速度。

    4.3 吞吐量

    表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。

    吞吐量受网络的带宽或网络的额定速率的限制。即指某个网络设备每秒中能通过的最高数据量。

    吞吐量

    这里的交换机可以理解为服务器与客户端之间的中介。上图中客户端计算机与交换机之间的链路带宽有100Mb/s,是百兆口,即计算机往外发送的速率最快是100Mb/s。交换机同样往外发送的速率最快是100Mb/s。当然这只是发送的速率,而接受速率受的影响因素很多,而且还要看缓存大小。

    假如说当前客户端主机要访问两台服务器。第一个服务器速率是20Mb/s,也就是说这个台服务器1s最多能传送20Mb的数据。第二个服务器速率是10Mb/s。这个速率受到的是服务器自身的限制,与客户端计算机无关。所以这里也可以看到客户端计算机的带宽只是一种理论上的最大值,是一种传送速率的理想状态。也可以计算出这台电脑在这一条链路上的吞吐率是20+10=30Mb/s。即一秒钟这样一台链路可以受到两台服务器发送过来的20MB/s。故,吞吐量就是把所有的链路速率加和。而上面的,链路带宽是一台计算机理想状态下每秒能接收的最大吞吐量。

    4.4 时延

    指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是s

    这个时延包括四大类:发送时延(传输时延)、传播时延、排队时延、处理时延。

    时延分类

    如果题中要求总时延,如果题中都考虑到,则需要将四种时延全部加和。

    下面讲解着四种时延出现位置:

    时延例子

    两个主机之间通过链路(路由器等)进行连接。

    综上所述,如果主机的带宽变为100b/s,此时发送时延就会变低。另外还需要对高速链路有一个正确理解:即发送速率提高并不会影响电磁波传播速率。上图中链接的线路基本是用光纤或者同轴电缆,这些介质传播速度基本都是2×108m/s。所以这里的高速是提高了发送速率(带宽),减少了发送时延。但是传播时延和传播速率都是不变的。

    4.5 时延带宽积

    指的是时延和带宽的乘积:

    =×

    带宽是发送端在发送数据时可以达到的最高速率,强调的是发送速率,单位是b/s。传播时延是指电磁波在信道上传播一定距离所花费的时间,单位是s。因此时延带宽积单位就是s·b/s=b。故时延带宽积是一个描述信息量的属性。

    时延带宽积例子

    A,B两台主机进行通信,中间有一条链路/信道,可以是光纤、同轴电缆等。这条链路的长定义为传播时延。横街面是带宽。

    传播时延指一个比特从主机A到主机B走过一个信道花费的时间。由于第一个比特在信道上传输的时候其他比特也紧跟其后传输,直到第一个比特发送到主机B为止,信道中所有的比特数就是时延带宽积。

    时延带宽积例子2

    时延带宽积又称为以比特为单位的链路长度。即"某段链路现在有多少比特"。是一个数据容量的指标。

    4.6 往返时延RTT

    指的是从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。

    开始是发送方的第一个比特位刚放到信道上的时间。结束是接收到受到发送方的第一个比特为止。这一段时间是往返时延RTT。

    而RTT越大,在收到确认之前,可以发送的数据越多。

    RTT包括:

    1. 往返的传播时延

      传播时延指的是电磁波在信道上传输一段距离所花费的时间。往返的传播时延=传播时延2

    2. 末端处理时间

      通常是接收方在接受到数据后会对数据进行一个处理,然后再发出一个确认帧。

    所以RTT不包括传输时延,也就是不包括主机将数据放到信道上的时间。

    4.7 利用率

    利用率分两种:信道利用率和网络利用率。

    计算机网络中如果主机A和主机B,进行通信,两个主机之间的链路就可以看利用率高低,主要是看链路上多长时间是有数据的。如果两个主机间的链路上一直都有数据传输,则链路利用率高。

    信道利用率计算:

    =+

    网络利用率就是将所有信道的利用率加权再求平均值。

    利用率

    上图是时延与利用率的关系。可以看到利用率越高时延越大。如果信道利用率很高,则时延也会很高,会导致传输数据速率会降低。

    性能指标总结:

    性能指标总结

    5. 分层结构

    假如两台计算机要实现资源共享

    分层原因

    发送文件前要完成以下的工作:

    1. 发起通信的计算机必须将数据通信的通路进行激活。

      即计算机会发出一些命令,保证要传送的数据能够在这条通路上正确的发送,及接受。

    2. 高速网络如何识别目的主机

    3. 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。

    4. 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。

      准备工作分为两种:一种是主机是否做好接收文件的准备。第二个是接受主机是否有空间存储要来接受的文件。

    5. 确保差错和意外可以解决

    除了上面五个工作外,计算机在发送文件前要处理工作还有很多。这么多的问题放在一起很难同时解决,所以计算机网络要将这些大问题分解为一系列的小问题。故这就是计算机网络要分层的原因。

    分层结构中有很多抽象的名词,这里进行解释:

    分层的基本原则:

    1. 各层之间相互独立,每层只实现一种相对独立的功能。
    2. 每层之间界面自然清晰,易于理解,相互交流尽可能少。
    3. 分层时候结构上可分割开。每层都采用最合适的技术来实现。
    4. 保持下层对上层的独立性,上层单向使用下层提供的服务。
    5. 整个分层结构应该能促进标准化工作。这也是分层的优点之一。

    分层结构

    上图是计算机网络中正式的分层结构。其中网络和各层单元数据关系也进行了展示。根据上图解释上面各个名词:

    1. 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。

      如上图主机A的第五层就可以称为一个实体,与之对等的主机B的第五层可以称为对等实体。这两个的层次就是对等层。

    2. 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。

      这样一组或一系列的协议就可以规定某一个层次的功能。这里的协议是水平的。如上图第四层和第五层的协议不一样,也不能相互使用。

      协议有三大要素:

      语法:规定传输数据的格式。如:01010001111000这一串二进制,规定其只能用0/1进行传输。其次数据要从哪个地方分割等这就是语法所规定的内容。

      语义:规定所要完成的功能。如:01010001111000这一串二进制序列,按照语法对其进行分段,而每一段代表的意义不同,即语义不同。

      同步:规定各种操作的顺序。

    3. 接口(访问服务点SAP):上层使用下层服务的入口。如上图的H2

    4. 服务:下层为相邻上层提供的功能调用。因为是上下两层之间的服务,所以是垂直的。

    最后,可以将网路各层的数据单元进一步抽出来,分析各个层之间的包含关系:

    分层结构各层包含关系

    首先是SDU服务数据单元:为完成用户所要求的功能而应传送的数据。

    还有PCI协议控制信息:控制协议操作的信息。可以理解为一些控制信息。

    PDU协议数据单元:对等层次之间传送的数据单位。PCI+SDU=PDU。如上图,上一层计算出的PDU作为下一层的SDU值使用。

    总结:

    网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构,是分层结构。

    每层遵循某个/些网络协议以完成本层功能。计算机网络体系结构是计算机网络的各层及其协议的集合。

    计算机网络体系结构包括上面?

    它包括计算机网络中的各个层次,以及各个层次需要完成的功能,同时还包括每一层所对应的协议。

    n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。且仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。

    体系结构是抽象的,而实现是指能运行的一些软件和硬件。

    分层结构总结:

    分层结构总结

    计算机网络分层结构可以分为:7层OSI参考模型和4层TCP/IP参考模型。

    7层OSI参考模型是法定标准。而4层TCP/IP参考模型是事实标准,是现在通用的。

    计算机网络分层结构

    根据这两种模型,就可以总结出一个新的5层体系结构,这五层结构主要是为了在学习中更加便于理解产生的。

    5.1 OSI参考模型

    四层和五层模型都是基于七层OSI参考模型。

    为了解决计算机网络复杂的大问题,将大问题分成一个一个小问题,因此就产生了分层结构,且每一层都是按功能来分的。

    根据这个分层,早起每个公司都有自己的网络体系结构。为了支持这些支持异构网络系统的互联互通。国际标准化组织(ISO) 于1984年提出开放系统互连(OSI) 参考模型。但是这种OSI参考模型只在研发上有很多借鉴意义,而实际市场上是失败的。

    OSI参考模型有七层,自上而下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

    OSI七层模型

    同时之前提到过计算机网络按照功能可以分为资源子网(负责处理数据)和通信子网(负责数据通信),通信子网对应的就是七层模型中的下面三层。资源子网就是七层模型的上面三层。而传输层是资源子网和通信子网的接口。

    OSI七层模型分类

    OSI参考模型通信过程:

    OSI七层模型通信过程

    两个主机之间进行通信,如果进行网络通信就一定要有中间系统(路由器)介入。采用OSI模型A主机发送数据到B主机接收数据需要用到七层中的每一层。而中间系统则需要通信子网三层即可。

    OSI七层模型通信过程2

    物理层有一层传输介质(光纤、电缆等)。且对等层次之间都有一个协议,如:数据链路层和中间系统的数据链路层之间会有协议来规定这两层的功能是一样的。

    OSI七层模型通信过程3

    可以看到上面四层就好像直接由主机A发送给主机B,即直接形成一个端与端之间的连通。所以这四层实现的是端到端的通信,即只管自己的目的主机(地址)而不管其他信息。

    而下面三层就需要介入中间系统,如果中间系统较多,消息还要继续传递给下一个中间系统。所以这个消息传播过程是点到点的。不仅要知道目的主机(地址)还要知道下一步地址。

    OSI七层模型通信过程4

    每一层对数据具体操作如下:

    5.2 OSI参考模型各层功能和对应重要协议

    下面会依次介绍各个层对应的功能和协议。

    5.3 TCP/IP参考模型

    TCP/IP参考模型有四层:

    TCP与IP参考模型

    与OSI参考模型相比,TCP/IP参考模型将应用层、表示层和会话层合并为应用层,数据链路层和物理层合并为网络接口层。各个层次介绍:

    上图右边的是协议栈,先有协议栈才有的TCP/IP参考模型。自下而上是每一层所对应的协议。

    OSI参考模型与TCP/IP参考模型相同点:

    1. 都分层

    2. 基于独立的协议栈的概念

    3. 可以实现异构网络互联

      即能实现不同厂家生产的设备进行通信。

    不同点:

    1. OSI参考模型定义了三点主要内容:服务、协议、接口。这是与TCP/IP不同的一点。

    2. OSI先出现,参考模型先于协议发明,不偏向特定协议。

    3. TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次。

    4. 在网络层和传输层这两个层次上,两个模型通信方式会有不同:

      TCP与IP参考模型对比OSI模型不同点

      面向连接分为三个阶段:第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。

      而面向无连接没有这么多阶段,它直接进行数据传输。无连接有一个重要协议,即IP协议。

      TCP/IP在网络层很注重IP协议,故是无连接。

    5.4 五层参考模型

    五层参考模型综合了OSI和TCP/IP的优点。

    五层参考模型

    应用层可以支持各种网络应用,主要协议有:FTP、SMTP、HTTP。

    传输层:进程与进程之间的数据传输。主要协议有:TCP、UDP。

    网络层:源主机到目的主机的数据分组路由与转发。主要协议有:IP、ICMP、OSPF等。

    数据链路层:把网络层传下来的数据报组装成帧。主要协议:Ethernet(以太网)、PPP等。

    物理层:实现比特传输。

    五层参考模型的数据封装与解封装:

    五层参考模型封装与解封装过程

    这两台主机进行通信,中间会有路由器、交换机等中间系统。这里省略。因为在这两种中间系统进行封装和解封装过程和主机过程一致。

    五层参考模型是学习的关键。

    第一章总结:

    第一章总结

    二. 物理层

    知识总览:

    第二章知识总览

    物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。

    注意这里的传输媒体是指传输介质,包括导向型和非导向型。

    物理层主要任务:确定与传输媒体接口有关的一些特性。即定义标准。如:路由器后面的插口(接口)是一样的,网线的水晶头也是一样的。

    物理层特性:

    1. 机械特性

      定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。

    2. 电气特性

      规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率距离限制等。

      如:某网络在物理层规定,信号的电平用+10V+15V表示二进制0,用10V15V表示二进制1,电线长度限于15m以内。

    3. 功能特性

      指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。

      如:描述一个物理层接口引脚处于高电平时的含义

    4. 规程特性(过程特性)

      定义各条物理线路的工作规程和时序关系。

    1. 数据通信

    需要对数据通信有一个大致理解。下图是一个典型的数据通信模型:

    典型数据通信模型

    1. 假如发送端要发送一个消息,且通过拨号上网方式(用公用电话网,是广域网)。消息是人可以理解的文字,但在传输过程中需要将消息转换为数据,即一些列0/1的组合。发送端网卡所发出数据在电信号上的表现就是上图的数字信号。
    2. 接下来会经过一个调制解调器将数字信号调制成模拟信号。因为数据要经过公用电话网,是一个广域网,广域网中有很多模拟信道(能传递模拟信号,但是不能传递数字信号)。所以需要将数字信号转换为模拟信号。
    3. 之后到了右边的调制解调器,将模拟信号再转化为原来的数字信号。即形成一个计算机可以理解的数据形式(比特流形式)。

    接着接收端内部操作再将比特流数据转换为原始消息。这个转换过程就是物理层以上几层所要做的事情。

    以上每一部分都有对应的专业名词:

    典型数据通信模型名词对应

    输入端可以叫做信源。调制解调器是发送器。而接收端的调制解调器叫做接收器。中间的公用电话网是传输系统。

    同时还可以再进一步统一这些专业名词:

    典型数据通信模型名词对应2

    1.1数据通信专业名词介绍

    所以通信的目的是传送消息。消息包括:语音、文字、图像、视频等。

    1.2 设计数据通信三个问题

    设计数据通信系统要考虑的3个问题:

    1. 采用单工通信/半双工/全双工通信方式?
    2. 采用串行通信/并行通信方式?
    3. 采用同步通信/异步通信方式?

    三种数据通信方式

    从通信双方信息的交互方式看,可以有三种基本方式:

    1. 单工通信

      只有一个方向的通信而没有反方向的交互,仅需要一条信道。使用场景:广播,一个人讲其他人听。

    2. 半双工通信/双向交替通信

      通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。使用场景:两个人使用对讲机说话。

    3. 全双工通信/双向同时通信

      通信双方可以同时发送和接受信息,也需要两条信道。使用场景:两个人打电话。

    串行传输与并行传输

    串行传输:将表示一个字符的8位二进制数按由低位到高位的顺序依次发送。

    串行传输

    串行传输特点:速度慢,费用低,适合远距离。

    并行传输:将表示一个字符的8位二进制数同时通过8条信道发送。

    并行发送

    并行传输特点:速度快,费用高,适合近距离。

    在计算机内部的数据传输就是并行传输。

    同步传输与异步传输

    计算机实现数据接收同步方式有两种:

    同步传输:在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。在传送数据时,需先送出1个或多个同步字符,再送出整批的数据。

    同步传输

    如上图接收方在收到发送方两个同步字符后,就会准备开始接收数据字符了。也就是实现了发送方和接收方的时钟同步。

    异步传输:异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达,传送数据时,需要添加一个字符起始位和一个字符终止位。

    异步传输

    假如一台主机发送以上几个字节的数据,与同步传输区别在于,在发送端并不是连续发送这几个字节,而是断断续续的。如上图的字节3其有8位,每一位如下:

    异步传输2

    发送端发送这8位数据的时候会加上一个终止位和起始位。

    异步传输3

    起始位和终止位通常默认为0/1,每次异步传输都会以起始位开头,起始位到达接收端的时候,接收端就准备接收数据。在接收完这八个比特位后,会收到一个终止位,接收端就会停止接收数据,直至接收到下一个起始位。

    异步传输常见例子就是:键盘输入信息。计算机对输入信息处理就是异步传输。

    同步和异步区别:同步传输种发送方和接收方时钟是统一的,字符与字符间的接收与发送是同步的没有间隔的,是以一个区块形式传输的。异步传输则不要求接收方和发送方时钟完全一样,字符与字符间的接收和发送是异步的。

    同步传输与异步传输与串行传输与并行传输关系:

    如吃面包时候,面包师可以一直做,顾客则需要一直吃(同步传输),顾客可以有一个(串行传输)也可以有多个(并行传输)。

    若面包师根据心情断断续续做面包,则顾客也是断断续续吃面包(异步传输),顾客可以有一个(串行传输)也可以有多个(并行传输)。

    数据通信基础知识总结:

    数据通信基础知识总结

    1.3 奈氏准则与香农定理

    先来介绍失真概念:在计算机网络中就是信号在传递时发生扭曲变化。

    失真

    上满信号波形即使在信道中受到干扰,还是可以根据接收信号波形来识别出数据。但下面这种情况就很难识别:

    失真2

    影响失真程度的因素:码元传输速率(越快失真程度就越严重)、信号传输距离、噪声干扰、传输媒体质量(质量越差失真越严重)。

    失真一种情况:码间串扰

    假如在传输数据时候是通过电话路网(模拟信道)上传输,此时可以将数字信号调制为多种模拟信号

    码间串扰

    在实际传输中信道上布满了各种各样频率的信号。上图左边数字是信号带宽,可以看到并不是所有带宽都快有通过信道的,300HZ和3300HZ都能通过,所以信道带宽是信道能通过的最高频率和最低频率之差。即3300300=3000HZ。

    200HZ带宽不能通过是因为在复杂的电话路网上传播,很容易受到衰减,可能最后会消失,所以不能传播。

    4000HZ就是码间串扰问题,因为带宽震动频率太快,导致接收端在接收后区分不出来波形之间的差异,所以就会导致码间串扰现象。

    故码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象

    为了解决这个问题就提出了奈氏准则。

    奈氏准则(奈奎斯特定理)

    奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为2W Baud,W是信道带宽,单位是Hz。

    注意:只有在奈氏准则和香农定理中带宽单位才是Hz。

    ()=2Wlog2V(b/s)

    这里的V指的是有几种码元或者说是码元的离散电平数目。根据这个准则可以得出以下四条结论:

    1. 在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的完全正确识别成为不可能。
    2. 信道的频带越宽(即能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输。
    3. 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
    4. 由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多个比特的信息量,这就需要采用多元制的调制方法。

    例:在无噪声的情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输率是多少?

    由于有4个相位,每个相位有4种振幅,所以总共4×4=16种信号形式。(在下一节编码与调试中会具体讲到)

    所以最大数据传输率=2·3k·log216=24kb/s

    香农定理

    上面的奈氏准则只是规定了最高的极限码元传输速率,但是并没有规定比特的传输最高速率。所以香浓定理可以解决这个问题。

    香农定理和奈氏准则相比,不仅定义了在信道种传输的比特极限传输速率,同时还考虑到了信道当中会经常存在的电磁干扰,即噪声的影响。噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比(通常题中会给出)就很重要。

    信噪比=信号的平均功率/噪声的平均功率,常记为S/N, 并用分贝(dB) 作为度量单位,题中常常给出dB,所以要换算出S/N。即:

    (dB)=10log10(S/N)

    香农定理:在带宽受限且有噪声的信道中,为了不产生误差(接收端可以清晰地分辨码元),信息的数据传输速率有上限值。

    =Wlog2(1+S/N)(b/s)

    上面的S/N是信噪比,其中S是信道所传信号的平均功率,N是信道内的高斯噪声功率。

    根据这个准则可以得出以下四条结论:

    1. 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
    2. 对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
    3. 只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。
    4. 香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
    5. 从香农定理可以看出,若信道带宽W或信噪比S/N没有上限(不可能情况,所以不做探讨),那么信道的极限信息传输速率也就没有上限。

    例:电话系统的典型参数是信道带宽为3000Hz,信噪比为30dB,则该系统最大数据传输速率是多少?

    30dB=10log10(S/N),则S/N=1000

    故信道的极限数据传输速率=Wlog2(1+S/N)=3000×log2(1+1000)30kb/s

    奈氏准则和香农定理区别

    公式选择:如果给出噪声条件就用香农定理,如果么有给出就用奈氏准则。如果题中给出信噪比同时还给出一个码元对应多少比特(V),此时就要两个公式都算出结果,取其最小值。

    例子:二进制信号在信噪比为127:14kHz信道上传输,最大的数据速率可达到多少?

    题中即给出信噪比,同时还给出二进制,即一个码元对应一个比特。所以两个公式都要用取其最小值。

    奈氏准则:2×4000×log22=8000b/s

    香浓定理:400×log2(1+127)=28000b/s

    所以最大的数据速率可达到8000b/s

    2. 编码与调制

    先来看基带信号与宽带信号概念:这两个其实是信道上传送信号的两种形式。之前学过信道上的按传输信号可以分为数字信号和模拟信号,引入基带信号与宽带信号这两个概念后,信道上的按传输信号还可以分为基带信号与宽带信号

    即如果放到数字信道上传输就是基带传输,放到模拟信道上传输就是宽带传输。且在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)。在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)。

    2.1 编码与调制概念

    上面是预备知识下面介绍编码与调制:

    数据可以是数字的也可以是模拟的,如计算机语言就是二进制的0/1,所以计算机发送的数据也是数字数据,即离散的波形。而人在说话的时候发出的声波是模拟数据,是连续不断的波形。而对于数据来说无论是数字数据还是模拟数据,为了能让数据传输道接收端,就需要首先把数据转成信号的形式,之后才能把信号放到链路上进行传输。所以把数据转成信号就是编码与调制要做的工作。

    具体就是数字数据数字信号是编码手段。数字数据模拟信号是调制手段。

    而对于模拟数据PCM数字信号是编码手段。模拟数据模拟信号是调制手段。

    2.2 四种编码与调制方法

    四种方法是:数字数据编码为数字信号、数字数据调制为模拟信号、模拟数据编码为数字信号、模拟数据调制为模拟信号。

    数字数据编码为数字信号

    计算机所发送的数据是0/1的数字数据,为了使数据能够在信道上进行传播,就要把数据编码为数字信号的方式。数字数据的编码用于基带传输当中,即基本不改变数字信号的频率,而是直接传输数字信号。

    这种编码方式有很多种,本质其实就是规定0/1对应的数字信号波形。常用编码有三种:非归零编码(NRZ)、曼彻斯特编码、差分曼彻斯特编码、归零编码(RZ)、反向不归零编码(NRZI)、4B/5B编码。

    这里重点介绍前三种编码:

    数字数据编码为数字信号

    数字数据调制为模拟信号

    计算机所发出的是数字信号,所以要放到模拟信道上传输就要先经过调制解调器调制为模拟信号,然后才能在信道上传输。到了接收端再由接收端调制解调器实现解调过程,将模拟信号转成数字信号,进而交给信宿,由信宿将数字信号解释为0/1数据,再将0/1转成人们可以识别的图像等。

    所以数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。

    调制可以分为:ASK、FSK、PSK、QAM

    数字数据调制为模拟信号

    模拟数据编码为数字信号

    计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)。

    最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。它主要包括三步:抽样、量化、编码。

    1. 抽样

      对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。

      为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:f2f

    2. 量化

      把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。

      之前的抽样会得到一些离散的点,但是点所对应的纵坐标或者所对应的电平值差异很大,有小数的也有整数的幅值。所以需要把这些小数的幅值和整数幅值统一为整数,并且按照一定的分级标准分段。如:256种分级 , 对应着每个采样需要使用log2256=8比特位表示,即对应着8位的音频采样。

    3. 编码

      把量化的结果转换为与之对应的二进制编码。

      量化之后会得到一系列的整数电平幅值。可以把这些整数电平幅值看作几种信号状态。每种信号状态就对应着一种码元。因此,假如有四种状态,就可以用两个比特为表示。同理16种状态可以用4个比特位表示。

    数字数据调制为模拟信号过程

    结合上图再总结模拟数据编码为数字信号过程:

    首先对于上图不规则的模拟信号,要先对其进行周期性扫描抽样。具体可以是每一个相等的周期就对信号采样一次。采样就是对信号取样,看在这个时候对应的电压是多少。

    接着量化就是将抽样后的点的电压会有小数和整数幅值,此时全部都统一为整数,并且按照一定的分级标准转换为对应的数字值。

    最后编码,如上图左侧比特位有四位,即所对应的就是16种信号状态,所以这就是编码的结果。

    上面提到过采样定理:为了使所有的离散信号 , 能够不失真地代表被抽样的模拟数据,需要使用采样定理 :

    f2f

    模拟信号都是正弦波 构成的,每个模拟信号都可以过滤出一个正弦波。假如现在有两个正弦波:

    数字数据调制为模拟信号过程2

    正弦波A,1秒有2个完整的波形,即2个波峰,2个波谷,其周期是0.5秒,频率是2Hz。

    正弦波B,1秒有1个完整的波形,即1个波峰,1个波谷,其周期是1秒,频率是1Hz。

    正弦波A和正弦波B都可以求信号频率,信号频率也就是带宽,即1秒钟震荡的次数。A信号波形1s可以震荡两次,频率是2Hz,B信号波形1s可以震荡一次,频率是1Hz。

    针对B波形,确定采样频率方式如下:

    对于一个正弦波,公式:y=Asin(ωx+φ)。这里的ω是频率,即上面的1Hz。因此未知数只有Aφ

    未知参数Aφ求值条件:只要代入两组数据,就可以将该正弦函数的公式求出,因此采样时 , 采两组数据(x,y),就能完全还原该正弦函数。进而求出正弦波的波形。采样的数据越多波形越准确,越不容易失真。

    结论:

    在一个 正弦波周期内,采样2次,就可以还原该正弦波。

    如果1秒钟有1个完整的正弦波,即频率是1Hz,那么采样2次即可。而如果1秒钟有2个完整的正弦波,即频率是2Hz,那么采样2×2=4次即可。

    因此采样定理中规定,采样频率必须大于等于2倍信号最高频率

    人耳能听到的声音是20Hz20000Hz,如果让人耳能够听不出来区别,必须在20000×2=40000Hz以上的采样率才能达到最基本高保真要求。而高频失真 , 就是高频的波形没有完整的还原出来,采样率不足导致的。

    模拟数据调制为模拟信号

    信号在传输过程中,可能信道会很长,而且可能环境很恶劣,会导致传输的模拟信号受到一定的衰减,所以要把模拟信号调制成新的模拟信号以应对突发情况。

    即为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式。模拟的声音数据是加载到模拟的载波信号中传输的。

    假如两个打电话,需要经过信号发射塔传送给接收方。通过话筒传出来的声音(声波),频率很低。这种声波很难以应对信道上的突发影响。因此需要将这个声波信号调制成高频的模拟信号,这个高频信号在信道上即使受到影响接收方也可以清楚恢复出原来的信号。这个模拟信号在信道上传输到接收方时,接收端通过解调器将这个信号解调成原来的基带信号。

    编码与调制总结:

    编码与调制总结

    3. 数据的交换方式

    在之前讲过如果两台计算机要进行通信,之间要有链路连接。假如现在有六台计算机,之间都是使用有线的链路进行连接:

    数据交换原因

    如果要实现两两互连,则需要Cn2条链路。如果计算机数目增多,再使用这种两两连接方式就显得十分低效。因此就产生了如下方式:

    交换设备

    中间的交换设备可以是交换机(局域网)、路由器(广域网)等。通过这个交换设备链路就变成n条。

    这里的交换是通过某些交换中心将数据进行集中和传送。进而传输线路为各个用户共用,从而大大节省通信线路,降低系统费用。

    当交换设备更多的时候可以形成要给交换网络:

    交换网络

    所以本小节介绍的数据交换方式有四种:电路交换、报文交换、分组交换。其中报文交换和分组交换都属于存储转发交换方式。分组交换又可以分为数据报方式和虚电路方式。

    3.1 电路交换

    如下图所示有两台主机进行连接:

    电路交换

    假定A主机发送信息,B主机接收信息。中间的都是交换设备。

    先看一下电路交换原理:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。

    具体要结合电路交换的阶段:建立连接(呼叫/电路建立)、通信(数据传输)、释放连接(拆除电路)。

    电路交换特点:独占资源,用户始终占用端到端的固定传输带宽(通信过程中选择的线路不能被其他主机占用)。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。

    电路交换优缺点

    电路交换优缺点

    3.2 报文交换

    报文:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。通俗讲就是指单次要发送的数据块,长度不确定。

    报文交换原理(可以用存储转发概括):无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式。

    报文交换原理

    如上图,发送端要发送一个数据块,数据块可以称为信息,这个信息加上报头就形成报文。报文中包含源主机地址和目的主机地址,还有一些相关的控制信息。

    报文交换原理2

    1. 首先报文会发送到交换设备A。由于采用存储转发方式,交换设备A会先收下整个报文,暂存报文后检查有无错误。当检查完这个报文并无差错,就需要等待输出电路空闲时利用路由信息找到下一个结点地址,并传送给下一个结点。

      这里的路由信息是指每个交换设备都会维护一张较大的路由表,根据这个路由表就可以判断接下来可以走哪几个路由器(如何到目的主机最短)。

      报文交换原理3

    2. 根据路由信息可以看到交换设备B是到目的主机最快的路径,所以交换设备A会将报文传送给交换设备B。在传输给设备B报文时,其他线路段,甚至是设备A和设备B之间的线路段都可以传输其他用户的报文,也就是说每两个结点之间的链路并不是被独占的,是所有人都可以共享的。但是链路会有限制的宽度,即带宽,当一段链路中要传输的报文过多时,线路就很繁忙,所以需要靠交换设备暂存报文,等线路空闲时再将报文发送出去。这样一个过程就是存储转发。

      报文交换原理4

    3. 之后设备B等到等到线路空闲时就会将报文发送给目的主机。

    报文交换原理优缺点:

    报文交换原理优缺点

    3.3 分组交换

    是现在网络中最常使用的交换方式。

    分组:大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。

    分组交换的原理:分组交换与报文交换的工作方式基本相同,都采用存储转发方式,形式上的主要差别在于,分组交换网中要限制所传输的数据单位的长度,一般选128B。发送结点首先对从终端设备送来的数据报文进行接收、存储,而后将报文划分成一定长度的分组,并以分组为单位进行传输和交换。接收结点将收到的分组组装成信息或报文。

    分组交换

    如上图,发送源需要发送一个大数据块。这里如果不对大数据库进行切割就是报文交换方式。采用分组交换这里会对大数据块进行切割。将大数据库切割成一个个小数据块。接下来在每个小数据块上都加上控制信息就形成一个个小分组。

    分组交换原理

    控制信息包括源地址和目的地址及分组编号。有编号是因为在传输过程中交换设备会根据网络状况选择不同路线发送这些小数据块,所以在目的主机需要根据这个编号进行按序重组。还原出原来的正确报文。

    首先第一个分组发送给交换设备,交换设备在受到这个分组后仍和报文交换一样会进行差错检测及路由选择。如果分组路由选择如下所示:

    分组交换原理2

    交换会根据网络进行路由选择。各个分组在传输过程中变得无序。最后全部发送给目的主机后,目的主机根据分组编号将这些分组重组成合适的报文,再交付给上层。

    分组交换优缺点:

    分组交换优缺点

    上面是分组交换的基本原理,在分组交换下会有两种方式:数据报方式和虚电路方式。

    数据报方式

    下图两个主机进行数据报传输:

    数据报方式

    主机A传送给主机B经历的步骤:

    1. 源主机(A)将报文分成多个分组,依次发送到直接相连的结点(A)。
    2. 结点A收到分组后,对每个分组差错检测和路由选择,不同分组的下一跳结点可能不同。
    3. 结点C收到分组P1后,对分组P1进行差错检测,若正确则向A发送确认信息,A收到C确认后则丢弃分组P1副本。
    4. 重复上面三部直到所有分组发送到主机B。但是P1和P2可能并不是按原来的顺序到达的,这个时候需要根据分组编号进行重组。

    这就是数据报交换方式。其实也就是上面讲的分组方式。

    数据报方式特点:

    1. 数据报方式为网络层提供无连接服务。发送方可随时发送分组,网络中的结点可随时接收分组。

      无连接服务指的是不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。

    2. 同一报文的不同分组达到目的结点时可能发生乱序、重复与丢失。

    3. 每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。

    4. 分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。

      在无连接的情况下如果丢弃部分分组,会有一定的机制将丢弃的分组再重新发送。所以分组只是早到还是晚到问题。

    5. 网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适于长报文、会话式通信(通常采用电路交换方式)。

    虚电路方式

    虚电路将数据报方式和电路交换方式结合,以发挥两者优点。

    虚电路方式

    虚电路是指一条源主机到目的主机类似于电路的路径( 逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表, 每一项记录了一个打开的虚电路的信息。

    虚电路方式结合电路交换方式,所以采用电路交换方式三个阶段:建立连接(呼叫/电路建立)、通信(数据传输)、释放连接(拆除电路)。

    也就是在虚电路方式中和电路交换方式一样,在两台主机之间好像建立了一个连接。数据发送过程如下:

    1. 建立连接

      主机会发送一个呼叫请求,交给结点A后,结点A会通过合适的路由算法选择合适的下一条。之后结点也会进行路由选择直到发送给主机B

      如果主机B可以应答会返回一个呼叫应答的分组(下图橙色路线)。

      虚电路方式原理

      要注意的是在建立连接阶段,呼叫请求和呼叫应答都是以分组形式存在的。而分组包含源主机地址和目的主机地址。当源主机发送"呼叫请求"分组并收到"呼叫应答"分组后才算建立连接。

    2. 数据传输

      在数据传输过程中,传输的是分组,每个分组携带虚电路号,分组号,检验和等控制信息。而不需要携带物理地址。因为在连接建立好后分组路径就唯一确定。但是要携带虚电路号,这个虚电路号就是唯一标识,它的意义在于如果主机B受到大量分组,这个大量分组中有其他主机发送的分组,此时这个主机B需要根据虚电路号把这些分组进行一个分类。再进行下一步还原并交给进程。

    3. 释放连接

      源主机发送"释放请求"分组以拆除虚电路。

      与电路交换流程一致。

    虚电路方式特点:

    1. 虚电路方式为网络层提供连接服务。源结点与目的结点之间建立一条逻辑连接,而非实际物理连接。

      连接服务:首先为分组的传输确定传输路径(建立连接的过程),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。

      所以这里的连接服务和无连接服务是要不要在传输数据之前先事先建立好一个连接,如果需要建立好这样一条连接就叫连接服务。如果不需要建立连接就是无连接服务。

    2. 一次通信的所有分组都通过虚电路顺序传送,分组不需携带源地址、目的地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。

    3. 分组通过虚电路上的每个结点时,结点只进行差错检测,不需进行路由选择。

    4. 每个结点可能与多个结点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。

    5. 致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该结点或该链路的虚电路将遭到破坏,需要重新建立连接。

    数据报与虚电路对比:

    数据报与虚电路对比

    3.4 三种数据交换方式选择

    交换方式选择条件:

    1. 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
    2. 当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
    3. 从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。

    三种交换方式选择

    4. 物理层传输介质

    传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。

    传输媒体并不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。

    传输介质可以分为导向性传输介质(电磁波被导向沿着固体媒介(铜线/光纤)传播)和非导向性传输介质(自由空间中进行传播,介质可以是空气、真空、海水等)。

    4.1 导向性传输介质

    导向性传输介质有:双绞线、同轴电缆、光纤

    同轴电缆与双绞线对比:由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。

    4.2 非导向性传输介质

    非导向性传输介质常见的有三类:无线电波(信号向所有方向传播)、微波(信号固定方向传播)、红外线和激光(信号固定方向传播)。

    传输介质总结:

    传输介质总结

    5. 中间设备

    诞生原因:由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。

    5.1 中继器

    中继器的功能:对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。

    中继器

    上图是中继器,其功能可以概况为:再生数字信号。对于模拟信号处理是放大器,这里不做考察。

    中继器的两端:两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。

    且中继器两端可连相同媒体,也可连不同媒体。中继器两端的网段一定要是同一个协议(中继器不会存储转发)。

    5-4-3规则:网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障。这个规则规定了一个网段内只能有五个网段、在这五个网段内只能有四个物理层网络设备(中继器)、并且只有三个段可以挂接计算机。

    543规则

    5.2 集线器(多口中继器)

    功能与中继器一样,都是将信号再生,放大的设备。

    集线器的功能:对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。

    集线器

    上面一个集线器连接五台计算机。集线器通常的拓扑结构就是星形拓扑。集线器可以增加信号传输距离。不具备信号定向传送能力指的是假如上面两台计算机进行通信,发送方将信号给了集线器后,集线器会对信号进行放大。发大好后会从所有端口转发出去。这就是剩下四台计算机都能接收到信号。四个接收方在接收到数据后会判断数据地址是否给自己,如果不是就会丢弃掉。这种方式也即广播方式。

    正因为有这种广播形式就会产生冲突。假如两台主机通信,同时第三台也要通信,此时就会产生冲突碰撞。集线器解决方法是停止传输过段时间再传输数据。所以集线器是一个大冲突域。是不能分割冲突域的。

    因为集线器在一个时钟周期内只能实现一组通信。所以一台集线器连接数目较多,而且其他主机都要同时进行通信这样就会导致产生信息碰撞,降低集线器传输数据效率。故连在集线器上的工作主机平分带宽

    三. 数据链路层

    知识点预览:

    数据链路层知识预览

    数据链路层研究思想如下:

    数据链路层

    可以看到数据是自上而下,先封装再解封装、再封装、最后解封装的过程。然而在研究数据链路层的时候,很多情况下只是关心协议栈中水平方向的各个数据链路层。所以当A主机给B主机发送数据时,就可以想象数据是从链路层自左向右水平发送的。

    数据链路层术语:

    1. 结点:指的是主机、路由器

    2. 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。

      链路术语解释

      可以看到任何两个结点之间的连线都叫做一条链路。这个链路强调的是物理层面上的物理通道。介质传输就有两种:有线的和无线的。

    3. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。

    4. 帧:链路层的协议数据单元,封装网络层数据报。

      所以数据链路层是负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。即将上层网络层传输的数据报安全无差错传给相邻结点。

    数据链路层功能概述:数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

    数据链路层功能:

    1. 为网络层提供服务。服务有三种:无确认无连接服务、有确认无连接服务、有确认面向连接服务。

      无确认无连接服务常常用于实时通信,或者误码率较低通信信道。即源主机在发送数据的时候不用事先跟目的主机建立好链路的连接,而且目的主机收到数据帧时候也不需要返回确认,如果帧丢失了数据链路层也不负责重发,而直接交给上一层处理。

      有确认无连接服务也是事先不需要建立连接,但是目的主机在收到数据的时候必须要发回一个确认。如果源主机发现在规定时间内没有收到目的主机确认信息,就会将刚刚没有收到确认的帧重新传输一次。可以提高链路层可靠性。适用于误码率较高的通信信道(无线通信)。

      有确认面向连接服务是最安全最可靠的。事先建立好连接,同时接收端收到一个帧之后就要返回一个确认帧。发送端收到这个确认帧才会继续发送下一个。

    2. 链路管理,即管理连接的建立、维持、释放(用于面向连接的服务)过程。

    3. 组帧

    4. 流量控制

    5. 差错控制,差错有帧错和位错两种。

    1. 封装成帧和透明传输

    封装成帧过程其实就是将网络层IP数据报加头加尾形成链路层的数据传送单元,即帧。

    封装成帧

    封装成帧定义:是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

    上图的帧首部和帧尾部就叫帧定界符,其中包含很多控制信息。根据帧定界符接收端就可以确定帧的起始位置和结束位置。

    根据帧定界符可以实现帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

    另外帧的首部到帧尾部长度叫做数据链路层的帧长。

    帧长

    显然为了提高帧的传输效率,都应该使帧的数据部分尽可能大于首部和尾部,也就是说帧的数据部分会比较大。链路层协议规定规定索要传送帧的最大数据部分上限,也就是说帧的数据部分会有一个极限值。这个极限值叫做最大传送单元(MTU)。不同协议MTU长度也不同。所以在传送数据的时候,数据部分一定要最大传送单元(MTU)。

    数据链路层帧长

    对于发送端的组帧过程有四种常见的方法:字符计数法、字符(节)填充法、零比特填充法、违规编码法。

    在具体讲述四种方法之前先了解一下透明传输概念:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就"看不见"有什么妨碍数据传输东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时, 就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

    四种方法对比:由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

    2. 差错控制

    概括来说,传输中的差错都是由于噪声引起的。噪声分为全局性噪音和局部性噪音。

    这些差错来源会导致两种差错:位错(比特位出错,1变成00变成1)。帧错(帧丢失、帧重复、帧失序)。

    对于帧错解决是如果当前对于通信质量好、有线传输链路采用无确认无连接服务。对于通信质量差的无线传输链路采用有确认无连接服务和有确认面向连接服务。

    所以对于不同的链路可以采用不同的可靠传输机制。这里重点介绍位错检测和纠正问题。

    首先要明确一点对于链路层的差错控制,在任何一个结点的链路层都是可以实现的。只要两个结点建立了连接关系,那么结点就需要对发送方传送来的数据进行差错检验和纠正。

    检测错误采用检错编码,纠正错误采用纠错编码。其中检错编码有两种:奇偶校验码和循环冗余码CRC(普遍采用的方式)。纠错编码主要学习海明码。

    链路层编码和之前的物理层编码是两个概念:数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。

    上面提到的冗余编码指的是在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。即发送方会将数据添加几位比特的冗余码,作用是冗余码和原来的数据可以构成某种规则,把这个组合发出去后,接收方就按照和发送方共同的规则来检查数据是否有问题。如果符合规则则数据没有问题,反之数据有问题。

    2.1 检错编码

    主要有奇偶校验码和循环冗余码CRC(普遍采用的方式)

    奇偶校验码

    首先有n1位信息元(即发送的数据),以及1位校验元(冗余码)。

    奇校验码:整个校验码(有效信息位和校验位)中1的个数为奇数。

    偶校验码:整个校验码(有效信息位和校验位)中1的个数为偶数。

    奇偶校验码

    例子:如果一个字符S的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?

    答案:11010011

    因为原字符的编码采用奇校验,所以1的个数是奇数,然而当同时发生两位跳变时1的个数仍为奇数,所以11010011不能被检测。

    奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%

    CRC循环冗余码

    是一种常见的检测方式。

    原理:

    1. 首先准备待传有效数据

      发送方要发送的消息是一长串的比特流,那么采用CRC时候就要在发送端将待发送的数据切割成一段又一段的小的比特组合。每段比特组合都是等长的,假设是d位,每一段都叫做一个组。

      CRC原理1

    2. 对于每一个组都加上冗余码构成帧。

      CRC原理2

      上面r位帧检验序列(冗余码)确认方式:首先要引入生成多项式(双方规定的除数),位数是r+1位。这里的r是多项式阶数。

      基本上题中给出的形式是1101这种比特形式。当然有时候也会直接给出多项式形式。如:x3+x2+1

      此时就需要将面的多项式转换为比特形式。方法是在多项式前面加上系数,再将x补齐:

      1·x3+1·x2+0·x1+1·x0

      这两个多项式相等,所以将前面的系数提出来,即1101。这个系数组成的二进制就是生成多项式。

      有时候多项式会提到阶,这个阶就是多项式最高位的x幂数。如上x3+x2+1最高阶是3。这个生成多项式是题中一定会给出的。

      此时有了这个生成多项式,也有了d位数据,r位FCS计算方式如下:

      在要发送数据d后面加上r0。这里的r取决于生成多项式位数1。之后再除以生成多项式。这里的除法是二进制除法(异或,同01)。这里会得到一个商和余数,重点是余数,这个余数就是r位FCS。这个r位FCS替换r0即可。

      FCS帧检测序列计算方式

    3. 之后接收方收到d+r位数据,检验方式如下:

      d+r÷

      如果余数为0则认为正确接收。余数不为0则丢弃。

    十进制解释CRC原理:

    十进制解释CRC原理

    计算冗余码步骤:

    1. 0。假设生成多项式G(x)的阶为r,则加r0

      多项式N位,则阶就是N1位。

    2. 2除法。数据加0后除以多项式,余数为冗余码FCS。

    接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数R。若余数为0,判定这个帧没有差错,接受。若余数为不为0,判定这个帧有差错(无法确定到位),丢弃。

    例:要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?

    首先生成多项式5位,所以阶数r=4。故在要发送数据后面添加四个011010110110000

    之后要发送的数据÷生成多项式:

    生成多项式

    最后的余数就是FCS=1110。故最后发送的数据就是11010110111110

    FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。

    在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即"凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错"。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。

    所以在现在的传输中可以认为凡是接收端数据链路层接收的帧均无差错。

    但是这种方式不是可靠传输,可靠传输是指数据链路层发送端发送什么,接收端就收到什么。而链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输,因为有些帧因为差错会被丢弃,并不会对丢弃帧做处理。

    2.2 纠错编码

    这里要学习的纠错编码是海明码。

    海明码不仅可以发现错位,并找到错误位置,同时还能纠正错误。与之前学习的编码性质相同,海明码也需要加上冗余码。并且奇偶校验码和CRC循环冗余码都是在低位加上冗余位,但是海明码要根据一定规则在数据位中安插校验码。

    流程:

    1. 确定校验码位数r
    2. 确定校验码和数据的位置
    3. 求出校验码的值
    4. 检错并纠错

    这里先将一下海明距离概念:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距)。一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。如:000001之间只有一位不同,所以码距是1

    根据海明距离可以得到一个结论:如果要检验的跳变位数(出错)是N,则码距就要是N+1。如:码距是2的编码集中能检测出1位的比特错误,但是错误位不能被纠正。如果要纠正跳变位数是d,则码距为2d+1。如:码距是3的编码集中可以检测出1位和2位比特跳变出现的错误,同时能纠正1位跳变错误,但是不能纠正2位跳变错误。

    具体海明码流程如下:

    差错控制总结:

    差错控制总结

    3. 流量控制与可靠传输机制

    较高的发送速度较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

    链路层和网络层都有流量控制,区别是:

    1. 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。即链路层流量控制是两个结点之间的(因为中间会有交换系统)。
    2. 数据链路层流量控制手段:接收方收不下就不回复确认。而传输层流量控制手段:接收端给发送端一个窗口公告。

    流量控制方法有两种:滑动窗口协议、停止等待协议(一种特殊的滑动窗口协议)。其中滑动窗口协议又包括两种:后退N帧协议(GBN)和选择重传协议(SR)。

    三种协议窗口大小:

    停止等待协议:发送窗口大小=1,接收窗口大小=1

    后退N帧协议(GBN):发送窗口大小>1,接收窗口大小=1

    选择重传协议(SR):发送窗口大小>1,接收窗口大小>1。

    链路层的滑动窗口大小是固定的。

    可靠传输、滑动窗口、流量控制区别:

    流量控制滑动窗口可靠传输总览:

    流量控制滑动窗口可靠传输总览

    3.1 停止-等待协议

    在链路上除了比特(每一帧)会发生差错,底层信道还会出现丢包问题。

    丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。这里的数据包其实就是一个数据,在链路层可以叫做帧,在网络层可以叫做IP数据报或者是分组,在传输层可以叫做报文段。

    为了解决这个丢包问题,同时也为了实现流量控制,就需要有这样的停止等待协议。

    虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据 (发送方),一方接收数据(接收方)。且因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。

    "停止等待"协议就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

    停止等待协议两种应用情况:无差错情况和有差错情况

    可以看到使用确认及超时重传机制可以使得在不可靠的传输网络上实现相对来说比较可靠的通信。

    停止等待协议性能分析:优点是简单易于实现。缺点是信道利用率太低。

    这里的信道利用率指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。公式为:

    =(L/C)/T

    T是发送周期,即从开始发送数据到收到第一个确认帧为止这段时间。L是数据帧长度,即在这样一个周期内能够发送多少比特的数据。C指发送方的数据传输率,即发送方的发送速率。另外还需要知道信道吞吐率:

    =

    停止等待协议性能分析

    如上图,信道利用率U为:

    U=TDTD+RTT+TA

    所以可以看到停止等待协议信道利用率很差。

    例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止等待协议的信道最大利用率达到80%,要求的数据帧长度至少为多少?

    设数据帧长度为L,数据传输率为4kb/s,即C=4

    且单向传输时延是30ms。所以T一个周期总时延=L/4+230。并且题中要求利用率80%

    80%=L/4L/4+230=960bit

    上面每次只发送一帧,所以导致通道利用率不高,所以发送端可以一次发送多帧:

    流水线技术

    这种一次发送多帧技术称为流水线技术。同时要对停止等待协议做出一定的改进:

    1. 必须要增加一个序号范围。

      每个传送的帧必须有一个唯一的编号。如上图中一次发送三个数据帧,要保证这三个数据帧都是不同的编号。

    2. 发送方必须要缓存多个分组

      每次需要缓存发送帧所有副本,及时在丢帧,错帧时重传帧。

    停止等待协议总结:

    停止等待协议总结

    3.2 后退N帧协议(GBN)

    上面的流水线技术下也有可能会出现发送帧丢失、迟到等现象。为了解决这些差错有了后退N帧协议和选择重传协议。

    对于要发送的所有帧会分别进行编号。但是这里的编号可以复用。因为有发送窗口这样一个概念:发送方维持一组连续的允许发送的帧的序号。简单来说发送方要发送的数据必须在发送窗口中。

    发送窗口

    同样接收方也维护一个接收窗口:指接收方维持一组连续的允许接收帧的序号。这里接收窗口只能有一个。

    接收窗口

    发送流程:

    1. 首先发送方要发送0号帧,同时会留下这个0号帧副本(下图橙色部分),接下来在传送过程中1号帧也是可以发送的(只要在发送窗口中的帧都可以发送)。

      后退N帧协议执行流程1

      0号帧到达接收方后,接收方会给发送方一个确认帧。接下来发送方和接收方窗口都会进行一个窗口前移任务。

      后退N帧协议执行流程2

      至此0号帧传输完毕。

    2. 接着1号帧也会到接收方,这里实际上并不会对每一帧都发送确认帧(累计确认特性),假如现在发送端同时发送1,2,3号帧,接收端窗口已经移动到3号窗口,此时只用给发送端发送3号确认帧即可。当接收端收到发送端3号确认帧后,会默认前面1,2号帧都已经被接收。接着发送端再往前移动3个窗口即可。

    可以看到发送窗口有四区域组成:已经发送完的帧、已经发送但是等待确认的帧、还能发送的帧(可以有空)、还不能发送的帧(还没有在发送窗口中)

    后退N帧协议执行流程3

    再看一下发送方和接收方具体细节,即GBN中发送方必须响应的三件事:

    GBN协议中接收方要做的事:

    注意这里的发送方滑动窗口并不是可以无限大。若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:1WT2n1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

    假如2个比特位进行编号,标号能表示四位0,1,2,3。那么发送端窗口尺寸大小就是1WT221=3

    GBN协议重点总结:

    1. 累积确认

      如果接收方按序接收到n个帧,此时就会返回第n号帧的确认帧。此时发送端在收到这个确认帧之后就会认为n号帧及n号帧之前的都已经被接收端接收到。

    2. 偶尔捎带确认

      接收方也可以给发送方发送数据,在发送数据时,接收方可以将确认帧放到要发给发送端的数据中。

    3. 接收方只按顺序接收帧,不按序无情丢弃。

      expectedseqnum中保存的值就是下一个期望接收的值。

    4. 确认序列号最大的、按序到达的帧

    5. 发送窗口最大为2n1,接收窗口大小为1

    例1:数据链路层采用了后退N帧( GBN )协议,发送方已经发送了编号为07的帧。当计时器超时时,若发送方只收到0,2,3号帧的确认,则发送方需要重发的帧数量是多少?

    由于有累计确认机制,所以这里再超时后接收到最大帧号是3,这就意味着3号帧及之前的帧都已经确认,所以会接着发送4,5,6,7四个帧。

    例2:主机甲与主机乙之间使用后退N帧协议(GBN )传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲、乙之间的单向传播时延是50ms,则甲可以达到的最大平均数据传输率约为多少?

    先计算甲发送全部数据需要事件:甲一次要发送比特位数是1000×(1000×8),且带宽是100Mb/s,所以发送一次所需要时间是1000×(1000×8)100Mb/s=80ms。即甲一次全部传输需要80ms。

    再计算甲发送第一个帧之后,收到确认帧时间:甲、乙之间的单向传播时延是50ms,所以一帧往返时延是2×50+1000×8100Mb/s=100.08ms。

    接着这两个数据就课看出,甲在发送完窗口中所有数据后(80ms),还没有收到第一个帧的确认帧(100.08)ms。

    所以一个往返时延是100.08ms,总共需要传输1000×(1000×8),那么平均数据传输率就是1000×(1000×8)100.08ms=80Mb/s

    GBN协议优点:因连续发送数据帧而提高了信道利用率。

    GBN协议缺点:在重传时必须把原来已经正确传送的数据帧重传,使得传送效率降低。

    后退N帧协议总结:

    后退N帧协议总结

    3.3 选择重传协议(SR)

    解决GBN协议中批量重传的问题方法是:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。这就是本节课要将的选择重传协议(SR)核心思想。

    SR协议中接收方和发送方都有窗口:

    SR协议

    如上图窗口的接收窗口和发送窗口都为4

    发送方窗口可以由发完被确认的、已经发送但等待确认的、发完被确认的、还能发送的、还不能发的这几部分组成:

    SR协议组成

    接收方由希望收到但没收到的、收到且确认的(缓存)、等待接收的、已经接收、还不能被接收的:

    SR协议组成2

    SR发送方必须响应的三件事:

    1. 上层调用

      从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧。否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。

    2. 收到了一个ACK

      如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。

      SR发送方必须响应的三件事

      如上图,0,1,3号帧是已经确认接收的,2,4号帧是已发送但未被接收的,5号帧内还没有数据。假如此时接收端发送来了2号确认帧。此时窗口就可以往前移动到4号位置。

      SR发送方必须响应的三件事2

    3. 超时事件

      每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

    SR接收方要做的事:

    1. 窗口内的帧来者不拒

      SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧(收谁确认谁),直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。

      SR接收方要做的事

      上图5号帧代表将要接收到数据,6号帧表示已经正确接收了帧并且返回确认帧。假如当前来了7号帧,会将这个7号帧缓存起来,等到5号帧到来。

      SR接收方要做的事2

      假如5号帧也确认正确接收,则滑动窗口会直接0号帧。如果收到了窗口序号外(小于窗口下界,即下图窗口左边)的帧,就返回该帧的ACK。其他情况则忽略该帧。

      SR接收方要做的事3

    SR协议运行过程:

    假设当前有7帧数据需要发送端发送,且窗口大小都为4

    注意这里的滑动窗口并不是可以无限大。若采用n个比特对帧编号,那么SR协议中发送窗口的尺寸WT和接收窗口尺寸TR应满足:WTmax=WRmax=2n1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

    假如用2个比特位进行编号,可以表示0,1,2,3四位数字。那么对应接收和发送窗口尺寸是WTmax=WRmax=221=2

    这里发送窗口最好等于接收窗口。因为大了会溢出,小了没意义。

    SR协议重点总结:

    1. 对数据帧逐一确认,收一个确认一个

      只对窗口内的帧。

    2. 只重传出错的帧。

    3. 接收方有缓存

    4. 若采用n个比特对帧编号,那么SR协议中发送窗口的尺寸WT和接收窗口尺寸TR应满足:WTmax=WRmax=2n1

    例子:数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为03的帧。现已收到1号帧的确认,而02号帧依次超时,则发送方需要重传的帧数是多少?

    由于1号帧确认,且3号帧情况未知,所有重传帧是0,2,即重传帧数是2

    SR协议总结:

    SR协议总结

    4. 介质访问控制

    传输数据使用的两种链路:点对点链路、广播式链路。

    点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。如:两个人打电话。

    广播式链路:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构有总线型、星型(逻辑总线型)。如:对讲机。常用介质访问控制协议。

    总线型和星型

    假如当前采用总线型,如果同时有两个人往中间的链路发送消息,就会导致消息冲突。介质访问控制就是要解决这个问题。

    介质访问控制的内容就是,采取一定的措施, 使得两对节点之间的通信不会发生互相干扰的情况。介质访问控制可以分为两类:静态划分信道和动态分配信道(灵活)。

    这里的静态划分信道就是信道划分介质访问控制是本节得学习重点。主要包括四种控制方式:频分多路复用FDM、时分多路复用TDM、波分多路复用WDM、码分多路复用CDM

    而动态分配信道会在之后介绍,动态分配信道分为两种:轮询访问介质访问控制(常用协议是令牌传递协议)、随机访问介质访问控制(主要有ALOHA协议、CSMA协议、CSMA/CD协议CSMA/CA协议)。

    介质访问控制总览:

    介质访问控制总览

    4.1 信道划分介质访问控制

    信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。这种预先分配信道的方式是静态分配方式(静态划分信道)。

    信道划分介质

    如上图,当前有三组计算机进行通信。这里引用多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。采用多路复用技术后通信状态如下:

    信道划分介质2

    中间得信道是共享信道,这三台发送端数据都可以在信道上进行传输。

    多路复用技术

    可以看到三台发送端将数据通过复用器发送到链路上,在接收端再通过分用器将合起来的数据分别送到对应的目的主机。

    这种多路复用技术就是把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。

    上面的数据都在一条信道也不会干扰,是因为采用了信道划分介质访问控制。包括四种控制方式

    可以看FDM类似操作系统的并行(同时前进)。TDM类似操作系统的并发(轮流交替)。

    4.2 随机访问介质访问控制

    随机访问介质访问控制是动态分配信道(动态媒体接入控制/多点接入)方式的一种。动态分配信道的特点是:信道并非在用户通信 时固定分配给用户。

    随机访问介质访问控制特点是所有用户可随机发送信息。发送信息时占全部带宽。这种随机性会导致不协调的问题,因为所有用户如果都可以随机发送信息,可能有几个用户如果不相互协调,而同时发送信息会导致数据冲突的问题。所以需要有协议来解决这种别协调导致的冲突问题。

    ALOHA协议

    ALOHA协议有两种:纯ALOHA协议、时隙ALOHA协议。其中时隙ALOHA协议是对纯ALOHA协议的改进。

    两种协议总结:

    1. 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
    2. 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。

    CSMA协议

    全称是载波监听多路访问协议CSMA (carrier sense multiple access)。

    CS:载波侦听/监听, 每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

    检测原理:当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。

    协议思想:发送帧之前,监听信道。监听结果有两种:信道空闲(发送完整帧)、信道忙(推迟发送)。

    对于推迟多久、或者是否立即发送完整帧有三种不同协议:1-坚持CSMA、非坚持CSMA、p-坚持CSMA。

    三种CSMA对比总结:

    三种CSMA协议对比

    CSMA/CD协议

    载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)。

    CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。应用与总线型网络。CD:碰撞检测(冲突检测),"边发送边监听",适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据,说明用于与半双工网络(一方发送数据乙方接收数据,但是也可以互换)。

    因为电磁波在总线上总是以有限的速率传播的。所以即使当前信道空闲,还是要进行传输。

    传播时延对载波监听的影响:

    传播时延对载波监听的影响

    可以看到当AB发数据,如果A的数据还没有发送到A的监听范围之内,此时B监听信道结果就是空闲,所以如果B再往信道上发送数据就会产生数据冲突问题。

    传播时延对载波监听的影响2

    如上图在数据产生碰撞后仍会到达接收端,两个主机互相发送数据都有在一段时间后到达目的机,即使数据产生碰撞,在双方接收到碰撞数据帧之后都会检测出数据帧出错,所以都会停发。

    假设单程端到端的传播延迟是τ。则AT0时刻开始经过一段时间发生碰撞,再经过一段时间B接收到A发送的数据。此时接收到这个时间点t就是τ,即t=τ,因为A段数据发送到B端经历了一个传播时延。

    Bt时刻也开始发送数据,设t=τδ。则可以得出发生碰撞事件结点是t=τδ2

    由于B发送时间点是t=τδ,且一个端到端传播时延是τ,所以A端接收B发送来的数据时间是2τδ

    传播时延对载波监听的影响3

    最迟多久才能知道自己发送的数据没和别人碰撞?

    δ趋近于0时,也就是数最迟是2τ时候才能直到数据没和别人碰撞。即最多是两倍的总线端到端的传播时延(2τ)

    同理最短知道发送数据碰撞事件是0

    2τ也是总线的端到端往返传播时延,也可以叫做争用期/冲突窗口/碰撞窗口。所以可以得知只要经过2τ时间还没有检测到碰撞,就能肯定这久发送不会发生碰撞。

    在CSMA/CD协议中采用截断二进制指数规避算法计算碰撞后重新的发送时机:

    1. 确定基本退避(推迟)时间为争用期2τ
    2. 定义参数k,它等于重传次数,但k不超过10,即k=min[,10]。 当重传次数不超过10时,k等于重传次数。当重传次数大于10时,就不再增大而一直等于10
    3. 从离散的整数集合[0,1,2k1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2rτ
    4. 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

    第一次重传,k=1,r从{0,1}选,重传推迟时间为02τ,在这两个时间中随机选一个。

    若再次碰撞,则在第二次重传时,k=2r{0,1,2,3}中选,重传推迟时间为02τ4τ6τ,在这四个时间中随机选一个。

    若之后再碰撞,则重复上述步骤。当重复16次仍不能发送就报错。

    可以看出若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。

    例:在以太网的二进制回退算法中,在11次碰撞之后,站点会在0(?)之间选择一个随机数。

    可以看到碰撞次数为11次,大于10此时,所以k=10。则2k1=1023

    故站点会在01023之间选择一个随机数。

    但还有一种情况,假如A站发了一个很短的帧但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,所以没有办法停止发送。为了比卖你这种情况就要定义一个最小帧长,以达到帧发生碰撞及时叫停的目的。

    由于帧最晚可以在2τ时间内检测到碰撞,所以可以使帧的传输时延至少要两倍于信号在总线中的传播时延,就可以在检测到碰撞之前帧还没有发完,可以及时叫停。帧的传输时延计算公式:

    =(bit)2·线(2τ)

    所以可以得出最小帧长=2τ×

    故以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。

    CSMA/CD协议总结:

    CSMACD协议总结

    CSMA/CA协议

    载波监听多点接入/碰撞避免CSMA/CA (carrier sense multiple access with collision avoidance)。

    CSMA/CA协议用于无线局域网当中。而上面的CSMA/CD用于优先网络(以太网)。CSMA/CD无法用于无限局域网原因是,无线网络空间大,所以要求全面碰撞检测,同时还会有隐蔽站的问题,即当AC都检测不到信号,都认为信道空闲时,同时向终端B发送数据帧,就会导致冲突。这里如果A发数据给BC就相当于一个隐蔽站。

    协议工作原理:在发送数据前,先检测信道是否空闲。

    1. 如果空闲:则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息。信道忙则等待。接着接收端会收到RTS,同时会向发送端响应CTS(clear to send)。

      上面的RTS和CTS就能很好解决隐蔽站的问题。假如有A,B,C三个,A,C都要给B发送数据,但是目前是希望A先能和B发送数据。此时A会先给B发送一个RTS,告诉B发送端A要发送数据。B收到RTS之后,就会返回给A一个CTS。逻辑上相当于两个主机此时建立一个连接。如果C此时给B发送数据帧,B会拒收。

    2. 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。

    3. 接收端收到数据帧后,将用CRC循环冗余码来检验数据是否正确,正确则响应ACK帧。

    4. 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。这种重传有上限,具体次数根据系统决定。

    CSMA/CD与CSMA/CA相同点:

    CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。

    CSMA/CD与CSMA/CA不同点:

    1. 传输介质不同:CSMA/CD 用于总线式以太网(有线),而CSMA/CA用于无线局域网(无线)。
    2. 载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化。而CSMA/CA采用能量检测(ED)、载波检测(CS) 和能量载波混合检测三种检测信道空闲的方式。
    3. CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

    4.3 轮询访问介质访问控制

    回顾:

    上面几种方式只有随机访问MAC协议会发生数据帧冲突。

    轮询访问MAC协议常见的有两类:轮询协议、令牌传递协议。

    轮询协议

    原理:主结点轮流"邀请"从属结点发送数据。

    轮询协议

    如上图,主节点会一个个询问四个主机是否具有消息发送,在没有询问到的主机即使有数据也不能发送。询问过程其实就是发送一个数据帧,这个数据帧较短,只是用来询问。

    可以看到这种协议方式不会产生数据冲突。同时一次询问主机会让一台主机占用一个信道,这台主机享用整条信道带宽。

    问题:

    1. 有轮询开销

      如上图有四个主机和一个主节点。如果主机个数很多,主节点就需要多次轮询询问。这个询问时间会有较大的开销。

    2. 等待延迟

      越靠后的主机等待时间越长。

    3. 单点故障

      如果主节点宕机,则整个网络系统都会瘫痪。实际中会建立多个备用主机当主节点,当一个主节点宕机,备用节点可以替代当主节点。

    令牌传递协议

    令牌协议

    上图是令牌协议常用的令牌环网,在逻辑上是环形结构,但在物理上是星型结构。TCU转发器其实就是在传递数据帧时的转发接口,可以传递所有经过的帧,而且为接入栈发送和接收数据提高一个接口。

    这里的令牌是一个特殊格式的MAC控制帧,不含任何信息。可以控制信道的使用,确保同一时刻只有一一个结点独占信道。

    执行原理:

    如上图所示,假如当前令牌环网中所有主机都是空闲的,那么令牌会在网络中一直循环传递,直到传递到有一个主机需要发送数据。在主机拿到令牌后首先要对令牌的标志位进行修改,这个修改意义是将令牌从空闲状态变为使用状态。然后在令牌的控制帧之后加上数据,因此就构成一个令牌数据帧。然后会将令牌发送出去,这个发送过程也是环状发送,没经过一个主机都会检查其中地址,如果地址不对应就会传递给下一个主机,直到发送到目的主机手中。目的主机会复制一份令牌帧,接着传递下一个主机,直到最后令牌回到发送端主机。

    此时发送端主机要检查令牌帧是否出错,如果出错要进行重传,没有出错就会将令牌内的帧回收,并将令牌改回闲置状态。继续传递给下一条主机。之后要发送数据的主机步骤如上。

    所以每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。

    问题:

    1. 令牌开销

      有的时候令牌会在传输过程中消失,此时会重新产生一个令牌。

    2. 等待延迟

      假如主机D在发送数据,但是主机A也要发送数据,此时就要一直等待令牌到自己这里才能发送。

    3. 单点故障

      如果其中一台主机宕机,那么环就会断掉。解决方法是用备用机。

    这种采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。

    介质访问控制总结:

    介质访问控制总结

    5. 局域网基本概念和体系结构

    局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道

    特点:

    1. 覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
    2. 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s10Gb/s)。
    3. 由于覆盖地理范围小,通信延迟时间短,误码率低,可靠性较高。
    4. 各站为平等关系,共享传输信道。
    5. 多采用分布式控制和广播式通信,能进行广播和组播。

    局域网以上特点是由网络拓扑,传输介质与介质访问控制方法,三个要素组成的。

    网络拓扑分为四种:星型拓扑、总线型拓扑、环形拓扑、树型拓扑

    局域网拓扑结构

    局域网按照传输介质可以分为有线局域网和无线局域网。

    有线局域网常用介质:双绞线、同轴电缆、光纤。无线局域网常用介质:电磁波。

    局域网介质访问控制方法:

    1. CSMA/CD

      常用于总线型局域网,也用于树型网络。

    2. 令牌总线

      常用于总线型局域网,也用于树型网络。结合令牌传递和总线网络特点。

      它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。

    3. 令牌环

      用于环形局域网,如令牌环网。

    局域网分类:

    1. 以太网

      以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。

    2. 令牌环网

      物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。由于造价贵,已是"明日黄花"。

    3. FDDI网 (Fiber Distributed Data Interface)

      物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。

    4. ATM网(Asynchronous Transfer Mode)

      较新型的单元交换技术,使用53字节固定长度的单元进行交换。

    5. 无线局域网(Wireless Local Area Network; WLAN)

      采用IEEE 802.11标准。平时的WiFi是无线局网的一种应用。

    可以看到上面很多标准都是IEEE802标准。IEEE 802系列标准是IEEE 802 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

    重要标准有以下几个:

    MAC子层和LLC子层:IEEE802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LC子层和介质访问控制MAC子层。

    LLC子层和MAC子层

    LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。

    MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。

    5.1 以太网

    是局域网技术的一种。以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公 司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD ( 载波监听多路访阎及冲突检测)技术。

    以太网在局域网各种技术中占统治性地位:

    1. 造价低廉(以太网网卡不到100块)
    2. 是应用最广泛的局域网技术;
    3. 比令牌环网、ATM网便宜,简单;
    4. 满足网络速率要求:10Mb/s10Gb/s.

    以太网两个标准:

    1. DIX EthernetV2:第一个局域网产品(以太网)规约。
    2. IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的 以太网标准(帧格式有一丢丢改动)。

    这两个区别在于帧的格式上会有两个字节的微小不同。

    以太网提供无连接、不可靠的服务:

    所以以太网只实现无差错接收(丢弃错误帧),不实现可靠传输。

    以太网传输介质发展:粗同轴电缆细同轴电缆双绞线+集线器。

    以太网拓扑结构发展:物理拓扑刚开始是总线型结构,再后来是星型拓扑结构。

    星型拓扑结构

    星型拓扑是现在以太网最常用的物理拓扑。中间有个物理层的集线器,可以对比特进行简单的转发。也就相当于将主机要发送的数据广播出去。所以使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。

    故以太网拓扑在逻辑上总线型,而物理上是星型。但传统的以太网逻辑上和物理上都是总线型。

    10BASE-T以太网

    10BASE-T以太网是常见的以太网。10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。

    物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。采用曼彻斯特编码。

    10BAASE-T以太网

    使用采用CSMA/CD介质访问控制机制。所以10BASE-T以太网数据帧会发生冲突和碰撞。

    计算机与外界有局域网的连接是通过通信适配器实现的。

    通信适配器

    是在主机箱内部插入的网络接口板,也叫做网络接口卡NIC(network interface card),即网卡。但是现在网卡一般直接嵌入到主板上。

    适配器上装有处理器和存储器(包括RAM和ROM),而ROM上有计算机硬件地址MAC地址

    MAC地址:在局域网中,硬件地址又称为物理地址,或MAC地址。实际上就是标识符,唯一ID。所以每个网卡适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如:02-60-8c-e4-b1-21。

    以太网MAC帧

    最常用的MAC帧是以太网V2的格式。

    以太网MAC帧

    可以看到最上面是网络层的IP数据报,到链路层需要对数据报进行一个封装。对于链路层的封装需要加头(目的地址、源地址、类型)加尾(FCS)。为了使接收端和发送端保持一个接收同步,就需要在MAC层往物理层传递的帧前面插入一个8B的前导码。

    这个前导码前面七个字节叫做前同步码。都是由10组成的。而最后1B最后两位是11。具体意思就是前面1010可以使发送方和接收方能够进行时钟同步。最后一个字节的后两位11就是发送方告诉接收方现在可以准备接收MAC帧了。这个前导码不属于MAC帧。

    以太网MAC帧包括:前面6B是目的地址、之后6B是源地址。目的地址会有三种情况:第一种情况就是单播地址(专有MAC地址),假如要发送给一个固定主机,这个主机的MAC地址就是目的地址。第二种情况目的地址可能是一个广播地址,即全1的地址,这样地址会发送给所有的主机,所有主机看到这样一个地址都会接收下来。第三种情况就是多播地址,了解即可。

    后面还会有2B的类型,类型就是为了指明上面网络层使用的协议,以便把收到的MAC帧数据上交给上一层协议。

    第四个就是数据部分,是最关键的部分。数据部分的长度是可变的(461500)。最后4BFCS就是之前CRC循环冗余检验的序列。

    与IEEE 802.3的区别:

    1. IEEE802.3中MAC帧第三个字段是长度/类型
    2. IEEE802.3规定当长度/类型字段值小于0x0600时,数据字段必须装入LLC子层。

    高速以太网

    速率100Mb/s的以太网称为高速以太网。主要包括:

    1. 100BASE-T以太网

      在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。

      支持全双工和半双工,可在全双工方式下工作而无冲突。这里全双工形式如下:

      全双工

      可以看到星型拓扑中间节点变为交换机,每一个交换机端口就是一个冲突域。因此一个主机在一个冲突域中既能发送数据又可以接收数据不会发生冲突。所以在全双工情况下不使用CSMA/CD协议。

    2. 吉比特以太网

      在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。

    3. 10吉比特

      10吉比特以太网在光纤,上传送10Gb/s信号。采用介质是光纤。只支持全双工,无争用问题。

    以太网总结:

    以太网总结

    5.2 无线局域网

    先来看一下IEEE802.11标准:IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

    IEEE标准

    上图是IEEE802.11的多个标准,对该标准进行完善和扩充。WiFi协议需要满足802.11b和802.11g所定义的标准。

    802.11的MAC帧头格式:因为MAC帧的长度较长,且IEEE802.11当中MAC帧的各个字符种类很多,所以这里只讲述MAC帧头。

    MAC帧头

    假如现在有两台主机AB要进行通信,主机A附近有一个基站AP1B附近有一个基站叫做AP2。这里的AP即指无线接入点也称作基站。此时AB发消息,这个消息会先通过电磁波发给AP1,之后AP1再发给AP2,之后AP2再以电磁波形式发送给主机B

    上图是一个MAC帧头,解释如下:

    上面是IEEE802.11一种帧类型,还有以下几种:

    MAC帧头格式

    刚才四种地址帧格式就是WDS(无限分布式系统)。前面三种格式只有三个地址。BSSID是基站地址。

    上面WDS就是不同服务集内的两个移动站之间的通信(漫游)。IBSS就是一个服务集内的移动站点不通过基站的直接通信。To AP就是服务集内的移动站点向基站的通信。From AP 就是服务集内基站向移动站的通信。

    无线局域网分类:

    1. 有固定基础设施无线局域网

      有固定基础设施无线局域网

      可以看到假如一个主机要给基站内部的主机通信,实现起来很简单。发送端只用发送数据帧给基站,基站根据数据帧找到目的主机发送即可。因此一个基本覆盖范围就是基本服务集(BSS)。所有主机在本BSS中都可以进行直接通信。

      但是有两台基本服务集,且两台主机要进行跨区域通信,此时就要借助分配系统DS。假如上图左边A主机要给右边BSS中的B主机进行通信。A先将数据发送给本地基站,所有基站都会接入在有线的线缆上,即分配系统。数据会经过DS分配到目的主机B附近的基站中,在由主机B所在本地基站转发给主机B。这就实现了有线和无线结合的通信过程。

      这样几个基本服务集(BSS)组合在一起就形成一个扩展服务集ESS。如家庭网络WiFi名叫服务集标识符,每一个WiFi都是一个无线接入点,对应一个基站。

    2. 无固定基础设施无线局域网的自组织网络

      无固定基础设施无线局域网

      指没有任何转发设备,如集线器、转发器、路由器、基站等设备。只有一些主机组成一个网络。每一台主机都快有充当主机以及路由器的功能,即每台主机既可以发送数据,也可以帮忙转发数据,各个结点之间的地位相同。

    6. VLAN基本概念与原理

    传统局域网有一定的局限性:

    1. 缺乏流量隔离:即使把组流量局域化道一个单一交换机中,广播流量仍会跨越整个机构网络(ARP、RIP、DHCP协议)。即一个主机发送广播帧,其他主机都可以收到。

      传统局域网局限

    2. 管理用户不便:如果一个主机在不同组间移动,必须改变物理布线,连接到新的交换机上。

    3. 路由器成本较高:局域网内使用很多路由器花销较大。

    解决以上问题需要引入VLAN概念:虚拟局域网VLAN (Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组有某些共同的需求。每个VLAN是一个单独的广播域/不同的子网。

    VLAN划分

    经过VLAN划分,一个局域网中可以划分出两个广播域。而且不仅可以在一个交换机所连接的主机上进行划分,可以在一个大的局域网中进行划分。如上图,每一个局域网内部有划分为两个虚拟机局域网VLAN1和VLAN2。

    VLAN实现:

    VLAN实现

    如上图,交换机四个端口连接了四台主机。1,2端口连接的A,B主机处于VLAN1中。3,4端口连接的C,D主机处于VLAN2中。此时让A主机和C主机进行通信,即处于两个不同局域网设备进行通信,现在不能直接进行通信,因为进行虚拟局域网划分后,本质上就是两个子网。不同子网需要借助交换机或者路由器才能实现通信。交换机内部有一个转发表,基于MAC地址和端口映射关系:

    VLAN实现映射表

    当前A主机连接在1端口,B主机连接在2端口,如上图所示。除此之外交换机还有虚拟局域网功能,所以还有一个VLAN表:

    VLAN表

    上图的VLAN ID指的是处于哪个虚拟局域网当中。端口与之前一样。假如A发送数据给B主机,也就是1号端口对应的是VLAN ID=1。此时交换机直到主机A数据只能发送给VLAN1中其他主机,即主机B。具体过程是A数据到交换机,交换机查看转发表中B对应的端口,当前是2,交换机会到VLAN表中查看2号端口对应的VLAN ID是不是和A对应在同一个虚拟局域网中,因此就可以直接转发给主机B

    以上这种实现方法是基于接口的VLAN技术。同时还有基于MAC地址的VLAN技术:

    MAC交换技术

    可以看到交换机VLAN表变了,右边变为MAC地址。原理同上。

    上面是交换机内部虚拟局域网通信,下面看交换机和交换机之间如何进行通信:

    VLAN多个交换机之间通信

    假如A发送数据给E,首先A会准备好一个数据帧,到了交换机1中会知道这个帧从VLAN1过来,因此会在帧上附加一个字段,即tag=1,表示的是当前数据帧属于VLAN1的。接着这个新的数据帧会通过链路发送给交换机2。之后交换机2会将受到的数据帧分析,发现这个数据帧属于VLAN1,接下来就只会发给VLAN1当中的一个主机,在结合其他一些MAC地址字段等就知道要发送给VLAN1的E主机。

    上面增加标签tag字段其实就是对数据帧进行改变,再多插入4字节的VLAN标记。

    IEEE802.1Q帧

    VLAN标记的前两个字节表明是IEEE 802.1Q帧,接下来4位没用,后面12位是VLAN标识符VID,唯一表示了该以太网帧属于哪个VLAN。

    注意:

    1. VID的取值范围为04095,但04095都不用来表示VLAN,因此用于表示VLAN的有效VID取值范围为14094
    2. IEEE 802.1Q帧是由交换机来处理的,而不是由用户主机来处理的。(即主机和交换机之间只交换普通的以太网帧)

    所以可以知道A和E之间可以实现访问,而对于A和D、H之间不能实现访问控制,因为不在一个虚拟局域网内。

    注意:虚拟网络建立在网络交换机之上,它以软件方式来实现逻辑工作组的划分与管理。

    7. 广域网及其相关协议

    广域网(WAN, Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

    广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

    广域网

    如上图,中间是大型广域网,旁边是连接两个局域网,从而实现相隔很远的局域网的互连。中间连接结点是结点交换机,是链路层设备,该设备和路由器功能很像,但要注意结点交换机只能在单个网络中转发分组,路由器可以在多个网络之间转发分组。

    广域网和局域网一大区别是:广域网所覆盖的网络结构体系层次从链路层一直到网络层。但是局域网只覆盖链路层和物理层,这两个层次。并且局域网普遍采用多点接入技术,广域网通常采用点对点,一个发送端一个接收端通过链路相连这样一种全双工或半双工通信模式。广域网强调资源共享,局域网强调数据传输。

    目前最常用两种广域网协议是:PPP协议和HDLC协议

    7.1 PPP协议

    点对点协议PRP(Pont-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。PPP协议和之后要学习的HDLC协议都只支持全双工链路。

    PPP协议应满足的要求:

    1. 简单

      对于链路层的帧, 无需纠错,无需序号,无需流量控制。

    2. 封装成帧

      要在帧头和帧尾加上帧定界符

    3. 透明传输

      与帧定界符一样比特组合的数据应该如何处理:异步线路(逐个字节发送)用字节填充,同步线路(一位一位比特发送)用比特填充。

    4. 多种网络层协议

      封装的IP数据报可以采用多种协议。

    5. 多种类型链路

      要满足:串行/并行链路, 同步/异步链路,电/光链路等。

    6. 差错检测

      采用CRC循环冗余,发现错误直接丢弃帧即可。

    7. 检测连接状态

      检测链路是否正常工作。

    8. 最大传输单元

      在PPP协议帧中,数据部分是上层交付下来的IP数据报,所以对于这样的数据部分有一个最大传送单元要求MTU,这个MTU不超过1500B。

    9. 网络层地址协商

      要知道通信双方的网络层地址。即PPP协议需要满足一个通信双方可以通过一些协议来确定双方网络层地址是多少。

    10. 数据压缩协商

      PPP发送数据时,需要对数据进行压缩。

    PPP协议无需满足要求:

    1. 纠错

      只需要检测错误即可

    2. 流量控制

      交给上层负责流量控制

    3. 序号

      无需对帧编号

    4. 不需要支持多点线路

      即PPP协议只需要满足点对点之间的连接过程即可。

    PPP协议三个组成部分(PPP协议实现三个功能):

    PPP协议工作原理:

    PPP协议连接

    如上图,首先设备之间无链路,即还没有连上网,先要点开宽带连接输入账号密码,如果账号密码正确就相当于建立好了一个物理链路。这个时候通过LCP将物理链路构造成一个LCP链路,接着LCP链路再经过NCP配置协商,形成一个NCP链路。

    PPP协议帧格式:

    PPP帧格式

    可以看到PPP帧是以字节为单位的,第一个字节和最后一个字节是7E,由十六进制表示。这两个字段就是标志字段,也就是帧定界符。当然也有可能在数据部分就存在八位和帧定界符一样导致出现歧义,这个时候为了实现透明传输就需要插入一个转义字符7D。只要在数据信息部分出现帧定界符,就在其前面插入一个转义字符,到了接收端只需要将转义字符去掉即可。

    第二部分A代表地址字段,这里的地址字段用FF表示。与C字段一样,设计之处知道现在并没有赋予任何意义。所以A,C字段并没有携带PPP帧的任何有用信息。

    协议部分用于标识这个IP数据报或者说信息部分是什么类型,类型可能是:IP数据报、LCP的数据、网络层控制数据等。

    最后的FCS就是为了实现差错检测,采用CRC循环冗余检验算法安排的2B检验序列。

    PPP协议帧总结

    所以可以看到在PPP协议中帧格式是以字节为单位的,所以传输的数据都是整数个字节。因此PPP协议是面向字节的协议。

    7.2 HDLC协议

    高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。

    数据报文可透明传输,用于实现透明传输的"0比特插入法"易于硬件实现。即遇到51就插入一个0。与PPP协议不同之处在于这里PPP协议在透明传输上还采用字节填充,即数据部分出现歧义用转义字符。

    采用全双工通信。所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。

    HDLC的站:有主站、从站、符合站。

    根据这三种站就有三种数据操作方式:

    1. 正常响应方式

      假如从站要发送消息,要先经过主站同意。

    2. 异步平衡方式

      每一个站都可以进行对别的栈的数据传输。每个站都是平等的地位。

    3. 异步响应方式

      从站可以不经过主站同意就可以进行数据传输。

    HDLC帧格式:

    HDLC帧格式

    首位都增加一个标志符字段,而且标志符字段都是一样的二进制数01111110。因此如果在透明传输区间有相同比特流形式,就在当中插入一个0,即51添加10

    地址为A就取决于三种数据操作方式,如果使用正常响应方式和异步响应方式,地址位填充的都是从站的地址。但是如果是异步平衡方式填充的是对应站(应答站)地址。

    控制C决定了帧的类型:

    1. 信息帧(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认。
    2. 监督帧(S)第一位是1,第二位是0, 用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。
    3. 无编号帧(U) 第一位是1,第二位是1, 用于提供对链路的建立、拆除等多种控制功能。

    PPP协议和HDLC协议相同点:

    PPP协议和HDLC协议不同点:

    PPP协议和HDLC协议不同点

    可靠传输一般交给传输层。因为现在对于网络速率要求比较高,如果在链路层和网络层还要进行差错检测以及纠正的话,这样花费时间和延迟就更高。所以一般情况下用PPP协议多。

    PPP协议和HDLC协议总结:

    PPP协议和HDLC协议总结

    8. 链路层设备

    根据之前的学习可以知道主机和集线器之间的距离不能很远,一把不超过100m,如果超过100m失帧就非常严重,难以恢复。所以为了能使距离远的主机之间进行通信就要在物理层将这个以太网进行扩展。

    第一种方式就是采用光纤方式,由于光纤信号损耗很小,所以可以采用光纤扩展以太网范围,使得两台主机通信的距离可以变得更远。

    物理层扩展以太网

    如上图,光纤需要有一个调制器和解调器,将电信号转换为光信号,在光纤上传输,之后再将光信号通过解调器转换为电信号传给集线器

    第二种方法就是利用集线器将很多集线器再组合起来,这样每一个集线器所构成的区域就是冲突域。冲突域指的是在物理层设备所连接的主机之内进行通信的话,同一时间只能有一台主机发送信息。

    主干集线器

    这样做的好处在于,可以实现跨域通信,一台主机可以和很远另一台在主干集线器下的设备进行通信。同时扩大了以太网地理范围。但是这样也有缺点,原本冲突域内只有四台主机,发生冲突可能性比较小。但是当前主干集线器导致冲突增加。因此导致实际通信效率变低。

    为了实现冲突小,而且能扩大以太网范围,可以在链路层对以太网进行扩展。主要使用网桥和交换机。

    8.1 网桥

    网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

    与集线器区别是,集线器会通过所有端口转发出去,而网桥会选择端口进行转发,如果端口都不能转发会直接丢弃掉。

    网桥

    如上图,网桥将几个以太网进行连接,形成一个更大的以太网。而原来的每一个以太网就是一个冲突域。或称为网段。

    网桥冲突域

    网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。

    使用网桥优点:

    1. 过滤通信量,增大吞吐量。

      可以将各个冲突域分割开,如上图A和B通信同时E也能和F进行通信。

      假如每一个网段数据传输速率(带宽)是10Mb/s。则三个网段总共吞吐量就是30Mb/s。

    2. 扩大了物理范围。

    3. 提高了可靠性。

      当网络出现故障时,通常只会一个网段受到影响。

    4. 可互连不同物理层、不同MAC子层和不同速率的以太网。

    网桥可以分为两类:透明网桥和源路由网桥。

    8.2 以太网交换机

    又叫多端口多接口网桥。

    透明网桥

    随着技术发展,每个网桥接口变得越来越多,这样一个网桥就变为以太网交换机。以太网交换机通常会有十几个端口(接口)。每一个端口都可以连接集线器或者直接连在主机上。

    以太网交换机

    与网桥原理一样,每一个端口都是一个冲突域。

    以太网交换机2

    但是以太网独占传输媒体带宽。假如上图中一个冲突域的带宽是10Mb/s。集线器下有四台主机,那么每个主机能分到的带宽是2.5Mb/s。但是如果以太网交换机带宽是10Mb/s,那么每个集线器,集线器下的主机都是10Mb/s。

    以太网交换机的两种交换方式:直通式交换机和存储转发式交换机。

    无论用哪一种交换方式最终都是希望交换机能够找到一个转发的端口,才把这个数据帧转发出去。而交换机转发机制与网桥自学习功能几乎一致,唯一不同的是交换机接口有多个。

    交换机自学习功能

    此时如果A要发送地址给B,则数据帧通过1号接口输入,交换机会查询转发表中是否有源地址A对应的接口值,没有则加入该信息。

    交换机自学习功能2

    接着交换机查询目的地址B有没有在转发表中,没有则交换机会通过广播从2,3,4号端口将数据帧发送出去,此时B接收到数据帧,而D,C会将数据帧丢弃。

    之后如果B要发送数据给A,交换机会通过2号接口将B源地址记录到转发表中,之后查询目的地址A,查到对应的接口是1,则数据帧直接从1号接口转发出去。

    交换机自学习功能3

    转发表中每一个表项都会设置一个生存周期,当超过生存周期就会被删除,这是为了及时刷新转发表。

    冲突域与广播域:

    冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。

    广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

    冲突域与广播域

    例子:下图有几个冲突域与广播域

    冲突域与广播域2

    一个广播域,四个冲突域(物理层设备集线器无法分割冲突域)。

    链路层设备总结:

    链路层设备总结