的目的MAC地址是MAC地址mO,并把报文转发到接入接口。
[0096]图2为本发明基于二维信息进行寻路的方法另一实施例的示意图。优选的,本实施例的方法步骤可由接入网关执行。
[0097]步骤201,当接收到用户报文时,读取报文的目的地址和端口号。
[0098]步骤202,利用报文的目的地址查询转发路由表,按照最长匹配策略获取报文的下一跳信息。
[0099]步骤203,统计所述下一跳信息的数目N。若所述下一跳信息的数目N等于0,则执行步骤204 ;若所述下一跳信息的数目N等于1,则执行步骤205 ;若所述下一跳信息的数目N大于I,则执行步骤206。
[0100]步骤204,丢弃报文。之后,不再执行本实施例的其它步骤。
[0101]步骤205,根据所述下一跳信息中指定的接入接口信息和MAC地址信息,对报文进行转发。之后,不再执行本实施例的其它步骤。
[0102]由于在该情况下仅有一个下一跳信息,因此直接采用该信息。
[0103]步骤206,进一步判断N个下一跳信息中的下一跳地址是否相同。若N个下一跳信息中的下一跳地址互不相同,则执行步骤207 ;若N个下一跳信息中的下一跳地址相同,则执行步骤208。
[0104]步骤207,按照等价路径转发策略对N个下一跳信息中的下一跳地址进行轮询以转发报文。之后,不再执行本实施例的其它步骤。
[0105]由于本领域技术人员了解如何按照等价路径转发策略进行轮询以转发报文,因此这里不展开描述。
[0106]步骤208,在二维信息路由表中查找出与所述下一跳地址相关联的二维信息路由表项。
[0107]步骤209,在与所述下一跳地址相关联的二维信息路由表项中,查询是否存在与报文的端口号相关联的目的路由表项,其中报文的端口号归属于目的路由表项指定的端口范围。若存在,则执行步骤210 ;若不存在,则执行步骤204。
[0108]步骤210,根据目的路由表项中指定的接入接口信息和MAC地址信息,对报文进行转发。
[0109]这里需要说明的是,对二维信息路由表项的维护主要涉及以下三种情况:
[0110]a)终端上线:获取终端上线信息,包括IP地址、端口范围、接入接口、MAC地址等,此时需要把终端的上线信息写入二维信息路由表;
[0111]b)终端上线信息发生变化:获取新的终端上线信息,用新的终端上线信息替换二维信息路由表以进行表项更新;
[0112]c)终端失联:根据终端的(IP地址、端口范围)查询二维信息路由表,并删除相应表项。
[0113]下面分别对这几种情况进行说明。
[0114]图3为本发明创建二维信息路由表项一个实施例的示意图。优选的,本实施例的方法步骤可由接入网关执行。
[0115]步骤301,当用户终端上线时,判断用户终端是否通过认证。
[0116]其中在使用前,对二维信息路由表进行初始化。
[0117]步骤302,若用户终端通过认证,则为用户终端分配IP地址和端口范围。
[0118]步骤303,获取用户终端的接入接口信息和MAC地址信息。
[0119]步骤304,在二维信息路由表中创建相应的二维信息路由表项,以便记录所述IP地址、端口范围、接入接口信息和MAC地址信息。
[0120]需要说明的是,IP地址IP_Addr、端口范围P-R、接入接口、MAC地址等接入信息在终端接入状态未发生改变时保持不变。
[0121]图4为本发明二维信息路由表项更新一个实施例的示意图。优选的,本实施例的方法步骤可由接入网关执行。
[0122]步骤401,当用户终端的接入信息发生变化时,判断是否需要为用户终端重新分配IP地址和端口范围。若需要为用户终端重新分配IP地址和端口范围,则执行步骤402 ;若不需要为用户终端重新分配IP地址和端口范围,则执行步骤404。
[0123]步骤402,在二维信息路由表中,利用用户终端的MAC地址信息查询相关联的二维信息路由表项。
[0124]步骤403,利用重新分配的IP地址和端口范围,对相关联的二维信息路由表项进行更新。然后执行步骤406。
[0125]例如,当需要重新为终端分配IP地址和端口范围时,终端的(IP地址,端口范围)从(IP_Addrl,P-Rl)变成(IP_Addr2,P-R2),原来的二维信息路由表项从(IP_Addrl,P_Rl,接口,MAC地址)变成(IP_Addr2,P-R2,接口,MAC地址)。在这种情况中,终端的接入接口、MAC地址等信息不会发生改变,此时可采用MAC地址或用户标识等信息查询对应的二维信息路由表项,更新表项中的IP地址、端口范围。
[0126]步骤404,在二维信息路由表中,利用用户终端的IP地址和端口范围查询相关联的二维信息路由表项。
[0127]步骤405,利用更新后的接入信息对相关联的二维信息路由表项进行更新。
[0128]步骤406,将更新后的二维信息路由表项写入二维信息路由表中,以覆盖相应的二维信息路由表项。
[0129]例如,当终端的位置发生改变,终端的接入信息也会发生改变,如终端从一个接入接口 intfl移动到另一个接入接口 intf2,即终端发生了漫游。终端的IP地址、端口范围、MAC地址等信息没有发生改变,原来的二维信息路由表项(IP_Addr,P-R, intfl, MAC地址)变成(IP_Addr,P-R, intf2,MAC地址)。此时可根据IP_Addr、P-R、MAC地址等信息可以查询到原来的二维信息路由表项,并更新对应的二维信息路由表项。
[0130]图5为本发明二维信息路由表项删除一个实施例的示意图。优选的,本实施例的方法步骤可由接入网关执行。
[0131]步骤501,当与用户终端失去联系时,判断二维信息路由表是否为空。
[0132]步骤502,若二维信息路由表不为空,则查找与失去联系的用户终端相关联的二维信息路由表项。
[0133]步骤503,将与失去联系的用户终端相关联的二维信息路由表项进行删除。
[0134]这里需要说明的是,终端失联指由于各种原因,网络接入网关与终端不再能够通信,其原因包括终端下线、网络接入网关终止与终端的连接、终端故障等。在终端失联后,接入网关释放分配给终端的IP地址、端口范围等信息。接入网关首先检查二维信息路由表的状态。当二维信息路由表是空,即表项数为0,二维信息路由表没有记录任何二维信息路由表项,此时不做任何操作,接入网关继续等待;当二维信息路由表项非空,接入网关查询二维信息表,寻找与终端的IP地址、端口范围相匹配的二维信息路由表项,并从二维路由信息表项中删除该项。若在查询过程中没有找到相匹配的二维信息路由表项,接入网关也不进行任何操作。
[0135]图6为本发明基于二维信息进行寻路的接入网关一个实施例的示意图。如图6所示,接入网关可包括接入单元601、第一查询单元602、统计单元603、识别单元604、第二查询单元605、路由表项查询单元606、报文转发单元607和存储单元608。其中:
[0136]接入单元601,用于当接收到用户报文时,读取报文的目的地址和端口号。
[0137]第一查询单元602,用于利用报文的目的地址查询转发路由表,按照最长匹配策略获取报文的下一跳信息。
[0138]统计单元603,用于统计所述下一跳信息的数目N。
[0139]识别单元604,用于根据统计单元603的统计结果,若所述下一跳信息的数目N大于1,则进一步判断N个下一跳信息中的下一跳地址是否相同。
[0140]第二查询单元605,用于根据识别单元604的判断结果,若N个下一跳信息中的下一跳地址相同,则在二维信息路由表中查找出与所述下一跳地址相关联的二维信息路由表项。
[0141]路由表项查询单元606,用于在与所述下一跳地址相关联的二维信息路由表项中,查询与报文的端口号相关联的目的路由表项,其中报文的端口号归属于目的路由表项指定的端口范围。
[0142]报文转发单元607,用于根据目的路由表项中指定的接入接口信息和MAC地址信息,对报文进行转发。
[0143]存储单元608,用于存储二维信息路由表。
[0144]基于本发明上述实施例提供的基于二维信息进行寻路的接入网关,可有效解决复用同一地址的用户终端返回报文的寻路问题。
[0145]图7为本发明基于二维信息进行寻路的接入网关另一实施例的示意图。与图6所示实施例相比,在图7所示实施例中,接入网关还包括报文丢弃单元701。其中:
[0146]报文丢弃单元701,用于根据路由表项查询单元606的查询结果,若在与所述下一跳地址相关联的二维信息路由表项中,未查询到与报文的端口号相关联的目的路由表项,则丢弃报文。
[0147]优选的,报文转发单元607还用于根据识别单元604的判断结果,若N个下一跳信息中的下一跳地址互不相同,则按照等价路径转发策略对N个下一跳信息中的下一跳地址进行轮询以转发报文。
[0148]优选的,报文转发单元607还用于根据统计单元603的统计结果,若所述下一跳信息的数目N等于1,则根据所述下一跳信息中指定的接入接口信息和MAC地址信息,对报文进行转发。
[0149]优选的,报文丢弃单元701还用于根据统计单元603的统