一、数据链路层功能概述
1.1 数据链路层基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路
帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
1.2 数据链路层功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。(有连接一定有确认!)
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。(控制发送方)
功能五:差错控制(帧错/位错)
二、封装成帧&透明传输
2.1 封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的边界)
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。
2.2 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层传输的透明的。
2.2.1 字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
2.2.2 字符填充法
1.当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
2.当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输
2.2.3 零比特填充法
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
2.2.4 违规编码法
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
三、差错控制
概括来说,传输中的差错都是由于噪声引起的。
全局性
1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性
2.外界特征的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
链路层为网络层提供服务:无确认无连接服务(通信质量好,有线传输链路),有确认无连接服务(通信质量差的无线传输链路),有确认面向连接服务(通信质量差的无线传输链路)。
物理层编码和数据链路层编码差别:
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
冗余编码:
在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
3.1 检错编码——奇偶校验码
奇偶校验码特点:
只能检查出奇数个比特错误,检错能力50%
3.2 检错编码——CRC循环冗余码
接收端检错过程:
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
1.余数为0,判定这个帧没有差错,接受。
2.余数不为0,判定这个帧有差错(无法确定到位),丢弃。
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
在数据链路层仅仅使用循环冗余码检验CRC差错检测技术,只能做到对帧的无差错接受,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为由差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
3.3 纠错编码——海明码
海明距离:
两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
3.4 结论
四、流量控制与可靠传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制的方法:
可靠传输:发送端发啥,接收端收啥。
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
滑动窗口解决:
- 流量控制(收不下就不给确认,想发也发不了)
- 可靠传输(发送方自动重传)
4.1 结论脑图1
4.2 停止-等待协议
4.2.1 停等协议——无差错情况
4.2.2 停等协议——有差错情况
停等协议性能分析:
信道利用率:
4.2.3 结论
4.3 滑动窗口协议
4.3.1 后退N帧协议中的滑动窗口
GBN发送方必须响应的三件事:
GBN接收方要做的事:
GBN运行流程:
滑动窗口长度:
GBN协议重点总结:
性能分析:
总结:
4.3.2 选择重传协议(SR)
SR发送方必须响应的三件事:
SR接收方要做的事
运行中的SR:
滑动窗口长度:
SR协议重点总结:
总结:
五、介质访问控制
传输数据使用的两种链路
信道划分介质访问控制(MAC Multiple Access Control)协议:
- 基于多路复用技术划分资源
- 网络负载重:共享信道效率高,且公平
- 网络负载轻:共享信道效率低
随机访问MAC协议:(只有在它这里会发生冲突)
- 用户根据意愿随机发送信息,发送信息时可独占信道带宽
- 网络负载重:产生冲突开销
- 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
轮询访问MAC协议/轮流协议/轮转访问MAC协议:
- 既要不产生冲突,又要发送时占全部带宽。
- 分为轮询协议和令牌传递协议
5.1 信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术:把多个信号组合在一条物理信道上传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
5.1.1 频分多路复用FDM
5.1.2 时分多路复用TDM
改进的时分复用——统计时分复用STDM
5.1.3 波分多路复用WDM
5.1.4 码分多路复用CDM
5.2 动态分配信道
5.2.1 ALOHA协议
纯ALOHA协议
时隙ALOHA协议
1.纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2.纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
5.2.2 CSMA协议(载波监听多路访问协议CSMA carrier sense multiple access)
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
5.2.2.1 1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持
1-坚持CSMA思想:
- 如果一个主机要发送信息,那么它先监听信道。
- 空闲则直接传输,不必等待。
- 忙则一直监听,直到空闲马上传输。
- 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
5.2.2.2 非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想:
- 如果一个主机要发送消息,那么它先监听信道
- 空闲则直接传输,不必等待
- 忙则等待一个随机的时间之后再进行监听
优点:采用随机的重发延迟时间可以减少冲突发生的可能性
缺点:可能存在大家都在延误等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低
5.2.2.3 p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理
p-坚持CSMA思想:
- 如果一个主机要发送消息,那么它先监听信道
- 空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输
- 忙则持续监听直到信道空闲再以p概率发送
- 若冲突则等到下一个时间槽开始再监听并重复上述过程
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
5.2.2.4 总结
5.2.3 CSMA/CD协议(载波监听多点接入/碰撞检测CSMA/CD carrier sense multiple access with collision detection)
CS:载波监侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。(半双工网络)
5.2.3.1 传播时延对载波监听的影响
5.2.3.2 如何确定碰撞后的重传时机?
使用截断二进制指数规避算法
- 1.确定基本退避(推迟)时间为争用期 2 τ 2\tau 2τ
- 2.定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。
- 3.从离散的整数集合[0,1,…, 2 k − 1 2^k-1 2k−1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即 2 r τ 2r\tau 2rτ
- 4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减少发生碰撞的概率,有利于整个系统的稳定。
5.2.3.3 最小帧长问题
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
5.2.3.4 总结
5.2.4 CSMA/CA协议(载波监听多点接入/碰撞避免CSMA/CA协议 carrier sense multiple access with collision avoidance)
CSMA/CA协议工作原理:
- 发送数据前,先检测信道是否空闲。
- 空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
- 接收端收到RTS后,将响应CTS(clear to send)
- 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多少数据)。
- 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧
- 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
1.预约信道
2.ACK帧
3.RTS/CTS帧(可选)
5.2.4.1 CSMA/CD与CSMA/CA协议异同
相同点:
CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲时,才能进行接入。
不同点:
- 1.传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
- 2.载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
- 3.CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
5.4.5 轮询访问介质访问控制
5.4.5.1 轮询协议
问题:
- 1.轮询开销
- 2.等待延迟
- 3.单点故障
5.4.5.2 令牌传递协议
令牌:(令牌环网无碰撞)
- 一个特殊格式的MAC控制帧,不含任何信息
- 控制信道的使用,确保同一时刻只有一个节点独占信道
每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
- 1.令牌开销
- 2.等待延迟
- 3.单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
六、局域网基本概念和体系结构
6.1 局部网
局域网:简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点:
- 1.覆盖的地理范围较小,只在一个相对的局域范围内联,如一座或集中的建族群内。
- 2.使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)
- 3.通信延迟时间短,误码率低,可靠性较高。
- 4.各站为平等关系,共享传输信道。
- 5.多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网路拓扑、传输介质与介质访问控制方法。
6.1.2 局域网拓扑结构
常使用总线型拓扑作为实际的拓扑的结构。
6.1.3 局域网传输介质
6.1.4 局域网介质访问控制方法
1.CSMA/CD 常用于总线型局域网,也用于树型网络
2.令牌总线 常用于总线型局域网,也用于树型网络(它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力)
3.令牌环 用于环形局域网,如令牌环网
6.1.5 局域网的分类
6.1.6 IEEE 802标准
6.1.7 MAC子层和LLC子层
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
6.1.8 总结
6.2 以太网
以太网指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
以太网在局域网各种技术中占统治性地位:
- 1.造价低廉(以太网网卡不到100块)
- 2.是应用最广泛的局域网技术
- 3.比令牌环网、ATM网便宜,简单
- 4.满足网络速率要求:10Mb/s~10Gb/s
以太网两个标准:
DIX Ethernet V2:第一个局域网产品(以太网)规约。
IEEE 802.3: IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)
802.3局域网=以太网
以太网提供无连接、不可靠的服务
无连接:发送方和接收方之间无“握手过程”。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
6.2.1 以太网传输介质与拓扑结构的发展
6.2.2 10BASE-T以太网
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。
采用曼彻斯特编码。
采用CSMA/CD介质访问控制。
6.2.3 适配器与MAC地址
计算机与外界有局域网的连接时通过通信适配器的。
网络接口板
网络接口卡NIC(network interface card)
NOW,不再使用单独网卡
适配器上装有处理器和存储器(包括RAM和ROM)
ROM上有计算机硬件地址MAC地址
在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。
6.2.4 以太网MAC帧
最常用的MAC帧是以太网V2的格式。
与IEEE 802.3的区别:
- 1.第三个字段是长度/类型
- 2.当长度/类型字段值小于0x0600时,数据字段必须装入LLC子层
6.2.5 高速以太网
速率 ≥ 100 M b / s \geq100Mb/s ≥100Mb/s的以太网称为高速以太网。
- 1.100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。支持全双工和半双工,可在全双工方式下工作而无冲突
- 2.吉比特以太网
在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。 - 3.10吉比特
10吉比特以太网在光纤上传送10Gb/s信号。只支持全双工,无争用问题。
6.2.6 结论
6.3 无线局域网
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
6.3.1 802.11的MAC帧头格式
6.3.2 无线局域网的分类
- 1.有固定基础设施无线局域网
- 2.无固定基础设施无线局域网的自组织网络
6.4 VLAN基本概念与基本原理
6.4.1 传统局域网的局限
- 缺乏流量隔离:即使把组流量局域网到一个单一交换机中,广播流量仍会跨越整个机构网络(ARP、RIP、DHCP协议)
- 管理用户不便:如果一个主机在不同组件移动,必须改变物理布线,连接到新的交换机上。
- 路由器成本较高:局域网内使用很多路由器花销较大。
6.4.2 VLAN基本概念
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组有某些共同的需求。每个VLAN是一个单独的广播域/不同的子网。
6.4.3 VLAN实现
- 基于接口的VLAN技术
- 基于MAC地址的VLAN技术
- 交换机之间的VLAN实现
七、广域网及相关协议
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
7.1 PPP协议
7.1.1 特点
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
只支持全双工链路
7.1.2 要求
简单 对于链路层的帧,无需纠错,无需序号,无需流量控制。
封装成帧 帧定界符。
透明传输 与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
多种网络层协议 封装的IP数据报可以采用多种协议。
多种类型链路 串行/并行,同步/异步,电/光…。
差错检测 错就丢弃。
检测连接状态 链路是否正常工作。
最大传送单元 数据部分最大长度MTU。
网络层地址协商 知道通信双方的网络层地址。
数据压缩协商
无需满足的要求:
纠错
流量控制
序号
不支持多点线路
7.1.3 ppp协议的三个组成部分
1.一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
2.链路控制协议LCP:建立并维护数据链路连接。身份验证
3.网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
7.1.4 ppp协议的状态图
7.1.5 ppp协议的帧格式
7.2 HDLC协议
7.3 PPP协议&HDLC协议
7.4 总结
八、链路层设备
8.1 扩展以太网
8.1.1 物理层扩展以太网
8.1.2 链路层扩展以太网(使用网桥&交换机)
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确认将该帧转发到哪一个接口,或者是把它丢弃(即过滤)
网桥优点:
- 1.过滤通信量,增大吞吐量
- 2.扩大了物理范围
- 3.提高了可靠性
- 4.可互连不同物理层、不同MAC子层和不同速率的以太网。
8.2 网桥分类
8.2.1 透明网桥
透明网桥:“透明”指以太网的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备——自学习。
8.2.2 源路由网桥
源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
8.3 多接口网桥——以太网交换机
8.3.1 以太网交换机的两种交换方式
8.3.2 交换机的自学习功能
8.4 冲突与和广播域
8.5 结论
九、第三章总结