控制相邻两个节点间链路上的流量的工作在“链路层”完成;数据链路层的最基本的功能是向该层用户提供透明和可靠的数据传送基本服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。
php入门到就业线上直播课:进入学习
本教程操作环境:windows10系统、DELL G3电脑。
控制相邻两个节点间链路上的流量的工作在什么完成
在链路层完成
数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的 传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。
扩展知识:流量控制
差错控制是数据链路层功能中的一个部分,另一个重要部分是流量控制。流量控制涉及链路上字符或帧的传输速率的控制,以使接收方在接收前有足够的缓冲存储空间来接受每一个字符或帧。例如,在面向字符的终端--计算机链路中,若远程计算机为许多台终端服务,它就有可能因不能在高峰时按预定速率传输全部字符而暂时过载。同样,在面向帧的自动重发请求系统中,当待确认帧数量增加时,有可能超出缓冲器存储容量,也造成过载。
XON/XOFF方案
增加缓冲存储空间在某种程度上可以缓解收、发双方在传输速率上的差别,但这是一种被动的和消极的方法,实现起来有诸多的不便和限制。因为一方面系统不允许开设过大的缓冲空间,另一方面对于速率显著失配并且又传送大型文件的场合,仍会出现缓冲存储空间不够。XON/XOFF方案则是一种相比之下更主动、积极的流量控制方法。XON/XOFF方案中使用一对控制字符来实现流量控制,其中XON采用ASCII字符字集中的控制字符DC1、XOFF采用ASCII字符集中的控制字符DC3。当通信链上的接收方发生过过载时便向发送方发送一个XOFF字符后便暂时停止发送数据,等接收方处理完缓冲存储器中中的数据,过载恢复后,再向发送方发送一个XON字符,以通知发送方恢复数据发送。在一次数据传输过程中,XOFF、XON的周期可重复多次,但对用户是透明的。许多异步数据通信软件包均支持XON/XOFF协议。这种方案也可用于计算机向打印机或其它终端设备发送字符,在这种情况下,打印机或终端设备中的控制部件用以控制字符流量。
窗口机制
为了提高信道的有效利用率。如前节所述采用了发送方不等待确认帧返回就连续 发送若干帧的方案,这样的发送过程就象一条连续的流水线,故又称为管道(pipelining)技术。由于允许连续发送多个未被确认折帧,帧号就采用多位二进制数才能加以区分。因为凡被发送出去但沿尚未被确认的帧都可能出错或丢失而要求重发,因而这些帧都要保留下来。这就要求发送方有较大的发送缓冲区保留可能要求重发的未被确认的帧。但是缓冲区容量总是有限的,如果接收方不能以发送方的发送速率处理收到的帧,则还是可能用完缓冲容量而暂时过载。为此,可引入类似于空闲RQ方案的调整措施,其本质是在收到一确定帧之前,对发送方可发送的帧的数目加以限制,这是由发送方调整保留在重发表中的待确认帧的数目来实现的。如果接收方来不及对收到的帧进行处理,则接收方停发确认信息,此时送方的重发表增长,当达到重发表限度时,就不再发送新帧,直至再次收到确认信息为止。 为了实现此方案,存放未确认帧的重发表中应设置未确认帧数目的最大限度,这一限度被称为链路的发送窗口。显然,如果窗口设置为1,即发送方缓冲能力公为一个帧,则传输控制方案就回到了空闲RQ方案,此时传输效率很低,故窗口限度应选为使接收方尽量能处理或接受收到的所有帧。当然选择时还必须考虑诸如帧的最大长度、可使用的缓冲存容量以及传输的比特速率等因素。重发表是一个连续序号的列表,对应发送方已发送但尚未确认的那些帧。这些帧的序号有一个最大值即发送窗口的限度。所谓发送窗口就是指示发送方已发送但尚未确认的帧序号队列的界,其上、下界分别称为发送窗口的上、下沿,上、下沿的间距称为窗口尺寸。接收方类似地有接收窗口,它指示允许接收的帧的序号。接收窗口的上、下界也是随时间滑动的。
发送方每次发送一帧后,待确认帧的数目便增1;同样,发送方每收到一个确认信息后,待确认帧的数目便减1。当重发计数值,即待确认帧的数目等于发送窗口时,便停止发送新的帧。一般帧号只取有限位二进制数,到一定时间后就又反复循环,若帧号配3位二进制,则帧号在0~7间循环。当传送过程进行时,窗口位置一直在滑动,所以也称为滑动窗口(Slidding Window),或简称为滑窗。
滑动窗口的状态变化过程可叙述如下(假设发送窗口为2,接收窗口为1)。
初始态,发送方没有帧发出,发送窗口前后沿相等。接收窗口限度为1,它允许接收0号帧。
发送方已发送0号帧,此时发作口打开(即前沿加1),窗口对准0号,表示已发出但尚未收到确认返回信息。接收窗口状态同前,指示允许接收0帧。
发送方在未收到0帧的确认返回信息前,继续发送1号帧。发送窗口状态不变。
发送方已收到0帧,窗口滑动一格,表示准备接收1号帧。发送窗口状态不变。
发送方已收到0号帧的确认返回信息,发送窗口后沿加1,表示从重发表中删除0号帧,接收窗口状态不变。
发送方继续发送2帧,发送窗口前沿加1,表示2号帧也纳入待确认之列。接收
窗口状态仍不变。
接收方已收到1号帧,接收窗口滑动一格,表示准备接收2号帧。发送窗口状态不变。
发送方收到接收方发来的1号帧收毕的确认信息,发送窗口后沿加1,表示从重发表中删除最早进入的1号帧。接收窗口状态不变。 一般说来,凡是在一定范围内到达的帧,那怕不按顺序,接收方也要接收下来。若把这个范围看成是接收窗口的话,则接收窗口的大小应该是大于1的,而Go-back-N正是接收窗口等于1的一个特例。选择重发也可以看作是一种滑动窗口协议,只不过其发送窗口和接收窗口都大于1。若从滑动窗口的观点来统一看待空闲RQ、Go-back-N及选择重发三种协议,它们的差别公在于各自窗口的大小不同而已:
空闲RQ:发送窗口=1,接收窗口=1
Go-back-N:发送窗口>1,接收窗口=1
选择重发:发送窗口>1,接收窗口>1
若帧序号采用3位二进制编码,则最大序号为SMAX=2^3-1=7。对于有序接收方式,发送窗口最大尺寸选为SMAX;对于无笆接收方式,发送窗口最大尺寸至多是序号范围的一半。管理超时控制的计时器应等于发送缓冲器数,而不是序号空间的大小。实际上,每一个缓冲器应对应一个计时器,当计时器超时时,该对应缓冲器的内容重发。按收方必须设置的缓冲器数应该等于接收窗口尺寸,而不是序号空间的大小。
更多相关知识,请访问常见问题栏目!
以上就是控制相邻两个节点间链路上的流量的工作在什么完成的详细内容,更多请关注php中文网其它相关文章!
前端(VUE)零基础到就业课程:点击学习
自己动手写 PHP MVC 框架:点击学习
![](http://m.sbmmt.com/img/upload/article/000/000/020/633501a29d313483.png)