在一些通信软件和网络协议中,常常采用一些变通的、更为简单的流量控制方法,如预约缓冲区法、带宽限制法、开关法、定时延迟法、许可证法、分组丢弃法等。如果硬件支持,还可以利用信号控制线进行流量控制,如RS-232串行接口中的RTS/CTS硬件流量控制。
1.预约缓冲区法
在分组交换网中,报文是分成若干个小的分组再传送的,各个分组的传送路径可能不同,到达目的地的时间也不同。通信处理机需要将分组按序装配成一个完整的报文后,才送给主计算机。当有多个报文同时到达通信处理机时,通信处理机的存储器可能被多个报文同时占满,而其中任何一份报文都不能被完整装配(报文中有的分组还未到达),因此也不能发送给主机,而通信处理机又没有空存储器来接收其他报文的分组,最后导致该通信处理机发生死锁。为了防止死锁,采取在源结点和目的结点预先约定存储器之后再发送报文的协议方法。
在源计算机向目的计算机发送数据之前,由目的计算机向源计算机报告自己缓冲器容量的大小,然后源计算机再决定向目的计算机发送多少数据。
例如,在ATM网络中的AAL3/4协议中就有一个字段BAsize,用来指示接收端需具备的最大缓冲区大小,以接收整个AAL3/4数据块。
2.带宽限制法
带宽限制法就是事先规定每条逻辑管道(两点)之间每秒最多发送的字节数,从而保证发送端的发送数据速率与接收端能够接收的数据速率相容,注意这里的数据速率与线路上的数据传输速率无关。例如,某客户端与服务器之间使用100MB/s以太网连接,但服务器可能会限制该客户端的带宽只有50KB/s。
目前在校园网或网吧等地方常使用一些带宽管理软件,其目的就是采用带宽限制法来管理各用户的通信流量,避免网络堵塞。
3.RTS/CTS硬件流量控制
RTS/CTS流量控制方法采用了RS-232-C标准中的RTS(请求发送)线和CTS(允许发送)线。当发送方要求发送数据时,使RTS线“接通”,通知接收方准备接收数据,接收方如果能够接收数据,它就“接通”CTS线,通知发送方;如果接收方不想接收数据,它就“断开”CTS线,通知发送方不要发送数据。
4.XON/XOFF流量控制协议
当两个通信设备不能利用控制线进行硬件流量控制时,就可采用软件流量控制方法。这些软件一般采用字符协议,最有名的字符流控协议就是XON/XOFF。
在XON/XOFF协议中,发送方和接收方赋予两个字符以特殊含义,然后把它们插入到数据流中作为流量控制标志。这两个字符的名称就是XON和XOFF。迄今为止最普遍的做法是将ASCII码的DC3(Control-S)分配给XOFF,将DC1(Control-Q)分配给XON。(www.daowen.com)
XON/XOFF协议是一种开关法,XON相当于开,XOFF相当于关。XON和XOFF就像一个开关一样控制着数据的传输。当接收方希望发送方暂停发送数据时,就发送XOFF字符;而当它希望发送方恢复发送数据时,就发送XON字符。XOFF常称为阻止字符(Hold-off),XON常称为释放字符(Release)。
如果某个设备设定为XON/XOFF流量控制,在数据传送时,就需对数据中出现的XON或XOFF字符作透明传输处理。
5.定时延迟
定时延迟法是一种缺乏灵活性的流量控制方法,就是在每次发送完数据后,固定延迟一段时间,再发送下一个数据。这是一种比降低信号传输速率更好的解决方法,因为它使发送方能够根据情况调整数据的发送速度。定时延迟有字符间延迟、行间延迟和帧间延迟等。
字符间延迟的常见例子就是键盘数据的发送。当持续按下键盘中的一个键时,如字母A,会收到一连串的A,如果没有字符间延迟,用户几乎无法在计算机上编辑任何文件。
行间延迟一般用于面向行的计算机系统,这种系统把接收到的字符先汇集到一个缓冲区中,直到遇到一个行结束符(CR——回车符或LF——换行符,如在电子邮件协议SMTP中则为CR和LF的组合),系统才一次吞入缓冲区内的全部数据。当系统负载过量时,一些系统在收到行结束符之后要花很长时间才能清空缓冲区。
6.许可证法
许可证法是在网络中设置适当数量的“许可证”,各个源结点可预先获得一些许可证。还有一些许可证在网中四处巡游。当结点想要发送分组时,它必须首先拥有许可证,并且每发送一个分组就注销一张许可证。目的结点每收到一个分组就生成一张许可证。这样便可确保网络中的分组数不会超过许可证的数量,从而防止拥塞的发生。
7.分组丢弃法
分组丢弃法就是当结点缓冲区满时,无法存放新来的分组,就把分组丢弃掉。由于分组被丢弃后,会造成发送方超时重发,加重网络拥塞,因此最好丢弃优先权比较低的分组,例如,在ATM网络中,每个信元都有一个丢失优先权标志位,当交换机缓冲器满时,就先丢弃该标志位置1的信元。
除了简单地丢弃分组外,还可以采用两种丢弃策略:葡萄酒策略和牛奶策略。葡萄酒策略是越陈越好,它保留缓冲区中较老的分组,丢弃新来的分组。这种策略适合文件传输、网页浏览等应用。牛奶策略是越新越好,它丢弃缓冲区中较老的分组,保留新来的分组。牛奶策略适合语音、视频等数据的传输。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。