CN105743861B - 一种发送报文的方法、装置及设备 - Google Patents
一种发送报文的方法、装置及设备 Download PDFInfo
- Publication number
- CN105743861B CN105743861B CN201410764585.4A CN201410764585A CN105743861B CN 105743861 B CN105743861 B CN 105743861B CN 201410764585 A CN201410764585 A CN 201410764585A CN 105743861 B CN105743861 B CN 105743861B
- Authority
- CN
- China
- Prior art keywords
- server
- network address
- private network
- message
- domain name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 10
- 230000006854 communication Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 4
- 238000013519 translation Methods 0.000 description 22
- 238000001514 detection method Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000000977 initiatory effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种发送报文的方法、装置及设备,属于通信领域。所述方法包括:接收第一终端发送的报文,该报文至少携带第二终端的URI,第二终端位于私网中,第二终端的URI包含私网中的服务器的公网地址;对报文进行解析,从解析结果中获得所携带的服务器的公网地址;根据服务器的公网地址,获取服务器的私网地址和域名;将报文中携带的第二终端的URI中的服务器的公网地址替换为服务器的域名,将报文的IP头中的目的地址由服务器的公网地址替换为服务器的私网地址,获得修改后的报文;向服务器发送修改后的报文。所述装置包括:接收模块、解析模块、第一获取模块、第一替换模块和发送模块。本发明能将报文成功地发送给第二终端,提高发送报文的成功率。
Description
技术领域
本发明涉及通信领域,特别涉及一种发送报文的方法、装置及设备。
背景技术
目前,很多社会组织都有自己的私网,私网是使用私有IP(Internet Protocol,网络互联协议)地址空间的网络,私有IP地址通常用于家庭、办公室和企业的局域网等。私网包括一台服务器和多个终端,该多个终端都连接到该服务器,该服务器连接到公网中,公网可以是互联网。当公网中的终端需要与该私网中的终端进行通信时,该公网中的终端需要发送报文给该私网中的终端。
其中,该服务器具有私网地址和公网地址,私网地址为该服务器在该私网内部的地址,公网地址为该服务器在公网中的地址。公网中有一地址转换设备。该地址转换设备上存储有该服务器的私网地址与公网地址。当公网中的一终端需要发送报文给私网中的一终端时,为了便于说明将公网中的该终端称为第一终端,将私网中的该终端称为第二终端,第一终端发送报文给第二终端的过程如下:
第一终端发送报文给地址转换设备,该报文至少包括协议类型和第二终端的URI(Uniform Resource Identifier,统一资源标识符),第二终端的URI中包含第二终端所在私网中的服务器的公网地址。地址转换设备接收该报文,当该报文包括的协议类型为会话发起协议时,地址转换设备根据第二终端的URI中包含的该服务器的公网地址获取该服务器的私网地址,并将该报文中包括的第二终端的URI中的公网地址替换为该服务器的私网地址,然后根据该服务器的公网地址将该报文转发给该服务器。该服务器接收到该报文之后,再根据该报文中包括的第二终端的URI将该报文发送给第二终端。
发明人发现现有技术至少存在以下问题:
当该服务器的私网地址改变,而地址转换设备中存储的该服务器的私网地址没有及时更新时,仍将该报文中包括的第二终端的URI中的公网地址替换为改变前的私网地址,如此将导致无法将该报文发送给第二终端。
发明内容
为了将报文成功地发送给第二终端,提高发送报文的成功率,本发明提供了一种发送报文的方法、装置及设备。所述技术方案如下:
第一方面,一种发送报文的方法,所述方法包括:
接收第一终端发送的报文,所述报文至少携带第二终端的统一资源标识符URI,所述第一终端位于私网之外,所述第二终端位于所述私网中,所述第二终端的URI中包含所述私网中的服务器在公网中的公网地址,所述服务器与所述公网连接且为所述私网中的终端提供服务;
对所述报文进行解析,从解析结果中获得所携带的所述服务器的公网地址;
根据所述服务器的公网地址,获取所述服务器的私网地址和域名;
将所述报文中携带的所述第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
向所述服务器发送所述修改后的报文,以使所述服务器根据所述第二终端的URI将所述报文发送给所述第二终端。
结合第一方面,在上述第一方面的第一种实现方式中,所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名,包括:
根据所述服务器的公网地址,从第一对应关系中获取所述服务器的私网地址,所述第一对应关系中包括所述服务器的私网地址与所述服务器的公网地址的对应关系;
根据获取的所述服务器的私网地址,查看第二对应关系中是否包含所述服务器的私网地址,所述第二对应关系中包括所述服务器的私网地址与所述服务器的域名的对应关系;
基于所述第二对应关系中包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述第二对应关系中获取所述服务器的私网地址对应的域名。
结合第一方面的第一种实现方式,在上述第一方面的第二种实现方式中,所述方法还包括:
基于所述第二对应关系中不包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述服务器中获取所述服务器的域名。
结合第一方面,在上述第一方面的第三种实现方式中,所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名之前,还包括:
确定所述报文包含的协议类型是否为预设协议类型,如果是,则执行所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名。
结合第一方面的第三种实现方式,在上述第一方面的第四种实现方式中,所述确定所述报文包含的协议类型是否为预设协议类型,包括:
对所述报文进行解析,获取所述报文中包括的协议类型,比较所述获取的协议类型与所述预设协议类型是否相同,如果是,则确定所述报文包含的协议类型为预设协议类型,如果否,则确定所述报文包含的协议类型不是预设协议类型;或者,
对所述报文进行解析,获取所述报文中携带的目的端口,比较所述获取的目的端口与预设端口是否相同,如果是,则确定所述报文包含的协议类型为所述预设协议类型,如果否,则确定所述报文包含的协议类型不是所述预设协议类型,所述预设端口为所述服务器在支持处理所述预设协议类型的报文的条件下开启的端口。
结合第一方面,在上述第一方面的第五种实现方式中,所述接收第一终端发送的报文之前,还包括:
获取所述私网中的服务器的私网地址和域名,在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系。
结合第一方面的第五种实现方式,在上述第一方面的第六种实现方式中,所述在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系之后,还包括:
根据所述服务器的域名,实时从所述服务器中获取所述服务器的私网地址;
判断所述第二对应关系中的所述服务器的私网地址与获取的所述服务器的私网地址是否相同;
基于所述第二对应关系中的所述服务器的私网地址与所述获取的所述服务器的私网地址不相同的判断结果,将所述第二对应关系中所述服务器的域名对应的所述服务器的私网地址替换为所述获取的所述服务器的私网地址。
结合第一方面的第六种实现方式,在上述第一方面的第七种实现方式中,所述方法还包括:
在所述第一对应关系中,将所述服务器的私网地址替换为所述获取的所述服务器的私网地址。
结合第一方面的第五种实现方式,在上述第一方面的第八种实现方式中,所述在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系之后,还包括:
实时检测所述私网中是否存在新增加的服务器,如果检测出存在所述新增加的服务器,获取所述新增加的服务器的私网地址和域名,在所述第二对应关系中保存所述新增加的服务器的私网地址和域名的对应关系。
第二方面,一种发送报文的装置,所述装置包括:
接收模块,用于接收第一终端发送的报文,所述报文至少包括第二终端的统一资源标识符URI,所述第一终端位于私网之外,所述第二终端位于所述私网中,所述第二终端的URI中包含所述私网中的服务器在公网中的公网地址,所述服务器与所述公网连接且为所述私网中的终端提供服务;
解析模块,用于对所述接收模块接收的所述报文进行解析,从解析结果中获得所携带的所述服务器的公网地址;
第一获取模块,用于根据所述解析模块得到的所述服务器的公网地址,获取所述服务器的私网地址和域名;
第一替换模块,用于将所述报文中携带的所述第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
发送模块,用于向所述服务器发送所述第一替换模块得到的所述修改后的报文,以使所述服务器根据所述第二终端的URI将所述报文发送给所述第二终端。
结合第二方面,在上述第二方面的第一种实现方式中,所述第一获取模块包括:
第一获取单元,用于根据所述服务器的公网地址,从第一对应关系中获取所述服务器的私网地址,所述第一对应关系中包括所述服务器的私网地址与所述服务器的公网地址的对应关系;
查看单元,用于根据所述第一获取单元获取的所述服务器的私网地址,查看第二对应关系中是否包含所述服务器的私网地址,所述第二对应关系中包括所述服务器的私网地址与所述服务器的域名的对应关系;
第二获取单元,用于基于所述查看单元得到的所述第二对应关系中包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述第二对应关系中获取所述服务器的私网地址对应的域名。
结合第二方面的第一种实现方式,在上述第二方面的第二种实现方式中,所述第一获取模块,还用于基于所述查看单元得到的所述第二对应关系中不包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述服务器中获取所述服务器的域名。
结合第二方面,在上述第二方面的第三种实现方式中,所述装置还包括:
确定模块,用于确定所述报文包含的协议类型是否为预设协议类型,如果是,则执行所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名。
结合第二方面的第三种实现方式,在上述第二方面的第四种实现方式中,所述确定模块包括:
第一确定单元,用于对所述报文进行解析,获取所述报文中包括的协议类型,比较所述获取的协议类型与所述预设协议类型是否相同,如果是,则确定所述报文包含的协议类型为预设协议类型,如果否,则确定所述报文包含的协议类型不是预设协议类型;或者,
第二确定单元,用于对所述报文进行解析,获取所述报文中携带的目的端口,比较所述获取的目的端口与预设端口是否相同,如果是,则确定所述报文包含的协议类型为所述预设协议类型,如果否,则确定所述报文包含的协议类型不是所述预设协议类型,所述预设端口为所述服务器在支持处理所述预设协议类型的报文的条件下开启的端口。
结合第二方面,在上述第二方面的第五种实现方式中,所述装置还包括:
保存模块,用于获取所述私网中的服务器的私网地址和域名,在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系。
结合第二方面的第五种实现方式,在上述第二方面的第六种实现方式中,所述装置还包括:
第二获取模块,用于根据所述保存模块保存的所述第二对应关系中的所述服务器的域名,实时从所述服务器中获取所述服务器的私网地址;
判断模块,用于判断所述保存模块保存的所述第二对应关系中的所述服务器的私网地址与获取的所述服务器的私网地址是否相同;
第二替换模块,用于基于所述判断模块得到的所述第二对应关系中的所述服务器的私网地址与所述获取的所述服务器的私网地址不相同的判断结果,将所述第二对应关系中的所述服务器的域名对应的所述服务器的私网地址替换为所述获取的所述服务器的私网地址。
结合第二方面的第六种实现方式,在上述第二方面的第七种实现方式中,所述第二替换模块,还用于在所述第一对应关系中,将所述服务器的私网地址替换为所述获取的所述服务器的私网地址。
结合第二方面的第五种实现方式,在上述第二方面的第八种实现方式中,所述保存模块,还用于实时检测所述私网中是否存在新增加的服务器,如果检测出存在所述新增加的服务器,获取所述新增加的服务器的私网地址和域名,在所述第二对应关系中保存所述新增加的服务器的私网地址和域名的对应关系。
第三方面,一种发送报文的设备,所述设备包括:网络接口、存储器、处理器;
所述网络接口用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,执行:
对所述报文进行解析,从解析结果中获得所携带的所述服务器的公网地址;根据所述服务器的公网地址,获取所述服务器的私网地址和域名;将所述报文中携带的所述第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
所述网络接口用于向所述服务器发送所述修改后的报文。
在本发明实施例中,接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第二终端位于该私网中,第二终端的URI中包含该私网对应的服务器在公网中的公网地址;对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将报文中携带的第二终端的URI中的服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;向服务器发送修改后的报文,以使服务器根据第二终端的URI将该报文发送给第二终端。由于将第二终端的URI中的服务器的公网地址替换为该服务器的域名,如此即使服务器的私网地址发生改变,仍可以根据替换后的第二终端的URI将该报文发送给第二终端,从而保证成功发送该报文,提高了发送报文的成功率。
附图说明
图1-1是本发明实施例1提供的一种网络架构示意图;
图1-2是本发明实施例1提供的一种发送报文的方法流程图;
图2是本发明实施例2提供的一种发送报文的方法流程图;
图3是本发明实施例3提供的一种发送报文的装置结构示意图;
图4是本发明实施例4提供的一种发送报文的设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供了一种发送报文的方法。
目前,很多社会组织都有自己的私网,私网是使用私有IP地址的网络,私有IP地址通常用于家庭、办公室和企业的局域网等。如图1-1所示的网络架构,私网包括一台服务器和多个终端,该多个终端都连接到该服务器,该服务器连接到公网中。且该服务器具有私网地址和公网地址,私网地址为该服务器在该私网内部的地址,公网地址为该服务器在公网中的地址。在公网边缘部署有一个地址转换设备,该私网中的服务器连接到该地址转换设备上,本发明的执行主体即为该地址转换设备。当公网中的第一终端需要与该私网中的第二终端进行通信时,该公网中的第一终端先发送报文给该地址转换设备,若该报文中携带的第二终端的URI中包含该私网中服务器的公网地址,则地址转换设备可以通过本发明实施例提供的方法将该报文转发给第二终端。
参见图1-2,该方法包括:
步骤101:接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第一终端位于私网之外,第二终端位于该私网中,第二终端的URI中包含私网中的服务器在公网中的公网地址,该服务器与公网连接且为私网中的终端提供服务;
步骤102:对该报文进行解析,从解析结果中获得所携带的服务器的公网地址;
步骤103:根据该服务器的公网地址,获取服务器的私网地址和域名;
步骤104:将该报文中携带的第二终端的URI中的服务器的公网地址替换为该服务器的域名,以及将该报文的网络互连协议IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;
步骤105:向该服务器发送修改后的报文,以使该服务器根据第二终端的URI将该报文发送给第二终端。
可选地,根据该服务器的公网地址,获取该服务器的私网地址和域名,包括:
根据该服务器的公网地址,从第一对应关系中获取服务器的私网地址,第一对应关系中包括该服务器的私网地址与该服务器的公网地址的对应关系;
根据获取的该服务器的私网地址,查看第二对应关系中是否包含该服务器的私网地址,第二对应关系中包括该服务器的私网地址与该服务器的域名的对应关系;
基于第二对应关系中包含该服务器的私网地址的查看结果,根据该服务器的私网地址,从第二对应关系中获取该服务器的私网地址对应的域名。
进一步地,该方法还包括:
基于第二对应关系中不包含该服务器的私网地址的查看结果,根据该服务器的私网地址,从该服务器中获取该服务器的域名。
进一步地,根据该服务器的公网地址,获取该服务器的私网地址和域名之前,还包括:
确定该报文包含的协议类型是否为预设协议类型,如果是,则执行根据该服务器的公网地址,获取该服务器的私网地址和域名。
可选地,确定该报文包含的协议类型是否为预设协议类型,包括:
对该报文进行解析,获取该报文中包括的协议类型,比较获取的协议类型与预设协议类型是否相同,如果是,则确定该报文包含的协议类型为预设协议类型,如果否,则确定该报文包含的协议类型不是预设协议类型;或者,
对该报文进行解析,获取该报文中携带的目的端口,比较获取的目的端口与预设端口是否相同,如果是,则确定该报文包含的协议类型为预设协议类型,如果否,则确定该报文包含的协议类型不是预设协议类型,该预设端口为该服务器在支持处理该预设协议类型的报文的条件下开启的端口。
进一步地,接收第一终端发送的报文之前,还包括:
获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的该服务器的私网地址和该服务器的域名的对应关系。
进一步地,在第二对应关系中保存获取的该服务器的私网地址和该服务器的域名的对应关系之后,还包括:
根据该服务器的域名,实时从该服务器中获取该服务器的私网地址;
判断第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址是否相同;
基于第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址不相同的判断结果,将第二对应关系中该服务器的域名对应的该服务器的私网地址替换为获取的该服务器的私网地址。
进一步地,该方法还包括:
在第一对应关系中,将该服务器的私网地址替换为获取的该服务器的私网地址。
进一步地,在第二对应关系中保存获取的该服务器的私网地址和该服务器的域名的对应关系之后,还包括:
实时检测该私网中是否存在新增加的服务器,如果检测出存在新增加的服务器,获取新增加的服务器的私网地址和域名,在第二对应关系中保存新增加的服务器的私网地址和域名的对应关系。
在本发明实施例中,接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第二终端位于该私网中,第二终端的URI中包含该私网对应的服务器在公网中的公网地址;对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将报文中携带的第二终端的URI中的服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;向服务器发送修改后的报文,以使服务器根据第二终端的URI将报文发送给第二终端。由于将第二终端的URI中的服务器的公网地址替换为该服务器的域名,如此即使服务器的私网地址发生改变,仍可以根据替换后的第二终端的URI将该报文发送给第二终端,从而保证成功发送该报文,提高了发送报文的成功率。
实施例2
本发明实施例提供了一种发送报文的方法。
目前,很多社会组织都有自己的私网,私网包括一台服务器和多个终端,该多个终端都连接到该服务器,该服务器连接到公网中。该服务器具有私网地址和公网地址,私网地址为该服务器在该私网内部的地址,公网地址为该服务器在公网中的地址。公网中有一地址转换设备。该地址转换设备上存储有该服务器的私网地址与公网地址。当公网中的终端需要与该私网中的终端进行通信时,公网中的终端先发送报文给地址转换设备,地址转换设备可以通过本发明实施例提供的方法将该报文转发给该私网中的终端。
参见图2,该方法具体包括:
其中,地址转换设备在转发报文之前,需要通过如下步骤201的操作在地址转换设备上存储第二对应关系,第二对应关系中包括私网中的服务器的私网地址与域名的对应关系。
步骤201:获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的服务器的私网地址和服务器的域名的对应关系;
具体地,按照域名格式,生成大量的域名。根据生成的域名,确定生成的域名对应的服务器是否存在,如果存在,则确定该服务器是否为私网中的服务器,如果是,则获取该服务器的私网地址,在第二对应关系中保存获取的该服务器的私网地址和生成的域名的对应关系。
其中,域名格式一般为国际域名格式。国际域名格式要求域名由各国文字的特定字符集、英文字母、数字及连字符“-”等组合而成,但开头及结尾均不能含有连字符“-”。域名中字母不分大小写。域名最长可达67个字节。
其中,可以通过如下方式来确定生成的域名对应的服务器是否存在,以及确定存在的服务器是否为私网中的服务器,具体为:
对于生成的每个域名,根据该域名发出域名探测请求,该域名探测请求携带该域名。如果存在该域名对应的服务器,则该域名对应的服务器接收到该域名探测请求,发送域名探测响应给地址转换设备,该域名探测响应中携带该服务器的地址。地址转换设备接收该域名探测响应,判断该域名探测响应中携带的服务器的地址是否位于私网地址的地址范围内,如果是,则确定该服务器为私网中的服务器,将该服务器的私网地址和该域名存储在私网地址与域名的对应关系中。对于生成的其他每个域名,都可以同该域名按照上述操作分别确定其他每个域名对应的服务器是否存在,以及确定存在的服务器是否为私网中的服务器。
其中,对于一些域名,根据这些域名发出域名探测请求,但没接收到域名探测响应,则确定出不存在这些域名对应的服务器。对于地址不位于私网地址的地址范围的服务器,则确定出该服务器不是私网中的服务器。其中,私网地址的地址范围包括10.0.0.0--10.255.255.255、172.16.0.0--172.31.255.255和192.168.0.0--192.168.255.255。
例如,按照域名格式,生成域名your-name.com。根据生成的域名your-name.com,发出域名探测请求,该域名探测请求携带该域名your-name.com。假设存在该域名your-name.com对应的服务器,则该域名your-name.com对应的服务器接收到该域名探测请求,发送域名探测响应给地址转换设备,该域名探测响应中携带该服务器的地址10.1.1.1。地址转换设备接收该域名探测响应,判断出该域名探测响应中携带的服务器的地址10.1.1.1位于私网地址的地址范围内,则确定出该服务器为私网中的服务器,在如表1所示的第二对应关系中保存获取的该服务器的私网地址10.1.1.1和该域名your-name.com的对应关系。
表1
第二对应关系 |
私网地址 | 域名 |
10.1.1.1 | your-name.com |
…… | …… |
进一步地,还可以周期性地通过本步骤提供的方法来获取私网中的服务器的私网地址和域名,并根据获取的服务器的私网地址和域名以及存储的第二对应关系,实时检测私网中是否存在新增加的服务器,如果检测出存在新增加的服务器,则在第二对应关系中保存新增加的服务器的私网地址和域名的对应关系。
其中,由于有时服务器会因为受到黑客攻击或网络病毒侵袭等原因而改变私网地址,所以通过上述步骤201的操作存储第二对应关系之后,还需要通过如下步骤202-205的操作来实时检测服务器的私网地址是否发生了改变,并在服务器的私网地址发生改变时,在第二对应关系中更新该服务器的私网地址。
步骤202:根据服务器的域名,实时从该服务器中获取该服务器的私网地址;
具体地,对于第二对应关系中包括的每个域名,周期性地根据该域名从该域名对应的服务器中获取该服务器的私网地址。
其中,对于第二对应关系中包括的其他每个域名,都可以同该域名按照上述操作分别获取其他每个域名对应的服务器的私网地址。
例如,对于如表1所示的第二对应关系中包括的域名your-name.com,周期性地根据该域名your-name.com从该域名对应的服务器中获取该服务器的私网地址,假设获取的该服务器的私网地址为10.2.2.2,具体的获取方式与步骤201类似,在这里不再重复。
步骤203:判断第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址是否相同,如果是,则执行步骤204,如果否,则执行步骤205;
具体地,从第二对应关系中获取该服务器的域名对应的私网地址。比较第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址,如果两者相同,则执行步骤204,如果两者不相同,则执行步骤205。
例如,从如表1所示的第二对应关系中获取该服务器的域名your-name.com对应的私网地址10.1.1.1。比较第二对应关系中的该服务器的私网地址10.1.1.1与获取的该服务器的私网地址10.2.2.2,且比较出两者不相同,则执行步骤205。
步骤204:确定出该服务器的私网地址没有发生改变,不修改第二对应关系,执行步骤207;
例如,假设获取的该服务器的私网地址为10.1.1.1。则基于如表1所示的第二对应关系中的该服务器的私网地址10.1.1.1与获取的该服务器的私网地址10.1.1.1相同的判断结果,确定出该服务器的私网地址10.1.1.1没有发生改变,不修改如表1所示的第二对应关系,执行步骤207。
步骤205:将第二对应关系中该服务器的域名对应的该服务器的私网地址替换为获取的该服务器的私网地址;
其中,基于第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址不相同的判断结果,可以确定出该服务器的私网地址发生了改变。
例如,基于如表1所示的第二对应关系中的该服务器的私网地址10.1.1.1与获取的该服务器的私网地址10.2.2.2不相同的判断结果,将如表1所示的第二对应关系中该服务器的域名your-name.com对应的该服务器的私网地址10.1.1.1替换为获取的该服务器的私网地址10.2.2.2。替换后的第二对应关系如表2所示。
表2
其中,对于第二对应关系中包括的其他每个域名,都可以同该域名按照上述操作分别确定其他每个域名对应的服务器的私网地址是否发生了改变,以及在第二对应关系中更新发生改变的服务器的私网地址。
其中,地址转换设备中还存储了第一对应关系,第一对应关系中包括私网中的服务器的公网地址与私网地址的对应关系。当服务器的私网地址发生改变时,还需要通过如下步骤206的操作在第一对应关系中更新该服务器的私网地址。
步骤206:在第一对应关系中,将该服务器的私网地址替换为获取的该服务器的私网地址;
例如,在如表3所示的第一对应关系中将该服务器的私网地址10.1.1.1替换为获取的该服务器的私网地址10.2.2.2,替换后的第一对应关系如表4所示。
表3
表4
其中,通过上述步骤201的操作在地址转换设备上存储第二对应关系之后,当公网中的一终端需要发送报文给私网中的一终端时,为了便于说明将公网中的该终端称为第一终端,将私网中的该终端称为第二终端,第一终端首先发送报文给地址转换设备,地址转换设备可以通过如下步骤207-213的操作来将该报文转发给该私网中的第二终端。
步骤207:接收第一终端发送的报文,该报文至少携带第二终端的URI,第一终端位于私网之外,第二终端位于该私网中,第二终端的URI中包含该私网中的服务器在公网中的公网地址,该服务器与公网连接且为该私网中的终端提供服务;
其中,第二终端位于该私网中,第一终端位于公网中或位于除该私网以外的其他私网中。
例如,接收第一终端发送的报文P1,该报文P1至少携带第二终端的URI,第一终端位于私网之外,第二终端位于该私网中,第二终端的URI中包含该私网中的服务器在公网中的公网地址126.0.1.1,该服务器与公网连接且为该私网中的终端提供服务。
其中,在网络中进行信令交互时,URI用来标记网络中的一个通讯用的资源,该通讯用的资源可以为终端等设备。URI的具体格式如下所示:
user:password@host:port;uri-parameters?headers
其中,host参数可以为服务器的域名,也可以为服务器的IP地址。例如,A@server1.com,B@server2.com:5060,B@server2.com;transport=udp和B@192.0.2.4都是合法的URI。
由此可见,该报文携带的第二终端的URI中可以包含该私网中的服务器的公网地址,也可以包含该服务器的域名。只有当第二终端的URI中包含该服务器的公网地址时,才通过本发明实施例提供的方法来发送该报文。
步骤208:对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;
例如,对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址126.0.1.1。
步骤209:确定该报文包含的协议类型是否为预设协议类型,如果是,则执行步骤210,如果否,则执行步骤211;
其中,对于协议类型为预设协议类型的报文,该报文中包括的第二终端的URI中可以包含该服务器的公网地址,也可以包含该服务器的域名。预设协议类型可以为SIP(Session Initiation Protocol,会话发起协议)或MMS(Microsoft Media Server,串流媒体传送协议)等多媒体协议。
其中,会话发起协议是应用层的会话控制协议,用于建立、修改或终止用户之间的多媒体会话。MMS是一种串流媒体传送协议,用来访问媒体服务器,并接收媒体服务器发送的ASF(Advanced Streaming Format,高级串流格式)文件。会话发起协议和MMS协议都是多媒体协议,需要通过信令协商出媒体通道,在信令和媒体通信过程中需要将报文中包括的服务器的公网地址替换为服务器的私网地址或域名,以保证会话发起协议这种多通道协议在通过地址转换设备后可以正常交互。
其中,当报文的协议类型为SIP时,第二终端的URI的具体格式可以为:sip:user:password@host:port;uri-parameters?headers。例如,sip:A@server1.com,和sip:B@192.0.2.4等。
其中,该报文中还携带协议类型和目的端口。
其中,本步骤可以通过如下第一和第二两种方式来实现,具体为:
第一,对该报文进行解析,获取该报文中包括的协议类型。比较获取的协议类型与预设协议类型是否相同,如果是,则确定该报文包含的协议类型为预设协议类型,如果否,则确定该报文包含的协议类型不是预设协议类型。
例如,假设预设协议类型为会话发起协议。对该报文P1进行解析,获取该报文P1中包括的协议类型“会话发起协议”。比较获取的协议类型与预设协议类型,且比较出获取的协议类型与预设协议类型相同,确定出该报文P1包含的协议类型为预设协议类型。
第二,对该报文进行解析,获取该报文中携带的目的端口。比较获取的目的端口与预设端口是否相同,如果是,则确定该报文的协议类型为预设协议类型。如果否,则确定该报文的协议类型不是预设协议类型。
其中,预设端口为该服务器在支持处理预设协议类型的报文的条件下开启的端口,预设端口可以为端口50或端口60等。
例如,假设预设端口为端口50。对该报文P1进行解析,获取该报文P1中携带的目的端口50。比较获取的目的端口50与预设端口50,且比较出获取的目的端口与预设端口相同,则确定该报文P1的协议类型为预设协议类型。
步骤210:将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文,并将修改后的报文发送给该服务器,结束操作。
其中,报文中包含外层头信息,该外层头信息中包括目的地址,该目的地址可以为第二终端的URI。由于该外层头信息为IP层信息,所以外层头信息也称为IP头,且IP头只能携带IP地址不能携带域名,地址转发设备在转发报文时,需要将报文的IP头中包含的目的地址由服务器的公网地址替换为该服务器的私网地址。
本步骤具体为,当该报文中包含的协议类型不是预设协议类型时,根据该报文的IP头中的目的地址包含的该服务器的公网地址,从第一对应关系中获取该服务器的私网地址,将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文。根据该服务器的私网地址,将修改后的报文发送给该服务器。
其中,在本步骤中该报文的协议类型可以为SMTP(Simple Mail TransferProtocol,简单邮件传输协议)等单通道协议。
例如,假设报文P1中包含的协议类型为SMTP,则根据该报文P1的IP头中的目的地址包含的该服务器的公网地址126.0.1.1,从如表4所示的第一对应关系中获取该服务器的私网地址为10.2.2.2,将该报文P1的IP头中的目的地址由该服务器公网地址126.0.1.1替换为该服务器的私网地址10.2.2.2,获得修改后的报文P2。根据该服务器的私网地址10.2.2.2,将修改后的报文P2发送给该服务器。
步骤211:根据该服务器的公网地址,获取该服务器的私网地址和域名;
具体地,根据该服务器的公网地址,从第一对应关系中获取该服务器的私网地址。根据获取的该服务器的私网地址,查看第二对应关系中是否包含该服务器的私网地址。如果包含,则基于第二对应关系中包含该服务器的私网地址的查看结果,根据该服务器的私网地址,从第二对应关系中获取该服务器的域名。如果不包含,则基于第二对应关系中不包含该服务器的私网地址的查看结果,根据该服务器的私网地址,从该服务器中获取该服务器的域名。
其中,可以通过如下方式来从该服务器中获取该服务器的域名,具体为:
根据该服务器的私网地址,发出用于获取域名的获取请求。如果该私网地址对应的服务器存在,则该服务器接收该获取请求,发送获取响应给地址转换设备,该获取响应携带该服务器的域名。如果该私网地址对应的服务器不存在,则地址转换设备接收不到获取响应,则确定该报文为无效报文,丢弃该报文,结束操作。
例如,根据该服务器的公网地址126.0.1.1,从如表4所示的第一对应关系中获取该服务器的私网地址10.2.2.2。根据该服务器的私网地址10.2.2.2,查看如表2所示的第二对应关系中是否包含该服务器的私网地址。且查看出第二对应关系中包含该服务器的私网地址10.2.2.2,则根据该服务器的私网地址10.2.2.2,从如表2所示的第二对应关系中获取该服务器的域名your-name.com。
其中,通过上述步骤211的操作获取该服务器的私网地址和域名之后,可以通过如下步骤212的操作将该报文中携带的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址替换为该服务器的私网地址。
步骤212:将该报文中携带的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;
其中,报文中还包含内层头信息,该内层头信息中包含第二终端的URI。
本步骤具体为,对该报文进行解码,得到该报文包含的内层头信息和IP头。将该内层头信息中包含的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址。然后对修改的报文进行编码,获得修改后的报文。
例如,对报文P1进行解码,得到内层头信息和IP头。将该内层头信息中包含的第二终端的URI中的该服务器的公网地址126.0.1.1替换为该服务器的域名your-name.com,以及将IP头中的目的地址由该服务器的公网地址126.0.1.1替换为该服务器的私网地址10.2.2.2。然后对修改的报文进行编码,获得修改后的报文P2。
其中,预设协议类型的报文中至少包括消息头和消息体,消息头包括内层头信息和外层头信息,其中内层头信息中包括(目的)字段,该To字段中包括第二终端的URI,第二终端的URI中包含服务器的公网地址。在本步骤中将报文的内层头中包括的To字段中的公网地址替换为服务器的域名,以使该服务器在接收到该报文之后,可以根据该To字段中包括的第二终端的URI将该报文发送给第二终端。
其中,该报文的协议类型为SIP时,该报文的消息头中的To字段指明该报文的接收端。另外,所有报文中都必须包含To字段。To字段的格式为To:<SIP-URI>;tag=xxxx。例如,在本发明实施例中该报文P1的To字段可以为To:<sip:1001@126.0.1.1>;tag=62beb3ca,在本步骤中经过替换得到的修改后的报文P2的To字段可以为To:<sip:1001@your-name.com>;tag=62beb3ca。
其中,通过上述步骤212的操作将该报文中携带的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址替换为该服务器的私网地址之后,可以通过如下步骤213的操作来将修改后的报文转发给私网中的第二终端。
步骤213:向该服务器发送修改后的报文,以使该服务器根据修改后的报文中携带的第二终端的URI将该报文发送给第二终端。
其中,地址转换设备根据该服务器的私网地址,向该服务器发送修改后的报文。该服务器接收地址转换设备发送的报文,对该报文进行解析,得到该报文中携带的第二终端的URI,根据第二终端的URI将该报文发送给第二终端。
例如,地址转换设备根据该服务器的私网地址10.2.2.2,向该服务器发送修改后的报文P2。该服务器接收地址转换设备发送的该报文P2,对该报文P2进行解析,得到该报文P2中携带的第二终端的URI,根据第二终端的URI将该报文P2发送给第二终端。
在本发明实施例中,接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第二终端位于私网中,第二终端的URI中包含该私网对应的服务器在公网中的公网地址;对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将该报文中携带的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;向该服务器发送修改后的报文,以使该服务器根据第二终端的URI将该报文发送给第二终端。由于将第二终端的URI中的服务器的公网地址替换为该服务器的域名,如此即使该服务器的私网地址发生改变,仍可以根据替换后的第二终端的URI将该报文发送给第二终端,从而保证成功发送该报文,提高了发送报文的成功率。
实施例3
参见图3,本发明实施例提供了一种发送报文的装置,包括:
接收模块301,用于接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第一终端位于私网之外,第二终端位于该私网中,第二终端的URI中包含该私网中的服务器在公网中的公网地址,该服务器与公网连接且为该私网中的终端提供服务;
解析模块302,用于对接收模块301接收的该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;
第一获取模块303,用于根据解析模块302得到的该服务器的公网地址,获取该服务器的私网地址和域名;
第一替换模块304,用于将接收模块301接收的所述报文中携带的第二终端的URI中的该服务器的公网地址替换为所述第一获取模块303获得的服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;
发送模块305,用于向该服务器发送第一替换模块304得到的修改后的报文,以使该服务器根据第二终端的URI将该报文发送给第二终端。
其中,第一获取模块303包括:
第一获取单元,用于根据该服务器的公网地址,从第一对应关系中获取该服务器的私网地址,第一对应关系中包括该服务器的私网地址与该服务器的公网地址的对应关系;
查看单元,用于根据第一获取单元获取的该服务器的私网地址,查看第二对应关系中是否包含该服务器的私网地址,第二对应关系中包括该服务器的私网地址与该服务器的域名的对应关系;
第二获取单元,用于基于查看单元得到的第二对应关系中包含该服务器的私网地址的查看结果,根据该服务器的私网地址,从第二对应关系中获取该服务器的私网地址对应的域名。
进一步地,第一获取模块303,还用于基于查看单元得到的第二对应关系中不包含该服务器的私网地址,根据该服务器的私网地址,从该服务器中获取该服务器的域名。
进一步地,该装置还包括:
确定模块,用于确定该报文包含的协议类型是否为预设协议类型,如果是,则执行根据该服务器的公网地址,获取该服务器的私网地址和域名。
其中,该确定模块包括:
第一确定单元,用于对该报文进行解析,获取该报文中包括的协议类型,比较获取的协议类型与预设协议类型是否相同,如果是,则确定该报文包含的协议类型为预设协议类型,如果否,则确定该报文包含的协议类型不是预设协议类型;或者,
第二确定单元,用于对该报文进行解析,获取该报文中携带的目的端口,比较获取的目的端口与预设端口是否相同,如果是,则确定该报文包含的协议类型为预设协议类型,如果否,则确定该报文包含的协议类型不是预设协议类型,该预设端口为该服务器在支持处理该预设协议类型的报文的条件下开启的端口。
进一步地,该装置还包括:
保存模块,用于获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的该服务器的私网地址和该服务器的域名的对应关系。
进一步地,该装置还包括:
第二获取模块,用于根据保存模块保存的第二对应关系中的该服务器的域名,实时从该服务器中获取该服务器的私网地址;
判断模块,用于判断保存模块保存的第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址是否相同;
第二替换模块,用于基于判断模块得到的第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址不相同的判断结果,将第二对应关系中的该服务器的私网地址替换为获取的该服务器的私网地址。
进一步地,第二替换模块,还用于在第一对应关系中,将该服务器的私网地址替换为获取的该服务器的私网地址。
进一步地,该保存模块,还用于实时检测私网中是否存在新增加的服务器,如果检测出存在新增加的服务器,获取新增加的服务器的私网地址和域名,在第二对应关系中保存新增加的服务器的私网地址和域名对应关系。
本发明实施例所述设备的工作原理可参照前述方法实施例的描述。
在本发明实施例中,接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第二终端位于该私网中,第二终端的URI中包含该私网对应的服务器在公网中的公网地址;对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将该报文中携带的第二终端的URI中的服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;向该服务器发送修改后的报文,以使该服务器根据第二终端的URI将该报文发送给第二终端。由于将第二终端的URI中的服务器的公网地址替换为该服务器的域名,如此即使该服务器的私网地址发生改变,仍可以根据替换后的第二终端的URI将该报文发送给第二终端,从而保证成功发送该报文,提高了发送报文的成功率。
实施例4
参见图4,本发明实施例提供了一种发送报文的设备,该设备包括:网络接口401、存储器402、处理器403;
网络接口401用于接收报文;
存储器402用于存储指令和数据;
处理器403,用于读取存储器402中存储的指令和数据,执行:
对报文进行解析,从解析结果中获得所携带的服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将报文中携带的第二终端的URI中的该服务器的公网地址替换为该服务器的域名,以及将该报文的网络互连协议IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;
网络接口401用于向服务器发送修改后的报文。
在本发明实施例中,处理器403根据该服务器的公网地址,从存储器402保存的第一对应关系中获取该服务器的私网地址,第一对应关系中包括该服务器的私网地址与该服务器的公网地址的对应关系。处理器403根据获取的该服务器的私网地址,查看存储器402保存的第二对应关系中是否包含该服务器的私网地址,第二对应关系中包括该服务器的私网地址与该服务器的域名的对应关系。基于第二对应关系中包含该服务器的私网地址的查看结果,处理器403根据该服务器的私网地址,从存储器402保存的第二对应关系中获取该服务器的私网地址对应的域名。
另外,若第二对应关系中不包含该服务器的私网地址,则处理器403基于第二对应关系中不包含该服务器的私网地址的查看结果,根据服该务器的私网地址,从该服务器中获取该服务器的域名。
进一步地,处理器403在根据该服务器的公网地址,获取该服务器的私网地址和域名之前,还确定该报文包含的协议类型是否为预设协议类型,具体过程如下:
处理器403对报文进行解析,获取报文中包括的协议类型,比较获取的协议类型与预设协议类型是否相同,如果是,则确定报文包含的协议类型为预设协议类型,如果否,则确定报文包含的协议类型不是预设协议类型;或者,
处理器403对报文进行解析,获取报文中携带的目的端口,比较获取的目的端口与预设端口是否相同,如果是,则确定报文包含的协议类型为预设协议类型,如果否,则确定报文包含的协议类型不是预设协议类型,预设端口为服务器在支持处理预设协议类型的报文的条件下开启的端口。
其中,该设备通过网络接口401接收第一终端发送的报文之前,通过处理器403获取该私网中的服务器的私网地址和域名,并通过存储器402在第二对应关系中保存获取的该服务器的私网地址和该服务器的域名的对应关系。
在存储器402保存第二对应关系之后,处理器403还根据该服务器的域名,实时从该服务器中获取该服务器的私网地址。判断第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址是否相同;如果否,则处理器403基于第二对应关系中的该服务器的私网地址与获取的该服务器的私网地址不相同的判断结果,将存储器402保存的第二对应关系中该服务器的域名对应的该服务器的私网地址替换为获取的该服务器的私网地址。
进一步地,处理器403还通过存储器402在第一对应关系中,将该服务器的私网地址替换为获取的该服务器的私网地址。
其中,网络接口401、存储器402以及处理器403通过总线404相互连接。
网络接口401可以是一个网络接口,也可以是多个网络接口。网络接口401可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,简称FDDI)、千兆以太网(Gigabit Ethernet,简称GE)接口;网络接口401也可以是无线接口。
存储器402包括但不限于是随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器(CD-ROM)。
处理器403可以是一个或多个中央处理器(Central Processing Unit,简称CPU),在处理器403是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
处理器403用于读取存储器402中存储的程序模块4010,执行这些程序模块指示的操作。
其中,处理器403可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器403还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
本发明实施例所述设备的工作原理可参照前述方法实施例的描述。
在本发明实施例中,该设备接收第一终端发送的报文,该报文至少包括第二终端的统一资源标识符URI,第二终端位于该私网中,第二终端的URI中包含该私网对应的服务器在公网中的公网地址;对该报文进行解析,从解析结果中获得所携带的该服务器的公网地址;根据该服务器的公网地址,获取该服务器的私网地址和域名;将该报文中携带的第二终端的URI中的服务器的公网地址替换为该服务器的域名,以及将该报文的IP头中的目的地址由该服务器的公网地址替换为该服务器的私网地址,获得修改后的报文;向该服务器发送修改后的报文,以使该服务器根据第二终端的URI将该报文发送给第二终端。由于将第二终端的URI中的服务器的公网地址替换为该服务器的域名,如此即使该服务器的私网地址发生改变,仍可以根据替换后的第二终端的URI将该报文发送给第二终端,从而保证成功发送该报文,提高了发送报文的成功率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种发送报文的方法,其特征在于,所述方法包括:
获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系;
根据所述服务器的域名,实时从所述服务器中获取所述服务器的私网地址;
判断所述第二对应关系中的所述服务器的私网地址与获取的所述服务器的私网地址是否相同;
基于所述第二对应关系中的所述服务器的私网地址与所述获取的所述服务器的私网地址不相同的判断结果,将所述第二对应关系中所述服务器的域名对应的所述服务器的私网地址替换为所述获取的所述服务器的私网地址;
在第一对应关系中,将所述服务器的私网地址替换为所述获取的所述服务器的私网地址,所述第一对应关系中包括所述服务器的私网地址与所述服务器的公网地址的对应关系;
接收第一终端发送的报文,所述报文至少携带第二终端的统一资源标识符URI,所述第一终端位于私网之外,所述第二终端位于所述私网中,所述第二终端的URI中包含所述私网中的服务器在公网中的公网地址,所述服务器与所述公网连接且为所述私网中的终端提供服务;
对所述报文进行解析,从解析结果中获得所携带的所述服务器的公网地址;
根据所述服务器的公网地址,获取所述服务器的私网地址和域名;
将所述报文中携带的所述第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
向所述服务器发送所述修改后的报文,以使所述服务器根据所述第二终端的URI将所述报文发送给所述第二终端;
所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名,包括:
根据所述服务器的公网地址,从所述第一对应关系中获取所述服务器的私网地址;
根据获取的所述服务器的私网地址,查看所述第二对应关系中是否包含所述服务器的私网地址,所述第二对应关系中包括所述服务器的私网地址与所述服务器的域名的对应关系;
基于所述第二对应关系中包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述第二对应关系中获取所述服务器的私网地址对应的域名。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第二对应关系中不包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述服务器中获取所述服务器的域名。
3.如权利要求1所述的方法,其特征在于,所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名之前,还包括:
确定所述报文包含的协议类型是否为预设协议类型,如果否,则执行所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名。
4.如权利要求3所述的方法,其特征在于,所述确定所述报文包含的协议类型是否为预设协议类型,包括:
对所述报文进行解析,获取所述报文中包括的协议类型,比较所述获取的协议类型与所述预设协议类型是否相同,如果是,则确定所述报文包含的协议类型为预设协议类型,如果否,则确定所述报文包含的协议类型不是预设协议类型;或者,
对所述报文进行解析,获取所述报文中携带的目的端口,比较所述获取的目的端口与预设端口是否相同,如果是,则确定所述报文包含的协议类型为所述预设协议类型,如果否,则确定所述报文包含的协议类型不是所述预设协议类型,所述预设端口为所述服务器在支持处理所述预设协议类型的报文的条件下开启的端口。
5.一种发送报文的装置,其特征在于,所述装置包括:
保存模块,用于获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系;
第二获取模块,用于根据所述保存模块保存的所述第二对应关系中的所述服务器的域名,实时从所述服务器中获取所述服务器的私网地址;
判断模块,用于判断所述保存模块保存的所述第二对应关系中的所述服务器的私网地址与获取的所述服务器的私网地址是否相同;
第二替换模块,用于基于所述判断模块得到的所述第二对应关系中的所述服务器的私网地址与所述获取的所述服务器的私网地址不相同的判断结果,将所述第二对应关系中所述服务器的域名对应的所述服务器的私网地址替换为所述获取的所述服务器的私网地址;
所述第二替换模块,还用于在第一对应关系中,将所述服务器的私网地址替换为所述获取的所述服务器的私网地址,所述第一对应关系中包括所述服务器的私网地址与所述服务器的公网地址的对应关系;
接收模块,用于接收第一终端发送的报文,所述报文至少包括第二终端的统一资源标识符URI,所述第一终端位于私网之外,所述第二终端位于所述私网中,所述第二终端的URI中包含所述私网中的服务器在公网中的公网地址,所述服务器与所述公网连接且为所述私网中的终端提供服务;
解析模块,用于对所述接收模块接收的所述报文进行解析,从解析结果中获得所携带的所述服务器的公网地址;
第一获取模块,用于根据所述解析模块得到的所述服务器的公网地址,获取所述服务器的私网地址和域名;
第一替换模块,用于将所述报文中携带的所述第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
发送模块,用于向所述服务器发送所述第一替换模块得到的所述修改后的报文,以使所述服务器根据所述第二终端的URI将所述报文发送给所述第二终端;
所述第一获取模块包括:
第一获取单元,用于根据所述服务器的公网地址,从所述第一对应关系中获取所述服务器的私网地址;
查看单元,用于根据所述第一获取单元获取的所述服务器的私网地址,查看所述第二对应关系中是否包含所述服务器的私网地址,所述第二对应关系中包括所述服务器的私网地址与所述服务器的域名的对应关系;
第二获取单元,用于基于所述查看单元得到的所述第二对应关系中包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述第二对应关系中获取所述服务器的私网地址对应的域名。
6.如权利要求5所述的装置,其特征在于,所述第一获取模块,还用于基于所述查看单元得到的所述第二对应关系中不包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述服务器中获取所述服务器的域名。
7.如权利要求5所述的装置,其特征在于,所述装置还包括:
确定模块,用于确定所述报文包含的协议类型是否为预设协议类型,如果否,则执行所述根据所述服务器的公网地址,获取所述服务器的私网地址和域名。
8.如权利要求7所述的装置,其特征在于,所述确定模块包括:
第一确定单元,用于对所述报文进行解析,获取所述报文中包括的协议类型,比较所述获取的协议类型与所述预设协议类型是否相同,如果是,则确定所述报文包含的协议类型为预设协议类型,如果否,则确定所述报文包含的协议类型不是预设协议类型;或者,
第二确定单元,用于对所述报文进行解析,获取所述报文中携带的目的端口,比较所述获取的目的端口与预设端口是否相同,如果是,则确定所述报文包含的协议类型为所述预设协议类型,如果否,则确定所述报文包含的协议类型不是所述预设协议类型,所述预设端口为所述服务器在支持处理所述预设协议类型的报文的条件下开启的端口。
9.一种发送报文的设备,其特征在于,所述设备包括:网络接口、存储器、处理器;
所述网络接口用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,执行:
获取私网中的服务器的私网地址和域名,在第二对应关系中保存获取的所述服务器的私网地址和所述服务器的域名的对应关系;根据所述服务器的域名,实时从所述服务器中获取所述服务器的私网地址;判断所述第二对应关系中的所述服务器的私网地址与获取的所述服务器的私网地址是否相同;基于所述第二对应关系中的所述服务器的私网地址与所述获取的所述服务器的私网地址不相同的判断结果,将所述第二对应关系中所述服务器的域名对应的所述服务器的私网地址替换为所述获取的所述服务器的私网地址;在第一对应关系中,将所述服务器的私网地址替换为所述获取的所述服务器的私网地址,所述第一对应关系中包括所述服务器的私网地址与所述服务器的公网地址的对应关系;对所述报文进行解析,从解析结果中获得所携带的服务器的公网地址;根据所述服务器的公网地址,从所述第一对应关系中获取所述服务器的私网地址;根据获取的所述服务器的私网地址,查看所述第二对应关系中是否包含所述服务器的私网地址,所述第二对应关系中包括所述服务器的私网地址与所述服务器的域名的对应关系;基于所述第二对应关系中包含所述服务器的私网地址的查看结果,根据所述服务器的私网地址,从所述第二对应关系中获取所述服务器的私网地址对应的域名;将所述报文中携带的第二终端的URI中的所述服务器的公网地址替换为所述服务器的域名,以及将所述报文的网络互连协议IP头中的目的地址由所述服务器的公网地址替换为所述服务器的私网地址,获得修改后的报文;
所述网络接口用于向所述服务器发送所述修改后的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410764585.4A CN105743861B (zh) | 2014-12-12 | 2014-12-12 | 一种发送报文的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410764585.4A CN105743861B (zh) | 2014-12-12 | 2014-12-12 | 一种发送报文的方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105743861A CN105743861A (zh) | 2016-07-06 |
CN105743861B true CN105743861B (zh) | 2019-02-19 |
Family
ID=56241234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410764585.4A Active CN105743861B (zh) | 2014-12-12 | 2014-12-12 | 一种发送报文的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105743861B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131544B (zh) * | 2019-12-26 | 2023-03-24 | 杭州迪普科技股份有限公司 | 一种实现nat穿越的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863143A (zh) * | 2005-08-09 | 2006-11-15 | 华为技术有限公司 | 一种实现Web Server访问的方法、系统和装置 |
CN103338151A (zh) * | 2013-07-09 | 2013-10-02 | 杭州华三通信技术有限公司 | 公网客户端访问私网服务器的方法及路由器 |
CN103475750A (zh) * | 2013-09-16 | 2013-12-25 | 杭州华三通信技术有限公司 | 一种适用于多出口网络的地址转换方法及设备 |
CN104184774A (zh) * | 2013-05-24 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种基于沙箱环境的信息处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2787693B1 (en) * | 2013-04-05 | 2015-12-09 | Telefonaktiebolaget L M Ericsson (publ) | User plane traffic handling using network address translation and request redirection |
-
2014
- 2014-12-12 CN CN201410764585.4A patent/CN105743861B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863143A (zh) * | 2005-08-09 | 2006-11-15 | 华为技术有限公司 | 一种实现Web Server访问的方法、系统和装置 |
CN104184774A (zh) * | 2013-05-24 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种基于沙箱环境的信息处理方法和系统 |
CN103338151A (zh) * | 2013-07-09 | 2013-10-02 | 杭州华三通信技术有限公司 | 公网客户端访问私网服务器的方法及路由器 |
CN103475750A (zh) * | 2013-09-16 | 2013-12-25 | 杭州华三通信技术有限公司 | 一种适用于多出口网络的地址转换方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105743861A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10084713B2 (en) | Protocol type identification method and apparatus | |
US9185093B2 (en) | System and method for correlating network information with subscriber information in a mobile network environment | |
US9578040B2 (en) | Packet receiving method, deep packet inspection device and system | |
CN108809890B (zh) | 漏洞检测方法、测试服务器及客户端 | |
US9419999B2 (en) | Method and device for preventing domain name system spoofing | |
US10218733B1 (en) | System and method for detecting a malicious activity in a computing environment | |
CN110519265B (zh) | 一种防御攻击的方法及装置 | |
US20170134957A1 (en) | System and method for correlating network information with subscriber information in a mobile network environment | |
US20120290701A1 (en) | Domain name system, information processing method and apparatus of domain name system | |
CN104219200A (zh) | 一种防范dns缓存攻击的装置和方法 | |
US10498618B2 (en) | Attributing network address translation device processed traffic to individual hosts | |
US9338657B2 (en) | System and method for correlating security events with subscriber information in a mobile network environment | |
CN108632221B (zh) | 定位内网中的受控主机的方法、设备及系统 | |
US8572366B1 (en) | Authenticating clients | |
CN111031148B (zh) | 一种地址解析方法、装置及电子设备和存储介质 | |
CN105516200B (zh) | 云系统安全处理方法和装置 | |
CN107948022B (zh) | 一种对等网络流量的识别方法及识别装置 | |
CN114710560A (zh) | 数据处理方法、系统及代理设备、终端设备 | |
CN112491836B (zh) | 通信系统、方法、装置及电子设备 | |
CN104065688A (zh) | 一种调用底层服务的方法及装置 | |
US9832119B2 (en) | Communication block apparatus and communication block method | |
CN105743861B (zh) | 一种发送报文的方法、装置及设备 | |
CN107231341B (zh) | 报文处理方法和装置 | |
CN112202776A (zh) | 源站防护方法和网络设备 | |
US20160020971A1 (en) | Node information detection apparatus, node information detection method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |