CN103391332A - 辅助寻址方法 - Google Patents
辅助寻址方法 Download PDFInfo
- Publication number
- CN103391332A CN103391332A CN2013100733347A CN201310073334A CN103391332A CN 103391332 A CN103391332 A CN 103391332A CN 2013100733347 A CN2013100733347 A CN 2013100733347A CN 201310073334 A CN201310073334 A CN 201310073334A CN 103391332 A CN103391332 A CN 103391332A
- Authority
- CN
- China
- Prior art keywords
- message
- hsvr
- client
- value
- addressing
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种辅助寻址方法,该方法通过目的跨域地址码进行联合寻址,从而实现消息的快速传送,减少了消息因目的转向而产生的迂回。本发明还提供一种HSvr进行辅助寻址的方法,根据该方法,HSvr可以实现对消息的快速传送,从而帮助提高整个IMN网络的消息处理效率。本发明还提供一种扩展软跳线设置方法,通过该方法,可以动态建立转向源与其rdEndGUID相应的客户端的对应关系,从而实现消息最优路径自动配置功能。本发明还提供一种转向处理方法,通过该方法,实现对迁移后的GUID的寻址,进而帮助实现人们长期渴望的号码迁移携带愿望。
Description
技术领域
本发明涉及互联网通信,更确切地说涉及互联网中进行辅助寻址或跨域寻址的方法。
背景技术
在即时通信网络(IMN,Instant Messenger Network)网络中,因设置转向而形成转向关系链,简称为转向链。例如,对于A、B、C、D等四个全球统一身份(GUID,Global Unified Identity)来说,如果A的转向目的为B、B的转向目的为C、C的转向目的为D、D没有设置转向,则,A到B到C到D为一个转向链,其中,A、B、C、D等四个GUID为该转向链的节点。该转向链也可以写成A-B-C-D这种形式。
对于转向链A-B-C-D来说,尾节点D为其前面节点A、B、C等的最终转向目的(简称rdEndGUID)。在转向链中,任一节点前面的所有节点都是该节点的转向源。这样,对于转向链A-B-C-D来说,尾节点D至少有A、B、C等三个转向源。
根据申请号为201210100091.7或201310070280.9的《转向处理方法》发明专利所提供的转向处理方法,在一个IMN网络中,向转向链中任一节点发送消息,也即,以该转向链中任一节点作为目的地址发送消息,该IMN网络最终将该消息发送给该转向链的rdEndGUID相应的客户端。
现有技术中,对于转向链A-B-C-D来说,如果该转向链中,相邻的两个节点归属于不同归属服务器(HSvr,Home Server),则要向目的GUID为B的互联网用户(IUsr,Internet User)发送消息,就需要沿着转向链,先将该消息发送给B归属的HSvr,再由B归属的HSvr将该消息发送给C归属的HSvr,再由C归属的HSvr将该消息发送给D归属的HSvr,最后由D归属的HSvr将该消息发送给D相应的客户端。由于消息的迂回不但消耗更多的网络资源,还可能增加消息传递的时间。
例如,为了方便一个IUsr以不同身份与不同用户群进行信息交互,在申请号为201210100116.3或201310069946.9的《变脸方法》发明专利中提出了变脸方法,该方法通过针对一个IUsr,例如UsrA,设置面具(Mask),例如MaskA,在该IUsr发送信息时,其HSvr以设置的面具替代该IUsr的身份,从而,使得信息接收者获得一个该接收者,例如UsrB,自己更加熟悉的信息发送者的身份。所述面具是另一个IUsr的GUID。
由于UsrB在接收消息时得到的是UsrA的MaskA,在UsrB向UsrA发送消息时,UsrB将该消息发送给MaskA。UsrA为了接收UsrB的消息,按照《转向处理方法》发明专利中提出的转向处理方法,通过将MaskA的转向目的设置为UsrA,使得UsrB发送给MaskA的消息最终被转向到UsrA,由UsrA接收。
由于MaskA设置了转向,一般地,在UsrB通过MaskA给UsrA发送消息时,可能会因为处理转向操作增加消息传送时间。通过《转向处理方法》发明专利中提到的基于软跳线的消息处理方法,在MaskA与UsrA归属于同一个即时通信系统(IMS,Instant Messenger System)时,可以直接建立MaskA与UsrA的客户端的对应关系,这样,通过MaskA给UsrA发送消息和直接给UsrA发送消息将获得同样的消息传送效率。
但是,当MaskA与UsrA分别归属于不同的IMS时,所述UsrB通过MaskA给UsrA发送的消息需要经过MaskA归属的HSvr转发给UsrA归属的HSvr,这样,就会增加消息传送的路径,从而显著增加消息传送时间。
所述GUID包括两部分:归属码(HCode,Home Code)和用户码(UCode,User Code)。其中,HCode指示该GUID,也即该GUID对应的IUsr归属于IMN中哪一个IMS,也即归属于哪一个IMS的HSvr,UCode用于指示一个HCode下不同的IUsr。参见申请号为201210041577.8或201310037232.X的《通信方法和系统》发明专利。
发明内容
有鉴于此,本发明提供了一种辅助寻址方法(或跨域寻址方法),通过该方法,可以减少消息传送的路径,从而提高消息传送效率,降低HSvr之间的消息流量。
一种辅助寻址方法,根据消息的ToCDAddr进行寻址,所述ToCDAddr包括ToCeHSvrDesc和ToBaseGUID两部分,其特征在于,所述方法包括以下步骤:
b、将所述消息发送给所述ToCeHSvrDesc指向的HSvr。
c、所述ToCeHSvrDesc指向的HSvr根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
步骤b之前进一步包括步骤a:
a、判断消息的ToCeHSvrDesc是否指向本HSvr,如果是,则直接执行根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端的操作,结束;否则,才执行步骤b。
所述方法进一步包括:建立GUID与客户端的对应关系,所述根据消息的ToBaseGUID确定相应的客户端是指:根据消息的ToBaseGUID,按照所建立的GUID与客户端的对应关系确定相应的客户端。
步骤a或c所述根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端,是指:根据ToCDAddr,按照CDAddr转换方法,得到一个新的GUID,根据新得到的GUID确定相应的客户端,将所述消息发送给该客户端。
本发明还提供几种HSvr进行辅助寻址(或跨域寻址)的方法,根据该方法,HSvr可以实现对消息的快速传送,从而帮助提高整个IMN网络的消息处理效率。
一种HSvr进行辅助寻址的方法,根据消息的ToCDAddr进行寻址,所述ToCDAddr包括ToCeHSvrDesc和ToBaseGUID两部分,其特征在于,所述方法包括以下步骤:
a、判断消息的ToCeHSvrDesc是否指向本HSvr,如果是,则执行步骤c;否则,执行步骤b。
b、将所述消息发送给所述ToCeHSvrDesc指向的HSvr,结束。
c、根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
一种HSvr进行辅助寻址的方法,其特征在于,所述方法包括以下步骤:
a、HSvr接收对端HSvr的包括ToBaseGUID的消息;
b、根据所述ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
本发明还提供一种扩展软跳线设置方法,通过该方法,可以动态建立转向源与其rdEndGUID相应的客户端的对应关系,从而实现消息最优路径自动配置功能。
一种扩展软跳线设置方法,其特征在于,所述方法包括以下步骤:
a、判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果是,则结束;
b、建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系;
c、将拥有的一个HCode作为所述rdEndGUID的CDAddr的CeHCode,返回给消息的真实发送者归属的HSvr或消息的真实发送者。8
在所述步骤c之前进一步判断所述原始寻址目的是否归属于自己,如果是,则不执行所述步骤c;否则,才执行所述步骤c。
在所述步骤a中,在所述结束之前还进一步执行步骤c。
本发明还提供一种转向处理方法,通过该方法,实现对迁移后的GUID的寻址,进而帮助实现人们长期渴望的号码迁移携带愿望。
一种转向处理方法,其特征在于,所述方法包括以下步骤:
a、将消息的目的GUID的转向目的HCode和该目的GUID对应的CDAddr作为消息的ToCDAddr,将该消息发送给该HCode归属的HSvr;
b、所述HCode归属的HSvr根据所述ToCDAddr的BaseGUID,即步骤a所述的目的GUID,确定相应的客户端;
c、将所述消息发送给所确定的客户端。
通过本发明提供的辅助寻址方法,可以实现消息快速传送,解决了长期以来,困扰电信领域、互联网领域,关于消息转向所产生的消息迂回问题,为号码迁移携带提供了技术保障,因而,有利于推进互联网业务对电信网业务的替代,从而为互联网与电信网的整合,提供技术基础。
附图说明
图1所示,为本发明所述辅助寻址方法的总体实施方式流程图。
图2所示,为本发明所述辅助寻址方法的总体实施方式流程图的另一种形式。
图3所示,为本发明第一种扩展软跳线设置方法流程图。
图4所示,为本发明第二种扩展软跳线设置方法流程图。
图5所示,为本发明第三种扩展软跳线设置方法流程图。
图6所示,为IMN网络中,CDAddr与IUsr对应关系示意图。
图7所示,为IMN网络中,CDAddr与IUsr客户端间接对应关系示意图。
图8所示,为IMN网络中,CDAddr与IUsr客户端直接对应关系示意图。
图9所示,为IMN组网图。
具体实施方式
一般地,IMN网络包括至少两个互联互通的IMS系统,如图9所示,为IMN组网图。在该图中,A服务商(SP-A)的HSvr为HSvr-A,其中,注册有用户A(UsrA)和用户X(UsrX);B服务商(SP-B)的HSvr为HSvr-B,其中,注册有用户B(UsrB)和用户Y(UsrY);C服务商(SP-C)的HSvr为HSvr-C,其中,注册有用户C(UsrC)和用户Z(UsrZ)。为便于理解,以SP-A是腾讯、SP-B是网易、SP-C是微软,为例。
参见《通信方法和系统》发明专利和《影码寻址方法》发明专利,为实现归属于不同IMS系统的IUsr的互联互通,建立了HCode与HSvr的对应关系,以便根据寻址目的GUID相应的HCode来按照该关系寻址目的HSvr。
例如,域名类HCode和HSvr的对应关系,以及国际商码(IBC,International Business Code)类HCode和HSvr的对应关系,可以如表1所示:
表1
HCode | HSvr主机IP地址 | Remark |
163 | HSvr-B的主机IP地址 | HSvr-B |
163.com | HSvr-B的主机IP地址 | HSvr-B |
352 | HSvr-C的主机IP地址 | HSvr-C |
99 | HSvr-A的主机IP地址 | HSvr-A |
Hotmail.com | HSvr-C的主机IP地址 | HSvr-C |
live.com | HSvr-C的主机IP地址 | HSvr-C |
MSN | HSvr-C的主机IP地址 | HSvr-C |
HSvr-A的主机IP地址 | HSvr-A | |
qq.com | HSvr-A的主机IP地址 | HSvr-A |
WY | HSvr-B的主机IP地址 | HSvr-B |
yeah.net | HSvr-B的主机IP地址 | HSvr-B |
还例如,关于归属二元组(H2T,Home Two-Tuple)与HSvr的对应关系参见申请号为的201210041677.0或201310049772.X的《影码寻址方法》发明专利,如该专利中表1所示。
这里,统一约定各个HSvr面向其它HSvr用于建立SS(HSvr到HSvr)连接的TCP服务器端口号,例如,约定统一的端口号为1868。但这一约定不用于限定本发明。
HSvr根据一个HCode,按照所述HCode和HSvr的对应关系可以确定对应的HSvr。同样,HSvr也可以按照所述HCode和HSvr的对应关系确定一个HCode是否为自己所拥有。关于GUID寻址的更多信息参见《通信方法和系统》和《影码寻址方法》这两个专利,本发明不再转摘。
关于两个HSvr之间如何进行信息交互,以及IUsr与HSvr如何进行信息交互,例如,一个IUsr如何将一个消息发送给一个HCode归属的(或指向的)HSvr,以及一个HSvr如何将一个消息发送给一个IUsr,等等,更多信息参见《通信方法和系统》和《影码寻址方法》这两个专利,本发明不再转摘。
并发明提出了一种跨域地址码(CDAddr,Cross-domain Address),所述CDAddr是一个跨域地址二元组,包括跨末HSvr信息(CeHSvrDesc,Cross-end HSvr Description)和本基GUID(BaseGUID,The Base GUID)两部分。一般地,一个CDAddr可以写作(CeHSvrDesc,BaseGUID)形式。所述CeHSvrDesc用于指示该CDAddr对应的跨末HSvr,可以是该HSvr的主机IP地址或主机域名,一般地,是该HSvr所拥有的任意一个HCode。
当所述CeHSvrDesc是所述HSvr所拥有的任意一个HCode时,称该CeHSvrDesc为跨末HCode(CeHCode,Cross-end HCode)。在IMN网络中,可以根据一个CDAddr的CeHCode确定该CDAddr归属的HSvr,该CDAddr归属的HSvr通过该CDAddr的BaseGUID确定相应的IUsr或该IUsr的客户端。
以CeHSvrDesc是CeHCode为例,所述CDAddr可以写作(CeHCode,BaseGUID)形式。
一个IUsr拥有一个CDAddr值(CeHCode,BaseGUID)时,其中的CeHCode可以和该IUsr的HCode相同,也可以不相同。例如,sunquan#qq拥有CDAddr值(QQ,lusu#99),其中的CeHCode值QQ与sunquan#qq的HCode值QQ相同;相应地,当sunquan#qq拥有CDAddr值(99,lusu#99)时,其中的CeHCode值99与sunquan#qq的HCode值QQ不同,但是,二者都指向HSvr-A。这样,一个IUsr就可以通过自己的CDAddr来更好地隐藏自己的GUID。
本发明将CeHCode和BaseGUID归属于同一个HSvr的CDAddr称为同域CDAddr,例如,(99,lusu#99)和(QQ,lusu#99)是同域CDAddr。反之,将CeHCode和BaseGUID归属于不同HSvr的CDAddr称为异域CDAddr,例如,(QQ,lusu#352)是异域CDAddr。
CeHCode值为空值或0的CDAddr,为零跨域地址码(简称NonCDAddr)。NonCDAddr是一种特殊的CDAddr。
为了减少消息传送的路径,并发明提出了一种辅助寻址方法,与现有的寻址方式使用一个目的GUID进行寻址不同,该方法通过目的CDAddr(简称ToCDAddr)来进行联合寻址,从而实现将消息快速送达所述目的GUID的rdEndGUID相应的客户端。所述ToCDAddr的CeHSvrDesc(简称ToCeHSvrDesc)用于指示消息的最终目的HSvr;所述ToCDAddr的BaseGUID(简称ToBaseGUID)是消息的目的GUID,所述消息的最终目的HSvr据此确定消息的最终目的客户端,但不一定是消息的最终目的GUID。一般地,消息的最终目的HSvr是ToBaseGUID的rdEndGUID归属的HSvr。
本发明后面以所述CeHSvrDesc是CeHCode为例,进行深入说明,但不用于限定本发明。相应地,所述ToCeHSvrDesc是所述ToCDAddr的CeHCode(简称ToCeHCode)。
辅助寻址方法根据一个IUsr的CDAddr的CeHCode直接确定该IUsr归属的HSvr,而不是根据该IUsr的CDAddr的BaseGUID来确定该IUsr归属的HSvr,从而达到快速确定消息的的最终目的HSvr的目的。这在该IUsr的CDAddr的BaseGUID发生转向时,特别是相应的转向链比较长,或者转向链中存在相邻的节点归属于不同的HSvr时,可以大大节省消息传送的时间。
如图1所示,为本发明所述辅助寻址方法的总体实施方式流程图,在该图中:
步骤11、判断消息的ToCeHCode是否指向本HSvr,即ToCeHCode是否为本HSvr所拥有的HCode,如果是,则直接执行步骤13,否则,执行步骤12。
步骤12、将所述消息发送给所述ToCeHCode指向的HSvr。
步骤13、根据消息的ToBaseGUID确定相应IUsr或该IUsr的客户端,将所述消息发送给该IUsr的客户端。
在步骤11中,如果判断所述ToCeHCode指向了自己,则由本HSvr直接执行步骤13;反之,如果判断所述ToCeHCode没有指向自己,则执行步骤12以便将所述消息发送给所述ToCeHCode指向的HSvr,这样,将由所述ToCeHCode指向的HSvr来执行步骤13。也即所述辅助寻址方法的总体实施方式流程图也可以表示成如图2所示。在该图中:
步骤21、判断消息的ToCeHCode是否指向本HSvr,即ToCeHCode是否为本HSvr所拥有的HCode,如果是,则直接执行步骤22,否则,执行步骤23。
步骤22、根据消息的ToBaseGUID确定相应IUsr的客户端,将所述消息发送给该IUsr的客户端;结束。
步骤23、将所述消息发送给所述ToCeHCode指向的HSvr。
步骤24、所述ToCeHCode指向的HSvr根据消息的ToBaseGUID确定相应IUsr的客户端,将所述消息发送给该IUsr的客户端。
根据上述辅助寻址方法,对于转向链A-B-C-D来说,即使节点B与节点D归属于不同的HSvr,只要将节点D归属的HSvr所拥有的任一HCode作为消息的ToCeHCode,则,发送给节点B的消息就可以被直接送达节点D归属的HSvr,这样,就避免了消息的迂回。相应地,只要在节点D归属的HSvr中建立节点B与节点D的对应关系,并将节点B作为消息的ToBaseGUID,则在步骤13中,就可以根据节点B,按照该对应关系确定节点D,参见《通信方法和系统》发明专利,再根据节点D,确定节点D的客户端,从而将所述消息发送给节点D的客户端。较佳地,在节点D归属的HSvr中直接建立节点B与节点D的客户端的对应关系,在步骤13中,可以根据节点B,按照该对应关系直接确定节点D的客户端。
如图6所示,为IMN网络中,CDAddr与IUsr对应关系示意图;如图7所示,为IMN网络中,CDAddr与IUsr客户端间接对应关系示意图;如图8所示,为IMN网络中,CDAddr与IUsr客户端直接对应关系示意图。
HSvr可以通过设置ToBaseGUID与相应IUsr的对应关系,使得,在步骤13中,可以根据所述ToBaseGUID,按照设置的ToBaseGUID与IUsr的对应关系来确定对应的IUsr。
例如,所述ToBaseGUID与IUsr的对应关系可以如表2所示的面具信息表。
表2
GUID | Mask | Remark |
sunquan#qq | lusu#99 | sunquan#qq的面具1设置 |
zhouyu#99 | jianggan163.com | zhouyu#99的面具设置 |
sunquan#qq | lusu#352 | sunquan#qq的面具2设置 |
在表2中,Mask字段值为所述ToBaseGUID,GUID字段值为相应属主的GUID。
在步骤13中,将ToBaseGUID作为面具,按照如表2所示的面具信息表,获得对应的属主,根据该属主,按照预先设置的GUID与客户端的对应关系,可以确定该属主的客户端,从而将所述消息发送给该属主的客户端。
关于面具的相关信息参见《变脸方法》发明专利,这里不再赘述。
在《通信方法与系统》发明专利中,通过如表3所示的在线用户信息表来保存所述客户端与GUID的对应关系。
表3
GUID | IP地址 | Port | Remark |
sunquan#qq | sunquan#qq的IP地址 | 相应的端口号 | |
zhouyu#99 | zhouyu#99的IP地址 | 相应的端口号 | |
huanggai#99 | huanggai#99的IP地址 | 相应的端口号 |
在表3中,用客户端IP地址和端口号来标识一个客户端。当然,如果统一约定客户端的端口号,则表3中,Port字段也可以省去。
当客户端与HSvr建立TCP连接时,还可以用对应的连接标识,例如相应的套接口描述符(SktD,Socket Descriptor)来标识该客户端。
本发明后面以用客户端IP地址和端口号来标识客户端为例。但不用于限定本发明。
HSvr在接收TCP客户端或其它HSvr的消息,例如,连接请求,或者是UDP数据包时,通过解析相应的IP协议头可以获取对端的IP地址,通过解析相应的TCP协议头或UDP协议头,可以获取对端的端口号。例如,使用套接口技术,HSvr可以在接受连接请求时,通过accept()函数来获取TCP客户端的IP地址和端口号。HSvr还可以通过getpeername()函数来获取TCP客户端的IP地址和端口号。关于如何获取消息发送端的IP地址和端口号的更多信息可以参见《通信方法和系统》发明专利或相关unix的套接口技术资料,这里不再赘述。
在《通信方法与系统》发明专利中,还给出了两种IUsr登入HSvr的方式,HSvr在对IUsr的登录消息验证通过后,通过在线用户信息表来保存对应客户端与该IUsr的GUID的对应关系,也即所述客户端与GUID的对应关系。
一般地,一个HSvr根据保存的帐户信息对来自客户端的登录消息进行验证。关于IUsr如何登入其归属的HSvr,以及其归属的HSvr如何根据保存的帐户信息来对该IUsr的登录消息进行验证,并在验证通过后,通过在线用户信息表保存该IUsr的在线信息,等等,更多的信息,参见《通讯方法和系统》发明专利,这里不再转摘,后面不再重复说明。
HSvr也可以通过直接建立ToBaseGUID与相应IUsr客户端的对应关系,使得,在步骤13中,可以根据所述ToBaseGUID,按照建立的ToBaseGUID与IUsr客户端的对应关系来直接确定对应的客户端。
例如,可以在如表2所示的面具信息表中增加用于记录客户端信息的相关字段,以保存相应的属主客户端信息,以建立面具与属主客户端的对应关系,从而达到建立所述ToBaseGUID与IUsr客户端的对应关系的效果。如表2-1所示:
表2-1
GUID | Mask | IP地址 | Port |
sunquan#qq | lusu#99 | sunquan#qq的IP地址 | 相应的端口号 |
zhouyu#99 | jianggan163.com | zhouyu#99的IP地址 | 相应的端口号 |
sunquan#qq | lusu#352 | sunquan#qq的IP地址 | 相应的端口号 |
在表2-1中,用客户端IP地址和端口号来标识一个客户端。当然,如果统一约定客户端的端口号,则表2-1中,Port字段也可以省去。
HSvr可以在IUsr登入时,将该IUsr的客户端信息记录到如表2-1所示的面具信息表中该IUsr相应的记录里。例如,在IUsr登入时,在如表3所示的在线用户信息表中登记了该IUsr的在线记录后,还根据登录GUID,按照如表2-1所示的面具信息表中属主字段,查找相应的记录,将查找到的记录的IP地址和端口号设置为该IUsr的客户端的IP地址和端口号。
如果对应的属主没有登录,则相应的IP地址和Port字体值可以设置为空值,或0。如果一个IUsr登出,则在如表2-1所示的面具信息表中,将记录的该IUsr的客户端IP地址和端口号重新设置为空值或0。
在步骤13中,根据消息的ToBaseGUID,按照如表2-1所示的面具信息表中面具字段,查找相应的记录,获得对应属主的客户端。
实际当中,也可以通过在线用户信息表来保存所述面具与属主客户端的对应关系。例如《变脸方法》发明专利的表3-1或3-3等等。关于属主登入时,该属主归属的HSvr如何通过在线用户信息表来保存所述面具与属主客户端的对应关系的更多信息,参见《变脸方法》发明专利,这里不再转摘。
上面介绍了在属主登入时建立面具与属主客户端的对应关系的方式。实际当中,建立面具与属主客户端对应关系的操作也可以不在该属主登入时进行,例如,在所述面具的rdEndGUID为所述属主时,还有一种动态建立面具与属主客户端对应关系的方式,例如《转向处理方法》发明专利中的软跳线设置方法,通过该方法可以在IUsr间进行信息交互过程中动态地建立转向源与rdEndGUID相应的客户端的对应关系,其中所述转向源可以是相应的面具,相应的rdEndGUID可以是相应的属主。
参见《转向处理方法》发明专利中的软跳线设置方法:在所述步骤1503中,判断是否ToUsr和目标追踪信元(TTIE,Target Tracking Information Element)不同且ToUsr归属于自己,如果是,则建立ToUsr与TTIE相应的客户端的对应关系,否则,即ToUsr和TTIE相同,或者ToUsr不归属于自己,则不建立ToUsr与TTIE相应的客户端的对应关系。根据所述软跳线设置方法,对于ToUsr和TTIE归属于不同HSvr的情况,不建立所述软跳线,这样,对于一个GUID与其rdEndGUID归属于不同HSvr时,就不能解决发送给该GUID的消息因转向所导致的迂回问题。
有了本发明的辅助寻址方法后,在所述步骤1503中,在ToUsr和TTIE不同时,即使所述ToUsr归属于自己这个条件不成立,也即ToUsr和TTIE归属于不同的HSvr,也可以建立ToUsr与TTIE相应的客户端的对应关系。这种情况下,可以将TTIE归属的HSvr所拥有的任一HCode告知所述消息的真实发送者。这样,所述消息的真实发送者在下一次发送消息时,只需将该收的的HCode作为所述下一次发送的消息的ToCeHCode,将这里的ToUsr作为所述下一次发送的消息的ToBaseGUID,采用本发明辅助寻址方法,就可以将所述下一次发送的消息通过快捷方式发送给这里的TTIE相应的客户端。
对此,本发明提出一种扩展软跳线设置方法,用于实现跨HSvr转向的快速转向处理,从而提高HSvr的消息交换效率。
所述扩展软跳线设置方法是指,原始寻址目的ToUsr的rdEndGUID所归属的HSvr在将所述消息发送给该rdEndGUID相应的客户端时,还执行被称为扩展软跳线设置的操作:
判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果不同,则建立该原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系,并将拥有的一个HCode返回给消息的真实发送者归属的HSvr或消息的真实发送者。
如图3所示,为本发明第一种扩展软跳线设置方法流程图,在该图中:
首先在步骤31、判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果是,则结束;否则,执行步骤32。
步骤32、建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系。
步骤33、将拥有的一个HCode作为所述rdEndGUID的CDAddr的CeHCode,返回给消息的真实发送者归属的HSvr或消息的真实发送者。
在所述步骤33之前还可以进一步判断所述原始寻址目的是否归属于自己,如果是,则不执行所述步骤33;否则,才执行所述步骤33。
如图4所示,为本发明第二种扩展软跳线设置方法流程图,在该图中:
首先在步骤41、判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果是,则结束;否则,执行步骤42。
步骤42、建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系。
步骤43、判断所述原始寻址目的是否归属于自己,如果是,则结束。
步骤44、将拥有的一个HCode作为所述rdEndGUID的CDAddr的CeHCode,返回给消息的真实发送者归属的HSvr或消息的真实发送者。
这样,只需要将异域CDAddr的CeHCode返回给消息的真实发送者归属的HSvr或消息的真实发送者。
实际当中,出于伪装需要,在所述步骤31中,在判断消息的原始寻址目的与该原始寻址目的的rdEndGUID相同时,即,所述原始寻址目的没有设置转向,也可以直接执行步骤33。
如图5所示,为本发明第三种扩展软跳线设置方法流程图,在该图中:
首先在步骤51、判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果是,则直接执行步骤53。
步骤52、建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系。
步骤53、将拥有的一个HCode作为所述rdEndGUID的CDAddr的CeHCode,返回给消息的真实发送者归属的HSvr或消息的真实发送者。
这样,所述消息的真实发送者在得到所述rdEndGUID的CDAddr的CeHCode后,无法确定该CDAddr的BaseGUID,也即所述原始寻址目的,是否就是rdEndGUID,这样,就可以更好地隐藏一个IUsr的真实GUID。
本发明称保存所述跳线关系的记录为跳线记录。在在线用户信息表中,跳线记录是一种特殊的在线记录。实际当中,一个IUsr的在线记录与其面具的跳线记录可以是一个记录。例如,在所述《变脸方法》发明专利中如表3-5所示的在线用户信息表。本发明以跳线记录和在线记录分别为不同的记录为例,但不用于限定本发明。
在采用扩展软跳线设置方法时,当一个GUID登出时,HSvr进一步查找跳接到该GUID相应的客户端的其它GUID,删除所述其它GUID与该客户端的对应关系。
例如,在HSvr-C中,将lusu#352的转向目的设置为sunquan#qq,则在HSvr-A中,可以通过如表3-6所示的在线用户信息表来保存上述的软跳线关系。
表3-6
GUID | IP地址 | Port |
sunquan#qq | sunquan#qq的IP地址 | 相应端口号 |
lusu#352 | sunquan#qq的IP地址 | 相应端口号 |
在表3-6中,lusu#352直接跳接到sunquan#qq相应的客户端,该客户端由lusu#352的跳线记录中相应的IP地址和端口号所标识,也即,lusu#352的跳线记录和sunquan#qq在线记录具有相同的IP地址和端口号。无论是哪一个IMS中的IUsr根据ToCDAddr值(99,lusu#352)使用本发明的辅助寻址方法来发送消息,即消息的ToCeHCode为99或QQ,消息的ToBaseGUID为lusu#352,该消息都将由HSvr-A最终处理,并由HSvr-A根据消息的ToBaseGUID,按照如表3-6所示的在线用户信息表,确定相应的客户端,即lusu#352的跳线记录中相应的客户端,也即sunquan#qq的客户端。
根据本发明扩展软跳线设置方法,《转向处理方法》发明专利中所述基于跳线的归属消息处理流程中:
所述步骤1503进一步是:判断ToUsr和TTIE是否相同,如果是,则结束;否则,执行步骤1504。
所述步骤1504进一步是:建立ToUsr与TTIE相应的客户端的对应关系,将自己拥有的一个HCode返回给消息的真实发送者,结束。
较佳地,所述步骤1504还是:建立ToUsr与TTIE相应的客户端的对应关系,结束。相应地,在所述步骤1502中,通过回复消息返回本HSvr所拥有的一个HCode给消息的真实发送者。或者,在判断ToUsr和TTIE不同时,通过回复消息返回本HSvr所拥有的一个HCode给消息的真实发送者。或者,在判断ToUsr不归属于自己时,通过回复消息返回本HSvr所拥有的一个HCode给消息的真实发送者。
在步骤13中,如果相应的IUsr没有登录,则可以将所述消息作为该IUsr的离线消息保存起来,并在该IUsr下次登录时发送给该IUsr的客户端。这种情况下,较佳地,表3-6中增加一个跳接目的GUID字段用于记录一个GUID的rdEndGUID值。如表3-7所示的在线用户信息表:
表3-7
GUID | rdEndGUID | IP地址 | Port |
zhouyu#99 | zhouyu#99 | zhouyu#99的IP地址 | 相应的端口号 |
lusu#352 | sunquan#qq | 0 | 0 |
在表3-7中,GUID字段值与rdEndGUID字段值相同时,表示GUID字段值没有设置转向。
根据表3-7,在sunquan#qq没有登录时,无法建立lusu#352与sunquan#qq的客户端的对应关系,但由于跳线记录中增加了lusu#352与sunquan#qq的对应关系,因此,在步骤13中,按照ToBaseGUID值lusu#352可以获取相应的rdEndGUID值sunquan#qq,这样,如果rdEndGUID相应的IUsr没有登录,则可以将相应的消息作为相应的rdEndGUID值sunquan#qq的离线消息,根据sunquan#qq这个GUID保存起来。
实际当中,在步骤32中,在建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系时,还可以进一步保存该原始寻址目的的rdEndGUID;或者,在没有找到所述原始寻址目的的rdEndGUID的客户端时,保存所述原始寻址目的与该原始寻址目的的rdEndGUID的对应关系。
在步骤13中,存在这种情况:既没有建立ToBaseGUID与其rdEndGUID的对应关系,该rdEndGUID相应的IUsr也没有登录。这种情形常常发生在该IUsr的CDAddr被通信的一方记录,而该IUsr之后又登出的情况,这时,所述通信的一方记录的该IUsr的CDAddr已经无效,这样,就不能根据辅助寻址方法进行寻址,这时,可以选择进入异常处理流程,也可以选择按照《转向处理方法》发明专利中提供的转向处理流程以及上述扩展软跳线设置方法来进行处理,例如,将ToBaseGUID作为消息的目的地址,将ToCeHCode值视为无效,采用《转向处理方法》发明专利中提供的转向处理流程以及上述扩展软跳线设置方法,来处理该消息,并最终在所述表3-7中建立ToBaseGUID与其rdEndGUID的对应关系。
根据表3-7,一个IUsr在登入时,HSvr还可以检查是否有相应的转向源跳接到该IUsr,如果存在,则将该转向源的跳线记录中对应的IP地址和Port等字段值设置为该IUsr的客户端的IP地址和Port值。
根据表3-7,一个IUsr在登出时,HSvr还应检查是否有相应的转向源跳接到该IUsr,如果存在,则从该表中删除记录了该跳接关系的记录,或者,从记录了该跳接关系的记录中清除所述跳接关系,例如,将该记录中相应的IP地址和Port等字段值设置为0。
如果在所述步骤1502中,不论是否建立跳线关系,都通过回复消息返回本HSvr所拥有的一个HCode,则可以对消息的真实接收者的转向设置信息进行更好地保护。
实际当中,为了增强可扩展性,例如,HSvr在接收客户端消息时,需要根据客户端的IP地址和端口号确定消息的真实发送者的GUID,较佳地,在表3-6中增加一个跳线标志,用以指示相应记录的GUID与对应客户端的关系是否是跳线关系。如表3-8所示:
表3-8
GUID | IP地址 | Port | JumpFlag |
sunquan#qq | sunquan#qq的IP地址 | 相应端口号 | 0 |
lusu#352 | sunquan#qq的IP地址 | 相应端口号 | 1 |
如表3-8所示的在线用户信息表,一个记录的JumpFlag值用于指示该记录保存的GUID与相应客户端的对应关系是否是跳线关系,如果该值为1则所述对应关系为跳线关系,说明该记录为跳线记录;否则,例如,如果该值为0,则说明该记录为相应客户端对应的IUsr的在线记录。
后面以用如表3-8所示的在线用户信息表保存所述跳线关系,或者面具与属主客户端对应关系,或者转向源与其rdEndGUID的客户端的对应关系为例,但不用于限定本发明。
在步骤11中,所述消息可以是接收自IUsr客户端的包括ToCeHCode和ToBaseGUID的消息。例如,该客户端在通信地址薄,例如在如表5所示的好友列表,中保存了zhugeliang#352相应好友的通信地址信息。
表5
Name | ToCeHCode | ToBaseGUID | Remark |
xunyu | 163.com | xunyu163.com | 对应caocao |
lusu | lusu#352 | 对应sunquan | |
zhouyu | null | zhouyu#99 | 对应zhouyu |
在表5中,当ToCeHCode为null时,表示对应的ToCeHCode字段值和ToBaseGUID字段值不是一个CDAddr。
根据如表5所示的好友列表,所述IUsr发送消息时,从好友列表中选择好友lusu,客户端将相应的QQ和lusu#352分别作为消息的ToCeHCode和ToBaseGUID包括在消息中,这样,在步骤11中,该IUsr归属的HSvr在收到消息后就可以根据消息中携带的ToCeHCode来确定消息的最终目的HSvr。
在表5中,当ToCeHCode归属于本IUsr归属的HSvr时,也可以将ToCeHCode设置为某一特殊值,例如1。例如,zhangliao163.com保存的好友列表可以如表5-1所示:
表5-1
Name | ToCeHCode | ToBaseGUID | Remark |
xunyu | 1 | xunyu163.com | 对应caocao |
lusu | lusu#352 | 对应sunquan | |
zhouyu | null | zhouyu#99 | 对应zhouyu |
由于对应caocao的ToCeHCode为163.com,与zhangliao163.com归属于同一个HSvr,因此,对应的ToCeHCode可以设置为特殊值1。这样,在步骤11中,判断所述消息的ToCeHCode为1时,直接执行步骤13。
在步骤11中,所述消息可以是接收自IUsr客户端的包括ToBaseGUID的消息。该IUsr归属的Hsvr可以根据该IUsr的GUID和相应的ToBaseGUID保存对应的ToCeHCode,这样,该IUsr归属的HSvr就根据该IUsr的GUID和消息中的ToBaseGUID获取保存的ToCeHCode,将获取的ToCeHCode作为该消息的ToCeHCode。所述HSvr根据客户端IP地址和端口号以及JumpFlag值0,按照如表3-8所示的在线用户信息表获取该客户端对应的GUID,即所述IUsr的GUID。实际当中,在HSvr的计算能力和存储能力比较充裕时,可以采用这种方案。这种方案的好处是:客户端始终不用关心HSvr是否采用了辅助寻址方式,即,将寻址方式的选择封装在网络侧。
在步骤11中,所述消息也可以是一个回复消息。例如,UsrA给UsrB发送消息,消息中携带了UsrA的CDAddr,例如通过消息的源CDAddr(简称FromCDAddr)携带UsrA的CDAddr。UsrB归属的HSvr根据UsrA的CDAddr产生回复消息,将UsrA的CDAddr作为该回复消息的ToCeHCode和ToBaseGUID。
本发明里,将消息的FromCDAddr的CeHCode称为消息的FromCeHCode,将消息的FromCDAddr的BaseGUID称为消息的FromBaseGUID。
由于现有的寻址方式通过消息的目的GUID相应的HCode来确定目的HSvr,这样,在消息的目的GUID设置了转向时,会导致消息的迂回,从而延长消息送达最终目的地的时间。而本发明辅助寻址方式,可以直接将消息传送到消息的最终目的HSvr,避免了消息传送过程中的迂回现象,这种情况下,只要在最终目的HSvr中建立了消息的ToBaseGUID与消息的最终接收者客户端的对应关系,就可以通过所述ToBaseGUID确定所述最终接收者客户端,这样,不论从所述目的GUID开始的转向链有多长,也不论转向链跨越多少IMS系统,都不影响消息送达最终接收者的时间。
参见《变脸方法》发明专利,在变脸通信中,一个IUsr,例如UsrA,可以使用面具,例如UsrC的GUID,给其他IUsr,例如UsrB,发送消息。由于接收该消息的最终目的HSvr或最终目的IUsr客户端只能得到UsrA的面具UsrC的GUID,而不能得到UsrA的GUID,因此,在对UsrA进行回复时,或者以后给UsrA发送消息时,就只能将UsrA的面具,即UsrC的GUID,作为目的GUID。如果UsrC没有设置转向,或者没有将转向目的设置为UsrA,则,通过将该面具作为目的GUID发出的消息就可能无法到达UsrA的客户端。即使将该面具的转向目的设置为UsrA,在该面具与UsrA归属于不同的HSvr时,通过将该面具作为目的GUID发出的消息,也会因为消息的迂回,而延长消息最终送达UsrA的时间。而通过应用本发明方法,就可以有效地解决变脸通信应用场景中存在的这些问题。
例如,在一个IUsr,例如UsrA,使用面具给其他IUsr,例如UsrB,发送消息时,UsrA可以进一步将自己归属的HSvr所拥有的一个HCode和所述面具作为自己的CDAddr包括在所述消息中发送给对方,或者,其归属的HSvr进一步将自己所拥有的一个HCode与UsrA的面具作为UsrA的CDAddr包括在所述消息中发送给对方,这样,既可以保护UsrA的GUID等隐私,又可以让消息的最终接收方UsrB或UsrB所归属的HSvr通过UsrA的CDAddr,按照辅助寻址方式给UsrA快速发送消息,包括快速发送回复消息。
为了进一步展示本发明辅助寻址方式在IMN网络中的作用,以及向技术人员展示本发明的具体用法,下面举更详细实施例进行进一步的说明。
为了便于描述,这里定义如下消息格式一,但不用于限定本发明:
ToEnd:值为一个HCode时,该信元用作ToCeHCode,其它情况时,该信元用作TTIE,例如,当为空值时,表示不采用辅助寻址方式;HSvr在ToEnd为空值时,用ToUsr值初始化该信元;
ToUsr:用于指示消息的目的用户,当ToEnd用作ToCeHCode时,该信元用作ToBaseGUID;其它情况,用法参见《变脸方法》和《转向处理方法》发明专利;
FromUsr:用于指定消息的源用户,即源地址,当消息的FromEnd用作FromCeHCode时,该信元用作FromBaseGUID;其它情况,用法参见《变脸方法》和《转向处理方法》发明专利;
FromEnd:值为一个HCode时,用作FromCeHCode;其它情况,暂未定义。
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
用{ToEnd,ToUsr,FromUsr,FromEnd,MsgCode,MsgContent}这种形式表示一个消息实例,例如:{HSvr-A拥有的一个HCode,UsrA的面具,UsrB的GUID,null,ShortMsg,“新年快乐!”}表示UsrB通过UsrA的CDAddr值(HSvr-A拥有的一个HCode,UsrA的面具)向UsrA发送“新年快乐!”的短信息的消息实例,其中,ToEnd为所述HSvr-A拥有的一个HCode,ToUsr = UsrA的面具,FromUsr = UsrB的GUID,MsgCode = ShortMsg,MsgContent = “新年快乐!”,FromEnd =null表示UsrB不准备使用自己的CDAddr。
关于TTIE用法的更多描述,参见《转向处理方法》发明专利。
例一:
UsrA为sunquan#qq,拥有CDAddr值(99,lusu#352),其中lusu#352是UsrA的面具;sunquan#qq登入了HSvr-A,HSvr-A在如表3-8所示的在线用户信息表中,保存UsrA的在线记录,以及保存UsrA的面具与UsrA的客户端的对应关系,也即跳线关系。
UsrB在通过UsrA的CDAddr向UsrA发送消息:“孤承帝命,欲与将军会猎于江夏”,相应的过程如下:
步骤101、UsrB向HSvr-B发送消息:{99,lusu#352,UsrB的GUID,null,ShortMsg,“孤承帝命,欲与将军会猎于江夏”}。
步骤102、HSvr-B收到所述消息后,根据消息中携带的ToEnd值99为一个HCode,确定采用辅助寻址方式,将ToEnd用作ToCeHCode,于是,根据ToEnd值99确定目的HSvr为HSvr-A;将该消息发送给HSvr-A。
这里,HSvr-B根据ToEnd值99按照表1所示的HCode和HSvr的对应关系确定对应的HSvr为HSvr-A。后面不再作这种特别说明。
步骤103、HSvr-A收到HSvr-B发送的所述消息后,根据消息中携带的ToEnd值99,确定采用辅助寻址方式,于是,将消息的ToUsr作为ToBaseGUID,根据ToUsr值lusu#352按照如表3-8所示的在线用户信息表确定相应的客户端,即sunquan#qq的客户端。
步骤104、HSvr-A将所述消息发送给所确定的客户端。
这样,UsrB发送的信息就不需要通过面具lusu#352归属的HSvr,即HSvr-C,的转发,而直接发送给UsrA归属的HSvr,这样sunquan#qq就可以更早地收到UsrB发送的所述消息。
在步骤101中,UsrB在向HSvr-B发送所述消息时,可以不携带自己的GUID。例如,HSvr-B也设置了如表3-8所示的在线用户信息表,并且UsrB登入了HSvr-B,HSvr-B在如表3-8所示的在线用户信息表中保存了UsrB的在线信息。这种情况下,HSvr-B可以根据UsrB发送的消息的源IP地址和源端口号,也即UsrB客户端的IP地址和端口号,以及JumpFlag值0,从如表3-8所示的在线用户信息表中获取UsrB的GUID。这样,HSvr-B就可以用获取的UsrB的GUID填写消息的FromUsr信元。
现实当中,通信的一方,例如UsrA,可以通过email将自己的一个CDAddr告知通信的另一方,例如UsrB,或者通过电信网的电话将这些信息告知UsrB。所述CDAddr可以是(UsrA归属的HSvr所拥有的一个HCode,UsrA的面具),其中,UsrA归属的HSvr所拥有的一个HCode也可以是UsrA相应的HCode。
较佳地,UsrA在给UsrB发送消息时,通过该消息携带自己的一个CDAddr。这样,消息接收者获取该消息时,即可获得发送方的一个CDAddr。例如,通过消息格式一中FromEnd信元携带UsrA归属的HSvr所拥有的一个HCode,通过消息格式一中FromUsr信元携带UsrA的面具。
例二:
UsrA为sunquan#qq,拥有CDAddr值(99,lusu#352),其中lusu#352是UsrA的面具;sunquan#qq登入了HSvr-A,HSvr-A在如表3-8所示的在线用户信息表中,保存UsrA的在线记录,以及保存UsrA的面具与UsrA的客户端的跳线关系。UsrB的GUID是caocaoyeah.net,没有设置转向,caocaoyeah.net登入HSvr-B,HSvr-B在如表3-8所示的在线用户信息表中保存UsrB的在线记录。
UsrA以面具lusu#352给UsrB发送短信息:“权望丞相早日登基!”,相应的过程如下:
步骤201、UsrA向HSvr-A发送消息:{null,caocaoyeah.net,lusu#352,99,ShortMsg,“权望丞相早日登基!”}。这里,ToEnd为空值null,表示不采用辅助寻址方式。
步骤202、HSvr-A收到所述消息后,判断ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将消息中的ToUsr值caocaoyeah.net作为寻址目的,将ToEnd初始化为ToUsr值caocaoyeah.net,得到消息{caocaoyeah.net,caocaoyeah.net,lusu#352,99,ShortMsg,“权望丞相早日登基!”};判断消息的ToEnd值caocaoyeah.net归属于HSvr-B,因此将该消息发送给HSvr-B。
步骤203、HSvr-B收到HSvr-A发送的所述消息后,判断ToEnd为caocaoyeah.net,不是一个HCode,表示不采用辅助寻址方式,于是,判断caocaoyeah.net是否设置转向,由于caocaoyeah.net没有设置转向,于是,根据ToEnd值caocaoyeah.net,从如表3-8所示的在线用户信息表中确定相应的客户端。
步骤204、HSvr-B将所述消息发送给所确定的客户端。
这样,UsrB在收到所述消息时,即可获得消息的真实发送者UsrA的CDAddr值(99,lusu#352)。
在步骤204之后,HSvr-B还可以进一步构造并返回回复消息,如步骤205至208所示:
步骤205:HSvr-B构造回复消息,将所述请求消息的FromEnd值99作为该回复消息的ToEnd值,将所述请求消息的FromUsr值lusu#352作为该回复消息的ToUsr值,将该回复消息的FromUsr设置为caocaoyeah.net,将该回复消息的FromEnd设置为null,将回复消息MsgContent设置为表示“发送成功”的原因值,将该回复消息的MsgCode设置为相应的回复消息码ResShortMsg,这样得到回复消息{99,lusu#352,caocaoyeah.net,null,ResShortMsg,表示“发送成功”的原因值}。
在步骤206中、HSvr-B根据回复消息中携带的ToEnd值99为一个HCode,确定采用辅助寻址方式,将ToEnd用作ToCeHCode,于是,根据ToEnd值确定目的HSvr为HSvr-A;将该回复消息发送给HSvr-A。
步骤207、HSvr-A收到HSvr-B发送的所述回复消息后,判断ToEnd值99为一个HCode,要采用辅助寻址方式,于是,将回复消息的ToUsr作为ToBaseGUID,根据该回复消息中的ToUsr值lusu#352,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤208、HSvr-A将所述消息发送给所确定的客户端。
在步骤201中,HSvr-A还可以对UsrA提供的面具进行合法性验证。关于面具合法性验证的操作,参见《变脸方法》发明专利,这里不再赘述。
还例如,在步骤101中,UsrB也可以将自己的一个CDAddr包括在所述消息中。例如,UsrB以面具xunyu163.com,通过UsrA的CDAddr值(99,lusu#352),向UsrA发送消息“孤承帝命,欲与将军会猎于江夏”,相应的消息可以是:{99,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”}。其中FromCDAddr值(163.com,xunyu163.com)是一个同域CDAddr。
还例如,在步骤101中,UsrB也可以以面具xunyu352,通过UsrA的CDAddr值(99,lusu#352),向UsrA发送消息“孤承帝命,欲与将军会猎于江夏”,这样,相应的消息可以是:{99,lusu#352,xunyu352,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”}。其中FromCDAddr值(163.com,xunyu352)是一个异域CDAddr。
实际当中,在转向源与其rdEndGUID归属于同一个HSvr的情况,即(所述转向源的rdEndGUID归属的HSvr所拥有的一个HCode,所述转向源)是一个同域CDAddr时,如果设置了所述转向源与其rdEndGUID客户端的对应关系,则将该同域CDAddr作为ToCDAddr,按照本发明的辅助寻址方法进行寻址时,其效果等同于《转向处理方法》发明专利中,将所述转向源作为目的地址的软跳线方法。因此,实际当中,在向一个同域CDAddr对应的用户发送消息时,技术人员可以结合具体情况合理选择使用所述软跳线方法,或辅助寻址方法。
当然,实际当中,也可以约定,在向一个异域CDAddr对应的用户发送消息时,才选择辅助寻址方法。这种情况下,一个IUsr可以不将自己的同域CDAddr告知通信的另一方。
特别地,消息最终接收者或其归属的HSvr也可以通过回复消息将所述最终接收者的一个CDAddr返回给消息的最初发送者,或该最初发送者归属的HSvr。
实际当中,UsrA第一次给UsrB发送消息时,可能并不知道UsrB的CDAddr,而仅知道UsrB提供的一个GUID,该GUID可能是UsrB的GUID,也可能是UsrB的面具。或者,UsrB设置了转向,例如转向到UsrC,这样给UsrB发送消息实际上是给UsrC发送消息,这时,UsrA并不知道UsrC的CDAddr值(UsrC归属的HSvr所拥有的一个HCode,UsrB的GUID)。这种情况下,UsrA将UsrB提供的GUID作为消息的目的GUID,按照《转向处理方法》发明专利提供的消息处理方法以及本发明的扩展软跳线设置方法,来进行第一次的消息发送,UsrB提供的GUID的rdEndGUID归属的HSvr可以进一步通过回复消息将该rdEndGUID的CDAddr返回给UsrA,并在判断所述UsrB提供的GUID与所述rdEndGUID不同时,确保相应的软跳线,即所述UsrB提供的GUID与所述rdEndGUID客户端的对应关系,被设置。这样,UsrA以后给该rdEndGUID发送消息时,就可以将所述回复的CDAddr作为ToCDAddr,按照辅助寻址方法,实现消息的快速发送。
例三:
UsrA为sunquan#qq,没有设置转向,拥有CDAddr值(99,lusu#352),其中lusu#352是UsrA的面具;lusu#352的转向目的为sunquan#qq,由HSvr-C通过如表6所示的转向信息表保存该转向设置信息;sunquan#qq登入了HSvr-A,HSvr-A在如表3-8所示的在线用户信息表中,保存UsrA的在线记录,以及保存UsrA的面具与UsrA的客户端的跳线关系。
表6
GUID | Redirect | Remark |
xunyu163.com | caocaoyeah.net | xunyu163.com转向caocaoyeah.net |
UsrY的GUID | liubei#352 | UsrY转向liubei#352 |
UsrB为caocaoyeah.net,没有设置转向,拥有CDAddr值(163.com,xunyu163.com),其中xunyu163.com是UsrB的面具;xunyu163.com的转向目的为caocaoyeah.net,由HSvr-B通过如表6所示的转向信息表保存该转向设置信息;caocaoyeah.net登入了HSvr-B,HSvr-B在如表3-8所示的在线用户信息表中,保存UsrB的在线记录,以及保存UsrB的面具与UsrB的客户端的跳线关系。
UsrB以面具xunyu163.com,给lusu#352发送短信息:“孤承帝命,欲与将军会猎于江夏”,也即,通过UsrA的面具lusu#352向UsrA发送该短信息,相应的过程如下:
步骤301、UsrB向HSvr-B发送消息:{null,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”}。其中,ToEnd为空值null,表示不采用辅助寻址方式。
这里UsrB并不知道UsrA的GUID,他只能通过UsrA的高参lusu#352向吴传话,因此,ToUsr为lusu#352,而不是sunquan#qq。并且,此电文发送是以高参xunyu163.com名义完成,所以,使用了面具xunyu163.com。后面类似地方不再进行相应的解说。
步骤302、HSvr-B收到所述消息后,判断ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将消息中的ToUsr值lusu#352作为寻址目的,将ToEnd初始化为ToUsr值lusu#352,得到消息{lusu#352,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”};判断消息的ToEnd值lusu#352归属于HSvr-C,因此将该消息发送给HSvr-C。
步骤303、HSvr-C收到HSvr-B发送的所述消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据如表6所示的转向信息表,判断ToEnd值lusu#352是否设置转向,由于ToEnd值lusu#352设置了转向,于是,将ToEnd设置为lusu#352的转向目的sunquan#qq,得到消息{sunquan#qq,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”};判断消息的ToEnd值sunquan#qq归属于HSvr-A,因此将该消息发送给HSvr-A。
步骤304、HSvr-A收到HSvr-C发送的所述消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据如表6所示的转向信息表,判断ToEnd值sunquan#qq是否设置了转向,由于ToEnd值sunquan#qq没有设置转向,于是,根据消息中的ToEnd值sunquan#qq,从如表3-8所示的在线用户信息表中确定相应的客户端,即sunquan#qq的客户端。
步骤305、HSvr-A将所述消息发送给所确定的客户端;执行软跳线设置操作:判断ToUsr与ToEnd是否相同,由于ToUsr值lusu#352与ToEnd值sunquan#qq不同,因此在如表3-8所示的在线用户信息表中,建立sunquan#qq客户端与lusu#352的对应关系;构造回复消息:{163.com,xunyu163.com,lusu#352,99,ResShortMsg,表示“发送成功”的原因值};其中,该回复消息的ToEnd值为所述请求消息的FromEnd值163.com,该回复消息的ToUsr值为所述请求消息的FromUsr值xunyu163.com,该回复消息的FromUsr值为所述请求消息的ToUsr值lusu#352,该回复消息的FromEnd值为HSvr-A所拥有的一个HCode值99,该回复消息MsgContent被设置为表示“发送成功”的原因值,该回复消息的MsgCode为相应的回复消息码ResShortMsg。
这里,在建立sunquan#qq客户端与lusu#352的对应关系之前,还可以进一步判断是否已经建立了该关系,如果已经建立了sunquan#qq客户端与lusu#352的对应关系,则不重复建立该对应关系。实际当中,UsrA在登入时可以建立sunquan#qq客户端与lusu#352的对应关系,或者,UsrY在之前将lusu#352作为消息的目的地址发送消息时,HSvr-A已经建立了sunquan#qq客户端与lusu#352的对应关系。因此,在进行软跳线设置时,一般地,进一步阻止软跳线的重复设置。
步骤306、HSvr-A根据回复消息中ToEnd值163.com为一个HCode,确定采用辅助寻址方式,将ToEnd用作ToCeHCode,于是,根据ToEnd值163.com确定目的HSvr为HSvr-B;将该回复消息发送给HSvr-B。
步骤307、HSvr-B收到HSvr-A发送的所述回复消息后,判断ToEnd值为163.com为一个HCode,说明要采用辅助寻址,因此,将该回复消息中的ToUsr作为ToBaseGUID,根据ToUsr值xunyu163.com,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤308、HSvr-A将所述回复消息发送给所确定的客户端。
这样,UsrB就可以通过回复消息获得UsrA的CDAddr。而后,UsrB再向UsrA发送信息时,就可以直接根据UsrA的CDAddr,采用辅助寻址方式给UsrA发送消息,从而获得较高的信息传送效率。
所述回复消息也可以由UsrA的客户端构造并发出。例如,在步骤305中,UsrA的客户端接收到所述请求消息后,构造所述回复消息,将构造的回复消息发送给HSvr-A,由HSvr-A发送给HSvr-B,再由HSvr-B将所述回复消息发送给UsrB。
由上可见,根据本发明辅助寻址方法,在IMN网络运行中,可以对消息的传送路径进行动态配置和优化,从而使IMS系统间的消息传送达到较佳模式。
如果考虑转向死循环因素,同样可以在消息格式一中插入一个转向次数(TTR,Times To Redirect)信元来限制允许最多转向次数,这样得到的消息格式为消息格式二。用{ToEnd,ToUsr,FromUsr,FromEnd,TTR,MsgCode,MsgContent}这种形式表示消息格式二的一个消息实例。关于TTR的用法,参见《转向处理方法》发明专利,这里不再赘述。
保存所述软跳线关系的表中还可以包括时间信息,例如,在表3-6中增加一个LastTime字段,用以记录相应软跳线被创建或被访问的时间,如表3-9所示在线用户信息表:
表3-9
GUID | IP地址 | Port | LastTime |
sunquan#qq | sunquan#qq的IP地址 | 相应端口号 | 0 |
lusu#352 | sunquan#qq的IP地址 | 相应端口号 | 该记录创建时间 |
在表3-9,中,LastTime为0,表示该记录为相应IUsr登入时创建,而不是动态创建。
这样,HSvr可以设置一个扫描操作,定期或随机地遍历表3-9中LastTime字段值不为0的记录,即通过设置软跳线而创建的记录,判断LastTime值距离当前时间是否超过预设的值,例如24*3600秒,如果是,则从表3-9中删除该记录。这样,表3-9中就不会沉积过多的无用记录。
相应地,如表5或表5-1所示的好友列表也可以增加一个LastTime字段,用以记录相应好友的CDAddr被保存或使用的时间。可以设置一个扫描操作,定期或随机地遍历好友列表,判断LastTime值距离当前时间是否超过预设的值,例如24*3600秒,如果是,则将相应的ToCeHCode字段值设置为空值null。
如表3-8所示的在线用户信息表可以按照域内用户和域外用户分成两个表,这样可以提高检索效率。所述域内用户是指归属于自己的用户,所述域外用户是指归属于其它HSvr的用户。例如,sunquan#qq是HSvr-A的一个域内用户,lusu#352是HSvr-A的一个域外用户。
需要特别说明的是,在步骤12中,并不一定需要将ToCeHCode值包括在所述消息中发送给所述ToCeHCode指向的HSvr。在混合使用其它寻址方式时,可以用一个指示标志来指示一个消息是否通过辅助寻址方式进行寻址,这样,收到该消息的对端HSvr根据该标志判断是否采用辅助寻址方式进行寻址,如果是,则执行步骤13。
实际当中,可以在消息格式一中插入一个地址标志用于指示目的地址和源地址的形式。如下面消息格式三所示:
AddrFlag:该值为0,表示目的地址和源地址都不是CDAddr;该值为1表示目的地址不是CDAddr,源地址是CDAddr;该值为2表示目的地址是CDAddr,源地址不是CDAddr;该值为3表示目的地址是CDAddr,源地址也是CDAddr;
ToEnd:AddrFlag为2或3时,该信元用作ToCeHCode;AddrFlag为0或1时,该信元用作TTIE,并且初始值为ToUsr值;
ToUsr:用于指示消息的目的用户,当ToEnd用作ToCeHCode时,该信元用作ToBaseGUID;其它情况,用法参见《变脸方法》和《转向处理方法》发明专利;
FromUsr:用于指定消息的源用户,即源地址,当消息的FromEnd用作FromCeHCode时,该信元用作FromBaseGUID;其它情况,用法参加《变脸方法》和《转向处理方法》发明专利;
FromEnd:AddrFlag为1或3时,用作FromCeHCode;其它情况,不用作FromCeHCode;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
用{AddrFlag,ToEnd,ToUsr,FromUsr,FromEnd,MsgCode,MsgContent}这种形式表示一个消息实例,例如:{2,HSvr-A所拥有的一个HCode,UsrA的面具,UsrB的GUID,null,ShortMsg,“新年快乐!”}表示UsrB通过UsrA的CDAddr值(HSvr-A所拥有的一个HCode,UsrA的面具),向UsrA发送“新年快乐!”的短信息的消息实例,其中,ToEnd为HSvr-A所拥有的一个HCode,ToUsr = UsrA的面具,FromUsr= UsrB的GUID,MsgCode = ShortMsg,MsgContent = “新年快乐!”,FromEnd = null表示UsrB不准备使用自己的CDAddr。
实际当中,还可以定义一种变体消息格式,用于在不同场景下的消息传送。例如,可以定义消息格式四,该消息格式四包括两部分,第一部分为固定部分,第二部分为根据第一部分中某一特定值而变化的变体部分。通过消息格式四实现与消息格式一或三等价的技术效果。
例如,所述消息格式四的固定部分包括一个变体标志(VariantFlag,Variant Flag)信元,用于指示第二部分采用何种变体。
所述消息格式四如下所示:
第一部分:
VariantFlag:指示第二部分采用何种变体;
第二部分:
即消息的变化部分。
例如:
1、当VariantFlag为0时,消息的变化部分为:
ToUsr:用于指定消息的目的用户;
FromUsr:用于指定消息的源用户,可以是源用户的面具;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:寻址时,不考虑转向设置,不采用辅助寻址方式,参见《通信方法与系统》和《变脸方法》发明专利。
等价于消息格式一中,ToEnd和FromEnd都为空值,且忽略转向因素。
对应的消息实例表示形式为:{0,ToUsr,FromUsr,MsgCode,MsgContent}。
2、当VariantFlag为1时,消息的变化部分为:
TTIE:目标追踪信元,用于消息的寻址,HSvr在TTIE为空值时,用ToUsr值初始化TTIE,在转向发生时发生变化;
ToUsr:用于指示消息的目的用户;
FromUsr:用于指定消息的源用户,可以是源用户的面具;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:寻址时,考虑消息的转向设置信息,不采用辅助寻址方式,参见《转向处理方法》发明专利,这里没有考虑转向死循环因素。
等价于消息格式一中,ToEnd和FromEnd都为空值,且考虑转向因素。
对应的消息实例表示形式为:{1,TTIE,ToUsr,FromUsr,MsgCode,MsgContent}。
3、当VariantFlag为2时,消息的变化部分为:
ToCeHCode:与ToBaseGUID一起用于指示ToCDAddr;
ToBaseGUID:与ToCeHCode一起用于指示ToCDAddr;
FromUsr:用于指定消息的源用户,可以是源用户的面具;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:按照辅助寻址方式进行寻址。
等价于消息格式一中,ToEnd为一个HCode,FromEnd为空值。
对应的消息实例表示形式为:{2,ToCeHCode,ToBaseGUID,FromUsr,MsgCode,MsgContent}。
4、当VariantFlag为3时,消息的变化部分为:
ToUsr:用于指示消息的目的用户;
FromBaseGUID:与FromCeHCode一起用于指示FromCDAddr;
FromCeHCode:与FromBaseGUID一起用于指示FromCDAddr;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:寻址时,不考虑转向设置,不采用辅助寻址,但消息中携带FromCDAddr。
等价于消息格式一中,ToEnd为空值,FromEnd为一个HCode,且忽略转向因素。
对应的消息实例表示形式为:{3,ToUsr,FromBaseGUID,FromCeHCode,MsgCode,MsgContent}。
5、当VariantFlag为4时,消息的变化部分为:
TTIE:目标追踪信元,用于消息的寻址,HSvr在TTIE为空值时,用ToUsr值初始化TTIE,在转向发生时发生变化;
ToUsr:用于指示消息的目的用户;
FromBaseGUID:与FromCeHCode一起用于指示FromCDAddr;
FromCeHCode:与FromBaseGUID一起用于指示FromCDAddr;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:寻址时,考虑消息的转向设置信息,消息中携带FromCDAddr。
等价于消息格式一中,ToEnd为空值,FromEnd为一个HCode,且考虑转向因素。
对应的消息实例表示形式为:{4,TTIE,ToUsr,FromBaseGUID,FromCeHCode,MsgCode,MsgContent}。
6、当VariantFlag为5时,消息的变化部分为:
ToCeHCode:与ToBaseGUID一起用于指示ToCDAddr;
ToBaseGUID:与ToCeHCode一起用于指示ToCDAddr;
FromBaseGUID:与FromCeHCode一起用于指示FromCDAddr;
FromCeHCode:与FromBaseGUID一起用于指示FromCDAddr;
MsgCode:消息码:例如,ShortMsg,表示这是一个短消息;
MsgContent:消息内容。
应用场景:按照辅助寻址方式进行寻址,消息中携带FromCDAddr。
等价于消息格式一中,ToEnd为一个HCode,FromEnd也为一个HCode。
对应的消息实例表示形式为:{5,ToCeHCode,ToBaseGUID,FromBaseGUID,FromCeHCode,MsgCode,MsgContent}。
当然,也可以通过采用不同协议标识来指示不同的协议头的方式,来处理上述不同的消息变体部分。例如,将VariantFlag作为一个协议标识来对待。
按照消息格式四:
所述步骤301可以是:UsrB向HSvr-B发送消息:{4,null,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”}。其中,VariantFlag = 4。
所述步骤302可以是:HSvr-B收到所述消息后,判断VariantFlag为4,表示寻址时,考虑消息的转向设置信息,于是,将消息中的TTIE初始化为ToUsr值lusu#352,得到消息{4,lusu#352,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”};判断消息的TTIE值lusu#352归属于HSvr-C,因此将该消息发送给HSvr-C。
所述步骤303可以是:HSvr-C收到HSvr-B发送的所述消息后,判断VariantFlag为4,表示寻址时,考虑消息的转向设置信息,于是,根据如表6所示的转向信息表,判断TTIE值lusu#352是否设置转向,由于TTIE值lusu#352设置了转向,于是,将TTIE设置为lusu#352的转向目的sunquan#qq,得到消息{4,sunquan#qq,lusu#352,xunyu163.com,163.com,ShortMsg,“孤承帝命,欲与将军会猎于江夏”};判断消息的TTIE值sunquan#qq归属于HSvr-A,因此将该消息发送给HSvr-A。
所述步骤304可以是:HSvr-A收到HSvr-C发送的所述消息后,判断VariantFlag为4,表示寻址时,考虑消息的转向设置信息,于是,根据如表6所示的转向信息表,判断TTIE值sunquan#qq是否设置转向,由于TTIE值sunquan#qq没有设置转向,于是,根据消息中的TTIE值sunquan#qq,从如表3-8所示的在线用户信息表中确定相应的客户端,即sunquan#qq的客户端。
所述步骤305可以是:HSvr-A将所述消息发送给所确定的客户端;执行软跳线设置操作:判断ToUsr与TTIE是否相同,由于ToUsr值lusu#352与TTIE值sunquan#qq不同,因此在如表3-8所示的在线用户信息表中,建立sunquan#qq客户端与lusu#352的对应关系;构造回复消息:{5,163.com,xunyu163.com,lusu#352,99,ResShortMsg,表示“发送成功”的原因值};其中,该回复消息的ToCeHCode值为所述请求消息的FromCeHCode值163.com,该回复消息的ToBaseGUID值为所述请求消息的FromBaseGUID值xunyu163.com,该回复消息的FromBaseGUID值为所述请求消息的ToUsr值lusu#352,该回复消息的FromCeHCode值为HSvr-A拥有的一个HCode值99,该回复消息MsgContent被设置为表示“发送成功”的原因值,该回复消息的MsgCode为相应的回复消息码ResShortMsg。该回复消息的VariantFlag为5,表示按照辅助寻址方式进行寻址,消息中携带FromCDAddr值(99,lusu#352)。
所述步骤306可以是:HSvr-A判断VariantFlag为5,表示寻址时,按照辅助寻址方式进行寻址,于是,根据ToCeHCode值163.com确定目的HSvr为HSvr-B;将该回复消息发送给HSvr-B。
所述步骤307可以是:HSvr-B收到HSvr-A发送的所述回复消息后,判断VariantFlag为5,表示寻址时,按照辅助寻址方式进行,于是,根据该回复消息中的ToBaseGUID值xunyu163.com,按照如表3-8所示的在线用户信息表确定相应的客户端。
这样,在步骤308中,HSvr-A将所述消息发送给所确定的客户端。
在发生转向时,由于消息的真实发送者,例如UsrA,通过回复消息能够收到所述消息的真实接收者,例如UsrB,的CDAddr信息,因此,UsrA再次向UsrB发送消息时,就可以用UsrB的CDAddr作为消息的ToCDAddr,这样,按照辅助寻址方法,UsrA归属的HSvr就可以直接将该消息传送给UsrB归属的HSvr,而后由UsrB归属的HSvr根据消息中的ToBaseGUID,按照如表3-8所示的在线用户信息表确定UsrB的客户端,将该消息发送给所确定的客户端。这样,当通信的双方处于聊天状态,特别是群聊的情况下,只有第一次发送消息时,需要按照转向设置信息进行消息路径的探测而消耗时间外,在完成软跳线设置后,消息传送的效率就可以达到没有设置转向时的水平。
在向一个GUID发送消息时,也可以先获取该GUID的rdEndGUID,而后向该rdEndGUID发送消息。但是,这种方式不利于IUsr的隐私保护,当然,也不利于一个IUsr通过不同的面具扮演多个通信角色,不利于用户有效管理不同用户群的通信,因而,无法达到本发明的技术效果。
下面介绍本发明在GUID迁移携带中的应用。在GUID迁移携带应用中,一个CDAddr将对应一个迁移账户。
所述GUID迁移,是指归属于一个HSvr的GUID注册到另外一个HSvr中。例如,HCode值352归属于HSvr-C,这样,HCode值352下的GUID值liubei#352归属于HSvr-C。如果liubei#352对应的IUsr对微软的服务不满意,希望迁移到腾讯的IMS系统中,那么,该IUsr就需要在HSvr-A中注册GUID为liubei#352帐户。虽然,HSvr-A可以允许域外用户的GUID(即不归属于自己的GUID)注册到自己的系统中,但按照现有寻址技术,根据liubei#352进行寻址时,只能寻址到HSvr-C。当liubei#352注册到HSvr-A中时,按照GUID寻址就无法将消息发送给HSvr-A中的liubei#352。
按照本发明方法,可以通过一个CDAddr值(99,liubei#352),来寻址迁移到HSvr-A中的liubei#352。例如,寻址时,可以根据该CDAddr的CeHCode值99,确定消息的目的HSvr为HSvr-A,而后将消息发送给HSvr-A,这样,HSvr-A就可以根据该CDAddr的BaseGUID值liubei#352,从如表3-8所示的在线用户信息表中获得相应的客户端,将相应消息发送给该客户端。这样,就达到了给迁移后的IUsr发送消息的目的。这里,liubei#352预先登入了HSvr-A。
实际当中,虽然根据迁移后的IUsr,例如liubei#352,的CDAddr,例如(99,liubei#352),可以给该IUsr发送消息,但是,liubei#352的老朋友可能并不知道liubei#352迁移到了HSvr-A中,即不知道liubei#352相应的CDAddr值(99,liubei#352),这样,这些老朋友还是不能给迁移到HSvr-A中liubei#352对应的客户端发送消息。对此,本发明提出一种新的转向处理方法,该方法通过设置GUID的转向目的HSvr(简称RdHSvr)来记录转向的目的,再通过本发明的辅助寻址方法来实现给迁移的IUsr发送消息。
如表6-1所示的转向信息表记录了相应GUID的转向目的HSvr。
表6-1
GUID | Redirect | Remark |
guanyunchang#352 | 163.com | guanyunchang#352迁移到HSvr-B |
liubei#352 | 99 | liubei#352迁移到HSvr-A |
lusu#352 | sunquan#qq | lusu#352转向sunquan#qq |
在表6-1中,Redirect字段值为一个HCode时,用于指示相应的HSvr,即RdHSvr。如果Redirect字段值为一个GUID,则用于指示转向目的GUID。
这样,在将liubei#352作为目的GUID发送消息时,该消息首先被发送到liubei#352归属的HSvr,即HSvr-C,HSvr-C在判断liubei#352的转向目的为一个值为99的HCode时,根据HCode值99与liubei#352得到一个CDAddr值(99,liubei#352),用该CDAddr替代消息中目的地址liubei#352来进行寻址,将消息发送给99对应的HSvr,即HSvr-A,HSvr-A根据消息的ToBaseGUID值liubei#352确定相应的客户端,将该消息发送给该客户端,并向消息的真实发送者回复相应的CDAddr值(99,liubei#352)。当然,HSvr-C也可以直接将所述CDAddr值(99,liubei#352)发送给消息的真实发送者,这样,消息的真实发送者以后就可以根据该CDAddr来与迁移后的用户进行信息交互。
例五:liubei#352迁移到HSvr-A中,在liubei#352归属的HSvr-C中,通过如表6-1所示的转向信息表保存了liubei#352的转向目的HSvr,该HSvr由HCode值99所指示;liubei#352登入了HSvr-A,HSvr-A在如表3-8所示的在线用户信息表中,保存liubei#352的在线记录。
UsrB的GUID是caocaoyeah.net,没有设置转向,caocaoyeah.net登入HSvr-B,HSvr-B在如表3-8所示的在线用户信息表中保存UsrB的在线记录。
caocaoyeah.net将liubei#352作为目的GUID发送短信息“嫩草肥老牛,陈根绊蛀牙”,采用消息格式一,相应的过程如下:
步骤501、UsrB向HSvr-B发送消息:{null,liubei#352,caocaoyeah.net,null,ShortMsg,“嫩草肥老牛,陈根绊蛀牙”}。其中,ToEnd为空值null,表示不采用辅助寻址方式。
步骤502、HSvr-B收到所述消息后,判断ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将消息中的ToUsr值liubei#352作为寻址目的,将ToEnd初始化为ToUsr值liubei#352,得到消息{liubei#352,liubei#352,caocaoyeah.net,null,ShortMsg,“嫩草肥老牛,陈根绊蛀牙”};判断消息的ToEnd值liubei#352归属于HSvr-C,因此将该消息发送给HSvr-C。
步骤503、HSvr-C收到HSvr-B发送的所述消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据如表6-1所示的转向信息表,判断ToEnd值liubei#352是否设置了转向,由于ToEnd值liubei#352设置的转向目的为HCode值99,于是,根据HCode值99和消息的ToUsr值liubei#352得到相应的CDAddr值(99,liubei#352),将该CDAddr作为消息的ToCDAddr,这样,将ToEnd设置为99,得到消息{99,liubei#352,caocaoyeah.net,null,ShortMsg,“嫩草肥老牛,陈根绊蛀牙”};判断消息的ToEnd值99为一个HCode,确定采用辅助寻址方式,将ToEnd用作ToCeHCode,于是,根据ToEnd值99确定目的HSvr为HSvr-A;将该消息发送给HSvr-A。
步骤504、HSvr-A收到HSvr-B发送的所述消息后,判断ToEnd值99为一个HCode,说明要采用辅助寻址方式,因此,将该消息中的ToUsr视作为ToBaseGUID,根据ToUsr值liubei#352,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤505、HSvr-A将所述消息发送给所确定的客户端;构造回复消息:{null,caocaoyeah.net,liubei#352,99,ResShortMsg,表示“发送成功”的原因值};其中,该回复消息的ToEnd值为所述请求消息的FromEnd值null,该回复消息的ToUsr值为所述请求消息的FromUsr值caocaoyeah.net,该回复消息的FromUsr值为所述请求消息的ToUsr值liubei#352,该回复消息的FromEnd值为HSvr-A拥有的一个HCode值99,该回复消息MsgContent被设置为表示“发送成功”的原因值,该回复消息的MsgCode为相应的回复消息码ResShortMsg。
步骤506、HSvr-A判断回复消息中携带的ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将回复消息中的ToUsr值caocaoyeah.net作为寻址目的,将ToEnd初始化为ToUsr值caocaoyeah.net,得到回复消息{caocaoyeah.net,caocaoyeah.net,liubei#352,99,ResShortMsg,表示“发送成功”的原因值};判断回复消息的ToEnd值caocaoyeah.net归属于HSvr-B,因此将该回复消息发送给HSvr-B。
步骤507、HSvr-B收到HSvr-A发送的所述回复消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据自己保存的如表6-1所示的转向信息表,判断ToEnd值caocaoyeah.net是否设置了转向,由于ToEnd值caocaoyeah.net没有设置转向,于是,根据消息的ToEnd值caocaoyeah.net,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤508、HSvr-B将所述回复消息发送给所确定的客户端。
这样,caocaoyeah.net客户端就可以收到迁移后的liubei#352对应的CDAddr值(99,liubei#352)。
实际当中,在步骤503中,HSvr-C可以直接将得到的CDAddr值(99,liubei#352)返回给caocaoyeah.net,caocaoyeah.net收到该CDAddr后,可以将该CDAddr作为ToCDAddr,重新发送相关消息。例如,所述步骤503可以是:
HSvr-C收到HSvr-B发送的所述消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据如表6-1所示的转向信息表,判断ToEnd值liubei#352是否设置了转向,由于ToEnd值liubei#352设置的转向目的为HCode值99,于是,根据HCode值99和消息的ToUsr值liubei#352得到相应的CDAddr值(99,liubei#352);构造回复消息:{null,caocaoyeah.net,liubei#352,99,ResShortMsg,表示“用户迁移”的原因值}。这样,再按照步骤506、507和508,即可将该回复消息发送到caocaoyeah.net的客户端。
对于CDAddr值(CeHCode,BaseGUID)来说,如果BaseGUID为一个影码,则本发明称该CDAddr为基于影码的CDAddr。
本发明还提供一种CDAddr转换方法,将基于影码的CDAddr转换为GUID:
步骤51、根据BaseGUID得到相应的电话号码。
步骤52、将所述CeHCode作为所述GUID的HCode,将所述电话号码作为所述GUID的UCode,得到该GUID。
例如,对于CDAddr值(163.com,86*139*23568901)来说,根据86*139*23568901得到对应于电信网的电话号码8613923568901,将该电话号码作为新GUID的UCode,再根据对应的CeHCode值163.com得到新GUID为一个邮址码:8613923568901163.com。
还例如,对于CDAddr值(QQ,86*139*23568901)来说,根据86*139*23568901得到对应于电信网的电话号码8613923568901,将该电话号码作为新GUID的UCode,再根据对应的CeHCode值QQ得到新GUID为一个主从码:8613923568901#QQ。
实际当中,对于影码,例如86*139*23568901,的迁移来说,在迁移目的地,并不是以该影码进行注册,而是根据由该影码和迁移目的地所拥有的一个HCode,例如163.com,共同组成的CDAddr,例如(163.com,86*139*23568901),所对应的的一个GUID,例如8613923568901163.com,来进行注册的。这种情况下,上述步骤504中,HSvr-A根据消息的ToUsr值,按照如表3-8所示的在线用户信息表来确定相应的客户端时,就不能找到相应的客户端。而根据CDAddr转换方法,可以将相应的CDAddr转换为一个GUID,这样,在该GUID登入其归属的HSvr后,该HSvr就可以根据该GUID来确定相应的客户端。
例六:HSvr-B拥有归属二元组(86,139),zhugeliang因到吴参加辩论会,特将自己的影码86*139*23568901从HSvr-B迁移到HSvr-A中,即:
根据CDAddr值(QQ,86*139*23568901),按照所述CDAddr转换方法得到新的GUID为8613923568901#QQ,将8613923568901#QQ注册到HSvr-A中;同时,在HSvr-B的如表6-1所示的转向信息表中保存86*139*23568901的转向目的HSvr为HCode值QQ,用于指示HSvr-A。
8613923568901#QQ登入了HSvr-A,HSvr-A在如表3-8所示的在线用户信息表中,保存8613923568901#QQ的在线记录。
UsrB的GUID是caocaoyeah.net,没有设置转向,caocaoyeah.net登入HSvr-B,HSvr-B在如表3-8所示的在线用户信息表中保存UsrB的在线记录。
caocaoyeah.net通过zhugeliang的影码86*139*23568901给zhugeliang发送短信息“天下大势 如滚滚长江 顺之则昌 逆之则亡”,采用消息格式一,相应的过程如下:
步骤601、UsrB向HSvr-B发送消息:{null,86*139*23568901,caocaoyeah.net,null,ShortMsg,“天下大势 如滚滚长江 顺之则昌逆之则亡”}。其中,ToEnd为空值null,表示不采用辅助寻址方式。
步骤602、HSvr-B收到所述消息后,判断ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将消息中的ToUsr值86*139*23568901作为寻址目的,将ToEnd初始化为ToUsr值86*139*23568901,得到消息{86*139*23568901,86*139*23568901,caocaoyeah.net,null,ShortMsg,“天下大势 如滚滚长江 顺之则昌 逆之则亡”};判断消息的ToEnd值86*139*23568901归属于自己,于是,根据如表6-1所示的转向信息表,判断ToEnd值86*139*23568901是否设置转向,由于ToEnd值86*139*23568901设置的转向目的为HCode值QQ,于是,根据该HCode值QQ和消息的ToUsr值86*139*23568901得到相应的CDAddr值(QQ,86*139*23568901),将该CDAddr作为消息的ToCDAddr,这样,将消息的ToEnd设置为QQ,得到消息{QQ,86*139*23568901,caocaoyeah.net,null,ShortMsg,“天下大势 如滚滚长江 顺之则昌逆之则亡”};判断消息的ToEnd值QQ为一个HCode,确定采用辅助寻址方式,将ToEnd用作ToCeHCode,于是,根据ToEnd值QQ确定目的HSvr为HSvr-A;将该消息发送给HSvr-A。
步骤603、HSvr-A收到HSvr-B发送的所述消息后,判断ToEnd值QQ为一个HCode,表示要采用辅助寻址,判断消息的ToCDAddr的ToBaseGUID,即消息的ToUsr,为一影码,于是,根据CDAddr值(QQ,86*139*23568901),得到新的GUID为8613923568901#QQ。根据8613923568901#QQ,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤604、HSvr-A将所述消息发送给所确定的客户端;构造回复消息:{null,caocaoyeah.net,86*139*23568901,99,ResShortMsg,表示“发送成功”的原因值};其中,该回复消息的ToEnd值为所述请求消息的FromEnd值null,该回复消息的ToUsr值为所述请求消息的FromUsr值caocaoyeah.net,该回复消息的FromUsr值为所述请求消息的ToUsr值86*139*23568901,该回复消息的FromEnd值为HSvr-A所拥有的一个HCode值99,该回复消息MsgContent被设置为表示“发送成功”的原因值,该回复消息的MsgCode为相应的回复消息码ResShortMsg。
步骤605、HSvr-A判断回复消息中携带的ToEnd为空值,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,将回复消息中的ToUsr值caocaoyeah.net作为寻址目的,将ToEnd初始化为ToUsr值caocaoyeah.net,得到回复消息{caocaoyeah.net,caocaoyeah.net,86*139*23568901,99,ResShortMsg,表示“发送成功”的原因值};判断该回复消息的ToEnd值caocaoyeah.net归属于HSvr-B,因此将该回复消息发送给HSvr-B。
步骤606、HSvr-B收到HSvr-B发送的所述回复消息后,判断ToEnd不是一个HCode,表示不采用辅助寻址方式,将ToEnd用作TTIE,于是,根据自己保存的如表6-1所示的转向信息表,判断ToEnd值caocaoyeah.net是否设置了转向,由于ToEnd值caocaoyeah.net没有设置转向,于是,根据消息的ToEnd值caocaoyeah.net,按照如表3-8所示的在线用户信息表确定相应的客户端。
步骤607、HSvr-B将所述回复消息发送给所确定的客户端。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。
Claims (10)
1.一种辅助寻址方法,根据消息的ToCDAddr进行寻址,所述ToCDAddr包括ToCeHSvrDesc和ToBaseGUID两部分,其特征在于,所述方法包括以下步骤:
b、将所述消息发送给所述ToCeHSvrDesc指向的HSvr。
c、所述ToCeHSvrDesc指向的HSvr根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
2.根据权利要求1所述的方法,其特征在于,步骤b之前进一步包括步骤a:
a、判断消息的ToCeHSvrDesc是否指向本HSvr,如果是,则直接执行根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端的操作,结束;否则,才执行步骤b。
3.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:建立GUID与客户端的对应关系,所述根据消息的ToBaseGUID确定相应的客户端是指:根据消息的ToBaseGUID,按照所建立的GUID与客户端的对应关系确定相应的客户端。
4.根据权利要求1或2所述的方法,其特征在于,步骤a或c所述根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端,是指:根据ToCDAddr,按照CDAddr转换方法,得到一个新的GUID,根据新得到的GUID确定相应的客户端,将所述消息发送给该客户端。
5.一种HSvr进行辅助寻址的方法,根据消息的ToCDAddr进行寻址,所述ToCDAddr包括ToCeHSvrDesc和ToBaseGUID两部分,其特征在于,所述方法包括以下步骤:
a、判断消息的ToCeHSvrDesc是否指向本HSvr,如果是,则执行步骤c;否则,执行步骤b。
b、将所述消息发送给所述ToCeHSvrDesc指向的HSvr,结束。
c、根据消息的ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
6.一种HSvr进行辅助寻址的方法,其特征在于,所述方法包括以下步骤:
a、HSvr接收对端HSvr的包括ToBaseGUID的消息;
b、根据所述ToBaseGUID确定相应的客户端,将所述消息发送给该客户端。
7.一种扩展软跳线设置方法,其特征在于,所述方法包括以下步骤:
a、判断消息的原始寻址目的,即转向源,与该原始寻址目的的rdEndGUID是否相同,如果是,则结束;
b、建立所述原始寻址目的与该原始寻址目的的rdEndGUID的客户端的对应关系;
c、将拥有的一个HCode作为所述rdEndGUID的CDAddr的CeHCode,返回给消息的真实发送者归属的HSvr或消息的真实发送者。
8.根据权利要求7所述的方法,其特征在于,在所述步骤c之前进一步判断所述原始寻址目的是否归属于自己,如果是,则不执行所述步骤c;否则,才执行所述步骤c。
9.根据权利要求7所述的方法,其特征在于,在所述步骤a中,在所述结束之前还进一步执行步骤c。
10.一种转向处理方法,其特征在于,所述方法包括以下步骤:
a、将消息的目的GUID的转向目的HCode和该目的GUID对应的CDAddr作为消息的ToCDAddr,将该消息发送给该HCode归属的HSvr;
b、所述HCode归属的HSvr根据所述ToCDAddr的BaseGUID,即步骤a所述的目的GUID,确定相应的客户端;
c、将所述消息发送给所确定的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100733347A CN103391332A (zh) | 2012-05-08 | 2013-03-08 | 辅助寻址方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210139292.8 | 2012-05-08 | ||
CN201210139292 | 2012-05-08 | ||
CN2013100733347A CN103391332A (zh) | 2012-05-08 | 2013-03-08 | 辅助寻址方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103391332A true CN103391332A (zh) | 2013-11-13 |
Family
ID=49535487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100733347A Pending CN103391332A (zh) | 2012-05-08 | 2013-03-08 | 辅助寻址方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103391332A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060181A (zh) * | 2015-04-16 | 2016-10-26 | 王正伟 | 号码字典 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946104A (zh) * | 2006-03-01 | 2007-04-11 | 华为技术有限公司 | 一卡多号业务的实现方法 |
WO2010035037A1 (en) * | 2008-09-24 | 2010-04-01 | Bloxx Limited | Message processing |
CN102333105A (zh) * | 2010-07-14 | 2012-01-25 | 华为技术有限公司 | 业务通信的方法、系统、推送客户端和用户设备 |
-
2013
- 2013-03-08 CN CN2013100733347A patent/CN103391332A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946104A (zh) * | 2006-03-01 | 2007-04-11 | 华为技术有限公司 | 一卡多号业务的实现方法 |
WO2010035037A1 (en) * | 2008-09-24 | 2010-04-01 | Bloxx Limited | Message processing |
CN102333105A (zh) * | 2010-07-14 | 2012-01-25 | 华为技术有限公司 | 业务通信的方法、系统、推送客户端和用户设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060181A (zh) * | 2015-04-16 | 2016-10-26 | 王正伟 | 号码字典 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9166937B2 (en) | Peer-to-peer email | |
CN106293968B (zh) | 一种基于Kafka消息中间件的双向通信系统及方法 | |
CN100369027C (zh) | 用于促进不同服务提供商之间即时通讯事务的方法和系统 | |
US8819102B2 (en) | Method and system for managing message communications | |
CN1514611A (zh) | 用于分布式消息传送系统中匿名群组消息传送的方法和设备 | |
CN101188580B (zh) | 一种实时垃圾电子邮件过滤方法及系统 | |
CN106921578B (zh) | 一种转发表项的生成方法和装置 | |
CN102025522B (zh) | 实现不同ip域之间组播的方法及边界网关路由器 | |
CN102223293B (zh) | 消息请求的路由方法及处理系统 | |
CN101997768A (zh) | 一种上送地址解析协议报文的方法和装置 | |
CN107547346B (zh) | 一种报文传输方法和装置 | |
CN102130845A (zh) | 回执报告的发送方法及处理系统 | |
CN104486327A (zh) | 页面与长连接服务器间的通信方法及客户端 | |
CN101425958A (zh) | 一种p2p叠加网中请求应答方法、装置和系统 | |
CN105187311A (zh) | 一种报文转发方法及装置 | |
CN105357329A (zh) | 跨idc网络环境下业务数据的传输方法、装置及系统 | |
CN104125310B (zh) | 基于半永久地址的消息发送方法 | |
CN103391333B (zh) | 支持guid迁移的网络及相关消息处理方法 | |
CN101188574B (zh) | 一种即时通信用户之间的信息传送方法及系统 | |
CN103391332A (zh) | 辅助寻址方法 | |
US9596577B1 (en) | Relaying mobile communications | |
CN102857352B (zh) | 基于叠加网的组播、广播方法及系统 | |
CN105530189A (zh) | Trill网络中转发报文的方法和路由桥 | |
CN103716417B (zh) | E-mail地址编码方法 | |
CN117041136B (zh) | 组播管理方法、系统、装置、交换机和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: Wuhou District Shaoling road Chengdu city Sichuan province 610000 No. 29 2-2-3 Li Huaijiang Applicant after: Wang Zhengwei Address before: 610000 Sichuan city in Chengdu province Wuhou Temple Street No. 87 (empty Jiashuyuan) 1 Building 1 unit 3 Applicant before: Wang Zhengwei |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131113 |