链路层
一.基本概念
- 节点:主机,路由器等
- 网络中两个节点之间的物理通道,链路的传输介质主要由双绞线,光纤和微波组成,分为线链路与无线链路。
- 数据链路:网络中两个节点之间的逻辑通道,将实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
- 帧:链路层的协议数据单元,封装网络层数据报。
- 数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。
二.功能
- 在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将来自网络层的数据可靠(安全)的传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务(有连接一定有确认)。
- 功能二:链路管理,即连接的建立,维持,释放(面向连接的服务)。
- 功能三:组帧。
- 功能四:流量控制。
- 功能五:差错控制(帧错/位错)。
1.封装成帧
- 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从而识别帧的开始与结束。
- 首部(SOH:Start of Header)和尾部(EOT:End of Transmission)包含着许多的控制信息,它们的一个重要作用:帧定界(确定帧的界限)。
- 帧同步:接收方应当从接收到的二进制比特流中区分出帧的起始和终止。
- 帧长:自帧首部开始至帧尾部结束称为数据链路层的帧长。
- 组帧(封装成帧)方法:字符计数法;字符(节)填充法;零比特填充法;违规编码法。
透明传输
- 是指不管所传数据是什么样的比特组合,都能够在链路上传输。因此,链路层就“看不见”妨碍数据传输的东西。
- 当所传输数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采用适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
- 字符计数法:帧首部使用一个计数字段(第一个字节,8bit)来标明帧内字符数(计数包含该字段在内)。
- 字符填充法:首尾各使用一个字节的数据。当传送的帧由文本文件组成时(文本文件的字符都是从键盘上输入即ASCII码)。不管从键盘中输入什么字符都可放进帧中传输,即透明传输。当传送的帧由非ASCII码文本文件组成时(二进制代码或音频等),就要采用字符填充方法实现透明传输。如果在数据中间出现控制信息字符时,在其前添加转义字符(ESC),如果遇到与转义字符相同的字节字符时,还是需要向其添加转义字符。然后在接收端删除掉即可。
- 零比特填充法:在发送端扫描整个信息字段,只要出现连续5个1,就立即填入1个0;在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描,发现连续5个1时,就删除后边的0。保证了透明传输,可传输任意比特组合,而不会引起对帧边界的判断错误。
- 违规编码法:在物理层比特编码时实现透明传输。由于在曼彻斯特二进制编码中一个码元使用两种不同的电位,那么**使用“高-高”,“低-低”**这种违规编码可以实现界帧的起始和终止。
- 由于字节计数法中Count字段的脆弱性(其值),和字符填充法的复杂性和不兼容性,目前较普遍使用的时比特填充和违规编码法。
2.差错控制
差错从何而来?
- 传输中的差错都是有噪声引起。
- 全局性:线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的,解决办法是提高信噪比来减少或避免干扰。
- 局部性:外界特定的短暂原因造成的冲击噪声,解决办法是利用编码技术解决。
差错
- 位错(比特错):比特位出错(1变成0或0变成1)
- 帧错:多个帧之间出现丢失,重复或失序
差错控制(检错)
- 检错编码:奇偶校验码;循环冗余码CRC
- 纠错编码:海明码
- 编码:数据链路层的编码与物理层的数据编码调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步问题(栗子:曼彻斯特编码);而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现查看一组二进制比特串在传输过程中是否出现了差错。
- 冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵循不变的原则。接收端根据收到的码字使否符合原规则,从而判断是否出错。
- 奇偶校验码:指的是n-1位信息元。分为奇校验码和偶校验码,奇指的是1的个数位奇数个,如果1的个数位偶数个,则给其首部添加1。只能检测出奇数个比特错误,检错能力为50%。
eg:如果一个字符s的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输字符后,哪种错误不能检测?D
A.11000011 B.11001010 C.11001100 D.11010011
- 循环冗余码CRC:最终发送的数据是要发送的数据+帧检验序列FCS。
eg:要发送的数据是1101 0110 11,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是什么?
要传的数据 生成多项式 冗余码(帧检验序列FCS)
1101 0110 11
计算冗余码:
1)加0 假设生成的多项式H(x)的阶为r,则加r个0。
10011表示生成的多项式为
1*x^4 + 0*x^3 + 0*x^2 + 1*x^1 + 1*x^0
x^4 + x^1 + x^0 = x^4 + x^1 + 1 阶为4,
多项式为n位,则阶为n-1
2)模2除法:数据加0后除以多项式,余数为冗余码(FCS/CRC检验码)
异或:同0异1
1101 0110 11 0000 / 10011
计算得余数为1110,则最终发送数据为1101011011 1110
- 循环冗余码接收端检测:将收到的每一个帧都除以相同的除数,检验余数r,余数为0,则此帧无差错接收数据;余数不为0则有差错,丢弃数据。
- FCS的生成以及接收端CRC检验都是由硬件实现,处理迅速,因此不会延误数据传输。
- 在数据链路层仅使用循环冗余检验CRC差错技术,只能做到对帧的无差错接受,即链路层接收到的帧,都能以非常接近于1的概率认为这些帧在传输过程中无差错。接收端丢弃的帧虽然曾收到过,但最终还是因为有差错而被丢弃。凡是接收端数据链路层接收的帧均无差错。
- 可靠传输:数据链路层发送什么,接收端就收到什么;链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
差错控制(纠错)
- 海明码:发现双比特错,纠正单比特错,工作原理即动一发而牵全身。
- 工作流程:确定校验码位数r,确定校验码和数据的位置,求出校验码的值,检错并纠错。
3.流量控制
- 较高的发送速度与较低的接受能力不匹配,会造成传输出错,因此流量控制是数据链路层的一项重要工作。
- 链路层的流量控制是点对点的,而传输层的流量控制是端到端,链路层的流量控制手段即接收方收不完就不回复确认信息(确认帧);而传输层是接收端给发送端发送一个窗口公告。
控制方法
停止-等待协议
- 为什么需要停止-等待协议?
- 因为在链路上除了比特出错,底层信道还会出现丢包问题(丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因会导致数据的丢包);为了实现流量控制。
- 研究停止-等待协议的前提?
-
虽然现在使用全双工通信方式,但是为了讨论问题方便,仅考虑一方发送数据,一方接受数据。
-
每发送完一个帧就停止发送,等待对方的确认,收到确认后再发送下一个帧。是一种特殊的窗口协议,发送窗口和接收窗口大小都为1;该方法明显效率比较低。
选择重传协议SR
- 设置单个确认,同时加大接收窗口,设置接收缓存,缓存达到乱序的帧。
- 在链路层,发送窗口和接收窗口个数为固定值。
- 可靠传输:发送端发送什么数据,接收端就接收什么数据。
- 流量控制:用来控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
- 滑动窗口:解决流量控制(收不下就不给确认,发送方就发送不了数据)和可靠传输(发送方自动实现重传)。
后退N帧协议GBN
- 必须增加序号范围;发送方需要缓存多个分组
- 滑动窗口协议,分为后退N帧协议(GBN),选择重传协议(SR)。GBN发送窗口>1,接收窗口=1;SR发送窗口和接收窗口都大于1。
- 发送窗口:发送方维持一组连续的允许发送帧的序号。
- 接收窗口:接收方维持一组连续的允许接收帧的序号。
三.两种信道
1.传输数据的两种链路
- 点对点:两个相邻节点通过一个链路相连,没有第三者;应用:PPP协议,常用于广域网,比如两个人使用网络设备通话。
- 广播式:所有主机共享通信介质。应用:早期的总线以太网,无线局域网,常用于局域网,比如某信某音的群消息,多个对讲机通话等。典型的拓扑结构为总线型,星型(逻辑总线型,比较灵活)。
2.介质访问控制(Multiple Access Control)
- 即采取一定的措施,使得两对节点之间的相互通信不会发生干扰。
静态划分
- 信道划分介质访问控制:将使用介质的每个设备与来自同一信道的其他设备的通信隔离开,把时域和频域资源合理的分配给网络上的设备。
- 多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
- 频分多路复用FDM:用户在分配到一定频带后,在通信过程中自始至终都占用此频带。所有用户在相同时间占用不同的带宽(频率带宽)资源。该方法充分利用介质带宽,系统效率较高,技术较为成熟,实现容易。并行
- 时分多路复用TDM:将时间划分为一段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。TDM帧是在物理层传送的比特流所划分的帧,标志为一个周期。并发
- 波分多路复用WDM:即光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各个信号之间互不干扰,最后再用波长分解复用器将各路波长分解出来。
- 码分多路复用CDM:码分多址(CDMA)是码分复用的一种方式。将1个比特分为多个码片/芯片(chip),每一个站点被指定为一个唯一的m位芯片序列。我们在发送1时主机(站点)发送芯片序列,发送0时发送芯片序列反码(通常将0写为-1)。多个站点同时发送数据时,要求各个站点芯片序列相互正交。各路数据在信道中通过线性相加来合并;合并的数据通过和源站规格化内积来实现分离。
- 总特点:网络负载重时,共享信道效率高且公平;网络负载轻时,共享信道效率低。
动态划分
- 动态媒体接入控制/多点接入;信道并非在用户通信时固定分配给用户;所有用户可随机发送信息,发送信息时可占用全部带宽。
- 轮询访问介质访问控制:令牌传递协议
- 随机访问介质访问控制:ALOHA协议,CSMA协议,CSMA/CD协议,CSMA/CA协议。
- 总特点:网络负载重时,产生冲突开销;网络负载轻时,共享信道效率高,单个节点可利用信道全部带宽。
ALOHA协议
- 纯ALOHA协议:不监听信道,不按时间槽发送,随即发送。如果发生冲突,接收方就会在检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。超时后等待随机时间再重传。
- 时隙ALOHA协议:将时间分为若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制了想发就发的随意性。
- 纯ALOHA协议比时隙ALOHA协议吞吐量更低,效率更低。
- 纯ALOHA协议发送自由,时隙ALOHA协议只有在时间片开始时才能发送。
CSMA协议(carrier sense multiple access)
- CS:载波监听,在每一个站点发送数据之前要检测一下总线上是否有其他计算机在发送数据。
- MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
- 协议思想:发送帧之前,对信道进行监听。信道空闲时,发送完整帧;信道忙时,推迟发送。
- 1-坚持CSMA:在信道空闲时马上发送,信道忙时,继续坚持监听。
- 非坚持CSMA:信道空闲时马上发送,信道忙时,放弃监听并等待一个随机时间再监听。
- p-坚持CSMA:p概率马上发,1-p概率等到下一个时隙再发送;当信道忙时,放弃监听等一个随机时间再监听。
轮询访问
- 总特点:既不产生冲突,有要发送时占用全部带宽。
轮询协议
- 内容:主节点轮流‘邀请’从属节点发送数据。存在轮询开销,等待延迟,单点故障。
令牌传递协议
- 令牌:一个特殊风格的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个节点独占信道。令牌环网无碰撞
- 每个节点都可以在一定时间内(令牌持有时间)获得发送数据的权利,并不是无限制的持有令牌。
- 产生问题:令牌开销;等待延迟;单点故障
- 应用领域:应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。常用于负载较重,通信量较大的网络中。
CSMA/CA协议
- 载波监听多点接入/碰撞避免(carrier sense multiple access with collision avoidance)
- 使用范围:常用于无线局域网
- 工作原理:发送数据前,先检测信道是否空闲。
- 实现碰撞避免的方法:预约信道;ACK帧;RTS/CTS帧
- 其核心是先听再说,即两个在接入信道之前都需要进行监听,当发现空闲信道时,才能够接入。
- CSMA/CD用于总线式以太网(有线),而CSMA/CA用于无线局域网(无线)。
CSMA/CD协议
- 载波监听多点接入/碰撞检测(carrier sense multiple access with collision detection)
- cs:载波监听,每个站点在发送数据之前及发送数据时,都要检测一下总线上是否有其他计算机在发送数据。
- 多点接入,即许多计算机以多点接入的方式连接到一根总线上。总线型网络
- CD:碰撞检测,边发送边监听。半双工网络
- 帧的传输时延不小于两倍的信号在总线中的传播时延。以太网规定最短帧长位64B,凡是小于64B的都视为无效帧。
四.局域网(Local Area Network)
- 简称LAN,是指某一区域由多台计算机互连成的计算机组,使用广播信道。
- 特点:覆盖范围小(某一集中的建筑群);使用专门铺设的传输介质(双绞线,同轴电缆,光纤等)进行联网,数据传输速率高;通信延迟时间短,误码率低,可靠性高;各站点之间为平等关系,共享传输信道。多采用分布式控制和广播式通信,能进行广播和组播。
- 决定因素:网络拓扑结构,传输介质与介质访问控制方法。
LAN拓扑结构
- 星型拓扑:中心节点是控制中心,任意两个节点之间的通信最快,只需两步,传输速度快,并且网络构型简单,建网容易,便于控制和管理。但其网络可靠性低,网络共享能力差,有单点故障问题。
- 总线型拓扑:网络可靠性高,节点间响应速度快,共享资源能力强,设备投入量少,成本低,安装使用方便,当某个节点出现故障时,对整个网络系统影响较小。
- 环形拓扑:通信设备和线路比价节省。有单点故障问题,由于环路是封闭的,所以不便于扩充,系统响应延迟较长且信息传递效率相对较低。
- 树形拓扑:易于扩展,易于隔离故障,有单点故障问题。
LAN介质访问控制方法
- CSMA/CD:常用于总线型局域网,也用于树形网络。
- 令牌总线:常用于总线型局域网,也用于树形网络。将各个工作站点按一定顺序排成一个逻辑环,只有令牌持有者才能控制总线发送信息。
- 令牌环:用于环形局域网,如令牌环网。
分类
以太网
- Ethernet是由业内大佬联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准,应用最为广泛,逻辑拓扑总线型,物理拓扑是星型或拓展星型,使用CSMA/CD(载波监听多路访问冲突检测)技术。
- 造价低,应用最为广泛,使用容易,且满足网络速率要求:10Mb/s~10Gb/s。
无连接且不可靠
-
无连接:发送方和接收方之间无握手过程。
-
不可靠:对发送方的数据帧不进行编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。以太网仅实现无差错接收,不能实现可靠传输。
-
适配器:计算机与外界局域网连接是通过适配器实现。装有处理器和存储器(包括RAM和ROM)。
-
MAC地址:在ROM上有计算机硬件地址(MAC地址:在链路层标志每一个主机或设备的唯一标识),又称为物理地址。每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位有厂家规定。
无线局域网
-
IEEE802.11是无线局域网通用的标准,由IEEE协会定义。
-
令牌环网:物理上采用星型拓扑结构,逻辑上是环形拓扑结构
-
FDDI网(Fiber Distributed Data Interface):物理上采用双环拓扑结构,逻辑上是环形拓扑结构。
-
ATM网(Asynchronous Transfer Mode):较为新型的单元交换技术,使用53字节固定长度的单元进行交换。
-
无线局域网(Wireless Local Area Network):基于IEEE802标准实现。
五.广域网
- Wide Area Network,通常指跨很大的物理范围,所覆盖范围能够连接多个城市或国家,形成国际性的远程网络。eg:Internet是世界范围内最大的广域网。
- 广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用共用分组交换网,卫星通信网和无线分组交换网,能够将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。
PPP协议(面向字节)
- 点对点协议(Point-to-Point Protocol)是目前应用最广泛的数据链路层协议,用户在使用拨号连接因特网是一般使用PPP协议。只支持全双工链路。
协议要求
- 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
- 封装成帧:通过帧定界符实现。
- 透明传输:与帧定界符一样的帧定界符的数据在传输时,异步线路使用字节填充,同步线路用比特填充。
- 网络层协议:封装的IP数据报可采用多种协议。
- 链路类型:采用多种链路类型;串行/并行,同步/异步等。
- 差错控制:错误帧直接丢弃。不需要纠错。
- 连接状态检测:检查链路是否正常工作。
- 最大传送单元位MTU。
- 网络层在传输时,必须知道通信双方的网络层地址。
三个组成部分
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
- 链路控制协议LCP:建立并维护数据连接(相当于物理连接)。实现身份验证
- 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑链接(实现真正连接)。
HDLC协议(面向比特)
- 高级数据链路控制(High-Level Link Control),是一个在同步网上传输数据,面向比特的数据链路层协议(ISO)。
- 数据报文可透明传输,采用全双工通信。
- 对所有帧进行CRC检验,对信息帧进行顺序编号,可防止漏份或重份,传输可靠性高。
HDLC站
- 主站:发送命令(包括数据信息)帧,接收响应帧,并负责对整个链路控制系统的初次启动,流程的控制,差错检查或恢复。
- 从站:接收由主站发送来的命令帧,向主站发送响应帧,并配合主站参与差错控制与差错恢复等链路控制。
- 复合站:既能发送,又能够接收命令帧和响应帧,并负责整个链路的控制。
两个协议比较
- 都支持全双工通信
- 都能实现透明传输
- 都能实现差错检测,但不纠错
- PPP面向字节,无序号的确认机制,属于不可靠传输
- HDLC面向比特,有序号和确认机制,属于可靠传输
六.设备
- 如果主机与集线器之间的距离超出100米,那么信息就会出现严重的失真,为了解决这一问题,必须在物理层将以太网进行扩展,以达到扩大网络范围的作用。主机a->光纤->集线器->主机b。也可将多个集线器组成的冲突域(网段)进行二次连接,形成主干集线器,实现跨域通信,扩大的通信范围但通信效率大大降低。
网桥
- 网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将帧转发到哪一个接口,或直接丢弃(过滤)。
- 网段(冲突域):一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。网桥的两端就是两个不同的网段。
- 优点:过滤通信量,增大吞吐量;扩大了物理传输范围;提高了可靠性;可互连不同物理层,不同MAC子层和不同速率的以太网。
透明网桥
- ‘透明’是指以太网上的站点并不知道所发送的帧经过将经过哪几个网桥,是一种即插即用设备(自学习)。
源路由网桥
- 在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部。通过在源站以广播方式向欲通信的目的站发送一个发现帧。
交换机
- 以太网交换机独占传输媒体带宽
直通式交换机
- 核验完目的地址后立即转发,延迟小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机
- 将帧放入高速缓存中,并检查是否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可支持具有不同速率的端口的交换。
- 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。即同一时间范围内只能有一台设备发送信息。
- 广播域:网络中能接收任一设备发送的广播帧的所有设备的集合。即如果站点发送一个广播信号,所有能够接收到此信号的设备范围称为一个广播域。
- 物理层设备不能隔离冲突域与广播域;链路层设备仅能隔离冲突域;网络层设备可隔离冲突域与广播域。