一种半双工反压流控方法和装置的制作方法

文档序号:7694573阅读:435来源:国知局
专利名称:一种半双工反压流控方法和装置的制作方法
技术领域
本发明实施例涉及通信技术领域,特别涉及一种半双工反压流控方法和装置。
背景技术
在以太网中,多个i殳备可以通过半双工方式连4姿在一起,在半双工方式 下,同一时间只能有一个设备在发送数据,否则就会造成数据传输冲突。因 此,在现有标准定义的载波检测冲突重传的传输机制中,当一个设备需要发
送数据包时,首先检测线路上是否有载波,当持续一个IPG( Inter Packet Gap, 帧间隙)的时间内没有检测到载波时,将待发送数据包发送到网络中。如果 网络中有两个或者多个设备传输数据,则会造成传输冲突,则发送设备会停 止传输当前包,等待一个随机回退时间后重新传送当前包,由于回退时间不 同,重新传输时造成沖突的概率会降低。
一个设备由于接收緩冲区满等原因无法收包时,如果发送设备无法获知 接收设备的接收情况,继续发包,便会造成接收设备丢包;如果通过一种有 效的传输方式,使发送设备知道接收设备的接收情况,发送设备可以通过降 低自身发送速度或者利用自身的緩沖区进行緩存,有效的避免丟包。因此, 半双工传输时需要一种反压流控的机制,当接收设备无法收包时,要能够有 效的阻止发送设备继续发包,以免造成丟包。
为了解决上述问题,现有技术中有制造冲突方式和制造载波方式两种方式。
在制造沖突方式中,当接收设备无法继续收包,反压流控状态变为有效, 当接收到发送设备新发送的包时,强行发送一个阻塞码JAM序列,制造一次 线路的传输冲突,迫使发送设备等待一个回退时间后重传当前包。发送设备 经过一个回退时间后重新发送当前包,如果接收设备仍然处于反压状态,则 再强行发送一个JAM序列,制造一次沖突,迫使发送设备重新回退重传;如果接收设备可以收包,则接收当前包。如果接收设备较长时间无法收包,使 发送设备发送一个包时发生连续的回退重传,如果回退重传的次数超过某个 阈值,则发送i殳备可能主动丢弃当前包。由于在反压流控时制造冲突,这些沖突并不是网络上真实的沖突造成的, 它会使网络设备检测到过多的冲突,可能会造成一些网络设备判断错误。比 如网络中冲突过多,误认为连接不正常,断开网络连接等。再者制造沖突时 迫使发送设备进行回退重传,但是回退重传的等待时间呈指数级上升,当发 生多次重传后,等待时间需要很长时间,假如此时解除反压流控,发送设备 仍然需要等待很长时间后才能发包,这样极大地影响网络的传输效率。在制造载波方式中,当接收设备无法继续收包处于反压流控状态时,会主动往外持续的发送不含SFD ( Start-of-Frame Delimiter,帧起始界定符)的 前导码,制造线路上的数据传输载波。当发送设备有包待发送时,开始检测 线路上的载波,由于线路上一直有载波,便会等待当前载波结束,因此只有 等到接收端反压状态解除时,不再向外发送前导码序列,才能够将待发送数 据包发送出来,以此达到反压流控的目的。这种方法避免了制造冲突方式的 假沖突和回退重传的问题,但同时也带来了可能出现的PHY( Physical device, 物理设备)异常和自身无法发包的问题。如果MAC (Media Access Control,媒体访问控制)持续发送不含帧起始 界定符的前导码超过极限时间,物理设备则可能会认为是非法传输,因此会 中断此次传输,导致线路上无法输出有效的载波,不能实现预期反压流控的 功能。再者,由于接收设备持续的向外发送前导码,当自身需要向外发送包时 也无法将包发送出去,严重影响自身发包性能。发明内容本发明实施例提供一种半双工反压流控方法和装置,以实现在反压流控 状态有效时,接收设备可以向外发送数据包。为达到上述目的,本发明实施例一方面提供一种半双工反压流控方法,包括在反压流控状态有效时,在线路上间隔预定的时间间隔发送码元序列,进行反压流控,所述预定的时间间隔小于一个帧间隙IPG的时间间隔;当有待发送的数据包时,停止发送所述码元序列,并在没有在所述线路上4企测到数据包时,发送所述待发送的数据包。另一方面,本发明实施例还提供一种半双工反压流控装置,包括 序列发送模块,用于在反压流控状态有效时,在线路上间隔预定的时间间隔发送码元序列,进行反压流控,所述预定的时间间隔小于一个帧间隙IPG的时间间隔;数据包发送模块,用于在有待发送的数据包时,通知所述序列发送模块 停止发送所述码元序列,并在没有在所述线路上检测到数据包时,发送所述 待发送的数据包。上述技术方案具有以下优点上述技术方案中,在反压流控状态有效时, 接收设备在线路上间隔预定的时间间隔发送码元序列,进行反压流控。当接 收设备在停止发送码元序列后没有在所述线路上检测到数据包时,接收设备 可以发送自身待发送的数据包。接收设备在反压状态时既能通过发送码元序 列进行反压流控,又可以在自身需要发包时向外发包,并且减少了线路上出 现的沖突数量。。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前 提下,还可以根据这些附图获得其他的附图。图1为本发明实施例半双工反压流控方法的流程图; 图2为本发明实施例半双工反压流控装置的一种结构图; 图3为本发明实施例半双工反压流控装置的另一种结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有 作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种半双工反压流控方法,在反压流控状态有效,接 收设备通过间隔发送码元序列制造线路上的载波,进行反压流控,迫使其他发送设备等待;当接收设备同时需要向外发送数据包时,停止发送该码元序 列,如果在停止发送码元序列后没有在线路上检测到数据包时,该接收设备 向外发送待发送数据包,在该接收设备的待发送数据包有效发送后,该接收 设备继续间隔发送码元序列,以此达到反压流控的目的。本发明实施例中的码元序列可以为不包括SFD的前导码序列,也可为其 他自定义的码元序列,但本发明实施例以不包括SFD的前导码序列为例进行 说明。如图1所示,为本发明实施例半双工反压流控方法的流程图,具体包括 以下步骤步骤S101,在反压流控状态有效时,在线路上间隔预定的时间间隔发送 码元序列,进4亍反压流控,该预定的时间间隔小于一个IPG的时间间隔。本发明实施例中,在反压流控状态有效时,接收设备间隔预定的时间间 隔发送不包括帧起始界定符SFD的前导码序列,在线路上强行产生载波,迫 使发送设备等待载波结束后再进行传输。由于发送设备在检测到载波结束后 需要等待一个IPG的时间间隔内没有新的载波时,才能将待发送数据包发出, 因此当接收设备间隔预定的时间间隔发送前导码序列,并且该预定的时间间 隔小于一个IPG的时间间隔时,总会是接收设备优先抢占到线路资源。采用这种间隔发送前导码序列的方式可以有效的达到反压流控的目的, 也不会在线路上造成大量冲突,并且不会使物理设备由于过长时间连续发送 前导码序列出现错误。并且该预定的时间间隔既不能太大,也不能太小。因 为如果该预定的时间间隔过大,则可能让发送设备优先抢占到线路资源,发 出该发送设备自身的待发送数据包,失去反压流控的目的;而如果该预定的时间间隔过小,则可能不能满足物理设备的空闲时间要求,导致物理设备产 生错误。因此,本发明实施例中,该预定的时间间隔的取值范围可以为32 64BT (BitTime,比特时间)。本发明实施例对一次发送的前导码序列的长度不作要求,不超过物理设 备允许的最大长度即可,最好在正常包64-1518字节的范围内,以便兼容所 有的物理设备。当反压流控状态有效时,接收设备需要等待当前传输的数据包结束,然 后等待一个小于IPG的时间间隔,开始向外发送前导码序列。在这次前导码 序列传输结束后,如果反压流控状态还仍然有效,则接收设备重新等待一个 新的小于IPG的时间间隔后继续发送前导码序列;如果反压流控状态解除, 则接收设备进行正常状态的收发包处理。当然,如果反压流控状态解除,或者接收设备有待发送的数据包时,该 接收设备可以不等待当前传输的数据包结束,而是直接停止当前前导码序列 的发送。步骤S102,当有待发送的数据包时,停止发送码元序列,并在没有在线 路上检测到数据包时,发送所述待发送的数据包。如果在反压流控状态有效,接收设备反复向外发送前导码序列的过程中, 该接收设备有待发送的数据包,则该接收设备停止当前前导码序列的发送。 由于此时接收设备停止发送前导码序列,因此其他发送设备也可能向外发送 数据包,所以在反压流控状态有效并且接收设备向外发送数据包的过程中, 若4全测到数据包,需要通过制造布i沖突的方式来达到反压流控的目的。在反复向外发送前导码序列的过程中,如果接收设备有待发送的数据包, 则该接收设备等待当前前导码序列传输结束,等待一个IPG的时间间隔,如 果在一个IPG的时间间隔内没有在线^各上4企测到数据包,即没有在线路上枱r 测到载波时,则该接收设备向外发送待发送的数据包。如果在一个IPG的时间间隔内,该接收设备在线路上检测到数据包,这 说明有其他发送设备优先抢占到线路资源,并在向外发送数据包。当该接收 设备确定该数据包为有效的数据包,且反压流控状态仍然有效时,则该接收设备发送一个4字节的阻塞码JAM序列,制造一次线路上的沖突,使发送所 述数据包的发送设备进行回退重传,而该接收设备再次等待一个IPG的时间 间隔后发送该待发送的数据包。由于回退重传时间呈指数级增加,发送设备 回退重传的等待时间要大于一个IPG的时间间隔,因此接收设备在等待一个 IPG的时间间隔后,线路再被其他发送设备抢占的概率大大降低。在接收设备发送数据包的过程中,如果线路上出现了沖突,则该接收设 备按照正常数据包的回退重传机制进行重传处理。在等待回退重传的时间间 隔内,如果该接收设备在反压流控状态仍然有效时,接收到了线路上其他发 送设备发送的数据包,则该接收设备发送一个4字节的JAM序列,制造一次 线路上的冲突,使该发送设备进行回退重传;当反压流控状态解除时,该接 收设备正常接收线路上其他发送设备发送的数据包。在待发送的数据包成功发送之后,如果接收设备还处于反压流控状态, 则该接收设备继续间隔预定的时间间隔发送前导码序列;如果接收设备未处 于反压流控状态,则接收设备进行正常数据包的接收发送。本发明实施例解决了连续向外发送前导码序列时无法向外发送数据包的 问题。通过本发明实施例,当接收设备不向外发送数据包时,线路上不会出 现大量冲突,并且当接收设备发送数据包时,由于回退重传的时间不同,因 此线路上发生沖突的概率也大大降低,这样就减少了线路上出现的冲突数量, 不会引起网络设备工作异常。当反压流控状态解除时,接收设备自身及时停止向外发送前导码序列, 其他发送设备可以在等待一个IPG的时间间隔后开始发送数据包,不需要等 待当前回退重传时间结束,提高了传输的效率。另外,通过间隔发送前导码 序列的方式,有效的解决了持续发送前导码序列的方式中物理设备不兼容的 问题。如图2所示,为本发明实施例半双工反压流控装置的结构图,包括 序列发送模块21,用于在反压流控状态有效时,在线路上间隔预定的时 间间隔发送码元序列,进行反压流控,该预定的时间间隔小于一个帧间隙IPG 的时间间隔。本发明实施例中的码元序列可以为不包括SFD的前导码序列,也可为其他自定义的码元序列,但本发明实施例以不包括SFD的前导码序列 为例进行说明。数据包发送模块22,用于在有待发送的数据包时,通知序列发送模块21 停止发送码元序列,在序列发送^^块21停止发送码元序列后,且没有在线路 上4全测到数据包时,发送上述待发送的数据包。在本发明的另一实施例中,如图3所示,该半双工反压流控装置还可以 包括阻塞码发送模块23,用于在一个IPG的时间间隔内在线路上检测到数 据包,并且该数据包为有效的数据包时,发送一个阻塞码序列,使发送该数 据包的发送设备进行回退重传,并再次等待一个IPG的时间间隔通知数据包 发送模块22发送待发送的数据包。该半双工反压流控装置还可以包括回退重传模块24,用于在数据包发 送模块22发送待发送的数据包的过程中,线路上发生冲突时,进行回退重传。 在等待回退重传的时间间隔内,如果接收到发送设备发送的数据包,则通知 阻塞码发送模块23发送一个阻塞码序列,使所述发送设备进行回退重传。上述半双工反压流控装置,序列发送模块21在线路上间隔预定的时间间 隔发送码元序列,进行反压流控,并且该预定的时间间隔小于一个帧间隙IPG 的时间间隔,数据包发送模块22在有待发送的数据包时,通知序列发送模块 21停止发送码元序列,在序列发送模块21停止发送码元序列后的一个IPG的 时间间隔内没有在线路上检测到数据包时,发送上述待发送的数据包。该半双工反压流控装置解决了连续向外发送前导码序列时无法向外发送 数据包的问题。并且减少了线路上出现的沖突数量,不会引起网络设备工作 异常,有效解决了持续发送码元序列的方式中物理设备不兼容的问题。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过^/f牛实现,也可以可借助软件加必要的通用硬件平台的方式来实 现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该 软件产品可以存储在一个非易失性存储介质(可以是CD-ROM, U盘,移动 硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是本发明提供的实施例的示意图,附图 中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述 进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一 个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆 分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1. 一种半双工反压流控方法,其特征在于,包括在反压流控状态有效时,在线路上间隔预定的时间间隔发送码元序列,进行反压流控,所述预定的时间间隔小于一个帧间隙IPG的时间间隔;当有待发送的数据包时,停止发送所述码元序列,并在没有在所述线路上检测到数据包时,发送所述待发送的数据包。
2、 如权利要求1所述半双工反压流控方法,其特征在于,还包括 如果在停止发送所述码元序列后,在所述线路上检测到数据包,并且所述数据包为有效的数据包时,则发送一个阻塞码序列,使发送所述数据包的 发送设备进行回退重传,并等待一个IPG的时间间隔后发送所述待发送的数 据包。
3、 如权利要求1或2所述半双工反压流控方法,其特征在于,在发送所 述待发送的数据包的过程中,如果发生冲突,则进行回退重传。
4、 如权利要求3所述半双工反压流控方法,其特征在于,在所述等待回 退重传的时间间隔内,接收到发送设备发送的数据包时,发送一个阻塞码序 列,使所述发送设备进行回退重传。
5、 如权利要求1所述半双工反压流控方法,其特征在于,所述码元序列 包括不包含帧首界定符SFD的前导码序列。
6、 一种半双工反压流控装置,其特征在于,包括序列发送模块,用于在反压流控状态有效时,在线路上间隔预定的时间 间隔发送码元序列,进行反压流控,所述预定的时间间隔小于一个帧间隙IPG 的时间间隔;数据包发送模块,用于在有待发送的数据包时,通知所述序列发送模块 停止发送所述码元序列,在所述线路上检测到数据包时,发送所述待发送的 数据包。
7、 如权利要求6所述半双工反压流控装置,其特征在于,还包括 阻塞码发送模块,用于在所述线路上检测到数据包,并且所述数据包为有效的数据包时,发送一个阻塞码序列,使发送所述数据包的发送设备进行 回退重传,并等待一个IPG的时间间隔后通知所述数据包发送^t块发送所述待发送的数据包。
8、如权利要求6所述半双工反压流控装置,其特征在于,还包括回退重传模块,用于在所述数据包发送模块发送所述待发送的数据包的 过程中,发生沖突时,进行回退重传。
全文摘要
本发明实施例公开了一种半双工反压流控方法和装置,所述半双工反压流控方法包括在反压流控状态有效时,在线路上间隔预定的时间间隔发送码元序列,进行反压流控,所述预定的时间间隔小于一个帧间隙IPG的时间间隔;当有待发送的数据包时,停止发送所述码元序列,在停止发送所述码元序列后的一个IPG的时间间隔内没有在所述线路上检测到数据包时,发送所述待发送的数据包。本发明实施例提供的技术方案,接收设备在反压状态时既能通过发送码元序列进行反压流控,又可以在自身需要发包时向外发包,并且减少了线路上出现的冲突数量。本发明实施例还公开了一种半双工反压流控装置。
文档编号H04L12/56GK101286821SQ200810111149
公开日2008年10月15日 申请日期2008年6月10日 优先权日2008年6月10日
发明者宋文敬, 波 林, 汪志韬, 鹏 郭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1