[发明专利]报文转发方法和装置在审
申请号: | 201210370100.4 | 申请日: | 2012-09-28 |
公开(公告)号: | CN103716243A | 公开(公告)日: | 2014-04-09 |
发明(设计)人: | 袁文涛;魏新 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L12/743 | 分类号: | H04L12/743;H04L29/12 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报文 转发 方法 装置 | ||
技术领域
本发明实施例涉及通信技术,尤其涉及一种报文转发方法和装置。
背景技术
在IPv4公有地址枯竭后,通过网络地址转换(Network Address Translation,简称NAT)444的解决方案可支持宽带互联网业务等IP地址相关的各种业务的持续发展,终端通过用户驻地设备(Customer Presidial Equipment,简称CPE)接入NAT444组网,宽带远程接入服务(Broadband Remote Access Service,简称BRAS)设备为CPE分配地址,CPE为终端发送的报文做第一次NAT,替换源端口和源IP地址。其中,源IP地址为BRAS分配给CPE的地址。报文经过部署点设备处理后转发到CGN设备时,电信级NAT(Carrier Grade NAT,简称CGN)设备对报文做第二次NAT,将报文的源IP和源端口替换为外网地址和端口。
CGN设备配置有若干地址池,每个地址池有若干个外网地址,地址池中外网地址个数可灵活配置、每个外网地址有若干个端口资源。私网终端经过CGN设备访问外网时,CGN设备从某个地址池申请一个外网地址并从该外网地址中分配端口。CGN设备允许多个私网终端使用同一个外网地址的不同端口。如果某个外网地址的端口资源耗尽,则该地址不能再被申请。
目前,CGN设备采用的外网地址分配方法是,对私网地址进行哈希运算,并用哈希值对地址池的地址个数取模,根据取模后的值选择外网地址,并在这个外网地址上分配端口资源。如果地址池中地址个数是2的N次幂,由于待转换的哈希值的个数是2的M次幂,通过哈希值对地址个数取模后的值确定外网地址的方法,多个哈希值会均匀地散列在不同的外网地址上,也就是,每个外网地址被分配的概率是均等的。然而,如果地址池中地址个数不是2的N次幂,会使多个哈希值集中散列在部分外网地址上,而部分外网地址被散列到的哈希值较少,也就是,部分外网地址被分配的概率有可能高于其它外网地址被分配的概率,从而出现地址池的外网地址分配不均匀的现象。
发明内容
本发明实施例提供一种报文转发方法和装置,用于解决报文转发过程中每个外网地址被分配的概率不相等的缺陷,提高了报文转发效率。
第一方面,本发明实施例提供一种报文转发方法,包括:
接收包括有第一网络地址的报文;
根据地址池中第二网络地址个数和所述第一网络地址的哈希值中最低N位的值,在所述地址池中确定所述第一网络地址对应的第二网络地址,使得所述地址池中每个第二网络地址被不同的第一网络地址选中的概率相等,2的N次幂大于等于所述第一网络地址且与所述第一网络地址的差值最小;
通过所述第二网络地址发送所述报文。
结合第一方面,第一种可能实现的方法中,根据地址池中第二网络地址个数和所述第一网络地址的哈希值中最低N位的值,在所述地址池中确定所述第一网络地址对应的第二网络地址,包括:
若所述第一网络地址的哈希值中最低N位的值小于所述地址个数,将所述第一网络地址的哈希值中最低N位的值确定为所述第一网络地址对应的选路值;
若所述第一网络地址的哈希值中最低N位的值大于等于所述地址个数,将所述第一网络地址的哈希值中最低N位的值对所述地址个数取模后的值确定为所述第一网络地址对应的选路值;
根据所述第一网络地址对应的选路值,在所述地址池中确定所述第一网络地址对应的第二网络地址,不同的选路值对应不同的第二网络地址。
结合第一方面,第二种可能实现的方法中,所述根据所述地址池中地址个数和所述第一网络地址的哈希值中最低N位的值,在所述地址池中确定所述第一网络地址对应的第二网络地址,包括:
在所述地址池的选路表中查找所述第一网络地址的哈希值对应的选路值,所述地址池的选路表中包括不同哈希值对应的选路值,在哈希值中最低N位的值小于所述地址个数时,所述哈希值对应的选路值为所述哈希值中最低N位的值,在哈希值中最低N位的值大于等于所述地址个数时,所述哈希值对应的选路值为所述第一网络地址的哈希值中最低N位的值对所述地址个数取模后的值;
根据查找到的选路值,在所述地址池中确定所述第一网络地址对应的第二网络地址,不同的选路值对应不同的第二网络地址。
第二方面,本发明实施例还提供一种报文转发装置,包括:
接收模块,用于接收包括有第一网络地址的报文,将所述第一网络地址发送给转换模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210370100.4/2.html,转载请声明来源钻瓜专利网。