CN107087039A - 交换方法和交换云 - Google Patents
交换方法和交换云 Download PDFInfo
- Publication number
- CN107087039A CN107087039A CN201610086133.4A CN201610086133A CN107087039A CN 107087039 A CN107087039 A CN 107087039A CN 201610086133 A CN201610086133 A CN 201610086133A CN 107087039 A CN107087039 A CN 107087039A
- Authority
- CN
- China
- Prior art keywords
- nextaddr
- rcode
- target
- message
- spaddr
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/48—Message addressing, e.g. address format or anonymous messages, aliases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种消息交换方法,以及基于该方法的交换云,以用于RSvr间的消息交互。按照所述消息交换方法,或者,通过所述交换云,可以方便灵活地实现RSvr间的消息交互,极大地简化了RSvr的连接管理。本发明还提供一种RCode匹配方法,用于判断一个消息是否匹配目标RCode,该方法通过针对所述目标RCode,设置匹配描述(MDesc),并按照MDesc来进行匹配处理,可以极大地简化路由数据的配置。本发明还提供一种基于SPAddr的消息寻址方法,按照该方法,可以快速确定消息的目的RSvr。
Description
技术领域
本发明涉及互联网通信,更确切地说涉及在互联网中,不同RSvr间进行消息交互的交换方法,RCode匹配方法,交换云,以及消息寻址方法。
背景技术
在互联网通信中,涉及到全球统一身份(GUID,Global Unified Identity),所述GUID包括两部分:归属码(HCode,Home Code)和用户码(UCode,User Code)。其中,HCode指示该GUID,也即该GUID对应的互联网用户(IUsr,Internet User)归属于哪一个归属服务器(HSvr,Home Server),UCode用于指示一个HCode下不同的GUID。通过建立HCode和HSvr的对应关系,根据一个HCode可以获得所指向的一个HSvr。一个HSvr对应一个服务域。
所述GUID可以是一个email地址,也可以是一个主从码,也可以是一个影码。关于GUID和HSvr更多描述,参见申请号为201310037232.X的《通信方法和系统》发明专利,以及申请号为201310049772.X的《影码寻址方法》发明专利。
每个账户都有一个账户地址(AccoAddr,Account Address),以用于账户寻址。
一个GUID的源账户的AccoAddr为该GUID。
一个GUID的迁移账户的AccoAddr为该迁移账户对应的跨域地址码(CDAddr,Cross-domain Address)。该GUID为该CDAddr的本基GUID(BaseGUID,The Base GUID),该CDAddr的跨末HSvr信息(CeSvrDesc,Cross-end HSvr Description)为该迁移账户所在HSvr的一个HCode。关于CDAddr的更多描述,参见申请号为201310079118.3的《支持GUID迁移的网络及相关消息处理方法》发明专利。
每个AccoAddr都由一个地址基(AddrBase,Address Base)和一个地址归属(AddrHome,Address Home)构成。当一个AccoAddr是一个GUID时,该AccoAddr的AddrBase是该GUID的UCode,该AccoAddr的AddrHome是该GUID的HCode;当一个AccoAddr是一个CDAddr时,该AccoAddr的AddrBase是该CDAddr的BaseGUID,该AccoAddr的AddrHome是该CDAddr的CeSvrDesc。例如对于AccoAddr值caocao@yixin.im来说,对应的AddrBase是caocao,对应的AddrHome是yixin.im。
一个AccoAddr归属的HSvr为该AccoAddr的AddrHome所指向的HSvr。
一个账户的AddrHome,是该账户的AccoAddr的AddrHome;一个账户的AddrBase,是该账户的AccoAddr的AddrBase。
在申请号为201410098231.0的《基于半永久地址的消息发送方法》发明专利中提出了基于半永久地址的消息发送方法。该方法先获取目的HSvr中目的账户所在的驻地服务器(RSvr,Residence Server)所对应的驻地码(RCode,Residence Code)。在向所述目的账户发送消息时,按照该目的账户的AccoAddr和所述RCode所对应的半永久地址(SPAddr,Semi-permanent Address)或半永久email地址(SPEmailAddr,Semi-permanent emailAddress),来将该消息直接发送给该目的账户所在的RSvr,从而提高了消息传送效率。
一个账户的SPAddr包括该账户的AccoAddr和该账户所在RSvr被指配的RCode等两部分。一个SPAddr可以写成(AccoAddr,RCode)形式。
更多描述,参见所述的《基于半永久地址的消息发送方法》发明专利。
上述在根据一个SPAddr或一个SPEmailAddr发送消息时,由于需要解析相应SPAddr或SPEmailAddr所对应的域名,以获得所述目的RSvr的IP地址,因此,为了提高域名解析效率,一般地,会在本地缓存域名解析结果,以便下次使用。但是,由于一个HSvr中,可能存在很多RSvr,因此,对应于消息发送侧,需要缓存的域名解析结果就会成倍增加,从而影响到检索效率。另外,RSvr之间通过直接建立连接来进行消息交互的方式,也会导致RSvr维护数量巨大的连接。
发明内容
有鉴于此,本发明公开了一种消息交换方法,以及基于该方法的交换云,以用于解决上述多种问题中至少一种问题。按照所述消息交换方法,通过设置路由数据,或者,通过所述交换云,可以方便灵活地实现RSvr间的消息交互,并大大简化了RSvr的连接管理。
一种消息交换方法,所述消息包括目的SPAddr;该方法设置RoutingData;该方法包括以下步骤:
a、根据所述SPAddr,按照设置的RoutingData,确定目标NextAddr;
b、按照所确定的目标NextAddr,将所述消息发送出去。
可选地,所述RoutingData包括默认设置,以及针对本HSvr设置的RCode-NextAddr对应关系;所述步骤a是如下目标NextAddr锁定流程:
a11、判断所述SPAddr是否归属于本HSvr,如果是,在执行步骤a12、否则,执行步骤a16;
a12、根据所述SPAddr的RCode,按照设置的RCode-NextAddr对应关系,确定目标NextAddr;
a16、按照默认设置,确定目标NextAddr。
可选地,在步骤a12之后,进一步包括步骤a13:判断确定目标NextAddr是否成功,如果不成功,则执行步骤a16。
可选地,所述默认设置是如下情况之一:
一、所述默认设置包括:总体默认NextAddr(GDNextAddr);相应地,所述步骤a16进一步是:将GDNextAddr作为目标NextAddr;
二、所述默认设置包括:根据相应HCode值对应设置的DefaultNextAddr;相应地,所述步骤a16进一步是:根据所述SPAddr的HCode值,按照所述默认设置,来确定目标NextAddr;
三、所述默认设置包括:所述GDNextAddr,以及根据相应HCode值对应设置的DefaultNextAddr;相应地,步骤a16进一步是:根据所述SPAddr的HCode值,按照默认设置来确定目标NextAddr;判断是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将GDNextAddr作为目标NextAddr。
可选地,所述RoutingData包括HCode-RCode-NextAddr对应关系;步骤a进一步是如下目标NextAddr锁定流程:
a22、根据所述SPAddr的HCode值和RCode值,按照HCode-RCode-NextAddr对应关系,确定目标NextAddr。
可选地,所述RoutingData还包括默认设置,相应地,在步骤a22之后进一步包括步骤a23:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,执行步骤a26:按照默认设置,确定目标NextAddr。
可选地,所述默认设置是如下情况之一:
一、所述默认设置包括:GDNextAddr;相应地,所述步骤a26进一步是:将GDNextAddr作为目标NextAddr;
二、所述默认设置包括:针对相应HSvr对应设置的DefaultNextAddr;相应地,所述步骤a26进一步是:根据所述SPAddr的HCode值,按照所述默认设置,来确定目标NextAddr;
三、所述默认设置包括:GDNextAddr,以及针对相应HSvr对应设置的DefaultNextAddr;相应地,所述步骤a26进一步是:根据所述SPAddr的HCode值,按照默认设置来确定目标NextAddr;判断是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将GDNextAddr作为目标NextAddr。
可选地,所述RoutingData包括HCode-RCode-NextAddr对应关系;步骤a进一步是如下目标NextAddr锁定流程:
步骤a31是:根据所述SPAddr的HCode,获取相应的HSvrRoutingData,所述HSvrRoutingData包括该HCode对应的RCode-NextAddr对应关系数据;
步骤a33是:根据所述SPAddr的RCode值,按照获取的RCode-NextAddr对应关系,确定目标NextAddr。
可选地,所述RoutingData中还包括GDNextAddr;相应地,
在步骤a31之后,进一步包括步骤a32:判断获取相关的HSvrRoutingData是否成功,如果是,才执行步骤a33;否则,将GDNextAddr作为目标NextAddr;
或者,在步骤a33之后,进一步包括步骤a34:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将GDNextAddr作为目标NextAddr。
可选地,所述RoutingData中还包括针对相应HSvr分别设置的DefaultNextAddr;相应地,在步骤a31中,所述HSvrRoutingData还包括对应的DefaultNextAddr,相应地,
在步骤a33之后,进一步包括步骤a34:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将对应的DefaultNextAddr作为目标NextAddr。
还提供一种RCode匹配方法,用于判断一个消息是否匹配目标RCode,该方法通过针对所述目标RCode,设置匹配描述(MDesc),并按照MDesc来进行匹配处理,可以极大地简化路由数据的配置。所述消息包括目的SPAddr;该方法针对所述目标RCode,设置匹配描述(MDesc);所述方法包括如下步骤:
步骤a、根据MDesc,从所述SPAddr的RCode中获取匹配参数;
步骤b、比较匹配参数与所述目标RCode是否一致,如果一致,则认为所述消息匹配所述目标RCode;否则,认为二者不匹配。
还提供一种交换云(XCld),用于RSvr间的消息交互;所述XCld至少包括两个交换服务器(XS);在XS中,设置路由数据(RoutingData);对于一个包括目的SPAddr的待发送消息,该XS根据所述消息的目的SPAddr,按照设置的RoutingData,确定该消息的下一站地址(NextAddr),即确定目标NextAddr;按照所确定的目标NextAddr,将所述消息发送出去。
还提供一种基于SPAddr的消息寻址方法,按照该方法,可以快速确定消息的目的RSvr。所述消息包括目的SPAddr;该方法包括以下步骤:
a、源RSvr将携带目的SPAddr的消息发送给本HSvr的XCld;
b、所述本HSvr的XCld根据所述SPAddr的HCode,将所述消息发送给目的HSvr的XCld;
c、所述目的HSvr的XCld根据所述SPAddr的RCode确定目的RSvr,将所述消息发送给所述目的RSvr,消息的目的地址包括所述SPAddr的AccoAddr;
d、所述目的RSvr收到所述消息后,根据所述SPAddr的AccoAddr确定目标账户。
上述实施例提供的技术方案中,由于可以简化RSvr面向其它HSvr的通信接口,因此,简化了RSvr的处理,也简化了不同HSvr间消息交互的管理。
附图说明
图1所示,为XCld示例图。
图2所示,为XS的消息交换总体实施方式流程图。
图3所示,为来自客户端的消息处理流程图。
图4至图9所示,分别为目标NextAddr锁定方法一流程示例图一至六。
图10至图11所示,分别为目标NextAddr锁定方法二流程示例图一至二。
图12至图15所示,分别为目标NextAddr锁定方法三流程示例图一至四。
图16所示,为目标NextAddr锁定方法四流程示例图一。
具体实施方式
为使本发明目的、技术方案和优点更加清楚明白,下面结合实施例,从多个方面进行详细说明。
本发明提出一种交换云(XCld,eXchange Cloud),以用于RSvr间的消息交互。所述XCld位于一个HSvr中,用于连接本HSvr中相应的RSvr和其它HSvr中相应的XCld。所述RSvr间的消息交互可以是本HSvr中RSvr间的消息交互,也可以是跨域RSvr间的消息交互。
所述XCld包括至少两个交换服务器(XS,eXchange Server)。一般地,这些XS连在一起,也即XS间直接或间接地互联。
如图1所示,为XCld示例图。在该图中,包括三个HSvr:HSvr-A、HSvr-B和HSvr-C。
其中,HSvr-A有三个RSvr:位于重庆的RSvr-A23、位于成都的RSvr-A28和位于西安的RSvr-A29;HSvr-B有五个RSvr:位于北京的RSvr-B10、位于上海的RSvr-B21、位于南京的RSvr-B25、位于武汉的RSvr-B27和位于广州的RSvr-B20;HSvr-C有三个RSvr:位于北京的RSvr-C10、位于沈阳的RSvr-C24、位于上海的RSvr-C21和位于南京的RSvr-C25。
在HSvr-A中,相应XCld为XCld-A,其中有两个连在一起的XS:XS-A1和XS-A2。
在HSvr-B中,相应XCld为XCld-B,其中有四个XS:XS-B1、XS-B2、XS-B3和XS-B4;XS-B1和另外三个XS分别相连,另外,XS-B3和XS-B4相连。
在HSvr-C中,相应XCld为XCld-C,其中有两个连在一起的XS:XS-C1和XS-C2。
在相关XCld之间,XS-A1、XS-B1和XS-C1等两两之间连在一起,另外,XS-A2和XS-B2连在一起。
对于两个XCld:XCld-1和XCld-2来说,如果XCld-1中的XS-1-a与XCld-2中的XS-2-b直接连接,则称XS-1-a与XS-1-b为关口XS(GXS,GateWay XS)。
例如,XS-A1、XS-B1、XS-C1、XS-A2、XS-B2等都是GXS。
如果一个XS与至少一个RSvr直接连接,则称该XS为云底XS(BXS,Cloud Bottom XS)。
例如,XS-B3没有直接连接任何RSvr,因而,不是BXS;而其它的XS都直接连接有RSvr,因此,属于BXS。
一个HSvr所拥有的HCode可以是域名,一个AccoAddr可以是一个email地址。本发明以{一个HSvr所拥有的HCode是一个域名,一个AccoAddr是一个email地址}为例,但不用于限定本发明。后面以{HSvr-A的HCode是miliao.com,HSvr-B的HCode是yixin.im,HSvr-C的HCode是immomo.com。}为例进行举例。
在一个HSvr中,相关XCld、XS、RSvr等等的HCode,都为该HSvr的HCode。
一般地,所述RSvr中保存相应的账户信息。
一个AccoAddr对应的账户所在的RSvr为该AccoAddr的RSvr。
一般地,一个账户的账户信息中可以包括这些属性:AccoAddr或AccoAddr的AddrBase,Password,ClientIP和ClientPort,等等。其中,Password为相应账户的密码,ClientIP和ClientPort为相应账户的在线信息。当一个账户处于登入状态时,相应的ClientIP和ClientPort对应该账户的客户端的IP地址和端口号;当该账户处于登出状态时,一般地,相应的ClientIP和/或ClientPort为空值null或0,也可表现为没有对应的在线记录。
所述RSvr在一个账户登录时可以获取登录客户端的IP地址和端口号,并将获取的IP地址和端口号保存在该账户的ClientIP和ClientPort属性中。
关于账户信息的更多描述参见所述《通信方法和系统》发明专利。
所述RSvr可以通过如表4所示的账户信息表来保存相应账户的账户信息。
表4
AccoAddr | Password | ClientIP | ClientPort |
caocao@yixin.im | ******** | 相应IP地址 | 相应端口号 |
xushu@yixin.im | ******** | 相应IP地址 | 相应端口号 |
如果约定客户端的端口号,则在表4中,可以省略ClientPort部分。
每一个RSvr被指配一个驻地码RCode,以用于在相应的HSvr中标识一个RSvr。实际上,所述RCode可以作为一个HSvr内的路径标识,用以标识一个RSvr在HSvr内被规划的路径。
所述RCode可以是一个简单的编码,例如:jing、guang、hu;也可以是一个由点连接起来的多个子域串,例如:shen.guang,guang.shen,10.86,86.10,等等;或是由反斜杠连接起来的路径,例如,guang\shen,86\10,等等。当然,所述RCode也可以是对应RSvr所在地的固定电话区号。
后面以{RSvr-A23的RCode为23,RSvr-A28的RCode为28,RSvr-A29的RCode为29;RSvr-B10的RCode为10,RSvr-B20的RCode为20,RSvr-B21的RCode为21,RSvr-B25的RCode为25,RSvr-B27的RCode为27;RSvr-C10的RCode为10,RSvr-C21的RCode为21,RSvr-C24的RCode为24,RSvr-C25的RCode为25}为例。
一个AccoAddr对应的RSvr的RCode,为该AccoAddr的RCode。
一个SPAddr的AccoAddr的AddrHome为该SPAddr的HCode或AddrHome。
一个SPAddr的HCode指向一个HSvr,也即属于该HSvr所拥有,则称该SPAddr归属于该HSvr。
对于一个RSvr来说,如果一个SPAddr归属于本HSvr,且该SPAddr的RCode指向本RSvr,则该SPAddr归属于该RSvr。例如,一个SPAddr为(caocao@yixin.im,10),其HCode值yixin.im指向了HSvr-B,则该SPAddr归属于HSvr-B;又因为其RCode值10指向了HSvr-B中的RSvr-B10,因此,该SPAddr归属于RSvr-B10。
在XS中,设置路由数据(RoutingData,Routing Data)。
如图2所示,为XS的消息交换总体实施方式流程图。按照该图,XS对于一个包括目的SPAddr的待发送消息,执行如下流程:
步骤X11、根据所述消息的目的SPAddr,按照设置的RoutingData,确定该消息的下一站地址(NextAddr,Next Address),即确定目标NextAddr。
步骤X19、按照所确定的目标NextAddr,将所述消息发送出去。
在步骤X19之前,还可以进一步包括步骤X12:判断确定目标NextAddr是否成功,如果成功,则执行步骤X19,否则,进入例外处理流程。
所述的例外处理流程可以是:将所述SPAddr的HCode值和RCode值,以及例外描述等写入运行日志文件,或者是做其它处理。后面以此为例,但不用于限定。
所述待发送消息可以是所述XS自己产生,也可以是所述XS接收自上一站的消息。所述上一站是一个RSvr,或者是另一个XS。
所述NextAddr可以是一个RSvr的地址信息(RSvrAddr,RSvr Address),也可以是一个XS的地址信息(XSAddr,XS Address)。
对于一个XS来说,所述RSvrAddr可以是该XS面向相应RSvr的通信链路号,也可以是该XS面向相应RSvr的TCP连接的套接口描述符(SktD,Socket Descriptor)。后面以{约定统一的端口号,所述RSvrAddr是相应RSvr的IP地址}为例,但不用于限定。
对于一个XS来说,所述XSAddr可以是该XS面向其它相关XS的通信链路号,也可以是该XS面向其它相关XS的TCP连接的SktD。后面以{约定统一的端口号,所述XSAddr是其它相应XS的IP地址}为例,但不用于限定。
在步骤X19中,如果所述目标NextAddr是一个RSvrAddr,则,在将所述消息发送出去时,消息的目的地址也可以只包括所述目的SPAddr的AccoAddr。例如,在配置RoutingData时,可以针对相应的NextAddr加一个地址类型(AddrType,Address Type)属性,以区别RSvrAddr和XSAddr。
一般地,在步骤X19中,在将所述消息发送出去时,不特别修改消息的目的地址。
本发明后面以{在步骤X19中,在将所述消息发送出去时,消息的目的地址包括所述目的SPAddr}为例进行举例,但不用于限定本发明。
在步骤X19之前,还可以进一步判断,所述消息是否为接收自所述目标NextAddr的,如果是,则进入例外处理流程,否则,才执行步骤X19。这种情况下,可以在一定程度上避免因为RoutingData的错配而导致的消息循环发送问题。例如,对于XS-B2来说,如果所述消息来自于XS-B1,而最后确定的目标NextAddr又是XS-B1,则可以进入例外处理流程。这样,就不会导致消息在XS-B1和XS-B2之间来回循环发送的现象。
XS在接收消息时,可以确定所述消息的上一站地址,通过比较所述上一站地址和所述目标NextAddr,可以确定所述消息是否为接收自所述目标NextAddr。
实际当中,也可以在消息中包括一个转发次数(ToF,Times of Forwarding)参数,用以记录消息被转发的次数,该值的初始值为0。约定一个最大转发次数。所述方法还可以进一步包括:判断所述消息的ToF是否达到最大转发次数,如果是,则进入例外处理流程;否则,在步骤X19之前,将所述消息的ToF增加1。
这样,也可以避免因为路由数据的错配而导致的消息循环发送问题。
RSvr收到来自客户端的包括目的SPAddr的消息后,可以直接将该消息发送给XCld,也即连接的XS。
较佳地,RSvr收到来自客户端的包括目的SPAddr的消息后,先判断该消息的目的SPAddr是否归属于自己,如果是,则直接处理该消息,否则,才将所述消息发送给XCld。
如图3所示,为来自客户端的消息处理流程图。在该图中:
步骤R11:判断所述SPAddr是否归属于自己,如果是,则执行步骤R12;否则,执行步骤R19。
步骤R12:根据所述SPAddr的AccoAddr确定目标账户。
步骤R13:将所述消息终结于所述目标账户,结束流程。
步骤R19:将所述消息发送给XCld,也即连接的XS。
一般地,在RSvr中保存自己的HCode值和被指配RCode值。RSvr在发现一个SPAddr的HCode值和RCode值,与自己保存的HCode值和RCode值一致时,认为该SPAddr归属于自己。
RSvr收到来自XCld(也即相应XS)的包括目的AccoAddr的消息后,执行如下流程:
步骤R91:根据所述目的AccoAddr,确定目标账户。
步骤R99:将所述消息终结于所述目标账户。
在步骤R12或步骤R91中,RSvr在无法确定目标账户时,直接结束流程。在所述结束之前,还可以进一步向消息的源地址一侧回复表示“目标账户不存在”的回复消息。
上面步骤R13,或步骤R99中,所述的将所述消息终结于所述目标账户,一般地,会根据业务的类型不同,针对目标账户,做出不同的处理。例如,所述消息是用于向目标账户发送一条短信,则所述的将所述消息终结于所述目标账户可以是将该短信发送给该目标账户的客户端,或保存到该目标账户的收件箱。
一般地,所述的步骤X11是一个目标NextAddr锁定流程。
对于大多数BXS来说,设置RoutingData时,可以是:针对本HSvr设置RCode与NextAddr的对应关系,即RCode-NextAddr对应关系;针对相关HSvr,做一些默认设置即可。
而对于GXS来说,相应的RoutingData可能会较为复杂一些。
由于目标NextAddr的锁定直接关乎XS的效率以及可维护性,因此,本发明将重点展示各种灵活、高效的目标NextAddr锁定方法。
一、目标NextAddr锁定方法一
所述RoutingData包括默认设置,以及针对本HSvr设置的RCode-NextAddr对应关系。后面以{设置RCode-NextAddr对应关系表,在该表中,根据RCode来保存对应的NextAddr}为例,但不用于限定。
如图4所示,为目标NextAddr锁定方法一流程示例图一。在该图中,
步骤X11-11、判断所述SPAddr是否归属于本HSvr,如果是,在执行步骤X11-12、否则,执行步骤X11-16。
步骤X11-12、根据所述SPAddr的RCode,按照设置的RCode-NextAddr对应关系,确定目标NextAddr。
步骤X11-16、按照默认设置,确定目标NextAddr。
在步骤X11-12之后,还可以进一步包括步骤X11-13:判断确定目标NextAddr是否成功,如果不成功,则直接进入例外处理流程。
如图5所示,为目标NextAddr锁定方法一流程示例图二。
特别地,在步骤X11-13中,在确定目标NextAddr不成功时,可以直接进入步骤X11-16。
如图6所示,为目标NextAddr锁定方法一流程示例图三。
在步骤X11-16之后,还可以进一步包括步骤X11-17:判断确定目标NextAddr是否成功,如果不成功,则直接进入例外处理流程。
实际当中,根据XS在XCld中位置,和对XS的要求不同,所述默认设置也应有差异。
例如,对于来自RSvr-C24的消息,XS-C2只关心消息的目的RSvr是否为RSvr-C10,如果不是,则直接将消息发送给XS-C1即可。这种情况,适合采用如下的方式一。
还例如,对于来自RSvr-B20的消息,XS-B2只关心消息的目的RSvr是否为RSvr-B27,如果不是,则按照消息的目的SPAddr的HCode来决定目标NextAddr。这种情况,适合采用如下的方式二。
方式一、所述默认设置包括:设置总体默认NextAddr(GDNextAddr,General DefaultNextAddr)。
所述步骤X11-16进一步是:直接将GDNextAddr作为目标NextAddr。
一般地,所述GDNextAddr是本HSvr中其它XS的XSAddr。
方式二、所述默认设置包括:根据相应HCode值对应设置的默认NextAddr(DefaultNextAddr,Default NextAddr)。也即HCode-Default对应关系数据。
相应地,所述步骤X11-16进一步是:根据所述SPAddr的HCode值,按照所述HCode-Default对应关系,来确定目标NextAddr。
这种情况下,所述步骤X11-13可以进一步是:判断确定目标NextAddr是否成功,如果不成功,则将本HSvr对应的DefaultNextAddr作为目标NextAddr。可以根据本HSvr的HCode值,按照所述HCode-Default对应关系,来获取本HSvr对应的DefaultNextAddr。考虑到XS对效率的极致要求,实际当中,为了提高效率,本发明建议:预先保存本HSvr对应的DefaultNextAddr,以便在所述不成功时,直接使用该DefaultNextAddr值作为目标NextAddr,而不是每次到这个时候都按照所述HCode-Default对应关系来获取该DefaultNextAddr值。当然,也可以单独设置本HSvr对应的DefaultNextAddr。
如图7所示,为目标NextAddr锁定方法一流程示例图四。
方式三、所述默认设置包括:所述GDNextAddr,以及HCode-Default对应关系。
所述的步骤X11-16进一步是:在步骤X11-16.1:根据所述SPAddr的HCode值,按照所述HCode-Default对应关系,来确定目标NextAddr;在步骤X11-16.2:判断是否成功,如果成功,则结束目标NextAddr锁定流程;否则,在步骤X11-16.3:直接将设置的GDNextAddr作为目标NextAddr。
同样,在步骤X11-12之后,还可以进一步包括所述步骤X11-13。
同样,在步骤X11-13中,在确定目标NextAddr不成功时,可以直接进入步骤X11-16.1。
如图8所示,为目标NextAddr锁定方法一流程示例图五。
当然,作为一种限制性用法,在步骤X11-13中,在确定目标NextAddr不成功时,也可以直接进入步骤X11-16.3。
特别地,XS也可以先将本HSvr相关的默认设置数据检索出来并保存,这样,在步骤X11-13中,在确定目标NextAddr不成功时,可以直接使用该检索结果来确定目标NextAddr。这样,就可以节省步骤X11-16.1所述的检索操作。例如,步骤X11-13进一步是:判断确定目标NextAddr是否成功,如果不成功,则将本HSvr的DefaultNextAddr作为目标NextAddr。这里,在所述的将本HSvr的DefaultNextAddr作为目标NextAddr之前,还可以进一步判断本HSvr的DefaultNextAddr是否有效,如果是,才将本HSvr的DefaultNextAddr作为目标NextAddr;否则,例如,为空值,则可以将所述GDNextAddr作为目标NextAddr。
实际当中,还可能出现这种情况,在经过一个XS向其它HSvr中的RSvr发送消息时,根据所述RSvr的位置,选择相应的消息传输路径,可以达到更佳的效果。例如,RSvr-A28向RSvrB10发送消息时,可以经由XS-A2——>XS-A1——>XS-B1——>XS-B4这条路径。而RSvr-A28向RSvrB20发送消息时,经由XS-A2——>XS-B2这条路径就更好一些。
对此,本发明进一步针对其它HSvr设置RCode-NextAddr对应关系。这里以{将针对其它HSvr设置的RCode-NextAddr对应关系放到一个设置的HCode-RCode-NextAddr对应关系表中}为例。在所述HCode-RCode-NextAddr对应关系表中,保存对应HCode值、RCode值和NextAddr值等三者的对应关系。相应地,在所述步骤X11-16之前,进一步包括X11-14:根据所述SPAddr的HCode值和RCode值,按照设置的HCode-RCode-NextAddr对应关系表,来确定目标NextAddr;以及步骤X11-15:判断是否成功,如果成功,则结束目标NextAddr锁定流程;否则,才进入步骤X11-16。
如图9所示,为目标NextAddr锁定方法一流程示例图六。
这样,在步骤X11-11中,在判断所述SPAddr不归属本HSvr时,执行步骤X11-14。
同样,在步骤X11-12之后,还可以进一步包括所述步骤X11-13。
同样,在步骤X11-13中,在确定目标NextAddr不成功时,可以直接进入步骤X11-16。
特别地,也可以不单独针对本HSvr来设置RCode-NextAddr对应关系表,而是直接设置HCode-RCode-NextAddr对应关系表,通过该表来保存各个HSvr的需要关注的RCode-NextAddr对应关系。
这种情况下,所述步骤X11-11可以省去。
相应地,所述步骤X11-12可以直接是:根据所述SPAddr的HCode值和RCode值,按照设置的HCode-RCode-NextAddr对应关系表,来确定目标NextAddr。相应地,在步骤X11-12之后,还可以进一步包括所述步骤X11-13,并且,在步骤X11-13中,在确定目标NextAddr不成功时,可以直接进入步骤X11-16。
二、目标NextAddr锁定方法二
所述RoutingData包括针对各个HSvr设置的HCode-RCode-NextAddr对应关系。后面以{设置HCode-RCode-NextAddr对应关系表,来保存HCode-RCode-NextAddr对应关系}为例,但不用于限定。
所述目标NextAddr锁定方法是:步骤X11-22、根据所述SPAddr的HCode值和RCode值,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr。
在步骤X11-22之后,还可以包括步骤X11-23:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程,否则,直接进入例外处理流程。
所述RoutingData还可以包括默认设置。
相应地,在步骤X11-23中,在确定目标NextAddr不成功时,可以直接进入步骤X11-26:按照默认设置,确定目标NextAddr。
如图10所示,为目标NextAddr锁定方法二流程示例图一。
所述默认设置可有多种方式。
例如,所述默认设置包括:GDNextAddr。
相应地,所述步骤X11-26进一步是:直接将GDNextAddr作为目标NextAddr。
还例如,所述默认设置包括:HCode-Default对应关系数据。
相应地,所述步骤X11-26进一步是:根据所述SPAddr的HCode值,按照所述HCode-Default对应关系,来确定目标NextAddr。
还例如,所述默认设置包括:所述GDNextAddr,以及HCode-Default对应关系。
所述的步骤X11-26进一步是:在步骤X11-26.1:根据所述SPAddr的HCode值,按照所述HCode-Default对应关系,来确定目标NextAddr;在步骤X11-26.2:判断是否成功,如果成功,则结束目标NextAddr锁定流程;否则,在步骤X11-26.3:直接将设置的GDNextAddr作为目标NextAddr。
如图11所示,为目标NextAddr锁定方法二流程示例图二。
在步骤X11-26之后,还可以进一步包括步骤X11-27:判断确定目标NextAddr是否成功,如果不成功,则直接进入例外处理流程。
如果所述HCode-RCode-NextAddr对应关系数据很多,则会影响到相应XS的效率。特别地,并不是一定要针对所有的HSvr都在该表中配置数据,这样,对于哪些没有在该表中配置相应对应关系数据的HSvr来说,检索该表显得毫无必要!那么,不检索该表,又该如何判断没有在该表中配置相应HSvr的相关数据呢?且往下看。
本发明称,在一个XS中,一个HSvr对应的RoutingData为该HSvr的HSvrRoutingData。
在执行所述目标NextAddr锁定流程之前,可以针对各个HSvr来组织所述RoutingData。例如,为关注的HSvr创建一个HSvrRoutingData对象,并按照相应HSvr的HCode值将这些对象保存到相应列表中(实际当中,一般是将对象地址或指针放到所述列表中)。这样,XS可以根据所述SPAddr的HCode值来检索所述HSvrRoutingData对象列表,以获取相应的HSvrRoutingData对象。所述HSvrRoutingData对象包括相应HSvr的RCode-NextAddr对应关系数据。
三、目标NextAddr锁定方法三
所述RoutingData包括:针对相应HSvr设置的HSvrRoutingData,所述HSvrRoutingData包括相应HSvr的RCode-NextAddr对应关系数据。
所述目标NextAddr锁定方法三流程包括如下步骤:
步骤X11-31、根据所述SPAddr的HCode,获取相应的HSvrRoutingData。
步骤X11-33、根据所述SPAddr的RCode值,按照获取的RCode-NextAddr对应关系,确定目标NextAddr。
在步骤X11-33之后,还可以进一步包括步骤X11-34:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,直接进入例外处理流程。
为了简化各个HSvrRoutingData中RCode-NextAddr对应关系数据设置。较佳地,如上所述,在所述RoutingData中还包括默认设置。
一、所述默认设置是:在RoutingData中进一步包括GDNextAddr。
相应地,所述步骤X11-34进一步是:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将GDNextAddr作为目标NextAddr。
如图12所示,为目标NextAddr锁定方法三流程示例图一。
二、所述默认设置是:在所述HSvrRoutingData中进一步包括默认NextAddr(DefaultNextAddr,Default NextAddr)。
相应地,在步骤X11-34中,在所述不成功之后,可以不进入例外处理流程,而是直接执行步骤X11-36:将对应的DefaultNextAddr作为目标NextAddr。
特别地,在步骤X11-36之前,还以进一步包括步骤X11-35:判断对应的DefaultNextAddr是否有效,如果是,则执行步骤X11-36;否则,例如为空值,则进入例外处理流程。
这样,在步骤X11-34中,在所述不成功之后,执行步骤X11-35
如图13所示,为目标NextAddr锁定方法三流程示例图二。
三、所述默认设置是:在RoutingData中进一步包括GDNextAddr;在相应HSvrRoutingData中进一步包括DefaultNextAddr。
在这种情况下,在执行所述的目标NextAddr锁定流程之前,例如,在相应HSvrRoutingData的配置阶段,或者在系统初始化时,可以先判断一个HSvrRoutingData的DefaultNextAddr是否有效,如果不是,则用GDNextAddr值更新该DefaultNextAddr值。这种情况下,如果GDNextAddr有效,则步骤X11-35中,所述对应的DefaultNextAddr总有效。因此,在步骤X11-36之前,就不需要包括步骤X11-35了。
实际当中,为了不影响数据配置的灵活性,较佳地,所述步骤X11-35进一步是:判断对应的DefaultNextAddr是否有效,如果是,则执行步骤X11-36;否则,将设置的GDNextAddr作为目标NextAddr。
在步骤X11-31之后,还可以进一步包括步骤X11-32:判断获取对应的HSvrRoutingData是否成功,如果是,才执行步骤X11-33;否则,直接进入例外处理流程。
如图14所示,为目标NextAddr锁定方法三流程示例图三。
在所述RoutingData中包括了所述GDNextAddr的情况下,所述步骤X11-32进一步是:判断获取对应的HSvrRoutingData是否成功,如果是,则执行步骤X11-33;否则,将设置的GDNextAddr作为目标NextAddr。
需要说明的是,由于大多数XS要处理的消息多是发往本HSvr的RSvr的消息,因此,为了提高总体消息处理效率,较佳地,预先获取针对本HSvr设置的HSvrRoutingData。这样,在步骤X11-31之前,还可以进一步包括步骤X11-30:判断所述SPAddr是否归属于本HSvr,如果是,则直接执行步骤X11-32,否则,才执行步骤X11-31。你懂的,当消息的目的地为本HSvr的RSvr时,相应的XS就不需要执行步骤X11-31这样的检索操作了。
如图15所示,为目标NextAddr锁定方法三流程示例图四。
实施实施本发明时,如果一个HSvr对应的HSvrRoutingData中,所述RCode-NextAddr对应关系为空,且对应的DefaultNextAddr也为空值,这时,就不需要针对该HSvr创建HSvrRoutingData对象,这样,就使得HSvrRoutingData对象列表得到精简。
通过针对各个HSvr来组织所述RoutingData,使得在根据所述SPAddr的HCode,获取相应的HSvrRoutingData时,即可确定对应的DefaultNextAddr,免去了检索所述HCode-Default对应关系的麻烦。另外,由于针对单个HSvr的RCode-NextAddr对应关系表一般很小,尤其是仅根据所述SPAddr的RCode来检索该表,因而,使得检索效率大大提高。特别地,对于有些HSvr来说,其对应的HSvrRoutingData中,相应的RCode-NextAddr对应关系表中可能就没有记录,甚至表指针就是空值,这种情况下,就免去了对整个表的检索,从而大大提高流程的处理效率。
实际当中,可以约定用0或者null来表示空值。
如果一个XS是一个GXS,那么,如果所述消息来自于其它XCld,则,一般地,该消息应该归属于本HSvr。例如,XS-A1接收自XS-B1的消息,一般地,其目的SPAddr的HCode值应为miliao.com,否则,应该属于异常,例如可能是XS-B1的RoutingData配置错误导致了这种异常发生。
本发明称,限制了目的SPAddr归属范围的消息,为来自北方的消息,简称北方消息。其中,所述目的SPAddr的归属限制范围,也称为所述北方消息的收敛范围。可以用HCode值和RCode值对来表示一个北方消息的收敛范围。例如,(mi liao.com,0)表示收敛范围是整个HSvr-A;(miliao.com,28)表示收敛范围是RSvr-A28;(miliao.com,23)和(miliao.com,28)表示收敛范围是RSvr-A23和RSvr-A28。
所述北方消息的发送方,为本XS的北方。
相应地,本发明称,无法限制目的SPAddr归属范围的消息,为来自南方的消息,简称南方消息。相应地,所述南方消息的发送方,为本XS的南方。
例如,XS-A1接收自XS-B1的消息,应归属于HSvr-A,因此,该消息为北方消息,其收敛范围为(miliao.com,0)。其中,XS-B1为XS-A1的北方。当然,XS-A1同时也为XS-B1的北方。
还例如,XS-B3接收自XS-B1或XS-B4的消息,应归属于RSvr-B21或RSvr-B25,因此,该消息也为北方消息,其收敛范围是(yixin.im,21)和(yixin.im,25)。其中XS-B1和XS-B4为XS-B3的北方。
还例如,XS-B4接收自XS-B1或XS-B3的消息,应归属于RSvr-B10,因此,该消息也为北方消息,其收敛范围是(yixin.im,10)。其中XS-B1和XS-B3为XS-B4的北方。
例如,对于来自RSvr-B21的消息,XS-B3无法限制消息的目的SPAddr的归属范围,例如,XS-B3不应限制消息是发送给本HSvr-C的,还是发送给HSvr-A的。同样,对于来自XS3的消息,XS-B1无法限制消息的目的SPAddr的归属范围。
XS在配置连接数据时,可以用一个标识属性来标识对应的连接是否面向北方。例如,XS3将面向XS-B1和XS-B4的连接都标识为北方。特别地,还可以针对所述连接设置收敛范围。
下面以所述收敛范围不超出一个HSvr为例进行阐述。
所述RoutingData包括:针对本HSvr设置的RCode-NextAddr对应关系。
四、目标NextAddr锁定方法一
所述目标NextAddr锁定方法是:步骤X11-42、根据所述SPAddr的RCode值,按照针对本HSvr设置的RCode-NextAddr对应关系,来确定目标NextAddr。
还可以针对面向北方的连接设置收敛范围。
在步骤X11-42之前,还可以进一步包括步骤X11-41:判断所述消息是否是收敛的,如果是,则执行步骤X11-42;否则,进入例外处理流程。判断所述消息是否收敛,可以是判断该消息的SPAddr是否归属于针对所述面向北方的连接所设置的收敛范围。
当然,在步骤X11-41中,所述的判断所述消息是否收敛,也可以是判断该消息的SPAddr是否归属于本HSvr。
在步骤X11-42之后,还可以进一步包括步骤X11-43:判断确定目标NextAddr是否成功,如果成功,则正常结束所述锁定流程,否则,执行步骤X11-46:直接进入例外处理流程。
特别地,所述RoutingData中还可以进一步包括默认设置,相应地,所述步骤X11-46进一步是:按照该默认设置来确定目标NextAddr。
如图15所示,为目标NextAddr锁定方法四流程示例图一。
例如,所述默认设置包括:GDNextAddr或针对本HSvr设置的DefaultNextAddr,相应地,所述步骤X11-46进一步是:将GDNextAddr或针对本HSvr设置的DefaultNextAddr作为目标NextAddr。
还例如,所述默认设置包括:GDNextAddr和针对本HSvr设置的DefaultNextAddr,相应地,所述步骤X11-46进一步是:判断针对本HSvr设置的DefaultNextAddr是否有效,如果有效,则将该DefaultNextAddr作为目标NextAddr,否则,将GDNextAddr作为目标NextAddr。
本发明还提出一种基于SPAddr的消息寻址方法,按照该方法,可以实现快速的跨域消息寻址。该方法包括以下步骤:
步骤11、源RSvr将携带目的SPAddr的消息发送给本HSvr的XCld.
步骤12、所述本HSvr的XCld根据所述SPAddr的HCode,将所述消息发送给目的HSvr的XCld。
步骤13、所述目的HSvr的XCld根据所述SPAddr的RCode确定目的RSvr,将所述消息发送给所述目的RSvr,消息的目的地址包括所述SPAddr的AccoAddr;
步骤14、所述目的RSvr收到所述消息后,根据所述目的AccoAddr确定目标账户。
下面以{RoutingData包括GDNextAddr、HCode-Default对应关系数据、HCode-RCode-NextAddr对应关系数据}为例,举例说明。
例如、在XS-A1、XS-A2、XS-B1、XS-B2和XS-B4中相关的RoutingData可以设置如下:
1、在XS-A1中,RoutingData为:
{
A、GDNextAddr为空值。
B、HCode-Default对应关系如下:
HCode | NextAddr | Remark |
yixin.im | XS-B1的XSAddr | 对应XCld-B |
immomo.com | XS-C1的XSAddr | 对应XCld-C |
C、HCode-RCode-NextAddr对应关系如下:
HCode | RCode | NextAddr | Remark |
miliao.com | 23 | XS-A2的XSAddr | 对应RSvr-A23 |
miliao.com | 28 | XS-A2的XSAddr | 对应RSvr-A28 |
miliao.com | 29 | RSvr-A29的RSvrAddr | 对应RSvr-A29 |
}
由上可以得到,对应各个HSvr的HSvrRoutingData如下:
{
对应HCode值miliao.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系,也即针对本HSvr设置的RCode-NextAddr对应关系,如下:
}
对应HCode值yixin.im的HSvrRoutingData:
{
DefaultNextAddr为XS-B1的XSAddr,
对应的RCode-NextAddr对应关系表为空。
}
对应HCode值immomo.com的HSvrRoutingData:
{
DefaultNextAddr为XS-C1的XSAddr,
对应的RCode-NextAddr对应关系表为空。
}
}
由上可以得到,针对其它HSvr设置HCode-RCode-NextAddr对应关系表为空。
2、在XS-A2中,RoutingData为:
{
A、GDNextAddr为XS-A1的XSAddr。
B、HCode-Default对应关系为空
C、HCode-RCode-NextAddr对应关系如下:
HCode | RCode | NextAddr | Remark |
miliao.com | 23 | RSvr-A23的RSvrAddr | 对应RSvr-A23 |
miliao.com | 28 | RSvr-A28的RSvrAddr | 对应RSvr-A28 |
yixin.im | 20 | XS-B2的XSAddr | 对应RSvr-B20 |
yixin.im | 27 | XS-B2的XSAddr | 对应RSvr-B27 |
}
由上可以得到,对应各个HSvr的HSvrRoutingData如下:
{
对应HCode值miliao.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系,也即针对本HSvr设置的RCode-NextAddr对应关系,如下:
RCode | NextAddr | Remark |
23 | RSvr-A23的RSvrAddr | 对应RSvr-A23 |
28 | RSvr-A28的RSvrAddr | 对应RSvr-A28 |
}
对应HCode值yixin.im的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系如下:
RCode | NextAddr | Remark |
20 | XS-B2的XSAddr | 对应RSvr-B20 |
27 | XS-B2的XSAddr | 对应RSvr-B27 |
}
对应HCode值immomo.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系表为空。
}
}
由上可以得到,针对其它HSvr设置HCode-RCode-NextAddr对应关系表如下:
HCode | RCode | NextAddr | Remark |
yixin.im | 20 | XS-B2的XSAddr | 对应RSvr-B20 |
yixin.im | 27 | XS-B2的XSAddr | 对应RSvr-B27 |
3、在XS-B1中,RoutingData为:
{
A、GDNextAddr为空值。
B、HCode-Default对应关系如下:
HCode | NextAddr | Remark |
miliao.com | XS-A1的XSAddr | 对应XCld-A |
immomo.com | XS-C1的XSAddr | 对应XCld-C |
C、HCode-RCode-NextAddr对应关系如下:
HCode | RCode | NextAddr | Remark |
yixin.im | 10 | XS-B4的XSAddr | 对应RSvr-B10 |
yixin.im | 21 | XS-B3的XSAddr | 对应RSvr-B21 |
yixin.im | 25 | XS-B3的XSAddr | 对应RSvr-B25 |
yixin.im | 20 | XS-B2的XSAddr | 对应RSvr-B20 |
yixin.im | 27 | XS-B2的XSAddr | 对应RSvr-B27 |
}
由上可以得到,对应各个HSvr的HSvrRoutingData如下:
{
对应HCode值miliao.com的HSvrRoutingData:
{
DefaultNextAddr为XS-A1的XSAddr,
对应的RCode-NextAddr对应关系表为空。
}
对应HCode值yixin.im的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系,也即针对本HSvr设置的RCode-NextAddr对应关系,如下:
RCode | NextAddr | Remark |
10 | XS-B4的XSAddr | 对应RSvr-B10 |
21 | XS-B3的XSAddr | 对应RSvr-B21 |
25 | XS-B3的XSAddr | 对应RSvr-B25 |
20 | XS-B2的XSAddr | 对应RSvr-B20 |
27 | XS-B2的XSAddr | 对应RSvr-B27 |
}
对应HCode值immomo.com的HSvrRoutingData:
{
DefaultNextAddr为XS-C1的XSAddr,
对应的RCode-NextAddr对应关系表为空。
}
}
由上可以得到,针对其它HSvr设置HCode-RCode-NextAddr对应关系表为空。
4、在XS-B2中,RoutingData为:
{
A、GDNextAddr为XS-B1的XSAddr。
B、HCode-Default对应关系如下:
HCode | NextAddr | Remark |
miliao.com | XS-A2的XSAddr | 对应XCld-A |
C、HCode-RCode-NextAddr对应关系如下:
HCode | RCode | NextAddr | Remark |
yixin.im | 20 | RSvr-B20的RSvrAddr | 对应RSvr-B20 |
yixin.im | 27 | RSvr-B27的RSvrAddr | 对应RSvr-B27 |
}
由上可以得到,对应各个HSvr的HSvrRoutingData如下:
{
对应HCode值miliao.com的HSvrRoutingData:
{
DefaultNextAddr为XS-A2的XSAddr,
对应的RCode-NextAddr对应关系表为空。
}
对应HCode值yixin.im的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系,也即针对本HSvr设置的RCode-NextAddr对应关系,如下:
RCode | NextAddr | Remark |
20 | RSvr-B20的RSvrAddr | 对应RSvr-B20 |
27 | RSvr-B27的RSvrAddr | 对应RSvr-B27 |
}
对应HCode值immomo.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系表为空。
}
}
由上可以得到,针对其它HSvr设置HCode-RCode-NextAddr对应关系表为空。
5、在XS-B4中,RoutingData为:
{
A、GDNextAddr为XS-B1的XSAddr。
B、HCode-Default对应关系为空。
C、HCode-RCode-NextAddr对应关系如下:
HCode | RCode | NextAddr | Remark |
yixin.im | 10 | RSvr-B10的RSvrAddr | 对应RSvr-B10 |
yixin.im | 21 | XS-B3的XSAddr | 对应RSvr-B21 |
yixin.im | 25 | XS-B3的XSAddr | 对应RSvr-B25 |
}
由上可以得到,对应各个HSvr的HSvrRoutingData如下:
{
对应HCode值miliao.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系表为空。
}
对应HCode值yixin.im的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系,也即针对本HSvr设置的RCode-NextAddr对应关系,如下:
RCode | NextAddr | Remark |
10 | RSvr-B10的RSvrAddr | 对应RSvr-B10 |
21 | XS-B3的XSAddr | 对应RSvr-B21 |
25 | XS-B3的XSAddr | 对应RSvr-B25 |
}
对应HCode值immomo.com的HSvrRoutingData:
{
DefaultNextAddr为空值,
对应的RCode-NextAddr对应关系表为空。
}
}
由上可以得到,针对其它HSvr设置HCode-RCode-NextAddr对应关系表为空。
下面以{
caocao的SPAddr为(caocao@yixin.im,10),该账户数据处于RSvr-B10中,
weiyan的SPAddr为(weiyan@yixin.im,20),该账户数据处于RSvr-B20中,
liubei的SPAddr为(liubei@miliao.im,28),该账户数据处于RSvr-A28中,
machao的SPAddr为(machao@miliao.com,29),该账户数据处于RSvr-A29中。
}为例,通过RSvr间消息交互,展示本发明应用。
例1、按照目标NextAddr锁定方法一,caocao给machao发信时执行如下流程:
步骤101、caocao客户端将消息发送给RSvr-B10,消息的目的SPAddr值为(machao@miliao.com,29)。
步骤102、RSvr-B10收到来自客户端的所述消息后,判断出所述SPAddr不归属于自己,于是,将该消息发送给XS-B4。这里,由于所述SPAddr的HCode值miliao.com和RCode值29等,与RSvr-B10的HCode值yixin.im和RCode值10等不一致,所以,RSvr-B10认为所述SPAddr不归属于自己。为节约阅读时间,后面类似之处不再赘述。
步骤103、XS-B4收到所述消息后,判断出所述SPAddr不归属于本HSvr,由于针对其它HSvr设置的HCode-RCode-NextAddr对应关系为空,于是,根据SPAddr的HCode值miliao.com,按照HCode-Default对应关系来确定目标NextAddr;由于HCode-Default对应关系为空,于是,直接将GDNextAddr值,即XS-B1的XSAddr,作为目标NextAddr;将该消息发送给XS-B1。
步骤104、XS-B1收到所述消息后,判断出所述SPAddr不归属于本HSvr,由于针对其它HSvr设置HCode-RCode-NextAddr对应关系表为空,于是,根据SPAddr的HCode值miliao.com,按照HCode-Default对应关系来确定目标NextAddr,得到XS-A1的XSAddr;将该消息发送给XS-A1。
步骤105、XS-A1收到所述消息后,判断出所述SPAddr归属于本HSvr,于是,根据所述SPAddr的RCode值29,按照针对本HSvr设置的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-A29的RSvrAddr;将该消息发送给RSvr-A29。
步骤106、RSvr-A29收到来自XCld的所述消息后,根据所述SPAddr的AccoAddr值machao@miliao.com确定目标账户,将该消息发送给对应的客户端。
例2、按照目标NextAddr锁定方法一,liubei给weiyan发信时执行如下流程:
步骤201、liubei客户端将消息发送给RSvr-A28,消息的目的SPAddr值为(weiyan@yixin.im,20)。
步骤202、RSvr-A28收到来自客户端的所述消息后,判断出所述SPAddr不归属于自己,于是,将该消息发送给XS-A2。
步骤203、XS-A2收到所述消息后,判断出所述SPAddr不归属于本HSvr,于是,根据SPAddr的HCode值yixin.im和RCode值20,按照针对其它HSvr设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,得到XS-B2的XSAddr;将该消息发送给XS-B2。
步骤204、XS-B2收到所述消息后,判断出所述SPAddr归属于本HSvr,于是,根据所述SPAddr的RCode值20,按照针对本HSvr设置的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-B20的RSvrAddr;将该消息发送给RSvr-B20。
步骤205、RSvr-B20收到来自XCld的所述消息后,根据所述SPAddr的AccoAddr值weiyan@yixin.im确定目标账户,将该消息发送给对应的客户端。
例3、按照目标NextAddr锁定方法二,caocao给machao发信时执行如下流程:
步骤301、同步骤101。步骤302、同步骤102。
步骤303、XS-B4收到所述消息后,根据所述SPAddr的HCode值miliao.com和RCode值29,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,不成功,于是,根据SPAddr的HCode值miliao.com,按照HCode-Default对应关系来确定目标NextAddr;由于HCode-Default对应关系为空,于是,直接将GDNextAddr值,即XS-B1的XSAddr,作为目标NextAddr;将该消息发送给XS-B1。
步骤304、XS-B1收到所述消息后,根据所述SPAddr的HCode值miliao.com和RCode值29,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,不成功,于是,根据SPAddr的HCode值miliao.com,按照HCode-Default对应关系来确定目标NextAddr,得到XS-A1的XSAddr;将该消息发送给XS-A1。
步骤305、XS-A1收到所述消息后,根据所述SPAddr的HCode值miliao.com和RCode值29,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,得到RSvr-A29的RSvrAddr;将该消息发送给RSvr-A29。
步骤306、同步骤106。
例4、按照目标NextAddr锁定方法二,liubei给weiyan发信时执行如下流程:
步骤401、同步骤201。步骤402、同步骤202。
步骤403、XS-A2收到所述消息后,根据所述SPAddr的HCode值yixin.im和RCode值20,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,得到XS-B2的XSAddr;将该消息发送给XS-B2。
步骤404、XS-B2收到所述消息后,根据所述SPAddr的HCode值yixin.im和RCode值20,按照设置的HCode-RCode-NextAddr对应关系,来确定目标NextAddr,得到RSvr-B20的RSvrAddr;将该消息发送给RSvr-B20。
步骤405、同步骤205。
例5、按照目标NextAddr锁定方法三,caocao给machao发信时执行如下流程:
步骤501、同步骤101。步骤502、同步骤102。
步骤503、XS-B4收到所述消息后,根据所述SPAddr的HCode值miliao.com,获取相关的HSvrRoutingData,由于HCode值miliao.com对应的HSvrRoutingData中,DefaultNextAddr为空值,对应的RCode-NextAddr对应关系为空,因而,没有得到HCode值miliao.com对应的HSvrRoutingData,例如,系统没有创建HCode值miliao.com对应的HSvrRoutingData对象,于是,直接将GDNextAddr值,即XS-B1的XSAddr,作为目标NextAddr;将该消息发送给XS-B1。
步骤504、XS-B1收到所述消息后,根据所述SPAddr的HCode值miliao.com,获取相关的HSvrRoutingData;根据所述SPAddr的RCode值29,按照相应的RCode-NextAddr对应关系,确定目标NextAddr,由于对应的RCode-NextAddr对应关系为空,因此,进一步考虑DefaultNextAddr,将DefaultNextAddr值,即XS-A1的XSAddr,作为目标NextAddr;将该消息发送给XS-A1。
步骤505、XS-A1收到所述消息后,根据所述SPAddr的HCode值miliao.com,获取相关的HSvrRoutingData;根据所述SPAddr的RCode值29,按照相应的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-A29的RSvrAddr;将该消息发送给RSvr-A29。
步骤506、同步骤106。
例六、按照目标NextAddr锁定方法三,liubei给weiyan发信时执行如下流程:
步骤601、同步骤201。步骤602、同步骤202。
步骤603、XS-A2收到所述消息后,根据所述SPAddr的HCode值yixin.im,获取相关的HSvrRoutingData;根据SPAddr的RCode值20,按照相应的RCode-NextAddr对应关系表,确定目标NextAddr,得到XS-B2的XSAddr;将该消息发送给XS-B2。
步骤604、XS-B2收到所述消息后,根据所述SPAddr的HCode值yixin.im,获取相关的HSvrRoutingData;根据所述SPAddr的RCode值20,按照相应的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-B20的RSvrAddr;将该消息发送给RSvr-B20。
步骤605、同步骤205。
对于一个北方消息,可以按照所述的目标NextAddr锁定方法一或二或三所述的方法来确定目标NextAddr,较佳地,按照所述的目标NextAddr锁定方法四所述的方法来确定目标NextAddr。
在步骤105、步骤305、步骤505、步骤204、步骤404、步骤604,等步骤中,可以按照所述的目标NextAddr锁定方法四所述的方法来进行。
例如,所述步骤105、步骤305、步骤505等等,还可以是:XS-A1收到所述消息后,根据所述SPAddr的RCode值29,按照针对本HSvr设置的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-A29的RSvrAddr;将该消息发送给RSvr-A29。
还例如,所述步骤204、步骤404、步骤604等等,还可以是:XS-B2收到所述消息后,根据所述SPAddr的RCode值20,按照针对本HSvr设置的RCode-NextAddr对应关系,确定目标NextAddr,得到RSvr-B20的RSvrAddr;将该消息发送给RSvr-B20。
一般地,对于一个待发送消息,XS可以判断该消息是否为北方消息,如果是,则按照所述的目标NextAddr锁定方法四所述的方法来确定目标NextAddr,否则,按照所述的目标NextAddr锁定方法一或二或三所述的方法来确定目标NextAddr。
在XS-B1中,相应的HCode-RCode-NextAddr对应关系有很多记录,同样,HCode值yixin.im对应的HSvrRoutingData中,相应的RCode-NextAddr对应关系也有很多记录。实际当中,可能由于XS-B1在XCld中位置或层次比较高,可能会关注到本HSvr中所有RSvr的有关路由数据,而一个HSvr中的RSvr数量可能成千上万,这样,就需要考虑XS-B1的效率问题。
对此,针对所述对应关系,进一步设置匹配描述(MDesc,Matching Description)。相应地,在按照所述的RCode-NextAddr对应关系表,或所述的HCode-RCode-NextAddr对应关系表,来确定目标NextAddr时,还进一步根据对应的MDesc来进行。也即。在比较所述SPAddr的RCode值与相应记录中的RCode字段是否一致时,还参考针对该记录设置的MDesc值。
可以直接针对所述对应关系表来设置MDesc。这样,就不需要在该表中增加MDesc字段。
也可以是分别针对所述对应关系表中各个记录来设置MDesc。例如,在所述的RCode-NextAddr对应关系表中,或者是在所述的HCode-RCode-NextAddr对应关系表中,可以进一步包括MDesc字段。相应地,在按照所述的RCode-NextAddr对应关系表,或所述的HCode-RCode-NextAddr对应关系表,来确定目标NextAddr时,还进一步根据对应的MDesc来进行。也即。在比较所述SPAddr的RCode值与相应记录中的RCode字段是否一致时,还参考该记录的MDesc值。
例如,所述RCode是由点连接起来的多个子域串,例如:shen.guang,而所述MDesc是参与比较的子域串个数,例如为1,则,在比较所述SPAddr的RCode值与相应记录中的RCode字段是否一致时,只需比较最高级别的子域即可。例如,对应记录的RCode值为guang,对于两个RCode值:shen.guang和changan.guan.guang,当MDesc为1时,由于只比较最高级别子域,因此,将shen.guang和changan.guan.guang视为和所述记录的RCode值一致。还例如,对应记录的RCode值为guan.guang,对于两个RCode值:shen.guang和changan.guan.guang,当MDesc为2时,由于只比较最高级别子域开始的两个子域串,因此,只有changan.guan.guang被视为和所述记录的RCode值一致。
从上可以看出,当MDesc为2时,在所述记录中设置RCode值guan.guang,可以匹配changan.guan.guang、humen.guan.guang、tangxia.guan.guang等等很多个RCode值,这样,就可以大大简化相应对应关系表中记录的配置。
较佳地,为了提高交换效率,RCode值为一个二进制数,对应的,所述MDesc是一个掩码(Mask)。
相应地,在比较所述SPAddr的RCode值与相应记录中的RCode字段是否一致时,先用所述SPAddr的RCode值与该记录中的MDesc进行相应的运算,例如,逻辑与(AND)运算,然后用运算结果与该记录中RCode字段进行比较,判断二者是否一致,例如是否相等,如果是,则说明所述SPAddr的RCode值与相应记录中的RCode字段一致,否则,认为二者不一致。
下面先以RCode为一个32位的二进制数为例。
当所述Mask为连续多个1后面跟着连续多个0这种形式时,例如
Mask1=11111111 11111111 11111000 00000000,
Mask2=11111111 11111111 10000000 00000000,
这时,所述MDesc可以直接是一个1到32中的数字,该数字用以指示所述Mask中连续1的个数。例如,对于Mask1来说,该数字为21,对于Mask2来说,该数字为17。
实际当中,也可以对所述二进制的RCode进行分段编码。
例如,以{洲编码占用3个bit,国家或区域编码占用10个bit,省编码占用8个bit,市编码占用6个bit,市内子编码占用5个bit}为例,当{亚洲编码为001,中国编码为0001010110,广东省编码为00010100,东莞编码为000101,东莞市内子编码为01011}时,对应的RCode为001 0001010110 00010100 000101 01011。如果一个XS为广东的顶级XS,省外发送来的消息都由广东的顶级XS转发到广东省内其它相应的XS。这时,对于要发送给东莞XS的消息,在所述对应关系表中,将对应东莞的记录中RCode值配置成001 000101011000010100 000101 00000,将对应的Mask配置成111 1111111111 11111111 111111 00000即可,而不会因为东莞XS下连接的RSvr数量而需要增加或者调整广东的顶级XS中相应对应关系表的配置。
通过MDesc字段的设置和使用,可以大大降低所述的RCode-NextAddr对应关系表,或所述的HCode-RCode-NextAddr对应关系表中记录数量,从而大大简化了数据配置。
例如,以RCode为一个16位的二进制数为例,其中,第一个字节表示组号,第二个字节表示组内编号,这种情况下,所述MDesc是8或16。这样,将RSvr-B20和RSvr-B27编为一组,对应的RCode分别为00000001 00010100和00000001 00011011;将RSvr-B21和RSvr-B25编为一组,对应的RCode分别为00000010 00010101和00000010 00011001;RSvr-B10为一组,对应的RCode为00000011 00001010。
这样,在XS-B1中,RoutingData里的HCode-RCode-NextAddr对应关系可以简化为:
HCode | RCode | NextAddr | MDesc | Remark |
yixin.im | 00000001 000000000 | XS-B2的XSAddr | 8 | 对应XS-B2 |
yixin.im | 00000010 000000000 | XS-B3的XSAddr | 8 | 对应XS-B3 |
yixin.im | 00000011 000000000 | XS-B4的XSAddr | 8 | 对应XS-B4 |
相应地,HCode值yixin.im对应的HSvrRoutingData中,对应的RCode-NextAddr对应关系如下:
这样,对于一个包括目的SPAddr的消息,XS-B1在根据所述SPAddr的RCode值匹配所述RCode-NextAddr对应关系时,先根据所述SPAddr的RCode值与相应记录的MDesc进行逻辑与运算,而后用运算结果与该记录的RCode值进行比较,判断是否一致,如果一致,则该消息匹配该记录的RCode,否则,不匹配。
如果所有对应关系记录的MDesc值都一样,则该MDesc值实际是针对相应对应关系表所设置,例如,在上面XS-B1中,所述对应关系表里,各个记录的MDesc值都相同,这种情况下,所述对应关系表中也可以不包括MDesc字段。
从简化后的表中可以看到,由原来针对各个RSvr来设置相应的对应关系,简化为针对各个XS来设置相应的对应关系,这样,就大大地简化了高层XS的RoutingData设置。
同样,在XS-B4中,RoutingData里的HCode-RCode-NextAddr对应关系可以简化为:
HCode | RCode | NextAddr | MDesc | Remark |
yixin.im | 00000010 000000000 | XS-B3的XSAddr | 8 | 对应XS-B3 |
yixin.im | 00000011 00001010 | RSvr-B10的RSvrAddr | 16 | 对应RSvr-B10 |
相应地,HCode值yixin.im对应的HSvrRoutingData中,对应的RCode-NextAddr对应关系如下:
RCode | NextAddr | MDesc | Remark |
00000010 000000000 | XS-B3的XSAddr | 8 | 对应XS-B3 |
00000011 00001010 | RSvr-B10的RSvrAddr | 16 | 对应RSvr-B10 |
实际当中,也可以按照MDesc值,将所述的RCode-NextAddr对应关系表分成多个子表。
例如,在一个XS中,如果约定MDesc只取两种值,例如,以RCode为一个16位的二进制数为例,其中,第一个字节表示组号,第二个字节表示组内编号,这种情况下,所述MDesc可以取8或16。这种情况下,在XS-B4中,可以将HCode值yixin.im对应的HSvrRoutingData中所述的RCode-NextAddr对应关系表按照对应的MDesc值分成两个表,这样,在这两个表中,就不需要包括MDesc字段。如下所示。
MDesc8
RCode | NextAddr | Remark |
00000010 000000000 | XS-B3的XSAddr | 对应XS-B3 |
MDesc16
RCode | NextAddr | Remark |
00000011 00001010 | RSvr-B10的RSvrAddr | 对应RSvr-B10 |
这种情况下,如果一个Mask的各个bit位全部为1,则视为无视Mask。也即,直接根据所述SPAddr的RCode值与相应记录的RCode值进行比较,判断是否一致,如果一致,则该消息匹配该记录的RCode,否则,不匹配。
例如,在进行匹配时,先根据所述SPAddr的RCode值与11111111 000000000进行逻辑与运算,然后用该运算结果去匹配表MDesc8,看是否匹配到对应的记录,如果匹配到,则结束匹配;否则,直接用所述SPAddr的RCode值匹配表MDesc16,看是否匹配到对应的记录,如果匹配到,则结束匹配,否则,进入异常处理流程。
还例如,在进行匹配时,直接用所述SPAddr的RCode值匹配表MDesc16,看是否匹配到对应的记录,如果匹配到,则结束匹配;否则,根据所述SPAddr的RCode值与11111111000000000进行逻辑与运算,然后用该运算结果去匹配表MDesc8,看是否匹配到对应的记录,如果匹配到,则结束匹配,否则,进入异常处理流程。
如果XCld是一个树型组织的网络,那么,在一个XS中,约定MDesc只取两种值,基本就够使用了。实际当中,为了网络部署、连接的灵活性,以及配置的简易性,一般地,不建议限制在一个XS中MDesc的取值数量,从而达到支持网络部署、连接的极大灵活性,以及配置的简便性要求。
从上面实施例可以看出,基于本发明的消息交换方法,以及交换云,可以实现任意HSvr的RSvr之间的灵活互联,从而,为互联网通信的融合提供可靠的技术保障。
本领域技术人员都知道,考虑到部署的灵活性,一般地,在统一约定对应服务器或模块的相应端口号时,应将XS、RSvr等等分别约定为不同的端口号,例如,RSvr的端口号为6688,XS的端口号为7788。
本领域技术人员都知道,为了提高检索效率,在所述账户信息表中,可以将相应AccoAddr的域名部分省去,而只保留用户名部分。相应地,对这样的表进行检索时,只根据一个AccoAddr的用户名部分即可。
本领域技术人员都知道,本发明中,相互通信的服务器或模块之间,可以通过IP网络实现互联。在二者距离较近时,也可以通过采用RS485通讯方式进行通信。由于单纯两个模块或服务器之间的通信,根据实际情况,可以有各种相应合适的成熟技术来实现,因此,本发明不再就这方面赘述。
一个SPAddr也可以写成一个email地址形式,也即写成一个SPEmailAddr,因此,本领域技术人员将本发明的SPAddr都替换成SPEmailAddr,可以达到同样技术效果。关于SPEmailAddr的更多描述,参见所述《基于半永久地址的消息发送方法》发明专利,这里不再就SPEmailAddr形式的SPAddr进行仿述。
以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换,以及对一些要素或流程的删减,等均应包含在本发明的保护范围之内。
Claims (10)
1.一种消息交换方法,所述消息包括目的SPAddr;其特征在于,设置RoutingData;该方法包括以下步骤:
a、根据所述SPAddr,按照设置的RoutingData,确定目标NextAddr;
b、按照所确定的目标NextAddr,将所述消息发送出去。
2.根据权利要求1所述的方法,其特征在于,所述RoutingData包括默认设置,以及针对本HSvr设置的RCode-NextAddr对应关系;所述步骤a是如下目标NextAddr锁定流程:
a11、判断所述SPAddr是否归属于本HSvr,如果是,在执行步骤a12、否则,执行步骤a16;
a12、根据所述SPAddr的RCode,按照设置的RCode-NextAddr对应关系,确定目标NextAddr;
a16、按照默认设置,确定目标NextAddr。
3.根据权利要求1所述的方法,其特征在于,所述RoutingData包括HCode-RCode-NextAddr对应关系;步骤a进一步是如下目标NextAddr锁定流程:
a22、根据所述SPAddr的HCode值和RCode值,按照HCode-RCode-NextAddr对应关系,确定目标NextAddr。
4.根据权利要求3所述的方法,其特征在于,所述RoutingData还包括默认设置,相应地,在步骤a22之后进一步包括步骤a23:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,执行步骤a26:按照默认设置,确定目标NextAddr。
5.根据权利要求1所述的方法,其特征在于,所述RoutingData包括HCode-RCode-NextAddr对应关系;步骤a进一步是如下目标NextAddr锁定流程:
步骤a31是:根据所述SPAddr的HCode,获取相应的HSvrRoutingData,所述HSvrRoutingData包括该HCode对应的RCode-NextAddr对应关系数据;
步骤a33是:根据所述SPAddr的RCode值,按照获取的RCode-NextAddr对应关系,确定目标NextAddr。
6.根据权利要求5所述的方法,其特征在于,所述RoutingData中还包括GDNextAddr;相应地,
在步骤a31之后,进一步包括步骤a32:判断获取相关的HSvrRoutingData是否成功,如果是,才执行步骤a33;否则,将GDNextAddr作为目标NextAddr;
或者,在步骤a33之后,进一步包括步骤a34:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将GDNextAddr作为目标NextAddr。
7.根据权利要求5所述的方法,其特征在于,所述RoutingData中还包括针对相应HSvr分别设置的DefaultNextAddr;相应地,在步骤a31中,所述HSvrRoutingData还包括对应的DefaultNextAddr,相应地,
在步骤a33之后,进一步包括步骤a34:判断确定目标NextAddr是否成功,如果成功,则结束目标NextAddr锁定流程;否则,将对应的DefaultNextAddr作为目标NextAddr。
8.一种RCode匹配方法,用于判断一个消息是否匹配目标RCode,所述消息包括目的SPAddr;其特征在于,针对所述目标RCode,设置匹配描述(MDesc);所述方法包括如下步骤:
步骤a、根据MDesc,从所述SPAddr的RCode中获取匹配参数;
步骤b、比较匹配参数与所述目标RCode是否一致,如果一致,则认为所述消息匹配所述目标RCode;否则,认为二者不匹配。
9.一种交换云(XCld),用于RSvr间的消息交互;所述XCld至少包括两个交换服务器(XS);其特征在于:
在XS中,设置路由数据(RoutingData);对于一个包括目的SPAddr的待发送消息,该XS根据所述消息的目的SPAddr,按照设置的RoutingData,确定该消息的下一站地址(NextAddr),即确定目标NextAddr;按照所确定的目标NextAddr,将所述消息发送出去。
10.一种基于SPAddr的消息寻址方法,所述消息包括目的SPAddr;其特征在于,该方法包括以下步骤:
a、源RSvr将携带目的SPAddr的消息发送给本HSvr的XCld;
b、所述本HSvr的XCld根据所述SPAddr的HCode,将所述消息发送给目的HSvr的XCld;
c、所述目的HSvr的XCld根据所述SPAddr的RCode确定目的RSvr,将所述消息发送给所述目的RSvr,消息的目的地址包括所述SPAddr的AccoAddr;
d、所述目的RSvr收到所述消息后,根据所述SPAddr的AccoAddr确定目标账户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610086133.4A CN107087039B (zh) | 2016-02-15 | 2016-02-15 | 交换方法和交换云 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610086133.4A CN107087039B (zh) | 2016-02-15 | 2016-02-15 | 交换方法和交换云 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107087039A true CN107087039A (zh) | 2017-08-22 |
CN107087039B CN107087039B (zh) | 2021-10-01 |
Family
ID=59614481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610086133.4A Active CN107087039B (zh) | 2016-02-15 | 2016-02-15 | 交换方法和交换云 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107087039B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863131A (zh) * | 2005-11-18 | 2006-11-15 | 华为技术有限公司 | 业务设备交换网络及交换方法 |
CN101242371A (zh) * | 2008-03-14 | 2008-08-13 | 杭州华三通信技术有限公司 | 基于PCIe交换架构路由器堆叠的方法、系统和装置 |
US20120327930A1 (en) * | 2010-07-23 | 2012-12-27 | Zte Corporation | Method and System For Calling Traditional Circuit Switched Domain Network User By Packet Core Network |
CN104125310A (zh) * | 2013-04-23 | 2014-10-29 | 王正伟 | 基于半永久地址的消息发送方法 |
CN104301229A (zh) * | 2014-09-26 | 2015-01-21 | 深圳市腾讯计算机系统有限公司 | 数据包转发方法、路由表生成方法及装置 |
-
2016
- 2016-02-15 CN CN201610086133.4A patent/CN107087039B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863131A (zh) * | 2005-11-18 | 2006-11-15 | 华为技术有限公司 | 业务设备交换网络及交换方法 |
CN101242371A (zh) * | 2008-03-14 | 2008-08-13 | 杭州华三通信技术有限公司 | 基于PCIe交换架构路由器堆叠的方法、系统和装置 |
US20120327930A1 (en) * | 2010-07-23 | 2012-12-27 | Zte Corporation | Method and System For Calling Traditional Circuit Switched Domain Network User By Packet Core Network |
CN104125310A (zh) * | 2013-04-23 | 2014-10-29 | 王正伟 | 基于半永久地址的消息发送方法 |
CN104301229A (zh) * | 2014-09-26 | 2015-01-21 | 深圳市腾讯计算机系统有限公司 | 数据包转发方法、路由表生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107087039B (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102210126B (zh) | 使用聚集路由器密钥转发数据分组的方法和设备 | |
WO2004059925A1 (ja) | 静的な識別子と動的な住所が関連付けられることによってホスト到達性が得られる網にあって、到達性を確認するための通信モデル、信号、方法および装置 | |
CN108600376A (zh) | 基于LoRa的数据传输方法、装置、LoRa网关、系统及存储介质 | |
CN101188580B (zh) | 一种实时垃圾电子邮件过滤方法及系统 | |
CN102790808A (zh) | 一种域名解析方法和系统、一种客户端 | |
CN107948192A (zh) | 一种区块链账户客户化识别及登录方法和系统 | |
CN106060097B (zh) | 一种信息安全竞赛的管理系统及管理方法 | |
CN104468805A (zh) | 消息路由装置和方法 | |
CN105871698B (zh) | 一种即时通讯服务的管理方法与系统 | |
CN101163066B (zh) | 分布式电子邮件系统 | |
CN108777664A (zh) | 一种数据包处理方法及其设备、系统、存储介质 | |
CN104283972B (zh) | 基于浏览器的消息推送方法、设备和系统 | |
CN108718236A (zh) | 互联网自组织汇流的数据传输方法 | |
CN104125310B (zh) | 基于半永久地址的消息发送方法 | |
CN105207904B (zh) | 报文的处理方法、装置和路由器 | |
CN105025009A (zh) | 一种加强邮件系统访问安全性的方法及邮件安全访问系统 | |
CN107087039A (zh) | 交换方法和交换云 | |
CN101895469A (zh) | 对等网络流量牵引系统及流量牵引方法 | |
CN103391333A (zh) | 支持guid迁移的网络及相关消息处理方法 | |
CN102685133B (zh) | 主机标识追溯方法及系统、终端、中心服务器 | |
CN107580012A (zh) | 分布式HSvr | |
CN105049302B (zh) | 基于公共服务器的家居通信系统及通信方法 | |
CN101668011B (zh) | 一种实现行业应用平台异地多媒体消息发送的方法及系统 | |
CN101873265A (zh) | 用于标识分离映射网络的数据分析装置及其方法 | |
CN107231295A (zh) | 一种轻巧简便的社交交友聊天客户端搭建系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |