一种在基于ipv4的路由协议中使用无编号端口的方法

文档序号:7965972阅读:366来源:国知局
专利名称:一种在基于ipv4的路由协议中使用无编号端口的方法
技术领域
本发明主要涉及IP网络通信技术,尤其涉及IPV4协议,以及基于IPV4协议的开放最短路径优先路由协议(OSPF)和路由信息协议(RIP)。
背景技术
本发明中的IPV4协议专指目前已经成为事实标准的TCP/IP四层协议中的网络层协议。IPV4协议的基本思想是采用无连接的不可靠的方式进行数据报的传输;为网络中设备的每个接口分配32位的IP地址;将网络分割成不同的子网;对数据报的处理主要是根据IP报头中的目的IP地址来决定的,如果目的IP地址是本节点地址或本节点接受的特定组播地址或广播地址,则将数据报提交给传输层处理,否则,查询路由表,如果找到目的地址对应的路由表项,则按照路由表中下一跳地址对数据报进行转发,如果没有找到对应路由表项,则直接将数据报丢弃;组播和广播地址在IPV4中都是特定地址范围或特定的IP地址。
OSPF是目前被广泛采用的一种路由协议,它采用的是链路状态算法。OSPF的基本原理是网络中的每个节点在初始化后都会探测它的每个数据链路层端口是否存在邻居节点;当某个节点探测到邻居节点时,它会尝试和这个节点建立邻接关系,如果这两个节点之间满足建立邻接关系的条件,它们就会互相交换链路状态通告信息来同步链路状态数据库,一旦它们之间的数据库同步了,它们之间就建立了完整的邻接关系;链路状态通告信息实际上就是每个节点所连接的网络信息和邻居信息;当网络拓扑发生变化时,相关节点就会重新产生链路状态通告,然后将链路状态通告在网络中洪泛,网络中其它节点会用新的链路状态通告信息替换链路状态数据库中旧的条目;任何节点的链路状态数据库发生变化时,它都会采用SPF算法重新计算路由表;当网络达到稳定状态时,每个节点的工作只是维护邻居状态,并每隔较长的一个时间间隔就重发自己的链路状态通告信息;OSPF为了减轻大型网络中路由计算所占用的网络资源,采用了分域(AREA)的方法,骨干域(0域)是网络的核心域,它负责将其它域关联起来并负责不同域之间信息的转发,一个域的链路状态通告信息不会洪泛到另一个域中。
RIP协议的基本原理较简单,采用RIP协议时,每个节点只是周期性地从它所有网络层端口发送自己的路由信息,当某个节点收到邻居节点发送过来的路由信息时,它会将每个路由条目同自身的路由表中所有条目进行比较,如果不存在,它就重新计算这个条目的下一跳和代价值,并将这个条目加入路由表;否则,它只是比较代价值,如果小于路由表中已存在条目的代价值,则重新计算这个条目的下一跳和代价值替换原来的值;如果大于路由表中已存在条目的代价值则不做任何处理。
随着采用IPV4协议的网络的日益发展和IP及其路由协议应用范围的拓展,IP地址的分配遇到了两方面的问题。一方面IP地址资源面临耗尽的危险,另一方面网络的配置也越来越复杂(例如光传输设备中ECC协议可能需要为几十甚至上百个端口分配IP地址,以至于实际应用几乎不可用),从而导致网络可拓展性的降低和设备配置成本的提高。

