数据链路层:数据链路层是计算机网络中的一层,位于网络协议栈的第二层。它的主要任务是在物理层提供的传输介质上实现可靠的数据传输,并为网络层提供一个透明的通信通道。数据链路层通过封装数据成为帧(Frame),在网络节点之间传递和管理这些帧。
链路:链路是指从一个节点到相邻节点的一段物理线路,中间无任何节点。
数据链路:把实现控制数据运输的协议的硬件和软件加到链路上,功成数据链路。
注:网卡和其相应的软件驱动程序实现了这些协议,一般都包含物理层和数据链路层的功能。
帧:数据链路层对等实体间在水平方向进行逻辑通信的协议数据单元(PDU)
一.三个重要问题
1.封装成帧和透明传输
1)封装成帧
封装成帧是指数据链路层给上层交付的PDU添加一个首部和尾部,使之成为帧
帧的首部包含一些重要的控制信息;
帧的尾部作用之一是帧定界
最大传送单元MTU:每一种链路层协议都规定了所能传送的帧的数据部分长度上限(但是为了提高传输效率,协议数据单元长度应该大于帧头帧尾长度,有效利用资源)
注:为提高传输帧效率,应使帧的数据载荷长度远大于首尾部长度,帧的数据载荷长度小于等于最大传送单元MTU(以太网为1500字节)
2)透明传输
透明传输指数据链路层对上层交付的PDU无限制。
面向字节的物理链路使用字节填充方法来实现
面向比特的物理链路使用比特填充的方法来实现
2.差错检测
差错检测是指在数据通信中,接收端接收到的数据与发送端实际发出的数据出现不一致的现象。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率(BER)。
使用差错检测码(FCS)来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
差错检测码是让接收方的数据链路层来检查帧在传输过程中是否产生了误码。
以下介绍两种差错检测的方法:
1)奇偶校验
在待发送数据后面添加一位奇偶校验位,使数据中“1”的个数为奇数(奇校验)或偶数(偶校验),这种方式的漏检率较大。
2)循环冗余校验(CRC)
其基本规则为:
首先,收发双方约定好一个生成多项式。
然后,发送方计算出差错检测码(冗余码)并将其添加到待传输数据的后面一起传输。
最后,接收方计算余数,为0则无误码。
计算冗余码的基本方式:
第一步:构造被除数——在待发送数据后面补0(补0的个数等于生成的多项式的最高次数)
第二步:构造除数——生成多项式各位次的比特串
第三步:进行二进制模2除法运算
第四步:检查余数——余数应与生成的多项式的位数相同,如果不够,在前面补0,
如下:
循环冗余码(CRC)具有很好的检错能力,漏检率极低,虽然计算复杂,但易于硬件实现。
3.可靠传输
可靠传输是指一般情况下,有线链路的误码率较低,为减少开销,不要求数据链路层向上层提供可靠传输服务,即使出现误码,也交由上层进行处理。
无线链路易受干扰,误码率高,要求数据链路层向其上层提供可靠传输服务。
常见的传输差错有:①误码(出现在数据链路层及其下层)②分组丢失/失序/重复(出现在数据链路层上层)
可靠传输的实现机制有:
1)停止——等待协议(SW)
确认与否认:发送方发送data数据给接收方,接收方确认数据无误后返回ACK分组,发送方接受ACK分组后再发送下一个data数据。如果data数据有误码,接收方将这一数据丢弃后返回NAK分组,发送方接受到NAK分组后,重新发送一份data数据给接收方,无误后接收方返回ACK分组。
超时重传:为了避免发送方一直处于等待确认的状态中,设置一个超时计数器,超过规定时间没有等到确认分组就进行重传。
确认丢失:为了让接收方能够判断所收到的数据分组是否是重复的,给数据分组编号。
确认迟到:为了让发送方能够判断所收到的ACK分组是否是重复的,给ACK分组编号。
信道利用率:
注意:当RTT很大时,为提供信道利用率,收发双方将不采用SR协议,而采用回退N帧协议。
2)回退N帧协议(GBN)
在停等协议中,发送方发送一个数据帧,等收到接收方发来的数据帧后才能发送下一个帧,这种传输方式会使得发送方发送时间很短,而等待时间很长,这样很浪费资源,为解决这种问题,就有了流水线式的传输方式,回退N帧协议正是使用这种传输方式。
接下来看看GBN协议的滑动窗口:
发送方的滑动窗口包含多个帧,而接收窗口只有一个帧,只有在滑动窗口内的帧才能被发送或者接收,在上图,发送方发送0号帧,接收方接收到0号帧后会返回一个确认信号ACK 0,同时接收窗口右移,当接收方接收到ACK 0 之后,发送窗口才会右移。
GBN发送方必须响应的三件事:
GBN接收方做的事:
滑动窗口长度:
解释:假设采用2个比特对帧编号,那么滑动窗口长度为[1,3],如果滑动窗口长度为4,也就是说发送方窗口可以包含0,1,2,3序列帧,当有一次四个帧全部发送且被接收方接收后,会返回的四个ACK确认信号丢失了,那么发送方等待超时重传给接收方,这个时候接收方就不能直到此时的帧是新帧还是超时重传的旧帧。
GBN协议重点总结:
- 发送方收到ACK N后,会确认接收方已经接收了N号帧以及N号帧之前的所有帧。
- 接收方有一个存储信息exceptedseqnum,表示当前等待接收的帧,假设当前应当接收N号帧,但是没收到这个N号帧,而收到了之后的帧(N+1,N+2...),那么接收方会把这些之后的帧全部丢弃。
- 接收方丢弃掉(N+1,N+2)号帧后,会返回一个ACK N-1,表示当前收到了N-1号帧,需要发送N号帧。
- 发送窗口长度的限制,为了使接收方更好确认发送的帧是新帧还是旧帧。
例题:
GBN协议的性能分析:
3)选择重传协议(SR):
在介绍GBN协议时,从最后的性能分析可以知道,GBN协议重传时需要把出错的帧以及其之后所有帧全部重传,降低了传输效率,因此,有没有什么方式可以只让发送方发送那个错误帧呢?这里就要介绍一下选择重传协议了!
SR协议的滑动窗口:
SR发送方必须响应的三件事:
SR接收方做的事:
窗口长度:
SR协议重点总结:
- 接收方滑动窗口内的帧来者不拒,来一个接收一个,并返回一个确认帧。
- 发送方只需要重传出错的帧,
- 接收方不会丢弃之后的帧,而会缓存起来
- 滑动窗口长度,避免二义性,即区分新帧和旧帧。
例题:
二.信道划分介质访问控制
1.传输数据使用的两种链路:
介质访问控制:采取一定措施,使两队节点之间的通信不会发生互相干扰的情况。
信道划分介质访问控制:使用介质的每个设备与来自同一信道的其他设备的通信隔离开,把时域和频域资源合理的分配给网络上的设备。
1.频分复用(FDM)
2.时分复用(TDM)

