标题 | 计算机网络中的“线端阻塞”释义 |
范文 | 李勇军 张胜兵 刘潮东 张隽 秦涛 摘要:在与计算机网络相关课程的教学或实践过程中经常提及“线端阻塞”这个概念,其与拥塞控制、网络性能和网络应用紧密联系。了解该概念的本义与延伸,可以帮助学习者或从业者准确地理解和掌握相关知识点。本文从日常中的“线端阻塞”现象入手释义概念,详细解释计算机网络中该概念的本义、外延和解决方法,并给出计算机网络中线端阻塞的测试方法,有助于相关知识点的教学活动。 关键词:线端阻塞;计算机网络;网络性能;交通管理 中图分类号:TP393.1 文献标识码:A 文章编号:1009-3044(2019)04-0036-02 但凡學习过计算机网络相关课程的学习者或计算机网络相关领域的从业者都接触到过“线端阻塞”“队头阻塞”等概念。很自然地会(被)问到什么是“线端”?什么是“线端阻塞”?这也是在学活动中经常被学习者问的问题。为帮助学习者或从业者准确理解和掌握相关知识,本文详细解释该概念的本义和延伸。 “阻塞”是一种生活中的常见现象,比如道路拥塞、排队等待服务等。意指“有障碍而不能通过,无法畅通。”明朝文学家陈子龙在《募练水师疏》中提及“风尘阻塞,未达中朝。”就是指该意思。“阻塞”在自然科学中也是经常被提及的概念,比如气象学、无线电学、软件工程和网络工程等。该概念在不同学科的意思可能存在细微差异,但其本义基本是一致的。在计算机网络中,“阻塞”发生在发送端发送的数据量超过了接收端的处理能力的情况下,因部分数据不能及时被处理而引起拥塞。在计算机网络中的不同协议层,有不同的阻塞处理策略(或算法)[1]。 从字面上看,“线端阻塞”(Head of Line Blocking[2])是“阻塞”的一种形式。准确理解“线端”的含义是理解“线端阻塞”的关键所在。“线”在这里指队列,“端”指队列头部。“线端阻塞”可以直观地理解为发生在队列头部或由队列头部而引起的阻塞现象。有些文献中也译为“队头阻塞”。在本文中统称为“线端阻塞”,该现象也常见于日常生活中。 1 交通管理中的线端阻塞现象 本文先从交通管理中的“线端阻塞”现象谈起。图1给出了一个十字路口的交通示意图。从南向北有两条同向车道,分别称为A车道和B车道。A车道可以允许车辆左转和直行,而B车道允许右转和直行。 在A车道中,有三辆汽车分别是公共汽车、小汽车和出租车。假设公共汽车是左转车辆,小汽车和出租车是直行车辆。当绿灯亮起后,在公共汽车因为对向(C)车道的直行车辆通过而不能及时左转时,它后面的小汽车和出租车受阻而不能直行。这种在交通管理中常见的现象即为“线端阻塞”。假设公共汽车是直行车辆,小汽车是左转车辆,出租车是直行车辆,同理(小汽车)也会引起“线段阻塞”;当三辆汽车均为直行车辆时,则不会发生“线端阻塞”现象;而当三辆车均左转时,则引起的“阻塞”现象是普通拥塞,而非“线段阻塞”。 针对交通管理中的“线端阻塞”,可行的解决方法有:1)设置左转等待区;2)分离左转和直行车道。有经验的驾驶员驾车到达十字路口时,通常不会选择左侧车道等待红灯,担心“线端阻塞”发生也是原因之一。 2 计算机网络中的线端阻塞现象 计算机网络中“线端阻塞”与交通管理中的“线端阻塞”有类似的内涵。图2给出了一个发生在交换机中的“线端阻塞”示例。在交换机中,有三个端口,端口0是发送数据帧的端口,端口1是接收数据帧的拥塞端口,端口2是另一个接收数据帧的非拥塞端口。交换机采用先进先出的输入缓冲队列模式,发送队列中的数字表示数据帧的目的端口号。 在端口0的发送队列中,有7个数据帧分别发往端口1、1、2、2、1、2和1。假设接收端口1 此时已经产生拥塞,队列头部的数据帧则不能被及时处理和发送,而在队列头部产生拥塞,致使发往非拥塞接收端口2的数据帧也被阻塞。这种现象即为计算机网络中“线端阻塞”。通常,该现象是“计算机网络中的一种性能受限的现象,产生的原因是第一个数据帧受阻而导致整个队列的数据帧受阻。”该现象发生在采用输入缓冲队列模式的场景中,从其形成机理上很容易理解,当采用输出缓冲队列模式时不会产生“线端阻塞”现象。“线端阻塞”不仅仅产生在计算机网络的数据链路层,在计算机网络的其他协议层也会产生该现象,比如传输层[3]、应用层[4]。 解决“线端阻塞”问题的一个思路是采用虚拟输出队列技术[5]。在输入端设置多个虚拟输出队列,每个输出队列对应一个接收端口。当数据到达输入队列时,根据其目的端口被及时移至对应虚拟输出队列中。以图2为例,在端口0处为端口1和2分别设置虚拟输出队列1和2。当目的端口为1的数据帧到达输入队列时,被移至虚拟队列1中,其余数据帧同样被处理。这样就不会在输入队列头部产生拥塞,解决了“线端阻塞”问题。这种解决问题的思路与交通管理中的细分不同行驶车道的方法有异曲同工之处。 3 线端阻塞的测试 理解网络中是否发生“线端阻塞”现象的判断方法不仅有助于学习者掌握相关知识,而且有助于从业者优化网络性能。本文以测试交换机中的“线端阻塞”为例详细解释测试方案 、判断条件等。 图3是RFC 2889建议的测试“线端阻塞”的拓扑结构[6]。四个相同的端口组成一个测试块,采用先进先出的输入缓冲队列模式,其中两个为发送端口,另外两个为接收端口。两个发送端口的负载分配方案如图3所示,接收端口2因要接收150%的负载而产生拥塞,而接收端口1因仅接收50%的负载而成为非拥塞端口。实验过程中,按照图3所示的负载分配方案发送数据,在两个接收端口记录接收到的数据。 在接收端口2,因为产生了数据拥塞,导致发往接收端口2的部分数据丢失。在丢失数据中,既有来自发送端口1的,也有发送端口2的。参考图2,假设存在“线端阻塞”现象,因为发往接收端口2的数据产生阻塞,致使发往接收端口1的部分数据也被阻塞在发送端口1,导致接收端口1的丢帧率不为0。基于上述分析,在实验过程中,只要在接收端口1发现了丢帧现象,则说明交换机产生了“线端阻塞”。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。