CN101044741A - 安全的对等消息业务 - Google Patents
安全的对等消息业务 Download PDFInfo
- Publication number
- CN101044741A CN101044741A CNA2006800009885A CN200680000988A CN101044741A CN 101044741 A CN101044741 A CN 101044741A CN A2006800009885 A CNA2006800009885 A CN A2006800009885A CN 200680000988 A CN200680000988 A CN 200680000988A CN 101044741 A CN101044741 A CN 101044741A
- Authority
- CN
- China
- Prior art keywords
- peer
- message
- called
- mailbox
- sent
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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/21—Monitoring or handling of messages
- H04L51/23—Reliability checks, e.g. acknowledgments or fault reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- 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/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
-
- 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/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
当被叫对等体离线时,对等网络的消息系统在多个对等体存储消息或消息片段。可以对所复制的消息或消息片段加密。依照拉模型,当被叫对等体上线时,被叫对等体轮询它可访问的其它对等体,以判断是否有消息正在等待。依照推模型,当被叫对等体上线时,存储有来自主叫对等体的消息的对等体会通知被叫对等体。该系统可以采用单级,即只存储消息数据;也可以采用两级,即主要等级保存对等体的地址,而这些对等体所包括的消息数据构成次要等级。
Description
发明领域
[0001]本发明涉及对等网络领域,具体地说,本发明涉及用于在P2P网络上安全通信的方法和系统。
技术背景
[0002]对等(P2P)网络已随着其主要应用是文件共享而变得越加流行。很多用户正在采用P2P网络进行通信,其中通过网络协议(VoIP)P2P电话业务进行语音通信,例如Skype就是其中最流行的之一。为了在两台计算机之间使用Skype系统,这两台计算机的用户必须同时在线。
发明内容
[0003]本发明具体表现为一种方法,用于在对等网络中从主叫对等体向被叫对等体发送消息。该方法包括:主叫对等体判断被叫对等体是否离线。如果是,则将消息复制N次,其中N可以取决于对等网络中一个对等体在线的概率和消息传送的期望可靠性。发送这N个复制消息,以便存储在N个相应对等体中。
[0004]本发明还可以具体表现为一种方法,其中,当被叫对等体离线时,将消息发送到预定数量的其它对等体,并存储在所述预定数量的在线的其它对等体中。此外,当被叫对等体上线时,将至少一个所存储的消息发送到该被叫对等体。
[0005]本发明还可以具体表现为一种方法,其中,当被叫对等体离线时,将消息进行压缩以生成再现版本,其表示达到或超过门限质量的该消息,将该压缩消息发送到预定数量的其它对等体,并将该压缩消息至少存储在所述预定数量的在线的其它对等体中。此外,当被叫对等体上线时,将至少一个所存储的压缩消息发送到该被叫对等体。
[0006]本发明还可以具体表现为一种方法,其中,当被叫对等体离线时,将消息分解为多层,从而,一个相应层或者多个相应层的组合表示该消息的一个版本。从分解消息的相应层中至少选择一层达到或超过该消息的再现版本的门限质量。将分解消息的相应层发送到预定数量的其它对等体,并存储于所述预定数量的在线的其它对等体中。
[0007]本发明还可以具体表现为对等网络,其包括在该对等网络上进行通信的多个对等体。该对等网络包括:主叫对等体,用于生成呼叫者发出的消息;被叫对等体,用于接收该消息并向被叫用户提供该消息;存储对等体,用于存储来自该主叫对等体的压缩或分层消息。此外,当被叫对等体离线时,主叫对等体将压缩或分层消息发送到预定数量的在线的存储对等体,以及,当被叫对等体上线时,一个所述存储对等体将其存储的相应消息发送到所述被叫对等体。
[0008]本发明还可以具体表现为对等网络。该对等网络包括:主叫对等体,用于发送复制消息;被叫对等体,当被叫对等体可达时,被叫对等体通过一个或多个信箱对等体从主叫对等体接收一个或多个复制消息。当被叫对等体不可达时,每个信箱对等体接收并存储要发送到被叫对等体的至少一个相应消息。此外,当被叫对等体可达时,每个信箱对等体将所存储的消息发送到该被叫对等体。
附图说明
[0009]通过结合附图阅读下面的详细描述,将能更好地理解本发明。需要强调的是,根据通常的惯例,这些图的各种部件/元件并没有按照比例画出。相反,为了清楚起见,可以将各种部件/元件任意放大或缩小。此外,在这些附图中,相同的标记用于表示相同的部件/元件。在这些附图中包括下图:
图1、2和3是一个示例性的P2P网络的示意图,示出了依照本发明的各个示例性实施例的消息传送方法。
图4A和4B是另一个示例性P2P网络的示意图,示出了依照本发明的各个示例性实施例的另外的消息传送方法。
图5的框图示出了用于本发明的某些示例性实施例的对等网络中的对等体。
图6、7A、7B、8和9示出了依照本发明的各个示例性实施例用于在对等网络中在主叫对等体和被叫对等体之间进行通信的方法的流程图。
具体实施方式
[0010]为了在市场上生存下去,未来的P2P通信系统应该能够支持消息业务,即一个用户可以给另一用户留下消息,这与当前的电话系统所支持的语音信箱功能类似。大多数当前的P2P网络中的对等设备是计算机。但是,消费电子设备的当前增长趋势已是模拟设备的数字化。因此,胶片照相机被数码相机所取代,而模拟电视机被数字电视所取代。很多数字化用户电子产品的发展趋势就是可以通过网络实现互联。P2P技术在很多方面对于网络消费电子设备都很有吸引力。例如,如果这些设备都是联网的,那么,由终端用户开发出的新应用可以很容易得以推广。消费电子设备的联网提出了类似问题,即,当用户离线时,如何向该用户传送内容。
[0011]P2P网络的自组织功能及其相对于较正式网络的相对简单性,对于用户组建消费电子设备的私有网络是很重要的功能。
[0012]理想的情况是,任何这种P2P网络都可以支持消息业务。该业务可以支持由各种用户电子设备产生的各种媒体,包括文本、语音、视频和图像。消费电子设备的类型非常不同,从高功率的个人计算机到相对简单的音乐播放器。这一差异性是任何消息系统在系统设计时都要考虑的问题。消费电子设备的另一个特点是网络接入的不可靠性,尤其是在具有无线组件的网络中。也就是说,即使某个设备当前在线,但当内容已发出时,该设备可能离线,至少暂时离线。
消息保密性
[0013]在传统的客户机/服务器结构中实现的典型消息系统采用消息服务器,该服务器可以通过用户验证和/或消息加密来提供消息保密性。通常,将消息发送到服务器并存储在其中,该服务器针对消息接收方控制消息的存储。
[0014]在P2P消息系统的示例性实施例中,并不存在与传统的客户机/服务器结构中的服务器相对应的消息服务器。而是,当接收方在线时,可以将消息直接传送到该接收方,而当该接收方离线时,可由对等体将其存储起来。这种P2P消息系统可能存在一些保密性问题。例如,存储(如,临时地)消息的对等体可以使消息便于读取。或者,除了接收方以外其他人也可以访问存储在该对等体上的消息。
[0015]利用传统的消息服务器实现的典型消息系统可以通过用户验证和消息加密来提供消息保密。这些传统的消息服务器通常具有很大的存储容量和很强大的处理器。
[0016]理想情况下,P2P消息系统应该可以在接收方离线时以如下方式将消息存储在对等体中,即,保证只有原定接收方可以读取该消息,而网络中任何其它节点的对等体都不能读取。为此,可以将消息加密,从而,原定接收方和生成该消息的对等体可以解密该消息,而任何第三方对等体不能解密该消息。对于消息加密,可以利用原定对等体的公开密钥或者共享密钥。
[0017]对于消息验证,可以由生成消息的对等体以密码的形式对该消息进行签名。为此目的可以采用数字签名方法。
消息传送的可靠性
[0018]P2P消息系统的另一个问题是,对等体可能不可靠。已经为离线接收方存储了消息的一个或多个对等体本身可能在接收方上线之前也离线了。也就是说,即使为接收方存储了消息,该接收方也可能无法及时地访问到该消息。另外,接收方不能控制对等体的行为,在接收方获得消息之前,对等体可能故意或意外地破坏或损坏了该消息。用于提高P2P网络中消息传送可靠性的一种方法是将该消息存储在多个对等体信箱中。选择该消息可以存储的信箱的数量,以维持特定等级的可靠性(如,消息传送)。但是,随着信箱数量的增加,由于在大量信箱中分配该消息所需的带宽开销和存储开销的原因,系统的伸缩性会随之降低。
[0019]为了维持特定等级的可靠性,相应地可以选择存储该消息的信箱(信箱对等体)的数量。
[0020]如果结构化的P2P网络中的信箱对等体上线时在所述存储消息的位置变成不合格,则其可以将该存储消息传递到适当的对等体。例如,在基于DHT的P2P网络中,如果有一个新的对等体加入到该网络中并改变了该P2P网络的拓扑结构,则DHT算法可以将部分或全部存储消息从当前的信箱对等体移到该新的对等体,因为该新的对等体的ID更接近消息ID。因此,可以假设,只要信箱对等体在线,就能获得存储在对等体中的任何消息。存储消息的这种移动性只能适用于结构化的P2P网络。如果该P2P是非结构化的,则对等体通常不能因为拓扑结构改变而在它们之间传递消息。
[0021]为了保证消息的传送,应该在多个对等体信箱中对该消息进行复制或者传播,从而,当接收方上线时,即使一个或多个对等体离线,也可以及时地传送该消息。在特定的示例性实施例中,该复制方法可以在每个选中的信箱对等体提供该整体消息的一个副本,其中,这些信箱对等体是该消息要发往的地方。在本申请中将这一技术称为“整体消息复制”。整体消息复制适于相对较小尺寸的消息。
[0022]另一种技术是在每个信箱对等体中只存储该消息的一部分。对于这一方案,当接收方上线时,拥有足够组成部分以再现该消息的至少某一版本的一组对等体也应该在线。依照各种示例性实施例,下面描述使用局部消息部分的复制方法:(1)渐进式分层复制方法;(2)等级式分层复制方法。在每种方法中,可以将局部消息部分存储在信箱对等体中,并由被叫对等体获取。
基于渐进式分层的复制
[0023]渐进式分层指的是这样一种分层技术,其可以增加多层,从而,即使一个或多个其它层丢失,也可以提高解码内容的质量。也就是说,每一层都独立于其它层。
基于等级式分层的复制
[0024]等级式分层指的是另一种分层技术,其中,可以增加多个层,但仅在要增加的特定层之下(等级上处于下面的)的层可用时,才能提高解码内容的质量。后一种方法的一个例子是对JPEG编码图像的等级式编码,其中,根据目标分辨率的图像和用下层生成的该图像之间的差异而生成上层。这就使得如果没有下层,则上层也没有用。将上层数据与它的下层数据分开放置就增加了它的一个或多个下层丢失时还能获得该上层数据的概率,从而,所获得的上层是没用的而且也浪费了该上层的带宽和存储空间。
[0025]发明人已开发出一种分析模型,用来预测副本数量,从而实现将消息传送到被叫对等体(即,接收方)的期望等级的可靠性。在这一模型中,采用了下面的符号:(1)整体消息中的信息量为I;(2)获取的平均信息为<Ir>;(3)消息尺寸为m(字节);(4)对等体在线概率为Po;(5)可以发现在线对等体的概率为Pd。在下面的材料中,上层由较小的数字表示,而下层由较大的数字表示。
[0026]为了对接收图像的质量进行建模,可以采用度量标准“信息量”。如果整体消息中的信息量记为I而第i层中的信息量记为Ii,则第i层复制的份数可以是Ni且Ii=αiI,其中,αi确定了第i层中信息的比例,以及,
其中,L等于层数。可以利用诸如平均意见评分(MOS)、峰值信噪比(PSNR)或者均方误差(MSE)等公知的技术来确定信息量I。
[0027]每层的信息量或者αi取决于内容和具体的分层编码技术。如果排列层的顺序使得下层比上层包括有较多的信息,也就是说,信息集中在下层,并且每层的每个副本可以放置在不同的信箱对等体(从而每一层的获取独立于其它层)中,则成功获取第i层的概率vi就是
获取的平均信息<Ir>是:
信息获取率<Ir>/I是:
[0028]在某些示例性实施例中,可以将任何上层和它相对应的下层一起存储起来,这样,例如,如果层3存储在信箱对等体,则层1和层2也可以存储在相同的信箱对等体中。在这一方案中,层组可以这样构成,例如,组j包括层1、2、…、和j的数据。组j中的信息是I′j,而组j的信箱对等体数量是N′j。对于j=1到L-1和N′L=NL,I′j=I1+I2+…+Ij并且N′L=NL-Nj+1。由于存储有组L的信箱对等体包括从1到L的所有层,所以一旦该信箱对等体在线,则来自从1到L-1的其它组的信息就都不需要了。也就是说,只有当存储有组L的信箱对等体不在线时,在与组L-1相关联的信箱对等体中存储的信息才有用。因此,v′j是组j中至少一个信箱对等体在线的概率。本发明人已经确定出平均获取信息<Ir>是:
而平均获取信息率<Ir>/I是:
[0029]可以到达某个单独的信箱对等体的概率是P=Po×Pd。对等体发现概率是当接收方对等体在线时成功发现特定对等体(信箱对等体)的概率,在某些情况下,该概率可能并不小于1。例如,如果对具有有限的生存时间的消息使用消息扩散方法,则P可能小于1。生存时间指的是在某个消息被丢弃之前经历的一段时间或重复或转发的次数。在这种情况下,接收方对等体可能无法在有限的生存时间内找到存储有该消息的信箱对等体。也就是说,在线的信箱对等体有可能无法到达,因为它离该接收对等体的跳数太多了。同样,利用DHT,当该DHT路由表不稳定时,查找消息也有可能无法到达信箱对等体。
[0030]消息最好能够被复制N次,以使信息获取率<Ir>/I接近于1。本发明人已经确定出,<Ir>/I=1-(1-P)KN。因此,可以将N计算为N=log(1-Pr)/Klog(1-P),其中K是接收方对等体尝试连接每个信箱对等体的次数,而Pr是成功传送消息的概率。表1示出了到达成功传送消息的概率为Pr的副本份数N,其中给定了尝试连接每个信箱对等体的次数K和可以到达某个独立的信箱对等体的概率P。
表1.副本份数
K | Pr | P | N |
1 | 0.99 | 0.01 | 459 |
1 | 0.99 | 0.1 | 44 |
1 | 0.99999 | 0.01 | 1146 |
1 | 0.99999 | 0.1 | 110 |
10 | 0.99 | 0.01 | 46 |
10 | 0.99 | 0.1 | 5 |
10 | 0.99999 | 0.01 | 117 |
10 | 0.99999 | 0.1 | 12 |
[0031]表1示出了当P等于0.1时要达到99.999%需要复制的份数是110,而P等于0.01时则要复制1146份。随着对等体在线的概率的降低,N会变大,有可能是这种情况,P2P网络包括大量便携式用户设备,它们只在一天中的有限时间里处于在线状态。减少复制份数的一种方法就是让接收方对等体多次检查是否存在任何存储的消息。该检查应该以间隔开的时间间隔进行。表1还示出了K次尝试之后成功获得的概率。具体而言,随着尝试连接信箱对等体的次数的增加,复制份数以反比关系减少。也就是说,该复制份数可能会减少1/K,但是,消息传送的平均延迟从T升高到KT,其中T是获取尝试之间的时间间隔。
[0032]可以使用两种消息获取模型:拉(Pull)模型和推(Push)模型。依照拉模型,当接收方上线时,它会查找所存储消息的存储位置。在这种模型下,接收方通过联系存储对等体开始消息获取过程。下面参照图1-3描述拉模型。在推模型中,当接收方上线时,由存储对等体(称为信箱对等体)发现上线的接收方并通过连接该接收方开始消息获取过程。下面参照图4和5描述推模型。
[0033]虽然这里分开描述推模型和拉模型,但可以想到的是,本发明的各种示例性实施例可以包括其中任一种模型或者两种模型,以从存储对等体向接收方传递复制的消息。也就是说,存储对等体可以进行监控,从而,当接收方上线时就能发现该接收方并通过联系该接收方而开始消息获取过程,以及/或者,当接收方上线时,由它查找存储消息的位置。如果一起使用,一旦消息(或消息片段)从相应存储对等体传递到接收方,则对于该相应的存储对等体而言处理就完成了。
[0034]虽然某些示例性实施例描述了消息业务是自动化的(如,消息在无人工干预下在对等体之间发送),但应该想到的是,消息业务也可以由一个或多个用户进行控制。为了方便起见,在下面的材料中,由对等体发出的动作可以是自动发出的也可以是在用户控制下发出的。
[0035]图1、2和3是示例性P2P网络的示意图,用于说明依照本发明各个示例性实施例的消息传送的方法。
[0036]现在参照图1、2和3,图1-3中示出了拉模型的结构。这一示例性P2P网络包括5个对等体:110、112、114、116和118。在该示例性P2P网络中,对等体110想要向离线的对等体118发送消息。发送消息之前,在对等体110和118都在线的时候,它们将用于加密消息的密钥进行交换,如箭头120所示。同时,当对等体110想要向离线的对等体118发送消息时,对等体110可以将该消息分成已加密的片段并将这些片段发送到对等体112、114和116(参见箭头122)。当对等体118上线时,它会对一部分或全部的在线对等体进行轮询(参见箭头124),以判断它们是否存储了任何要发给对等体118的消息,如果有,则可以请求传递该消息。然后,对等体118可以对这些消息部分进行解密和重组。
[0037]在这一方案中,可以通过只在主叫对等体110存储消息,并且当被叫对等体118上线时,将该消息和用于解密任何后续消息的密钥进行交换,从而来处理第一次连接。主叫对等体110可以在其它对等体112、114和116留下语音邮件通知,以告知被叫对等体118有消息在等候。然后,被叫对等体118会在它们都在线时尝试联系主叫对等体110。
[0038]利用拉模型,可以将消息片段仅存储在被叫对等体118可访问的对等体112、114和116中。一种可以确保连接的方法是,由被叫对等体118确定一份它可以到达的对等体的候选URL位置列表(如,对等体112、114和116),并将这份列表发送给主叫对等体110,同时交换密钥。然后,当主叫对等体110向离线的被叫对等体118发送消息时,它会将消息发送到URL列表上的对等体。
[0039]可以想到的是,在某些示例性实施例中,分段可能会重叠,因此并不需要恢复所有的分段以再现原始消息。
[0040]或者,也可以采用一种多级方案,其中,实际的消息(即,主要等级消息一等级1)存储在选定的位置,而只有关于该存储的主要等级消息的元数据(即,包括位置信息-等级2)存储在其它选定的位置。由于元数据相对较小,所以它可以存储在很多位置,同时整体的加密或未加密的消息可以存储在较少数量的位置,其中的一些可能并不在被叫对等体的URL列表上。例如,这些位置可能被选中,因为它们有较高的在线概率(Po)。
[0041]虽然前面描述了对消息进行加密,但是可以想到的是,根据其敏感度或者诸如对等体处理功率、系统带宽和P2P网络的其它安全性测量等其它因素,也可以不对其进行加密。如果对其进行加密,则可以采用多种不同方法对其加密,这些方法包括如上所述的公开密钥方法或者在公钥、私钥系统使用公开密钥。选择用于存储消息的对等体可以依据:(1)预先安排好的组;(2)基于所用网络的结构,它们对接收方的接近程度,如DHT条目;和/或(3)随机选择。该选择可以是在主叫对等体110和被叫对等体118之间达成一致的,例如,在保密信息的最初交换期间。该消息可以分段的形式存储也可以整体存储。可以选择复制的份数以达到期望的接收概率。这一概率随着消息的重要性而改变,而该重要性是由主叫对等体为某个特定消息设置的,或者由主叫对等体根据呼叫者设置的偏好自动设置。
[0042]如果使用两级存储,则要定义主要信箱和次要信箱。该次要信箱可以是由主叫对等体110为了存储消息或被叫对等体118为了获取消息而最初连接的信箱。这些信箱可以包括存储该消息(或它的消息片段)的主要信箱(一个或多个信箱)的位置。虽然将它们描述成是分开的,但主要信箱和次要信箱之间的差别只是逻辑上的差别。也就是说,一些主要信箱也可以充当次要信箱。
[0043]由于主要信箱的地址可以由次要信箱提供,所以可以任意选择这些主要信箱,因此,可以由被叫对等体118利用常规的寻址方案到达该主要信箱。主要信箱的选择也可以基于它们的存储空间和/或基于P2P网络上的消息的负载平衡。选择多个次要信箱可以增加可靠性。如上所述,次要信箱执行的功能相对开销较小,因为存储的信息(即,包括一个或多个主要信箱对等体的地址的元数据)比较小。
[0044]如果采用单级存储,则由主要信箱存储消息而不需要次要信箱。在这种特定情况下,被叫对等体118期望可以容易地访问主要信箱。可以依照在两级系统中选择次要信箱的方法选择这些信箱。例如,利用UHT,可以依照下面的DHT方案将被叫对等体的标识符(或它的依据预定规则的变形)映射到资源ID。然后,主叫对等体110可以连接控制该资源ID的对等体节点,并可以将这一节点用作(第一)主要信箱(即,信箱对等体)。当需要多个主要信箱时,DHT特定规则可以用于确定其它对等体。
[0045]例如,如果P2P网络是用Chord(环形)拓扑构建的(例如,参看Frank Dabek et al.,“Building Peer-to Peer Systems With Chord,aDistributed Lookup Service,”MIT Laboratory for Computer Science),则可以选择从第一个主要信箱对等体(节点)开始的连续对等体节点。具有可访问主要信箱对等体的结构化P2P网络的优点几乎可以确保成功检查消息和合理的速度(假设合理的DHT性能)。
[0046]或者,也可以在非结构化的P2P中实现单级存储系统。在这一特定情况中,发送方可以随机挑选R个对等体用于存储。然后,接收方可以用预定的名字开始搜索存储的消息。这一系统的主要优点就是它的简单性。如果可以选择离被叫对等体最近的对等体节点作为主要信箱,则消息检查的可靠性和延时可以得到改进(尤其是,如果将扩散法用于该搜索)。
[0047]在单级系统中,也可以预先安排好主要信箱对等体,如利用URL列表。这一方案鼓励对等体与其它对等体进行交流以得到允许作为主要信箱。对等体之间的业务关联会回报更多的合作(社会化的)对等体。通过随机将消息留在与另一对等体协作的组成员,来验证某个对等体的真实性要相对容易。
[0048]依照某些示例性实施例,在会话过程中,对等体可以交换信箱对等体的列表。然后,当被叫对等体118离线时,可以将一些预先安排的信箱作为主要信箱。这一方案的优点在于它高效且可靠,没有DHT维护的开销,容易升级并且促进协作和奖励合作节点。这一单级系统(方法)也可以和另一种方法一起使用,例如,该方法处理主叫对等体110和被叫对等体118之间的首次联系。
[0049]依照某些示例性实施例,信箱对等体112,114和116可以告知被叫对等体118存在要发送到被叫对等体118或者被叫对等体118的用户的存储消息。被叫对等体118或者其用户会选择这些消息中一些或全部,并且从适当的信箱对等体112、114或116获取这些消息。也就是说,被叫对等体118可以首先收到来自信箱对等体112、114和116的消息的列表,然后,在被叫对等体118或者被叫对等体118的用户确定(选择)了获得一些或全部消息之后,才进行实际的消息传送。
[0050]图4A和4B是另一个示例性P2P网络的示意图,用于说明依照本发明的各个示例性实施例的其它的消息传送方法。
[0051]现在参照图4A和4B,在图4A和4B中示出了推模型的结构。这一示例性网络可以包括对等体110、112、114、116和118。还可以包括现状(Presence)服务220。现状服务220指的是一种至少跟踪对等体在对等网络200中的出现情况的服务。例如,该现状服务可以包括一个或多个服务器/对等体,用于负责跟踪某个对等体的出现情况(如,对等网络200中哪些对等体当前是在线的),并且,例如,用于通知信箱对等体被叫对等体在线。示例性的推模型可以按照如下运行,主叫对等体110随机选择R个对等体用于存储。每个信箱对等体只接收部分消息,因此不足够重新生成完整的消息。每个消息片段可以包括关于接收方118(即,被叫对等体)的信息,因此信箱对等体112、114和116就可以预知接收方的出现情况。也就是说,这些信箱对等体利用现状服务(或现状服务器)确定被叫对等体118何时在线。当被叫对等体118上线时,每个信箱对等体112、114和116可以通过现状服务220来获知这一情况,并且可以将它们的消息片段传送到该接收方118。理想的情况是有安全的P2P现状服务。
[0052]可以依照下面的标准来选择信箱对等体112、114和116。如果存储在每个信箱对等体的消息片段没有加密,则这些片段应该足够小,这样即使收集了一些这样的分段也不足以重构出原始消息或者从中判断出任何的重要信息。在这种情况下,可以随机选择信箱对等体112、114和116,这样它们就是无法预测的。此外,对等体的总数要足够大,以避免被攻击者扫描而盗取该消息。因此,该推模型可以包括消息加密方法,例如,不加密、用共享密钥加密或用公开密钥加密。用公开密钥加密的优点是,对于适当的基础设施有很好的安全性。而对于拉模型,用于到达期望的可靠性等级的复制份数可以预先确定,或者根据测量出的量,如P2P网络中各个对等体的在线时间。
[0053]共享密钥的优点主要是,它能够在没有附加基础设施的情况下使用。但是,共享密钥建立易受到中间人攻击,例如,采用Diffie-Hellman算法时。对于拉模型,为了减少或避免这种中间人攻击,可以在主叫对等体110和被叫对等体118均在线时改变共享密钥。这可以通过只留下一个通知来实现,该通知表示有消息存在于选出的信箱对等体112、114和116中。
[0054]本发明人已经开发出一种利用内容感知消息分段方法在P2P网络中传送消息的方案。对于文本消息,该方案可以将该消息划分成优先级相等的片段,并且可以为每一片创建几乎相等数量的副本。但是,包括有附件的文本消息可以允许内容感知的分段方案。在这一示例性方案中,消息和消息各部分复制的次数可以大于复制附件的次数,并且相比于附件发送到更多的信箱对等体,从而,提高被叫对等体能够获取消息的概率。
[0055]对于诸如JPEG编码图片之类的视频和图像,该内容感知的方法可以将该图像划分(分解)成多层。每一层有不同的优先级,而主要层的优先级最高。然后,该方案将每一层再划分成片段,并将较高优先级的层复制较多次,以提高到达被叫对等体的概率。该复制份数可以根据每一层的图像内容。也就是说,如果图像内容接近于原始图像的内容,则应增加复制的次数。可以将各层或层片段发送到相应数量的信箱对等体。或者,对于视频数据,该方法也可以采用多重描述编码(Multiple Description Coding)并遵从相似的优先级方案。
[0056]如上所述,在拉模型中,某个消息或消息部分的复制份数N可以根据公式N=log(1-Pr)/log(1-P)(其中K=1)来确定。在一些情况中,特别当Pr或Po较小时,N可能会很大。降低N的大小的一种方法是使被叫对等体不止一次尝试获取它的消息,其中,该多次尝试在时间上的分布是Pr=1-(1-P)NK。在这种情况下,复制份数为N=log(1-Pr)/Klog(1-P)。这可以大大降低为了达到期望的可靠性所需复制的份数。
[0057]应当理解的是,所述的方法可以用硬件、软件或者二者的组合来实现。在这样的实施例中,下面所描述的各种组件和步骤都可以用硬件和/或软件来实现。
[0058]在某些示例性实施例中,可以将要发送到被叫对等体的消息划分成片段,并且,或者可以将这些消息片段进行复制,或者将其发送到(即,并行发送到)相应的信箱对等体112、114和116,或传播(如,发送并转发)到信箱对等体112、114和116(即,从信箱对等体112、114或116中的一个串行发送到下一个信箱对等体)。
[0059]在某些示例性实施例中,被叫对等体118可以先接收以它为目的地的消息的列表,然后,开始传送由被叫对等体118或被叫对等体118的用户根据该收到的列表选出的消息。也就是说,例如,被叫对等体根据收到的消息列表,传送由被叫对等体118或被叫对等体118的用户选出的一些或全部实际消息。
[0060]图5的框图示出了本发明的某些示例性实施例所用的对等网络的一个对等体。
[0061]现在参照图5,每个对等体110、112、114、116或118可以包括发射单元130和接收单元140,用于与例如其它对等体110、112、114、116或118或现状服务220进行通信。也就是说,每个对等体可以通过天线(未示出)进行无线通信或者通过有线连接(未示出)进行通信。
[0062]每个对等体110、112、114、116或118还可以包括分解单元150,用于:将消息分解成多层,从而,相应层的至少一种组合可以表示该消息的一个版本;选择分解消息的相应层的至少一种组合,以到达或超过该消息的再现版本的门限质量;并通过发射单元130将相应层的至少一种组合发送到预定数量的其它多个对等体。例如,分解单元150可以将消息分解成多层。一层或者相应层的一种组合可以表示所生成的消息的一个版本。也就是说,由分解单元130分解出的每一层可以各自表示分解消息的一个分量(例如,分解消息的频率分量或空间分量)。
[0063]每个对等体110、112、114、116或118也可以包括重组单元,用于通过将相应层的至少一个组合予以组合,而重构分解消息,从而生成消息的重构版本。也就是说,例如,被叫对等体118可以接收与发送到被叫对等体118的消息相对应的一个或多个存储层或层片段,并且,重组单元160可以重构出要发送到被叫对等体118的消息的一个版本。
[0064]虽然,前面描述了对等体110、112、114、116或118包括分解单元150和重组单元160,但应该想到的是,对于某些示例性实施例,各个对等体110、112、114、116或118可以不包括这其中的任何一个单元,或者只包括其中的一个单元。
[0065]图6、7A、7B、8和9示出了依照本发明的各个示例性实施例用于在对等网络中主叫对等体和被叫对等体之间进行通信的方法的流程图。
[0066]例如,图6示出了利用信箱对等体的消息的整体消息传递。图7A和7B示出了主要和次要等级消息的使用以及利用信箱对等体对这些消息进行存储/传递。图8示出了消息压缩和利用信箱对等体对压缩消息进行存储/传递。图9示出了将消息分解为层、利用信箱对等体进行存储/传递以及从接收到的层重新构造消息版本。
[0067]现在参照图6,在框605中,生成经由对等网络100(图1所示)或图4A所示的对等网络200的被叫对等体118发往被叫者(即,被叫用户)的消息。该消息可以是文本消息、图像、语音消息、视频消息或它们的任意组合,并可以由任何数量的不同设备生成,例如这些设备有蜂窝电话、计算机、个人数字助理和录制设备等等。
[0068]在框610中,主叫对等体110可以判断被叫对等体118是否离线(如,处于不活动、不可访问、不可达状态,或者已经离开对等网络100)。在框615中,如果被叫对等体118在线(如,处于活动和可访问状态),则主叫对等体110可以将以被叫对等体118为目的地的消息发送给它。因为主叫对等体110和被叫对等体118都在线,所以发送到被叫对等体118的消息可以通过常规的对等网络路由进行发送。
[0069]在某些示例性实施例中,在消息发送到被叫对等体118之前,主叫对等体110会对该消息进行分段处理以准备通过分组网络(如,互联网)进行分组发送,并且/或者,可以对消息进行加密以防止那些没有合适的解密密钥的对等体发现该消息内容。被叫对等体118已经事先得到适当的解密密钥。
[0070]在可选框630中,如果被叫对等体118离线,则将以被叫对等体118为目的地的消息划分成片段,例如,用于通过互联网进行发送,并且/或者,使该消息遍布在大量信箱对等体112、114和116中,例如,以提高该消息的安全性(如,使得很难或者几乎不可能重新构造这些散布的分段)。
[0071]在可选框640中,对以被叫对等体118为目的地的消息进行加密,该消息可能在框630已经被分段。也就是说,如果该消息被分段,则可以分别加密各消息片段,另外,可以加密整体消息。此外,在可选框640中,也可以将可能已经被分段的以被叫对等体118为目的地的消息进行数字签名以鉴别该消息或消息片段,当然也可以不这样做。也就是说,如果消息已经被分段,则可以对可能已经加密的消息片段分别进行数字签名。或者,也可以对可能已经加密的整体消息进行数字签名。
[0072]在框645中,主叫对等体110可以将来自框630以被叫对等体118为目的地的消息或消息片段复制N次。N可以是预定的数字,例如,也可以根据对等网络100或200中相应对等体110、112、114、116和118在线的概率和期望的消息传送可靠性。该概率可以根据某个平均概率,或者还可以包括与对等网络100或200上的一部分或所有单独对等体有关的概率。例如,主叫对等体110的在线概率可以影响消息或消息片段的复制次数。
[0073]虽然前面描述了在复制之前在框640中的加密和/或数字签名步骤,但是可以在加密和/或数字签名步骤之前复制消息或消息片段。例如,在这种情况下,可以分别对每个复制的消息或消息片段进行加密。
[0074]在框650中,主叫对等体110可以发送这N份复制消息或者与这N份复制消息对应的复制消息片段,以分别存储在对等网络100或200的各信箱对等体112、114和116中。用于存储该消息或消息片段的信箱对等体112、114和116可以:(1)随机或类似随机的方式选择;(2)根据对等体112、114和116相对于被叫对等体118的位置进行选择;和/或(3)预先选择好(即,预先安排好)。
[0075]以随机或基本随机的方式选择信箱对等体112、114和116可能会涉及,例如,将消息或消息片段路由随机数量的跳数,该路由过程利用每一跳随机选择的分布式哈希表条目进行。这一方案可以通过将生成的随机数分割成路由信息,从常规的随机数生成器生成的至少最小长度的任何随机数进行应用。也就是说,例如,随机数的第一段可以对应于对等网络中的跳数,随机数的第二段可以对应于分布式哈希表(DHT)中选择的用于将该复制消息或消息片段路由到第一个路由对等体(如,对等体112)的条目。
[0076]在第一个路由对等体根据主叫对等体110的DHT中选择的条目接收到复制消息或消息片段后,则将跳数减1,并且,随机数的第三段可以对应于第一个路由对等体112的分布式哈希表(DHT)中选择的用于将该复制消息或消息片段路由的第二个路由对等体(如,对等体116)的条目。重复这些操作,直到跳数减少到0为止。当跳数减少到0时,如果该路由对等体并没有存储特定的复制消息或消息片段,则它可以存储该特定的复制消息或消息片段。如果该特定的复制消息或消息片段已经存储在路由对等体中,则可以随机地根据该路由对等体到另一个路由对等体的DHT条目进行额外的一跳。如果该特定的复制消息或消息片段没有存储在该另一个路由对等体中,则该消息或消息片段可以存储在该另一个路由对等体中。可以重复额外的跳序列,直到找到没有存储该复制消息或消息片段的路由对等体为止。
[0077]根据对等网络的拓扑结构(如,chord拓扑、pastry拓扑),每个对等体可以有其它的相邻对等体。也就是说,相邻对等体可以是,例如:(1)在chord网络中远离被叫对等体一跳、两跳或三跳;或(2)在分支式网络中与被叫对等体在一个共用分支上。在这样的网络中,可以将消息或消息片段存储在离被叫对等体较近的地方(在相邻对等体中),此外,对于结构化的网络,例如chord网络,可以将消息或消息片段存储在被叫对等体离线时对该被叫对等体的资源ID负责的对等体中。例如在chord网络中,这可以是被叫对等体的一系列N个后继对等体。在这种条件下,当被叫对等体上线时,由于该被叫对等体部分加入到对等网络中,可以向该被叫对等体提供消息或消息片段。
[0078]信箱对等体112、114和116还可以预先在主叫对等体110和被叫对等体118之间进行选择(即,预先安排),这样,当被叫对等体118上线时,被叫对等体118就知道预先检查某些信箱对等体112、114和116以获取消息或消息片段。这样,可以预先选择信箱对等体112、114和116,其根据:(1)接近程度;(2)安全问题(即,例如,选择友好对等体,或者可以共同拥有的对等体);和/或(3)某些对等体在线的概率(因此降低要发送的消息的复制份数)等等。
[0079]如果消息被分段:(1)可以将表示整体消息的消息片段一起发送到各个对等体112、114或116;或者(2)可以分别将每个消息片段发送到各个选出的信箱对等体112、114或116。也就是说,可以将整体消息存储在在线的各个信箱对等体112、114或116中,或者,例如,可以将各个消息片段随机发送到任何信箱对等体112、114或116,并且,如果信箱对等体112、114或116在线,则将各个消息片段存储在其中。后一种方法提高了消息的安全性,并且,例如如果消息片段没有加密,则是所期望的。
[0080]虽然上面描述了消息复制或消息片段复制及发送,但是应该想到的是,可以将消息或消息片段从一个信箱对等体112、114或116传播(发送和转发)到下一个信箱对等体112、114或116。也就是说,如果不并行发送复制消息或消息片段,可以将其串行地(从一个信箱对等体到下一个信箱对等体)发送到各个选出的信箱对等体,直到把该消息传播到适当数量的对等体为止。这种消息的传播可以降低用在对于这种消息服务的对等网络中的全部消息容量。
[0081]在框660中,每个信箱对等体112、114和116可以判断被叫对等体118是否上线(如,处于活动和可访问状态)。对于被叫对等体118是否已经上线的判断可以根据:(1)被叫对等体118将它已经上线的消息告知预先安排的一组信箱对等体112、114和116;(2)被叫对等体118将它已经上线的消息广播给它所知晓的(如,可访问的)其它对等体;(3)每个信箱对等体112、114或116轮询被叫对等体118,并通过接收来自被叫对等体118的响应判断被叫对等体118是否已经上线;和/或(4)使用现状服务220(例如,一个或多个服务器或对等体,用于跟踪对等体(在对等网络200上当前在线的那些对等体)的出现情况,并且,例如,用于告知预定信箱对等体(如,信箱对等体112)被叫对等体118在线)。该现状服务可以包括处于对等网络200中的设备,如对等体,并且/或者,可以包括处于对等网络200外部的其它设备,如服务器、网关设备和其它微处理器设备等等。
[0082]例如,现状服务220可以从在线的被叫对等体118接收通知224。每个信箱对等体112、114或116可以向现状服务220发送询问,以询问被叫对等体118是否在线。现状服务220可以通过提供被叫对等体118当前在线或离线的通知226来响应该询问。该询问可以包括生存时间(指示将通知延伸到发送询问的信箱对等体(如,信箱对等体112、114或116)的时间帧,以指示被叫对等体118的状态改变(如,在线或离线))。也就是说,如果被叫对等体118在生存时间段结束之前告知现状服务220它在线,则现状服务220可以自动地将被叫对等体在线的通知发送到特定的信箱对等体112、114或116。在已经发送通知之后或在生存时间段结束之后,将该询问从现状服务220移出。
[0083]现状服务220指的是一种方案,通过该方案第一个对等体/用户至少接收到关于第二个对等体的可达性(即,它的出现状况)的通知。当第一个对等体/用户想知道第二个对等体的现状信息时,则该第一个对等体/用户可以预订关于第二个对等体的现状信息(它的出现状况)。当关于第二个对等体的现状信息改变时,该现状服务直接向第一个对等体/用户发送通知。如果第一个对等体/用户那个时候并不在线,则该现状服务会按照第一个对等体/用户和现状服务之间预先安排的规则将通知留在其它对等体。现状服务可以根据一个或多个现状服务器,例如,在对等网络之外的现状服务器。在这种情况下,第一个对等体可以向该现状服务预订信息,而第二个对等体将它的现状信息公布给现状服务器。现状服务器可以将一个或多个通知发送到该第一个对等体/用户。
[0084]在框670中,如果特定的信箱对等体112、114或116判断出被叫对等体118已经上线,则该特定的信箱对等体112、114或116可以向被叫对等体118传送消息或消息片段,或者此外,通知被叫对等体118有存储的消息或消息片段并且等待传递。
[0085]在本发明的某些示例性实施例中,可以采用多级消息系统。在这种情况中,主要等级消息可以包括以被叫对等体为目的地的原始消息或消息片段,而次要消息包括主要等级消息或消息片段已经发往的对等体的地址。因此,该次要等级消息包括指向主要等级消息的指针和关于该主要等级消息的元数据,但是可以不包括该主要等级消息。在这样的示例性实施例中,被叫对等体118可以先接收次要等级消息,以便于传递主要等级消息。
[0086]现在参照图7A和7B,在框705中,生成以对等网络100或200中的被叫对等体118为目的地的消息。
[0087]在框710中,主叫对等体110可以判断被叫对等体118是否离线。在框715中,如果被叫对等体118在线(如,处于活动且可访问状态),则主叫对等体可以发送以被叫对等体118为目的地的主要等级消息以到达该被叫对等体118。也就是说,发往被叫对等体118的主要等级消息可以通过常规的端到端路由进行发送,因为主叫对等体110和被叫对等体118均在线。在该主要等级消息发送到被叫对等体118之前,由主叫对等体110对其进行分段处理以准备通过分组网络(如互联网)进行分组发送,并且/或者,可以对该主要等级消息进行加密以避免那些没有合适的解密密钥的对等体发现消息内容。被叫对等体118可以事先得到这样的解密密钥。
[0088]如果被叫对等体118不在线,则在框720中,可以生成次要等级消息,该消息至少包括主要消息或消息片段所要发往的各个信箱对等体112、114和116的地址。
[0089]在可选框730中,可以将以被叫对等体118为目的地的主要及次要等级消息划分成片段,例如,用于通过互联网发送,并且/或者,将这些消息传播到大量的信箱对等体112、114和116。在可选框740中,可以对可能在框730中已经被分段的以被叫对等体118为目的地的主要及次要等级消息进行加密。
[0090]在可选框745中,可以对可能已经被分段和/或加密的以被叫对等体118为目的地的主要及次要等级消息进行数字签名。
[0091]在框750中,主叫对等体110可以将加密(或未加密)的以被叫对等体118为目的地的主要等级消息或消息片段复制第一数量的次数(N次),并将加密(或未加密)的以被叫对等体118为目的地的次要等级消息或消息片段复制第二数量的次数(M次)。N和M可以是预定的数量,并且/或者,例如,可以根据对等网络100中的对等体110、112、114、116和118在线的概率和期望的消息传送可靠性。该概率可以根据平均概率,或者此外,可以包括与对等网络100或200上的一部分或所有各个对等体相关的概率。此外,M最好大于N。因为每个次要等级消息包括相对较小量的信息,与同样数量的主要等级消息相比,大量的复制及传递对P2P网络带宽的消耗相对较小。
[0092]在框760中,主叫对等体110可以发送该N份复制的主要等级消息或与该N份复制的主要等级消息相对应的复制的主要等级消息片段,以分别存储在对等网络100的信箱对等体112、114和116中。可以随机选择或以类似随机的方式选择用于存储这些消息或消息片段的信箱对等体112、114和116,以提高主要等级消息的安全性。
[0093]在框770中,可以复制并发送次要等级消息,其方式可以类似于复制该主要等级消息到被叫对等体118可以访问的信箱对等体112、114和116并由这些信箱对等体112、114和116中在线的对等体存储消息。例如,可访问信箱对等体可以指预先安排好的信箱对等体、相邻对等体或后继对等体等等。最好是对次要等级消息进行加密并保密任何预先安排的信箱对等体112、114和116的地址,以提高安全性。次要等级消息可以包括关于主要等级消息的元数据,该元数据包括存储有主要等级消息或主要等级消息片段的信箱对等体112、114和116的地址。每个次要等级消息的元数据可以包括信息指示,例如:(1)所存储的部分或整体主要等级消息或消息片段的地址;(2)主叫方;(3)被叫对等体;(4)消息的优先级;(5)主要/次要等级消息的生存时间;和/或(6)呼叫者是否要求确认。
[0094]在框780(如图7B中所示)中,可访问的信箱对等体可以判断被叫对等体118是否已经上线(如,处于活动且可访问状态)。对于被叫对等体118是否已经上线的判断可以根据:(1)被叫对等体118将它已经上线的消息告知可访问的信箱对等体112、114和116;(2)每个信箱对等体112、114或116轮询被叫对等体118,并根据从被叫对等体118收到的响应判断被叫对等体118是否已经上线;和/或(3)利用现状服务220,来跟踪被叫对等体的出现情况并通知可访问的信箱对等体被叫对等体118已经在线。
[0095]在框785中,如果某个特定的可访问信箱对等体112、114或116判断出被叫对等体118已经上线,则该特定的可访问信箱对等体112、114或116可以将次要等级消息或消息片段传送到被叫对等体118,或者此外,可以通知被叫对等体118它正在存储次要等级消息。
[0096]如果次要等级消息在可选框745中进行了数字签名,则在可选框788中,被叫对等体118可以判断是否可以根据次要等级消息或次要等级消息片段的数字签名鉴别次要等级消息或消息片段(如,来自主叫对等体110的数字签名是否合适)。在框789中,如果无法鉴别数字签名,则对要发送到被叫对等体118的特定的次要等级消息或消息片段的处理可以终止。
[0097]如果该处理在框789中未终止,则在框790中,被叫对等体118可以通知一个或多个存储有主要等级消息或主要等级消息片段的信箱对等体,以将该主要等级消息或主要等级消息片段发送给它。
[0098]在框795中,被叫对等体118可以接收主要等级消息或与主要等级消息相对应的主要等级消息片段。可以并行地或串行地完成框790的通知信箱对等体操作和在块795的接收操作。也就是说,例如,被叫对等体118可以或者向存储有主要等级消息的信箱对等体广播一条消息,或者可以有系统地逐个轮询那些存储有主要等级消息的信箱对等体。在后一种情况下,发送到信箱对等体的轮询消息可以包括关于先前收到的消息片段的信息,以使这些片段不会再冗余地发送到被叫对等体118。
[0099]参照图8,为了简单起见,对与图6中的框605、610、615、630和640相同的图8中的框805、810、815、830和840仅作简要描述。
[0100]在框805和810中,生成消息并判断被叫对等体是否在线。在框815中,如果被叫对等体在线则将消息直接发送给它。
[0101]在框820中,如果被叫对等体118离线,则可以将要发送到被叫对等体118的消息进行压缩(无损或有损压缩)。在有损压缩的情况下,可以将压缩质量(如,分辨率和透明性)设定在预定的等级。
[0102]在框850中,可以将分别在框820、830和840进行压缩、分段、加密和/或数字签名的消息发送到预定数量的其它对等体。该预定的数量与将消息(压缩的、分段的和/或加密的)成功传送到被叫对等体118的门限概率有关。
[0103]在框860中,可以将发送的消息或消息片段存储在其它对等体中,如在线的对等体112、114和/或116。也就是说,那些发送消息或消息片段并且在传送期间在线的对等体可以存储该消息或消息片段。
[0104]对于用于存储消息或消息片段的其它对等体112、114和116的选择可以:(1)根据随机或类似随机地选择其它对等体112、114或116;(2)根据其它对等体112、114或116相对于被叫对等体118的位置;和/或(3)预先选定的(即,预先安排好的)。
[0105]在框870中,每个其它对等体112、114和116可以判断被叫对等体118是否在线(如,处于活动且可访问状态)。对于被叫对等体118是否已经上线的判断可以根据:(1)被叫对等体118将它已经上线的消息告知一组预先安排的信箱对等体112、114和116;(2)被叫对等体118将它已经上线的消息广播给它所知晓的(如,可访问的)其它对等体;(3)每个信箱对等体112、114或116轮询被叫对等体118,并通过从被叫对等体118接收响应判断其是否已经上线;和/或(4)利用现状服务220。
[0106]在框880中,如果特定的其它对等体112、114或116判断出被叫对等体118已经上线,则该特定的其它对等体112、114或116可以将消息或消息片段传送到被叫对等体118,或者,还可以通知被叫对等体118有存储的消息或消息片段并且等待传递到被叫对等体118。
[0107]如果消息或消息片段在可选框840中进行了数字签名,则在可选框885中,被叫对等体118可以根据该数字签名判断是否可以鉴别该消息或消息片段。在可选框886中,如果无法鉴别消息或消息片段的数字签名,则对于传送到被叫对等体118的特定的消息或消息片段的处理就可以终止。
[0108]在框890中,可以通过被叫对等体118向用户提供消息。在包括压缩、分段和/或加密的某些实施例中,可以在将消息提供给用户之前将其存储(根据逆操作),即,解压缩、重组消息片段和/或解密。
[0109]在某些实施例中包括对消息进行数字签名,可以在将消息提供给用户之前先鉴别该消息,并且虽然没有示出,如果该消息没有得到还原(根据逆操作),即解压缩,则对该消息的鉴别操作应该终止。如果该消息已经还原,则在向用户提供消息之前重组该消息片段和/或进行解密。
[0110]现在参照图9,为了简要起见,对与图6中的框605、610和615相同的图8中的框905、910和915仅作简要描述。
[0111]在框905和910中,生成消息并判断被叫对等体118是否在线。在框915中,如果被叫对等体118在线则将消息直接发送给它。
[0112]在框920中,如果被叫对等体118离线,则可以将要发送到被叫对等体118的消息分解成层。例如,该消息可以分解成多层。一层或相应层的一种组合可以表示所生成的消息的一个版本。也就是说,每一层可以单独表示分解消息的一个分量(如,该分解消息的频率分量或空间分量),这样各层都可以和任何其它层相组合,以生成与组合的各层有关的分解消息的改进版本。这一分解技术被称为渐进式分层。另一种分解技术是等级式分层,其中,至少一部分层需要其它层才能重新构造分解消息。这一分解技术的实例包括例如在JPEG标准中的差分编码方案。
[0113]在可选框930中,如果被叫对等体118离线,则将与发送到被叫对等体118的消息相对应的层划分成片段。在可选框940中,可以对这些可能在框930中得以分段的发往被叫对等体118的层进行加密。也就是说,如果对这些层进行分段,则可以分别对每一层片段进行加密,或者,可以对整个层进行加密。
[0114]在可选框945中,可以对这些可能已得以分段和/或加密的发往被叫对等体118的层进行数字签名。
[0115]在框950中,可以将与可能已经分别在可选框930和940得以分段和/或加密的消息相对应的分解层发送到选出的其它对等体。这些选出的其它对等体可以是预先确定的。选出的对等体的数量可以相关于与发往被叫对等体118的原始消息相对应的重构消息的门限质量的成功传送的门限概率。也就是说,可以将每一层或层片段发送到相同或不同数量的选出的对等体。发送到各个对等体的层或层片段的数量可以根据特定层的质量(如,在与原始消息有关的特定层中的信息量)、各个对等体112、114和116在对等网络100或200中在线的概率和消息传送的期望可靠性。也就是说,例如,与低质量的层相比,高质量的层可以发送到更多的对等体。
[0116]在框960中,可以将所发送的层或层片段存储在其它对等体中,例如,在线的对等体112、114和/或116。也就是说,那些被发送了层或层片段并且在传送期间在线的对等体可以存储它们。
[0117]对于用于存储消息或消息片段的其它对等体112、114和116的选择可以:(1)根据随机或类似随机选择其它对等体112、114或116;(2)根据其它对等体112、114或116相对于被叫对等体118的位置;和/或(3)预先选出的(即,预先安排好的)。
[0118]在框970中,每个存储有层或层片段的其它对等体112、114和116可以判断被叫对等体118是否已经上线(如,处于活动且可访问状态)。对于被叫对等体118是否已经上线的判断可以根据:(1)被叫对等体118将它已经上线的消息告知一组预先安排的信箱对等体112、114和116;(2)被叫对等体118将它已经上线的消息广播给它所知晓的(如,可访问的)其它对等体;(3)每个信箱对等体112、114或116轮询被叫对等体118,并通过从被叫对等体118接收响应判断其是否已经上线;和/或(4)利用现状服务220。
[0119]在框980中,被叫对等体118可以接收与发往被叫对等体118的消息相对应的一个或多个存储层或层片段。
[0120]如果这些层在可选框945中已经经过数字签名,则在可选框985中,被叫对等体118可以根据该数字签名判断这些层是否可以得以鉴别。在可选框986中,如果无法鉴别特定的层或层片段的数字签名,则对于传送到被叫对等体118的特定层或层片段的处理可以终止。
[0121]在框990中,根据接收到的及经过鉴别的层或层片段重新构造出以被叫对等体为目的地的消息的一个版本。
[0122]如果收到的没有加密的一层质量高于某个门限等级,则可以将该层提供给被叫方(即,被叫用户)。否则,如果原始分层已经经过分段或加密,则要进行逆操作(即,重组分段的层和/或对其解密)。此外,可以将这些层重新组合,以生成相比于未组合的层有更高质量的原始消息的重构版本。
[0123]在框995中,可以经由被叫对等体118将消息提供给用户。
[0124]本发明的示例性实施例给出了一种基于分层的复制方法,这可以节省很多的带宽(开销)。这些复制方法实现了P2P网络中可伸缩的和可靠的多媒体消息业务,尤其是,在对等体在线可靠性较低的情况下(即,它们很不可靠),例如,便携式消息电子设备。在这一的P2P网络中,可靠地发送消息是很重要的,因此,相比于非分层方法的整体消息传送的概率,分层方法可以实现部分消息的高概率传送。
[0125]虽然围绕着消息系统描述了本发明,但可以想到的是,它可以用微处理器/通用计算机(为示出)上的软件来实现。在各种实施例中,各个组件的一个或多个功能可以用控制通用计算机的软件来实现。这一软件可以嵌入在计算机可读的载体中,如,磁盘或光盘、存储卡或音频、射频或光载波中。
[0126]虽然这里参照具体的实施例说明并描述了本发明,但是本发明并不限于示出的细节。因此,在不偏离所附权利要求及其等同物定义的总体发明构思精神或保护范围的前提下,可以做出各种修改。
Claims (31)
1、一种用于在对等网络中从主叫对等体向被叫对等体发送消息的方法,包括下列步骤:
由所述主叫对等体判断所述被叫对等体是否离线;
如果所述被叫对等体离线,则
a)将所述消息复制N次,以及
b)发送所述N份复制消息,以便存储在N个相应的对等体中。
2、根据权利要求1所述的方法,还包括以下步骤:
根据一个对等体在所述对等网络中在线的概率和消息传送的期望可靠性,确定所述次数N。
3、根据权利要求1所述的方法,还包括以下步骤:
在发送每份复制消息前,对所述复制消息进行加密。
4、根据权利要求1所述的方法,还包括以下步骤:
在复制所述消息之前,将所述消息分成多个片段,从而复制各所述片段。
5、根据权利要求1所述的方法,还包括以下步骤:
当所述被叫对等体上线时,对所述被叫对等体可访问的其它对等体进行轮询,以判断所述消息是否正在等待。
6、根据权利要求1所述的方法,还包括以下步骤:
当所述被叫对等体上线时,让存储有所述消息的对等体告知所述被叫对等体所述消息正在等待。
7、根据权利要求1所述的方法,还包括以下步骤:
响应所述被叫对等体的请求,由所述N个相应对等体中的至少一个发送所述N份复制消息中的至少一份。
8、根据权利要求1所述的方法,还包括以下步骤:
由所述N个相应对等体中的至少一个判断所述被叫对等体是否已经上线;以及
如果所述被叫对等体上线,则由所述N个相应对等体中的所述至少一个发送所述N份复制消息中的至少一份。
9、根据权利要求1所述的方法,还包括以下步骤:
生成主要等级消息,其包括所述消息要发往的对等体的地址;以及
将所述主要等级消息发送到那些被识别为可由所述被叫对等体访问的对等体。
10、根据权利要求1所述的方法,还包括以下步骤:
将所述消息分为多个部分;
给所述多个消息部分中的每一个分配相应的优先级;以及
复制各消息部分,其中,具有较高优先级的消息部分的复制次数大于具有较低优先级的消息部分的复制次数。
11、根据权利要求1所述的方法,其中,所述消息是主要等级消息,所述方法还包括以下步骤:
生成次要等级消息,其包括所述主要等级消息所要发往的其它对等体的地址;以及
将所述次要等级消息发送到那些被识别为可由所述被叫对等体访问的其它对等体。
12、一种用于在对等网络中从主叫对等体向被叫对等体发送消息的方法,所述对等网络包括多个其它对等体,所述方法包括以下步骤:
当所述被叫对等体离线时,
压缩所述消息,以生成再现版本,所述再现版本表示满足或超过门限质量的所述消息,
将所述压缩消息发送到多个对等体中至少预定数量的其它对等体,以及
将所述压缩消息存储在处于在线状态的至少所述预定数量的其它对等体中;以及
当所述被叫对等体上线时,将至少一个所存储的压缩消息发送到所述被叫对等体。
13、一种用于在对等网络中从主叫对等体向被叫对等体发送消息的方法,所述对等网络包括多个其它对等体,所述方法包括以下步骤:
当所述被叫对等体离线时,
将所述消息发送到多个对等体中至少预定数量的其它对等体,以及
将所述消息存储在处于在线状态的至少所述预定数量的其它对等体中;以及
当所述被叫对等体上线时,将至少一个所存储的消息发送到所述被叫对等体。
14、根据权利要求13所述的方法,其中,将所述至少一个所存储的消息发送到所述被叫对等体的步骤是对所述被叫对等体的请求做出的响应。
15、根据权利要求13所述的方法,其中,将所述至少一个所存储的消息发送到所述被叫对等体的步骤还包括以下步骤:
由拥有所述存储消息的所述其它对等体中的至少一个对等体判断所述被叫对等体是否在线;以及
如果拥有所述存储消息的所述其它对等体中的至少一个对等体判断出所述被叫对等体在线,则从拥有所述存储消息的所述其它对等体中的所述至少一个对等体向所述被叫对等体发送所述至少一个所存储的消息。
16、一种用于在对等网络中从主叫对等体向被叫对等体发送消息的方法,所述对等网络包括多个其它对等体,所述方法包括以下步骤:
当所述被叫对等体离线时,
a)将所述消息分解成多层,以使一个相应层或多个相应层的组合表示所述消息的一个版本;
b)从所述分解消息的多个相应层中选择至少一层,以达到或超过所述消息的再现版本的门限质量;
c)将所述分解消息的所述多个相应层中的所述至少一层发送到预定数量的其它对等体;以及
d)将所述分解消息的所述多个相应层中的所述至少一层存储到处于在线状态的所述预定数量的其它对等体中。
17、根据权利要求13所述的方法,还包括以下步骤:
在步骤(c)的发送之前,对所述分解消息的各相应层进行加密。
18、根据权利要求17所述的方法,还包括以下步骤:
在步骤(c)的发送之前,将所述分解消息的相应层分为多个片段,从而发送所述各片段。
19、根据权利要求16所述的方法,还包括以下步骤:
当所述被叫对等体上线时,对所述被叫对等体能访问的其它对等体进行轮询,以判断所述分解消息的所有相应层是否被存储。
20、根据权利要求19所述的方法,其中,对其它对等体进行轮询包括以下步骤:
向所述被叫对等体能访问的其它对等体中的第一个对等体发送请求消息,该请求消息要求发送由所述第一个对等体存储的所述分解消息的所有相应层;
从所述第一个对等体接收所述分解消息的相应层;
用跟踪信息对所述请求消息进行更新,其中,所述跟踪信息指示所述相应层中的哪一层或哪些层已经由所述被叫对等体接收到;以及
向所述被叫对等体能访问的其它对等体中的另一个对等体发送所述更新请求消息,该请求消息要求发送由所述另一个对等体存储且在所述跟踪信息中未指示的所述分解消息的所有相应层。
21、根据权利要求16所述的方法,还包括以下步骤:
当所述被叫对等体上线时,使处于在线状态并存储有所述分解消息的相应层的其它对等体将所存储的所述分解消息的相应层通知给所述被叫对等体。
22、根据权利要求16所述的方法,还包括以下步骤:
将所述消息划分成多个部分;
根据各个消息部分的信息内容,为相应消息部分确定一个优先级;以及
向对等网络中的所述其它对等体发送相应的消息部分,其中,将具有较高确定优先级的消息部分发送到较多的所述其它对等体,而将具有较低优先级的消息部分发送到较少的所述其它对等体。
23、根据权利要求16所述的方法,其中,其它对等体的所述预定数量是根据一个对等体在所述对等网络中在线的概率和消息传送的期望可靠性而确定的。
24、根据权利要求16所述的方法,还包括以下步骤:
当所述被叫对等体上线时,
将所述分解消息的所述预定数量的相应存储层中的至少一层发送到所述被叫对等体;以及
向用户提供所发送的所述分解消息的所述相应层中的至少一层,作为所述消息的所述版本。
25、根据权利要求16所述的方法,其中:
发送所述分解消息的所述相应层中的至少一层的步骤(c)包括:
c-1)发送所述分解消息的多个相应层,从而,将第一层发送到所述预定数量的其它对等体,而将一个或多个另外层发送到少于所述预定数量的其它对等体;以及
将所述分解消息的所述相应层中的所述至少一层存储在处于在线状态的所述预定数量的其它对等体中的步骤(d)包括:
d-1)将所述分解消息的所述多个相应层进行存储,以将所述一个或多个另外层存储到所述其它对等体中的相应对等体,所述另外层已经在步骤(c-1)中被发给了这些相应对等体并且这些相应对等体处于在线状态。
26、根据权利要求25所述的方法,其中,所述一个或多个相应另外层被发往的其它对等体的数量取决于所述分解消息的各个相应另外层的信息内容。
27、根据权利要求26所述的方法,其中:
将所述分解消息的所述预定数量的相应存储层中的至少一层发送到所述被叫对等体的步骤包括:将每个相应另外层发送到所述被叫对等体;以及
所述方法还包括:根据将所述被叫对等体接收到的第一层和另外层予以组合,重新构造该消息。
28、一种对等网络,包括多个在所述对等网络中进行通信的对等体,所述对等网络包括:
主叫对等体,用于生成呼叫者发出的消息;
所述多个对等体中的被叫对等体,用于接收所述消息并向被叫用户提供所述消息;以及
所述多个对等体中的若干个存储对等体,用于存储来自所述主叫对等体的压缩消息或分层消息;
其中,当所述被叫对等体离线时,所述主叫对等体将所述压缩消息或分层消息发送到在线的预定数量的存储对等体中;以及
其中,当所述被叫对等体上线时,所述若干个存储对等体中的一个将其存储的相应消息发送给所述被叫对等体。
29、一种网络,包括:
主叫对等体,用于发送复制的消息;
被叫对等体;以及
多个信箱对等体,当所述被叫对等体可达时,所述被叫对等体通过一个或多个信箱对等体从所述主叫对等体接收一个或多个复制的消息,每个信箱对等体用于:
(1)当所述被叫对等体不可达时,接收并存储发往所述被叫对等体的至少一个相应消息;以及
(2)当所述被叫对等体可达时,将至少一个所存储的消息发送到所述被叫对等体。
30、根据权利要求29所述的网络,其中:
所述主叫对等体包括分解单元,其用于:将所述消息分解为多层,以使相应层的至少一种组合表示所述消息的一个版本;选择所述分解消息的所述相应层的至少一种组合,以满足或超过所述消息的再现版本的门限质量;并且,将所述相应层的至少一种组合发送到所述多个对等体中预定数量的其它对等体;以及
所述被叫单元包括重组单元,其用于通过将所述相应层的所述至少一种组合予以组合来重构所述分解消息,从而产生所述消息的重构版本。
31、一种计算机介质,其包括程序指令,用于执行根据权利要求1所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69762005P | 2005-07-08 | 2005-07-08 | |
US60/697,620 | 2005-07-08 | ||
PCT/US2006/026297 WO2007008567A1 (en) | 2005-07-08 | 2006-07-07 | Secure peer to peer messaging service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101044741A true CN101044741A (zh) | 2007-09-26 |
CN101044741B CN101044741B (zh) | 2012-04-18 |
Family
ID=37387992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800009885A Expired - Fee Related CN101044741B (zh) | 2005-07-08 | 2006-07-07 | 安全的对等消息业务 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101044741B (zh) |
WO (1) | WO2007008567A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009149579A1 (zh) * | 2008-06-10 | 2009-12-17 | 上海贝尔阿尔卡特股份有限公司 | 存储转发方式下基于ibe算法的安全通信的方法和装置 |
CN101933014B (zh) * | 2007-09-28 | 2013-11-20 | 阿珀蒂奥有限公司 | 用于复制和同步的系统和方法 |
CN111163125A (zh) * | 2019-11-28 | 2020-05-15 | 网银在线(北京)科技有限公司 | 通道控制方法、装置、电子设备以及计算机可读介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2440788A (en) * | 2006-08-10 | 2008-02-13 | Core Resource Technologies Ltd | Fragmented data storage in peer to peer networks |
GB2446200A (en) * | 2006-12-01 | 2008-08-06 | David Irvine | Encryption system for peer-to-peer networks which relies on hash based self-encryption and mapping |
GB2446198A (en) * | 2006-12-01 | 2008-08-06 | David Irvine | Non-repudiation of messages in peer-to-peer network |
ATE438997T1 (de) | 2007-06-18 | 2009-08-15 | Alcatel Lucent | Steuerung eines telekommunikationsdienstsystems mittels peer-to-peer-techniken |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357571A (en) * | 1993-07-01 | 1994-10-18 | Motorola, Inc. | Method for point-to-point communications within secure communication systems |
AU6515600A (en) * | 1999-08-03 | 2001-02-19 | Videoshare, Inc. | Instant video messenger |
US7849140B2 (en) * | 2002-08-29 | 2010-12-07 | Oracle America, Inc. | Peer-to-peer email messaging |
CN1172484C (zh) * | 2002-09-26 | 2004-10-20 | 港湾网络有限公司 | 宽带接入设备支持以太网承载点对点协议的方法 |
-
2006
- 2006-07-07 CN CN2006800009885A patent/CN101044741B/zh not_active Expired - Fee Related
- 2006-07-07 WO PCT/US2006/026297 patent/WO2007008567A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101933014B (zh) * | 2007-09-28 | 2013-11-20 | 阿珀蒂奥有限公司 | 用于复制和同步的系统和方法 |
WO2009149579A1 (zh) * | 2008-06-10 | 2009-12-17 | 上海贝尔阿尔卡特股份有限公司 | 存储转发方式下基于ibe算法的安全通信的方法和装置 |
CN111163125A (zh) * | 2019-11-28 | 2020-05-15 | 网银在线(北京)科技有限公司 | 通道控制方法、装置、电子设备以及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101044741B (zh) | 2012-04-18 |
WO2007008567A1 (en) | 2007-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080130630A1 (en) | Secure peer to peer messaging service | |
CN1237755C (zh) | 通信网络中的子组多播 | |
EP2417752B1 (en) | Transmitting and receiving data | |
US8266237B2 (en) | Systems and methods for providing distributed, decentralized data storage and retrieval | |
RU2408064C2 (ru) | Маршрутизация в одноранговых сетях | |
CN101044741A (zh) | 安全的对等消息业务 | |
US20110034182A1 (en) | Geographic messaging using location-identified access points | |
US20100268840A1 (en) | Method and System for Data Transmission | |
CN1689307A (zh) | 在组通信网络内提供多媒体的通信管理器 | |
CN1695364A (zh) | 在组通信网络内提供多媒体的通信设备 | |
CN1691603A (zh) | 一种实现设备分组及分组设备间交互的方法 | |
CN1656768A (zh) | 多媒体消息传送方法和系统 | |
CN1539111A (zh) | 证书管理和传送系统及方法 | |
CN1792069A (zh) | 用于提供包括多种电子设备的虚拟工作区的技术 | |
JP2010526360A (ja) | 携帯機器ファイル共有方法および装置 | |
CN1960521A (zh) | 增大多媒体消息业务系统容量的方法及系统 | |
US11665537B2 (en) | Secure rich communication services multicast system | |
Gardner-Stephen et al. | Meshms: Ad hoc data transfer within mesh network | |
CN1833366A (zh) | 用于电信业务中压缩的状态中介数据信令 | |
Malik et al. | On the effects of subpacketization in content-centric mobile networks | |
WO2013052004A1 (en) | "a communication system for content distribution, a server device for controlling content distribution, a client device for requesting content, and corresponding methods" | |
Zhao et al. | Social‐Aware Cooperative Video Distribution via SVC Streaming Multicast | |
JP2011176601A (ja) | コンテンツ配信システム、ネットワーク装置、コンテンツ配信サーバ及びユーザ端末 | |
WO2016062079A1 (zh) | 离线消息处理方法及装置 | |
CN112242946A (zh) | 用于按组块传输图像的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120418 Termination date: 20200707 |