--统计时分复用(STDM)
这是一种改进的时分复用,在时分复用中,如果有段时间,A,B,C三个用户主机并没有处于发送状态,D主机处于发送状态,那么D主机会一直占用信道吗?答案是不会的,D主机依然需要等待A,B,C时间片过去后才能占用信道,很显然,这样的信道利用率很低,因此就有了这种改进的时分复用——STDM。
假如线路传输速率是8000b/s,那么对于TDM,每个用户最高为2000b/s,对于STDM用户,每个用户最高为8000b/s;
3.波分复用(WDM)
4.码分复用(CDM)
三.随机访问介质访问控制
1.ALOHA协议(不听就说)
1)纯ALOHA协议
纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。(想发就发)
2)时隙ALOHA协议
时隙ALOHA协议就是为了控制想发就发的随意性。
关于ALOHA:
2.CSMA协议(先听再说)(重点)
CSMA协议即载波监听多路访问协议。
1)1-坚持CSMA
坚持是指对于监听信道忙之后的坚持。
1-坚持CSMA思想:先监听信道,空闲直接传输,不必等待,忙则一直监听,直到空闲马上传输。
2)非坚持CSMA
非坚持指对于监听信道忙之后就不继续监听。
非坚持CSMA思想思想:空闲则直接传输,不必等待,忙则等待一个随机时间之后再进行监听。
3)p-坚持CSMA
p-坚持指对于监听信道空闲的处理。
p-坚持CSMA思想:空闲则以p概率直接传输,不必等待,1-p概率等待到下一个时间槽再传输;忙则持续监听直到信道空闲再以p概率发送。
三种CSMA对比总结:
3.CSMA/CD协议(先听再说,边听边说)
CD:碰撞检测,“边发送边监听”。
1.传播时延对载波监听的影响:
如何确定碰撞后的重传时机?
截断二进制指数规避算法:
例题:
最小帧长问题:
4.CSMA/CA协议
CSMA/CA协议工作原理:
RTS/CTS是可选的,但是都得存在,就是说有RTS就一定要有CTS,主要解决隐蔽站问题,在隐蔽站问题里,A和C都要和B建立连接,那么如果A和B建立了连接,A和B相当于握手,B会让C等一会,这样C站点就收不到B站点的CTS,这样C站点就不能发送数据
CSMA/CD和CSMA/CA的异同:
5.轮询访问介质访问控制
1)轮询协议
轮询协议思想:主节点轮流“邀请”从属节点发送数据
每次询问都会产生一个数据帧,如果从属结点特别多,那么产生的数据帧也会很大,即:轮询开销大;并且假设有10000台从属主机,但只有最后一台主机需要发送数据,它需要等主主机询问完前面的从属主机后才能发送数据,这就是等待延迟;单点故障指主结点出现故障,其他从属结点也都不能发送发送数据(当然,实际中会建立多个主节点作为替换)
2)令牌传递协议
工作流程:当令牌环网内没有主机需要发送数据,令牌就会在在各主机之间进行传递,当传递到一个主机需要发送数据,并持有令牌,该主机就会将令牌的标志位修改(本质是修改状态闲->忙),并且在控制帧后面加上数据,构成数据帧,然后将数据帧发送出去,当目的主机发现是发给自己的,就会复制数据,直到发送主机收到自己发送的数据帧后,会检查数据帧是否出错,出错后会重新发送,没出错就会回收数据帧,令牌标志位该为闲状态,再传递出去,以此往复。。。
问题:
1.令牌丢失需要产生一个新的令牌,有令牌开销。
2.当多主机需要发送数据,靠后的主机需要等待。
3.如果令牌环网内有一台主机故障,令牌传递的路就断了。(用替代机解决)
四.局域网基本概念和体系结构
1.局域网基本概念
2.局域网网络拓扑
3.局域网传输介质
4.局域网介质访问控制方法
5.局域网分类
6.MAC子层和LLC子层
五.以太网(Ethernet)(IEEE802.3)
1.以太网基本概念
2.以太网提供服务
以太网提供无连接、不可靠的服务
无连接:通信双方不需要建立连接,即“握手”。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,如果帧出错直接丢弃。
3.以太网传输介质与拓扑结构的发展
4.100BASE-T以太网
5.适配器与MAC地址
6.以太网MAC帧
、
7.高速以太网
六.无线局域网(IEEE802.11)
1.MAC帧头格式
BSSID:基站的MAC地址。
IBSS:一个服务集内的移动站点不通过基站的直接通信
2.有固定基础设施无线局域网
3.无固定基础设施无线局域网
七.VLAN
1.传统局域网的局限
2.VLAN基本概念
3.VLAN实现
VLAN实现需要借助:路由器或者三层交换机
4.IEEE802.1Q帧
5.例题
八.广域网及相关协议
1.广域网
广域网以资源共享为主要目的,而局域网的主要目的是数据传输。
2.相关协议
1)PPP协议
PPP协议是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都是使用PPP协议。
PPP协议应满足的要求:
PPP协议无需满足的要求:
PPP协议三个组成部分:
PPP协议的帧格式:
2)HDLC协议(了解即可)
我们只需了解HDLC协议的帧格式由哪几部分组成。
3)PPP协议&HDLC协议