发明内容
本发明的目的在于提供一种在使用IPV4协议的设备中实现配置无编号端口的方法,该方法对IPV4、OSPF以及RIP协议进行了改进,使无编号端口在实际应用中更方便灵活。该方法有效地减少了对IP地址资源的消耗,同时降低了网络组网和配置的复杂性。该方法中的无编号端口只针对点对点链路。
为了解决上述技术问题,本发明采取如下技术方案(在以下所称的IP均指IPV4)。
1.在IP层实现无编号端口,此时任何一个支持此方法的节点必须具备一个32位的节点地址,节点地址用作这个节点在网络中的标识,节点地址必须同这个节点某个非无编号端口IP地址相同。
具体实现步骤如下A.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0。
B.在IP层源节点获取数据包的出端口后,对出端口的类型进行判断。
C.当出端口为无编号端口时,不以此端口的IP地址作为数据包的源IP地址,而是以源节点的节点地址作为数据包的源IP地址。
D.当出端口不是无编号端口时,将此端口的IP地址作为数据包的源IP地址。
2.在开放最短路径优先路由协议(OSPF)中实现无编号端口,其包括实现涉及无编号端口的OSPF初始化过程、实现OSPF协议包通过无编号端口的发送过程、实现对协议包的目的地址的合法性校验以及对下一跳出端口的路由计算。
实现涉及无编号端口的OSPF初始化过程主要包括对路由器标识(router ID)的初始化和对OSPF端口的初始化
A11.router ID自动被设置成方案1中的节点标识。
A12.对于非无编号端口,OSPF将其端口的地址配置成此端口的IP地址,端口的地址掩码配置成此端口IP层子网掩码。
A13.对于无编号端口,OSPF将其端口地址和端口地址掩码自动配置成0.0.0.0。实现OSPF协议包通过无编号端口的发送过程,包括B11.当OSPF协议包通过一个端口发出时,首先判断端口的地址。
B12.如果端口地址为0.0.0.0,则认为此端口为无编号端口,将协议包的源地址设置成路由器标识。
B13.如果端口的地址非0,则认为此端口为非无编号端口,将协议包的源地址设置成此端口地址。
B14.设置OSPF协议包的其他参数并将其发送出去。
通过在判断目的IP地址有效的条件中增加一条即目的地址同路由器标识(routerID)相同也视为有效,对协议包的目的地址的合法性进行校验C11.从OSPF协议包中获取目的地址,判断获取到的目的地址是否为OSPF协议规定的组播地址。
C12.如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否为接收端口的地址。
C13.如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否与接收节点的Router ID相等。
C14.如果相等,那么这个包的目的地址就是合法的;否则,目的地址不合法。引入无编号端口技术,对下一跳出端口进行路由计算D11.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0。
D12.根据OSPF协议标准中的计算过程计算出出端口的IP地址.
D13.判断IP地址是否等于0,如果不等于0,就说明这是一个一般的端口,返回端口的IP地址,否则,说明出端口是一个无编号端口,返回端口的逻辑端口号。
3.在路由信息协议(RIP)中实现无编号端口,包括A.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0。
B.判断收到路由信息的端口是否为无编号端口。
C.如果是无编号端口,向路由表中加入这个路由条目时,这条路由表项的网关应设置为0.0.0.0。如果不是,将此路由信息加入到路由表中时网关置为发送此路由信息的发送者的IP地址。
4.对于方案1、2、3,还包括A.要实现本发明中所述的在基于IPV4的路由协议中使用无编号端口的功能,首先应实现方案1中描述的IP层的无编号端口的功能。
B.如果采用基于IPV4的OSPF路由协议,并且使用了无编号端口,就应该实现方案2中描述的在开放最短路径优先路由协议(OSPF)中实现无编号端口的功能。
C.如果采用基于IPV4的RIP协议,并且使用了无编号端口,就应该实现方案3中描述的在路由信息协议(RIP)中实现无编号端口的功能。
D.方案1、2、3中的端口是相互一一对应的。
通过上述的技术方案可以得出以下结论本发明对于原有IP协议、OSPF协议和RIP协议的改进都是在原协议基础上进行扩充,使用本发明中描述的方法的设备可以完全兼容标准IP协议、OSPF协议和RIP协议;对于一个具有较多无编号端口的路由器设备,如果采用了本发明中描述的方法,每个无编号端口只需要配置一个属性值,端口的IP地址和子网掩码可以让系统自动初始化为0.0.0.0。这样,所有的无编号端口只占用了一个保留的IP地址,一方面减少了配置的工作量,另一方面尽可能地节省了IP地址资源;在一个网络中,对于所有点对点链路,只需简单地将这些链路两端所连接的端口配置成无编号端口,而不必考虑它们的网络属性,有效地降低了网络规划和配置的复杂程度,同时也有效地节省了目前宝贵的网络资源。
尤其应该指出的是,在目前的光传输设备中,ECC协议栈一个主流就是采用IPV4协议和OSPF路由协议。而光传输设备比较特殊,每个设备具备的DCC端口很可能超过几十甚至上百个,这些端口实际上都是使用的点对点链路,但这种设备一般只有一个以太网端口。如果不采用本发明中的方法,组建一个网络时ECC协议栈配置就会非常繁琐和复杂。如果采用了本发明中的方法,则只需要配置一个以太网端口的IP属性,其余DCC端口只需要简单地配置成无编号端口就可以了,组网时任意两个设备之间的DCC端口可以随意连接而无需考虑其网络IP配置,组网配置非常简便。


