功能
数据链路层在物理层提供的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路。
为网络层提供服务
- 无确认的无连接服务:不建立链路连接,目的机器接收到源机器发送的数据帧后不发回确认。丢失不负责,适用于实时通信或误码率较低的通信通道,如以太网。
- 有确认的无连接服务:不建立链路连接,目的机器接收到源机器发送的数据帧后发回确认。如果源机器在规定时间内未收到确认信号,重传丢失的帧。适用于误码率较高的通信通道,如无线通信。
- 有确认的面向连接服务:建立链路、传输帧、释放数据链路。每一帧都要给出确认,源机器收到确认后才发送下一帧,可靠性极高,适用于通信要求较高的场合。
链路管理
数据链路层连接的建立、维持和释放过程称为链路管理。
帧定界、帧同步与透明传输
帧定界
帧由数据部分加上首部尾部的很多控制信息组成,而首部、尾部的控制信息的重要作用就是确定帧的界限。
帧同步
信号接收方能够从接收到的二进制比特流中区分出帧的起始与终止。
透明传输
如果在数据信息中恰好出现了与标志F相同的比特组合,那么会被误认为传输结束,为了解决这个问题,采取透明传输。透明传输就是不管数据是什么比特组合,都应该能在链路上传送。
流量控制
流量控制就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。举个例子,下课去吃饭,楼道口只有这么大,如果学生一股脑往楼道口冲,显然出不去,因此要限制学生出楼道口的速率。
流量控制的过程需要某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要一些规则使发送方知道在什么情况下可以接着发送下一帧。
差错控制
在帧的传输过程中,由于信道噪声的干扰可能出现错误。使发送方确认接收方是否正确收到数据的方法称为差错控制。
错误可分为两种:位错(帧中某些位出现差错)、帧错(帧的丢失、重复或失序)。
组帧
为了在传输出错时不用重发所有比特数据,而把比特组合成帧,在出错时只发送错的帧就可。因此发送方必须根据规则把网络层提交的分组封装成帧,这个过程叫组帧。
目前最常用的还是零比特填充法和违规编码法。
字符计数法
在帧头部使用一个计数字段来标明帧内字符数,这样目的结点在收到数据时可以根据头部的字符数确定帧结束的位置。
但是显然,如果在传输中计数字段出错,将造成整个数据混乱。
字符填充的首尾定界符法
字符填充法使用特定字符来界定一帧的开始与结束,如图3.4中,控制字符SOH意味帧的开始,控制字符EOT意味帧的结束。为了防止帧的信息中有结束的特殊字符而被误判为帧结束了,可在特殊字符前面添加转义字符ESC加以区分(转义字符是ASCII码中的控制字符,是一个字符,不是E、S、C三个字符),以实现透明传输。
零比特填充的首尾标识法
零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。
原理是使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不使信息位中出现比特流01111110而被误判帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后面插入一个“0”;而接收方执行逆操作。
违规编码法
曼彻斯特编码中只有“高-低”电平对表示“1”和“低-高”电平对表示“0”,而没有“高-高”和“低-低”电平对,我们可以借用这种违规作为帧的起始与终止。
差错控制
比特在传输过程中可能会出现差错,比特差错是传输差错的一种,本节仅分析比特差错。
编码技术进行差错控制主要有两类:自动重传请求ARQ和前向纠错FEC。
检错编码
有效数据发送前,先按规则加一定的冗余位,符合某一规则的码字后再发送,接收端根据收到的码字是否仍符合原规则来判断是否出错。
奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。
原理是:由n-1位信息元和1位校验码组成,如果是奇校验码,那么在附加一个校验元后,码长位n的码字中“1”的个数位奇数,如果是偶校验码,则“1”的个数位偶数。
这种校验方法只能检测奇数位的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况。
循环冗余码
循环冗余码(CRC),又称多项式码,任何一个由二进制位数串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应关系。
具体计算过程请查看王道教材P69
纠错编码
在数据块上附加足够多的冗余信息,能够让接收方推导出实际发送了什么样的比特串,就叫纠错编码(自己能够改正)。
最常见的纠错编码是海明码,实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。
流量控制与可靠传输机制
流量控制、可靠传输与滑动窗口机制
流量控制涉及对链路上帧的发送速率的控制,以使接收方由足够的缓冲空间来接收每个帧。
流量控制的基本方法是使接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。
1.停止-等待流量控制基本原理
发送方没发送一帧,都要等待接收方的应答信号之后才可以发送下一帧,不然就一直处于等待状态。
2.滑动窗口流量控制基本原理
在任意时刻,发送方都要维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也要维持接收窗口。
发送端每收到一个确认帧,发送窗口就会向前滑动一个帧的位置;接收端口收到帧数据后,将窗口向前移一个位置,并发回确认帧。
3.可靠传输机制
可靠传输机制通常由确认和超时重传两种机制完成。
确认是在接收方正确接收了内容后发送一个回复帧,称为捎带确认。
超时重传是发送方发送数据帧后启动计时器,如果没有在规定时间内收到确认帧,则重新发送该数据帧。
单帧滑动窗口与停止-等待协议
停止等待协议前面讲了,是单帧的发送与确认,相当于发送窗口和接收窗口大小均为1的滑动窗口。
多帧滑动窗口与后退N帧协议(GBN)
在GBN协议下,发送方无需等待上一帧的确认帧后再发送下一帧,而是可以连续的发送帧,当接收方检测出失序信息帧后,要求发送方重发出错帧后的有所未确认帧。
多帧滑动窗口与选择重传协议(SR)
选择重传协议可设法只重传出现差错的数据帧或计时器超时的数据帧,但是接收方窗口要加大,以便先收下发送序列不连续但仍处在接收窗口中的那些数据帧。等到所缺的数据帧收到后再一并交给主机。
介质访问控制
介质访问控制所要完成的主要任务,是为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。
信道划分介质访问控制
信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理的分配给网络上的设备。
频分多路复用(FDM)
频分多路复用是一种将多路基带信号调制到不同频率载波上,将物理信道分割成若干个与传输单个信号宽带相同的子信道,每个子信道传输一种信号。
时分多路复用(TDM)
时分多路复用是将一条物理信道按时间分成若干时间片,轮流的分配给多个信号使用。
波分多路复用
码分多路复用(CDM)
码分多路复用采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。
随机访问介质访问控制
在随机访问协议中,不采用集中控制进行人为划分干预的这种方式,更像是原始社会,所有用户都能随意的发送信息,占用信道全部速率,但是为了解决几个用户发送帧之间的帧冲突,就需要每个用户按照一定的规则反复的重传帧,直到帧无碰撞的通过。
它的核心思想是:胜利者通过争用获得信道,从而获得信息的发送全,因此又叫做争用型协议。
随机介质访问控制实质上是将广播信道转化为点到点信道的行为。
ALOHA协议
其基本思想是:当网络中有任何一个站点需要发送数据时,可以 不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突,发送站点需要等待一段随机时间后再发送数据,直至发送成功。
CSMA协议
因为ALOHA协议每个站点随心所欲的发送数据,因此发送碰撞的概率很大。若每个站点在发送前都先侦听一下公共信道,发现信道空闲后再发送,则就会大大降低冲突的可能,CSMA协议是在ALOHA协议基础上多了一个载波监听装置。
CSMA/CD协议
载波侦听多路访问/碰撞检测协议是CSMA协议的改进,碰撞检测是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。
轮询访问介质访问控制:令牌传递协议
局域网
局域网的基本概念和体系结构
局域网是只在一个较小的范围内,将各种计算机、外部设备、数据库系统等连接起来的可以共享信息的互联网络。
局域网的特性主要由拓扑序列、传输介质、介质访问控制方式三个要素决定。
以太网是目前使用范围最广的局域网,基本处于局域网的垄断地位。逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形结构。
以太网与IEEE 802.3
以太网采用的无连接无确认的方式,发送的数据都使用曼彻斯特编码的信号。
IEEE 802.11
令牌环网的基本原理
广域网
广域网的基本概念
广域网通常是指覆盖范围广(超过一个城市的范围)的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。
广域网由一些结点交换机及连接这些交换机的链路组成,结点交换机的功能是将分组存储并转发。
广域网中一个重要问题是路由选择和分组转发。
PPP协议
PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。
PPP协议有三个组成部分:
链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置。
一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分。
HDLC协议
高级数据链路控制(High-level Date Link Control,HDLC)协议是ISO制定的面向比特的数据链路层协议。
所有帧采用CRC检验,对信息帧进行顺序编号,防止漏发重发。
数据链路层设备
网桥的概念及其基本原理
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,先检查此帧的目的MAC地址,然后确定将该帧转发到哪个接口,或者把他丢弃(过滤)。
透明网桥
“透明”是只以太网站点不知道所发送的帧经过了哪些网桥,是一种即插即用的设备——自学习
源路由网桥
源路由网桥:在发送帧时,把详细的最佳路由信息放在帧的首部。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。