第4章 数据链路层
概述
流量控制
差错控制
PPP协议
HDLC协议
网络设备
数据链路层的基本功能:
能够建立一条和维护一条或多条没有数据发送错误的数据链路,并在数据传输完毕后能够释放掉这条链路。
概述
链路(link)就是从一个结点到相邻结点的一段无源的物理线路段,中间没有任何其它的交换结点 。
数据链路(data link)则是当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的规程来控制这些数据的传输。
2、数据链路层的功能
(1)链路管理
(2)帧同步
(3)流量控制
(4)差错控制
(5)将数据信息和控制信息区分开
(6)透明传输
(7)寻址
流量控制
、停止等待协议
为了深入理解数据链路层的协议,可以先从一种假设的、完全理想化的数据传输过程开始讨论。所谓完全理想化的数据传输模型是基于以下两个假定:
假定1:链路是理想的传输信道,所传送的任何数据既不会出错也不会丢失。
假定2:不管发送方以多快的速率发送数据,接收方总是来得及收下,并及时上交主机。
停止等待协议
具有最简单流量控制的数据链路层协议算法:
在发送站点:
1.从主机取一个数据帧;
2.将数据帧送到数据链路层的发送缓冲区;
3.将发送缓冲区中的数据帧发送出去;
4.等待;
5.若收到由接收结点发过来的信息,则从主机
取一个新的数据帧,然后转到2。
停止等待协议
在接收站点:
1.等待;
2.若收到由发送结点发过来的数据帧,则将其
放入数据链路层的接收缓冲区;
3.将接收缓冲区中的数据帧上交主机;
4.向发送结点回送一个信息,表示数据帧已经
上交给主机;
5.转到1。
停止等待协议
(a)不需要任何数据链路层协议的数据传输
(b)具有简单的流量控制的数据链路层协议
停止等待协议
B
B
传输数据的信道不能保证使所传的数据不产生差错,并且还需要对数据的发送端进行流量控制。
图4-3(a)画的是数据在传输过程中不出差错的情况。
当发现差错时,结点B就向主机A发送一个否认帧NAK,以表示主机A应当重传出现差错的那个数据帧。图4-3(b)画出了主机A重传数据帧。
停止等待协议
有时链路上的干扰很严重,或由于其他一些原因,结点B收不到结点A发来的数据帧。这种情况称为帧丢失,如图4-3(c)所示。于是就出现了死锁现象。
要解决死锁问题,可在结点A发送完一个数据帧时,就启动一个超时计时器(timeout timer)。若到了超时计时器所设置的重传时间tout而仍收不到结点B的任何确认帧,则结点A就重传前面所发送的这一数据帧,如图4-3(c)和图4-3(d)所示。一般可将重传时间选为略大于“从发完数据帧到收到确认帧所需的平均时间”。
停止等待协议
停等协议
重传
丢失
DATA0
ACK
DATA1
ACK
A
B
DATA0
NAK
DATA0
A
B
DATA0
DATA0
A
B
超时
ACK
ACK
DATA0
DATA0
A
B
ACK
ACK
出
错
丢
弃
(1)正常情况
(2)数据帧出错
(3)数据帧丢失
(4)确认帧丢失
时
间
丢失
重传
超
时
重传
送主机
送主机
送主机
送主机
送主机
停止等待协议
实用的停止等待协议的算法:
在发送结点:
(1)从主机取一个数据帧;
(2)V(S)取0 {发送状态变量初始化};
(3)令N(S)等于V(S);{将发送状态变量的数值写入发送序号}将数据帧送交发送缓冲区;
(4)将发送缓冲区中的数据帧发送出去;
(5)设置超时定时器 {选择适当的超时时间};
(6)等待{等待以下三个事件中最先出现的一个};
(7)若收到确认帧ACK,则从主机取一个新的数据帧;
令V(S)等于[1-V(S)];{更新发送状态变量,变为下一个序号}转到(3)
(8)若接收到否认帧NAK,则转到(4){重发数据帧};
(9)若超时定时器时间到,则转到(4){重发数据帧};
在接收站点:
(1)V(R)取0 {接收状态变量初始化,其数值等于欲接收的数据帧的发序号};
(2)等待;
(3)当收到一个数据帧,就检查有无传输差错产生(如用CRC)。若检查结果正确无误,则执行后续算法;否则转到(8);
(4)若N(S)等于V(R),则执行后续算法;否则丢弃数据帧转到(7);
(5)将收到的数据帧中的数据部分送交主机;
(6)令V(R)等于[1-V(R)]{更新接收状态变量,准备接收下一个数据帧};
(7)发送确认帧ACK,并转到(2);
(8)发送否认帧NAK,并转到(2)。
停止等待协议
对于状态变量需要注意以下几点:
(1)每发送一个数据帧,都要将发送状态变量V(S)的值(0或1)写到数据帧的发送序号N(S)上。但只有收到一个确认帧ACK后,才能更新发送状态变量V(S)一次,并发送新的数据帧。
(2)在接收端,每接收到一个数据帧,就要将发方在数据帧上设置的发送序号N(S)与本地的接收状态变量V(R)相比较,若二者相等就表明是新的数据帧,否则为重复帧。
(3)在接收端,若收到一个无传输差错的重复帧,则丢弃之,且接收状态变量不变,但此时仍须向发送端发送一个确认帧ACK。
停止等待协议
由于发送端对出错的数据帧进行重发是自动进行的,所以这种差错控制机制常简称为ARQ,直译是自动重发请求,但真正的含义是自动请求重发。
滑动窗口协议
发送窗口:用来对发送端进行流量控制;
发送窗口的大小WT就代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。
停止等待协议WT =1
滑动窗口协议
发送窗口的规则归纳如下:
(1)发送窗口内的帧是允许发送的帧,而不考虑有没有收到确认。发送窗口右侧所有的帧都是不允许发送的帧。图4-4(a)说明了这一情况。
(2)每发送完一个帧,允许发送的帧数就减1。但发送窗口的位置不变。如果所允许发送的5个帧都发送完了,但还没有收到任何确认,那么就不能再发送任何帧了。这时,发送端就进入等待状态。
滑动窗口协议
(3)每收到对一个帧的确认,发送窗口就向前(即向右方)滑动一个帧的位置。图4-4(b)表示发送端已经收到了0帧的确认,因此发送窗口可以向前滑动1个帧的位置。5号帧落入发送窗口内。
(4)以后假设又有3个帧(1至3号帧)的确认帧到达发送端,于是发送窗口再前进3个帧(图4-4(c)),发送端继续可以发送数据帧的发送序号是6号、7号和0号。
图4-4 发送窗口控制发送端的发送速度
滑动窗口协议
例:N(s)用3bit来编码,假设WT=5
思考:当数据帧的发送序号所占用的比特数一定时,发送窗口最大应该为多少?
例:用3bit可编写8个不同的序号,发送窗口的最大值为多少?
滑动窗口协议
滑动窗口
1
0
7
6
5
4
3
2
1
0
3
2
WT=8可以么?
假设WT =8,设发送完0-7号共8个数据帧。
第一种情况:所有数据帧都正确的到达了发送端,因而发送端接着发送8个新比特的数据帧。(0-7号)
第二种情况:所有的帧都丢失。经过超时定时器的时间后,发送端重发8个旧的数据。(0-7号)
因此:当用n个比特进行编号时: WT 不能为2n
要使连续ARQ可正确运行: WT ≤ 2n-1
滑动窗口协议
接收窗口:是为了控制哪些数据帧可以接收而哪些数据帧不可以接收。在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
接受窗口的大小WR 表示。
滑动窗口协议
图4-5接收窗口WR的意义
滑动窗口协议
从以上讨论可以看出,当接收窗口保持不动时,发送窗口无论如何也不会前进(滑动),因此这种协议又称为滑动窗口协议。不难看出,当发送窗口和接收窗口的大小都等于1时,就是最初讨论的停止等待协议。
滑动窗口协议
差错控制
连续ARQ协议的工作原理
当发送站点发送完一个数据帧后,不是停下来等待应答帧,而是可以再连续发送若干个数据帧。如果在此过程中又收到了接收端发来的应答帧,那么还可以接着发送数据帧。由于减少了等待时间,整个通信的吞吐量就提高了。如图4-6所示连续ARQ的工作原理。
连续ARQ协议的工作原理
0
1
2
3
4
5
2
3
4
5
6
tf
tout
重传
DATA
ACK0
ACK1
ACK2
ACK3
时间
A
B
送主机
送主机
出错
丢弃
图4-6 连续ARQ协议的工作原理
NAK2
连续ARQ协议的工作原理
这里要注意两点:
(1)接收端只能按序接收数据帧。对于2号帧,结点B应答了NAK2,虽然接着又收到了三个正确的数据帧,但都必须将他们丢弃。
(2)结点A在重传2号数据帧时,虽然已经发完了5号帧,仍必须向回走,从2号帧起进行重传。正因如此,连续ARQ又称为Go-back-N ARQ,意思是当出现差错必须重传时,要向回走N个帧,然后再开始重传。
选择重传ARQ协议
为了进一步提高信道的利用率,可以设法只重传出现差错的数据帧或者是定时器超时的数据帧。此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到之后再一并送交主机。这就是选择重传ARQ协议。
如图4-7是选择重传ARQ协议的工作原理图。
图4-7 选择重传ARQ协议的工作原理
选择重传ARQ协议
发送方
接收方
帧1
2
3
4
5
6
7
8
6
9
ACK4
ACK5
NAK6
10
出错
只重传帧6
数据链路层的协议
HDLC(面向比特的数据控制规程)
PPP(用在家庭计算机链接到Internet)
PPP协议
用户接入Internet的方法:
1、用户使用拨号电话接入因特网;(ISP)
2、使用专线接入。(局域网)
因特网服务提供者ISP是一个能够提供用户拨号入网的经营机构。
图4-10 是用户拨号入网的示意图
不管采用哪种方法上网,在传送数据时都需要有数据链路层协议:
在用户与ISP之间的链路上使用的最多的协议 SLIP(面向字符协议);PPP(点对点协议)
1、SLIP(Serial Line Internet Protocol)是一个简单的面向字符协议,早在1984年就已经开始使用。它的数据报封装规则只有三个,如图4-9所示。
图4-9 SLIP的封装
SLIP协议的缺点:
(1)SLIP没有差错检测的功能。
(2)通信的每一方必须事先知道对方的IP地址。
(3)SLIP仅支持IP,而不支持其他的协议。
(4)SLIP并未成为因特网的标准协议,存在多种互不兼容的版本,影响网络的互连。
为了克服SLIP的这些缺点,1992年制定了PPP协议。PPP协议有如下三个组成部分:
(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP (Link Control Protocol)。通信的双方可协商一些选项。
(3)一套网络控制协议NCP (Network Control Protocol) ,其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet以及AppleTalk等。
2、点对点协议PPP
PPP的帧格式如图4-10所示
图4-10 PPP帧的格式
所有的PPP帧的长度都是整数个字节。
特殊字符填充法:
0x7E字节转换成字节(0x7D,0x5E);
0x7D字节转换成为2字节(0x7D,0x5D)
协议字段
协议字段:
0x0021 IP数据报;
0xC021 链路控制数据;
0x8021 网络控制数据。
面向比特的链路控制规程HDLC
发展过程:
ARPNET: IMP-IMP协议
IBM公司:BSC规程
1974年IBM公司推出了
著名的体系结构SNA其
数据链路层采用SDLC
面向字符
面向比特
ISO又对其进行了修改:HDLC
LAP
LAPB
面向比特的链路控制规程HDLC
HDLC两种链路配置和三种数据传送方式:
HDLC可适用于链路的两种基本配置,即非平衡配置与平衡配置。
三种传送方法:
HDLC的非平衡配置中有正常响应和异步响应两种。
HDLC的平衡配置中为异步响应。
图4-8 非平衡配置(a)与平衡配置(b)
HDLC的帧结构
图4-9 HDLC的帧结构
01111110
01111110
网络设备
网络互联是指将不同的或相同的网络,使用网络互联设备连接在一起形成范围更大的网络系统,从而使不同网络的用户之间能够相互通信,实现资源共享。网络中的连接设备有很多种,根据网络中的不同需要分别承担着不同的数据传输任务。
网桥
网桥也叫桥接器是一种在OSI参考模型的数据链路层中实现局域网互联的设备。有在不同网段之间再生信号的功能,它可以有效地连接两个局域网,使本地通信限制在本网段内,并转发相应的信号至另一网段。网桥用于连接数量不多的,同类型的网段。如图4-13所示。
网段就是从一个IP到另一个IP端 好比 从到着之间就是一个网段
图4-13网桥连接图
网桥
网桥以及交换机中的端口属于不同的冲突域,但属于同一广播域。
1、基本原理
如图4-14所示给出了网桥的内部结构要点。最简单的网桥有两个端口。复杂的网桥可以有更多的端口。
网桥
网桥
1
1
1
2
2
2
也称为:转发数据库或路由目录
网桥的优点:
(1)过滤通信量
(2)扩大了网络的物理范围
(3)提高了网络的可靠性、安全性
(4)性能得到改善
缺点:
(1)增加了时延
(2)在MAC子层并没有流量控制。
(3)具有不同MAC子层的网桥接在一起,网桥在转发一个帧之前,必须修改帧的某些字段的内容,以适应另一个MAC子层的要求。这也需要耗费时间。
(4)网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会产生较大的广播风暴。
两种常用网桥:
1、透明网桥
透明网桥是由各网桥自己来决定路由选择,而局域 网上的各站都不管路由选择。“透明”是指局域网上的各站并不知道所发送的帧将经过哪几个网桥,而网桥对各站来说是看不见的。
2、源站选路网桥
源站选路网桥假定了每一个站在发送帧时都已经清 楚地知道发往各个目的站的路由,因而发送帧时将详细的路由信息放到帧的首部中。
交换机
1990年问世的交换式集线器常称为以太网交换机或二层交换机 。
“交换机”以及“交换”最早起源于电话通讯系统。 “交换”按照通信两端传输信息的需要,人工或设备自动完成的方法。把要传输的信息送到符合要求的相应的路由上的技术统称。
以太网交换机实质上就是一个多端口的网桥。
交换机端口上可以连接主机或者集线器。
图4-15 交换机结构与工作过程
1、交换机工作原理
交换机
2、数据的转发方式
以太网交换机的数据交换与转发方式可以分成直接交换、存储转发交换和改进的直接交换3类。
(1)直接交换(Cut-Through)
在直接交换方式中,交换机边接收边检测。一旦检测到目的地址字段,就立即将数据转发出去,而不管这一数据是否出错,出错检测任务由结点主机完成。
交换机
(2)存储转发交换(Store-and-Forward)
在存储转发方式中,交换机首先要完整地接收站点发送的数据,并对数据进行差错检测。
(3)改进的直接交换(Fragment Free)
这是介于直接交换和存储转发交换之间的一种解决方案。
这种缓存采用一种先进先出的机制-FIFO,比特从一端进入然后再同样的顺序从另一端出来。
交换机
3、地址学习
以太网交换机利用“端口/MAC地址映射表”进行信息的交换,因此,端口/MAC地址映射表的建立和维护相当重要。
“地址学习”通过读取帧的源地址,并记录帧进入交换机的端口进行的。得到MAC地址检查与端口的对应关系,表中如果不存在,添加;存在,进行更新。
添加或更新表项时,被赋予计时器。储存一段时间后进行更新。
交换机
4、通讯过滤
交换机在建立起端口/MAC地址映射表后,它就可以对通过的信息进行过滤了,以太网交换机在地址学习的同时还检查每个帧,并基于帧中的目的地址做出是否转发或转发到何处的决定。
图4-16显示了两个以太网和两台计算机通过以太网交换机相互连接的情况。通过一段时间地址学习,交换机形成了如图的端口/MAC地址映射表。
交换机
图4-16 以太网和两台计算机通过以太网交换机相互连接
交换机
以太网交换机隔离了本地信息,从而避免了不必要的数据流动。这是交换机通信过滤的优点,也是与集线器不同的地方。
集线器在所有端口广播信号,每个集线器相连的网段都将侦听到局域网上的所有信息流。
交换机所连的网段只能侦听到发给本网段的信息流,减少了局域网上总的通信负载,提供了更多的带宽。
交换机
交换机的管理方式
通过Telnet 对交换机进行远程管理
通过Web 对交换机进行远程管理
通过SNMP 工作站对交换机进行远程管理
交换机配置
连线
利用配置线将主机的COM口和交换机的console口相连
打开超级终端
从开始-〉程序-〉附件-〉通讯-〉超级终端打开超级终端程序
配置超级终端
为连接命名
选择合适的COM口
配置正确的参数
TELNET管理交换机
在主机DOS命令行下输入: telnet ip address(交换机管理IP)
TELNET管理交换机续
输入telnet密码和特权密码即可进入到交换机的配置界面
WEB管理功能
在web页面中输入交换机的管理IP可以进入交换机的web管理页面
WEB管理功能
在web页面下对交换机进行管理
交换机三种工作模式
1、用户模式switch>
交换机信息的查看,简单测试命令
2、特权模式switch#
查看、管理交换机配置信息,测试、调试
3、配置模式:
(1)全局配置模式switch(config)#
配置交换机的整体参数
(2)接口配置模式switch(config-if)#
配置交换机的接口参数
交换机配置命令模式
进入全局配置模式
Switch#configure terminal
Switch(config)#exit
Switch#
进入接口配置模式
Switch(config)#interface fastethernet 0/1
Switch(config-if)#exit
Switch(config)#
从子模式下直接返回特权模式
Switch(config-if)#end
Switch#
命令行其他功能
获得帮助
switch#?
switch#show ?
命令简写
全写:switch# configure terminal
简写:Switch# config t
使用历史命令
Switch# (向上键)
Switch# (向下键)
Thanks!
差错控制:
自动反馈重发(ARQ)、前向纠错、混合纠错、信息反馈。这些方法中都需要发送方和接收方之间进行出错后的沟通。
这种沟通具体是如何实现的呢?