图1描述了本发明中具有无编号端口的节点在IP层初始化的特殊处理过程;图2为本发明中某个源节点在IP层通过无编号端口发送数据包的特殊处理过程;图3描述了本发明中OSPF初始化的特殊处理过程;图4描述了本发明中OSPF发送协议包的特殊处理过程;图5描述了本发明中OSPF对协议包的目的地址的合法性校验过程;图6描述了本发明中OSPF路由计算时对下一跳的出端口的计算方法;图7为本发明中RIP对无编号端口路由信息的处理过程。
具体实施例方式
图1描述了本发明中具有无编号端口的节点在IP层初始化的特殊处理过程。首先初始化IPV4协议标准中规定的各参数,接着选取一个非无编号端口的IP地址作为节点地址;最后扫描各端口,配置各端口的属性,并根据属性配置IP地址和子网掩码,如果此端口属性为无编号端口,则将端口的IP地址和子网掩码都配置成0.0.0.0;否则,为端口配置相应的IP地址和子网掩码。
图2为本发明中某个源节点在IP层,通过无编号端口发送数据包的特殊处理过程。当一个节点作为某个数据包的源节点要发送这个数据包时,源节点会首先根据这个数据包的目的IP地址,从路由表信息中获取这个数据包发往目的地所要经过的出端口。在图1所示的处理流程中,对出端口为无编号端口时做了特殊处理。在本发明中,在源节点获取数据包的出端口后,首先对出端口的类型进行判断,如果这个出端口是一个无编号端口,就将数据包的源IP地址设置为节点地址,否则,按照IP协议标准处理过程,将数据包的源IP地址设置为出端口的IP地址。确定了源地址后,将这个数据包从出端口发送出去。
图3描述了本发明中OSPF初始化的特殊处理过程。OSPF首先初始化协议标准规定的各项参数,然后设置router ID为IP层的节点标识;扫描各端口,对于IP层属性为非无编号的端口,OSPF将其端口的地址配置成此端口的IP地址,端口的地址掩码配置成此端口IP层子网掩码;对于IP层属性为无编号的端口,OSPF将其端口地址和端口地址掩码配置成0.0.0.0。
图4描述了本发明中OSPF发送协议包的特殊处理过程。首先判断发送协议包的出端口地址是否为0,如果为0,则说明此端口是一个无编号端口,将协议包的源地址设置成routerID;否则说明此端口是一个非无编号端口,将协议包的源地址设置成端口地址,然后设置协议包的其他参数并将协议包发出。
图5描述了本发明中OSPF对协议包的目的地址的合法性校验过程。在OSPF协议标准(RFC1583和RFC2328)中,虽然也定义了无编号端口,但是对从无编号端口上收到的协议包的校验并没有作特殊考虑。因为从无编号端口上收到的协议包的目的地址要么是OSPF规定的组播地址,要么是接收端的Router ID,而不可能是接收到这个协议包的端口的IP地址(无编号端口可以被认为不具有IP地址)。本发明如图2所示,对OSPF协议包的目的地址的合法性校验过程进行了改进。首先,从OSPF协议包中获取目的地址,判断获取到的目的地址是否为OSPF协议规定的组播地址,如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否为接收端口的地址,如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否与接收节点的Router ID相等,如果相等,那么这个包的目的地址就是合法的;否则,目的地址不合法。
图6描述了本发明中OSPF路由计算时对下一跳的出端口的计算方法。在OSPF协议标准(RFC1583和RFC2328)中,路由计算中对于下一跳的计算也没有考虑无编号端口的情况,尤其对于出端口的计算,只是简单地获取出端口的IP地址来确定出端口。但是如果出端口是无编号端口,那么采用端口IP就不能确定是哪个端口,因为所有无编号端口的IP地址是相同的,都为0.0.0.0。图3对下一跳的出端口计算过程进行了改进。第一步,先对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0;第二步,根据OSPF协议标准中的计算过程计算出出端口的IP地址;第三步,判断IP地址是否等于0,如果不等于0,就说明这是一个一般的端口,返回端口的IP地址,否则,说明出端口是一个无编号端口,返回端口的逻辑端口号。
图7为本发明中RIP对无编号端口路由信息的处理过程。本发明只是对网关的设置进行了变动。具体实现过程首先对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0,然后判断收到新路由信息条目的端口是否为无编号端口;如果是无编号端口,计算此路由信息条目的下一跳地址时,将网关置为0.0.0.0;否则,计算此路由信息条目的下一跳地址时,将网关置为此路由信息的发送者地址。
上述实施例仅仅是示例性的,本领域技术人员应当清楚,不脱离本发明的精神和范围,可以对本发明进行修改和变化。本发明的范围由所附的权利要求来定义。
权利要求
1.一种基于IPV4协议在IP层实现无编号端口的方法,具体实现步骤如下A.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0;B.在IP层源节点获取数据包的出端口后,对出端口的类型进行判断;C.当出端口为无编号端口时,不以此端口的IP地址作为数据包的源IP地址,而是以源节点的节点地址作为数据包的源IP地址;D.当出端口不是无编号端口时,将此端口的IP地址作为数据包的源IP地址。
2.如权利要求1所述的方法,其特征在于其中任何一个支持此方法的节点具备一个32位的节点地址,节点地址用作这个节点在网络中的标识,节点地址必须同这个节点某个非无编号端口IP地址相同。
3.如权利要求1所述的方法,其特征在于对于网络中的点对点链路,可以将链路两端所连接的端口配置成无编号端口。
4.一种在基于IPV4协议的开放最短路径优先路由协议(OSPF)中实现无编号端口的方法,其包括A.实现涉及无编号端口的OSPF初始化过程;B.实现OSPF协议包通过无编号端口的发送过程;C.对协议包的目的地址的合法性校验;D.对下一跳出端口的路由计算。
5.如权利要求4所述的方法,其中步骤A中的初始化过程包括对路由器标识的初始化和对OSPF端口的初始化,具体包括以下步骤A11.路由器标识被自动设置成节点标识;A12.对于非无编号端口,OSPF将其端口的地址配置成此端口的IP地址,端口的地址掩码配置成此端口IP层子网掩码;A13.对于无编号端口,OSPF将其端口地址和端口地址掩码自动配置成0.0.0.0。
6.如权利要求4所述的方法,其中步骤B的发送过程包括以下具体步骤B11.当OSPF协议包通过一个端口发出时,首先判断端口的地址;B12.如果端口地址为0.0.0.0,则认为此端口为无编号端口,将协议包的源地址设置成路由器标识;B13.如果端口的地址非0,则认为此端口为非无编号端口,将协议包的源地址设置成此端口地址;B14.设置OSPF协议包的其他参数并将其发送出去。
7.如权利要求4所述的方法,其中步骤C中的实现对协议包的目的地址的合法性校验过程具体包括以下步骤C11.从OSPF协议包中获取目的地址,判断获取到的目的地址是否为OSPF协议规定的组播地址;C12.如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否为接收端口的地址;C13.如果是,那么这个包的目的地址就是合法的;否则,判断这个目的地址是否与接收节点的路由器标识相等;C14.如果相等,那么这个包的目的地址就是合法的;否则,目的地址不合法。
8.如权利要求4所述的方法,其中步骤D中对下一跳出端口的路由计算过程具体包括以下步骤D11.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0;D12.根据OSPF协议标准中的计算过程计算出出端口的IP地址;D13.判断IP地址是否等于0,如果不等于0,就说明这是一个一般的端口,返回端口的IP地址,否则,说明出端口是一个无编号端口,返回端口的逻辑端口号。
9.一种基于IPV4协议的路由信息协议(RIP)中对无编号端口路由信息的处理方法,包括A.对每个无编号端口仅配备一个属性值,系统自动将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0;B.判断收到路由信息的端口是否为无编号端口;C.如果是无编号端口,向路由表中加入这个路由条目时,这条路由表项的网关应设置为0.0.0.0;如果不是,将此路由信息加入到路由表中时网关置为发送此路由信息的发送者的IP地址。
全文摘要
本发明提供一种在使用IPV4协议的设备中实现配置无编号端口的方法。对每个无编号端口仅配备一个属性值,将每一个无编号端口的IP地址和子网掩码都设置成0.0.0.0。在IP层源节点获取数据包的出端口后,对出端口的类型进行判断。当出端口为无编号端口时,不以此端口的IP地址作为数据包的源IP地址,而是以源节点的节点地址作为数据包的源IP地址。当出端口不是无编号端口时,将此端口的IP地址作为数据包的源IP地址。本发明通过使用无编号端口技术,节省了IP地址资源,同时降低了网络规划和配置的复杂程度。
文档编号H04L12/56GK1905560SQ200610109298
公开日2007年1月31日 申请日期2006年8月9日 优先权日2006年8月9日
发明者张峰 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1