CN1578278A - 即时消息的传输系统 - Google Patents

即时消息的传输系统 Download PDF

Info

Publication number
CN1578278A
CN1578278A CNA2004100632775A CN200410063277A CN1578278A CN 1578278 A CN1578278 A CN 1578278A CN A2004100632775 A CNA2004100632775 A CN A2004100632775A CN 200410063277 A CN200410063277 A CN 200410063277A CN 1578278 A CN1578278 A CN 1578278A
Authority
CN
China
Prior art keywords
bridge
computer
dialogue
feature
data
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
Application number
CNA2004100632775A
Other languages
English (en)
Other versions
CN1578278B (zh
Inventor
J·霍姆斯
D·M·米勒
W·冯柯奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1578278A publication Critical patent/CN1578278A/zh
Application granted granted Critical
Publication of CN1578278B publication Critical patent/CN1578278B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

一种示例的方法包括通过服务器在第一连接上建立一个主对话;在该连接上建立一条虚拟信道,该虚拟信道可用于传送特征对话。该方法可包括建立一个绕开服务器的直接连接,并将特征对话的通信切换到直接连接。一种用于网络通信的系统包括多个传输网桥,每个传输网桥对应一个有效网络装置配置,并包括切换模块用于选择一个传输网桥,以在有效网络装置配置的基础上,在两个计算机装置之间形成一个连接。

Description

即时消息的传输系统
(1)技术领域
本发明涉及计算机通信。特别是涉及即时消息的传输系统。
(2)背景技术
即时消息正成为计算机装置用户中很流行的通信工具。即时消息(IM)应用程序(例如:华盛顿州,雷蒙德的微软公司的WINDOWS信使(WINDOWSMessenger)系统,Yahoo!信使,AOL即时信使(AIM)等等)使用户能与一个或多个在用户的私人联系人列表中标识的联系人进行实时对话。私人列表通常存储在服务器上,并通过交换器或中继服务器(它将入站消息导向合适的接收者)建立对话。
通过交换器路由即时消息会比在对等配置中的即时通讯(在其中,消息并不经过交换器,而是直接在对话参与者之间传递,更慢,更花费。因此,在用交换器服务器建立对话后,典型的即时通讯系统可尝试将对话转换为对等的配置。可以用几种方式转换到对等方式,通常包括由网际协议(IP)地址和/或端口号(通过它可将消息直接发送到同等的人)识别一个对等者,籍此可以将消息直接发送到该对等者。
然而,在包括有效网络装置(例如:防火墙或网络地址翻译器(NAT))的情况下建立对等对话,即使有可能也会是相当困难的。这些装置用于系统安全,但通常设计成防止直接访问在这些装置后的计算机。例如:NAT有它自己的IP地址,及在NAT后的计算机有它们自己的专门的IP地址,即,在NAT外的其它计算机也许不能确定在NAT后的计算机的IP地址。由NAT接收的消息的IP地址被翻译成在NAT后的接收计算机的IP地址。可以用多种技术来穿过或越过有效网络装置以形成直接的连接。
随着即时消息系统的改进,除了文本之外,它们通常提供更多的特征,使对话成为更丰富的经历。例如:即时消息系统可使用户能传送音频、视频、或唯一地与用户相关联的客户的用户贴图(也称为显示图)。这些特征通常需要在对话中包括比文本更多资源,例如:传送带宽。因此,对等的连接在进行即时消息对话时是希望的,因为对等通常比通过交换器的连接提供更高的性能。
(3)发明内容
这里描述的和要求保护的实施解决了所讨论的问题,及其它问题。
示例方法包括通过服务器在第一连接上建立主对话;并在该连接上建立虚拟信道,可操作该虚拟信道传送特征对话。该方法可包括建立一绕过服务器的直接连接,并将特征对话的通信切换到直接连接。
网络通信的系统包括多个传输网桥,每个传输网桥对应于一个有效网络装置配置,并且可操作切换模式来选择传输网桥中的一个,以在有效网络装置配置的基础上形成两个计算机装置之间的连接。
(4)附图说明
图1为画出示例的即时消息系统中的部件的方框图。
图2示出包括用于管理在即时通信情况中的数据通信的示例层的传输系统。
图3为示出可用来选择优选的传输网桥的示例网桥选择模块的方框图。
图4为示出跨两个对等装置之间的物理连接的虚拟信道的方框图。
图5示出具有用于在主对话中建立特征对话,和如有可能的话建立直接连接的示例操作的操作流程图。
图6示出具有用于确定优选传输网桥,和用优选的传输网桥建立直接连接的示例操作的操作流程图。
图7示出具有用于按连续的次序传输二进制大对象(BLOB)的示例操作的操作流程图。
图8示出提供合适的操作环境的示例系统,以便透明地选择一个优选的传输网桥,并在即时通信情况中传送特征数据。
(5)具体实施方式
见附图,其中相同的参考号指相同的元件,示出多种在合适的计算机环境中实施的方法。尽管没有要求,将在计算机可执行指令(例如:由个人电脑和/或计算机装置执行的程序模块)的的总的背景下对多种示例的方法进行描述。程序模块通常包括例执行特定任务或实施特定抽象数据类型的例行程序、程序、对象、组件、数据结构等等。
另外,那些本领域的技术人员将理解,多种示例的方法可用其它计算机系统配置实施,包括:手提装置、多处理程序系统、基于微处理程序的或可编程的消费电子产品、网络PC机、小型计算机、大型计算机等等。多种示例的方法还可以在分布式计算机环境中实施,其中任务是由通过通信网络链接的远程处理装置执行的。在分布式的计算机环境中,可将程序模块能位于本地及远程的存储器装置。
在这里的一些图中,在个人的“方框”中总结了多种算法活动。这些方框描述了在进行处理时作出并执行的特定活动和决定。其中运用了微处理程序(或等同物),这里出现的流程图为或可被这样的微控制器(或等同物)用来实行理想控制的“控制程序”软件/固件提供了基础。这样,过程被作为可存储在存储器中的机器可读指令实施,因此当由处理程序执行时,执行方框中示出的多种动作。
哪些在本领域的技术人员在流程图和在这里的其它说明的基础上可以容易地写出这样的控制程序。应该理解这里描述的主体不仅包括在编程执行下述动作的装置和/或系统,还有配置成编程微控制器的软件,及可以在其上包含所述软件的任何和所有计算机可读媒体。这些计算机可读媒体的例子包括,但不限定于,软盘、硬盘、CD、RAM、ROM、闪存等等。
即时通信的示例网络环境
图1示出用于即时通信对话的示例网络环境100。两个客户机102和104通常能通过网络106相互通信。有效网络装置108和110可以在或可以不在同一网络环境100中出现。回应服务器112和交换器服务器114可通过网络106连接,以促进客户机102和104之间的通信。
即时通信(IM)平台116使客户机(1)102和客户机(2)104能进行即时通信对话。IM平台116的用户通过用户界面(未示出)与IM平台116互动来将消息发送到客户机(2)104,和从客户机(2)104接收消息。该IM平台116包括特征118(也叫作最终用户特征(EUF))和促进客户机(1)102和客户机(2)104之间传送数据的传输协议栈122。
更具体地,传输协议栈122根据网络环境100的特性透明地建立了一个即时信息对话。通常可通过交换器(SB)服务器,或通过对等连接124建立对话,这样就不通过SB服务器114路由数据了。
客户机102和104可通过因特网服务提供者(未示出),或其它方法访问网络106。在一个实施中,客户机102和104都有各自唯一的网址、端口和/或标识符,籍此可在客户机102和104之间建立通信。例如:SB服务器114可用客户机的(2)104网址、端口和/或标识符将数据路由到客户机(2)104。在对等连接124上,客户机(1)102可用客户机(2)104的网址、端口和/或标识符直接将数据发送到客户机(2)104。
如上所述,有效网络装置(1)106和有效网络装置(2)110也许出现,也许不出现。有效网络装置的例子有防火墙和网络地址翻译器,它们为它们各自的客户装置提供系统安全。因此,有效网络装置(2)110可为客户机(2)104提供安全,有效网络装置(1)108可为客户机(1)102提供安全。
因此,可能有多种网络配置。在一个网络配置中,出现了有效网络装置(1)108,但有效网络装置(2)110没有出现。在另一网络配置中,出现了有效网络装置(2)110,但有效网络装置(1)108没有出现。在另一网络配置中,有效网络装置(2)110和有效网络装置(1)108都没有出现。在第四个网络配置中,有效网络装置(2)110和有效网络装置(1)108都出现了。
有效网络装置108和110可以有唯一的网址,例如:网际协议(IP)地址,籍此,有效网络装置108和110接收为它们各自客户机102和104打包的数据。有效网络装置108或110接收在它们网址上的数据,并将该网址翻译成与它们各自的客户机102和104相关联的网址。
客户机(1)102可以用回应服务器112得到与有效网络装置(1)108相关联的网址。客户机(1)可将消息发送给回应服务器112。当回应服务器112接收到来自客户机(1)102的消息时,该消息包括有效网络装置108的网址。作为响应,回应服务器112将有效网络装置108的网址发送回客户机102。同样,客户机(2)104可取得有效网络装置(2)110的网址。利用有效网络装置108和110的网址,客户机102和104也许能建立一个对等的连接124。
尽管图1中的示例环境100仅描述了在对话中的两个客户机102和104,应该理解可在对话中可以包括超过两个客户机。两个或两个以上的客户机可以多点方式通信,其中每个客户机可具有到每个其它客户机的对等连接。另选地,该两个或两个以上客户机通过交换器服务器114参加到对话中。另外,对等连接和通过交换器的连接的任何组合都可在对话中实施。以下提供可用于网络环境100中的示例操作和系统的更详细的说明。
用于在客户机之间传输即时消息的示例系统
图2示出一传输系统,包括用于管理在即时通信情况中的数据的通信的示例层。通常每个层提供用于执行与层相关联的各种任务的功能性和/或数据。那些本领域的技术人员能理解用层来描述传输协议和系统。
传输系统200包括特征202。特征202是包含于信使应用程序中,或由信使应用程序执行的功能,(例如:即时通信平台116,图1),以呈现与特征相关联的数据。可用特征呈现的数据类型、呈现数据的方式、特征可在数据上执行操作、和/或特征提供给用户来与数据相互作用的交互式选项来表征特征。例如:客户的用户贴图特征将图象数据呈现在用户界面上的屏幕贴图中;文件传送特征使用户能选择文件,并将文件发送到即时通信连接。作为示例而非限定,特征层202可包括由字符组成的感情图标、印色、嵌入图像等等。
特征202用在传输协议栈206中的层在即时通信情况中通信数据。传输协议栈202透明地管理在对话中从客户机接收数据和向客户机发送数据的细节。该传输协议栈206向特征202提供传输应用程序界面(API)208,籍此,特征202可发送和接收数据。传输协议栈206的更低层利用网络配置数据,和关于来自特征202的数据的信息来建立即时通信对话。因此,该传输协议栈206使通信数据的较低层细节对特征202透明。
不管数据的类型和尺寸如何,术语“BLOB”(二进制大对象)和“块(chunk)”在这里用于指可以在网络环境中发送和/或接收的数据部分。例如:数字图象可由一个或多个数据的BLOB组成。BLOB是由一个或多个数据的块组成。如上所述,示例的传输API208提供向特征202揭示传输协议栈的功能的方法或功能。API208的一个特定的实施包括以下方法:
  SendData();                        //Sends a blob of data to another client;

  OnDataReceived();               //Callback to feature when associated session receives a blob
                                     //of data;

  RegisterFeatureHandier();      //Called by features to register handlers.The handlers are
                                     //called when another client sends an invitation for the feature.

  RegisterDataChannelCallBacks(); //Called by features to register handlers that are called when

                                      //channel events happen or channel states changes.
  CreateDataChannel();              //Creates a data channel(session)for a feature.
  GetTransportCapabilities();      //Returns capabilities of the conversation,for example Direct,
                                       //Indirect,Store and Forward.
  GetParticipants();                //Gets the list of participants in a conversation.
为了示出示例的API208,在特征层202中的特征可利用CreateDataChannel()函数建立对话。该特征可调用RegisterFeatureHandler()来在收到对特征的邀请时登记要调用的处理程序。该特征可调用RegisterDataChannelCallBack()来在发生信道事件时登记要调用的处理程序。该特征可调用SendData()来将数据传送至客户机。当为特征接收数据时,由另一传输协议层(例如:对话层210)调用函数OnDataReceived()。
示例对话层210包括用于向特征202提供对话服务的逻辑。即时通信对话包括至少一个对话,称作用于实现对话的即时通信对话。SLP的一个实施还包括具有为特征建立其它对话的控制逻辑的主对话,称为特征对话。该对话层210是启动对话的协议。在一个实施中,对话层210通过根据对等者的各自性能在两个对等者之间协商对话的建立启动对话。
在对话层210的一个特定实施中,运用了对话启动协议的子集。在这一实施中,能以人可以读懂的格式(例如:可扩展标记语言(XML)、用逗号分开的值(CSV)等等)发送消息。示例对话管理消息是“INVITE”、“BYE”、“CANCEL”和“ACK”。
示例传输层212包括用于处理开放系统互连(OSI)标准的传输层协议的逻辑。TLP是用于通过网络信道发送和接收任意尺寸的二进制大对象(BLOB)的二进制协议。该传输层212执行多种数据管理任务。例如:如以下要详细讨论的,传输层212可通过网络连接操作来多路传输数据,从而在单个网络连接中建立诸虚拟信道。如以下要详细讨论的,传输层212与一个或多个诸如:TCP网桥或SB-网桥之类的传输网桥接口,它们驻留在传输网桥层。该传输层212可包括调度程序和用于调度来自特征202的拟通过网桥层214中的网桥传输的数据的队列。
在一特定的实施中,传输层212将一TLP标题加到传输的每个BLOB的每个块上。该标题提供关于BLOB和块的信息。在收到该块时,传输层212可解析该标题以确定在必要的时候,应该如何重新装配块,以及应该如何对BLOB重新进行排序。在一个示例实施中,该TLP标题如下:
DWORD SessId;    //slave session id that this blob belongs to
DWORD BlobId;    //id for this blob
UINT64 Offset;   //offset of this chunk’s data into the blob′s data
UINT64 BlobSize; //total size of all chunks not including headers
DWORD ChunkSize; //size of the data in this chunk(not including header)
DWORD Flags;     //ORed together TLP_CONTROL_FLAGS
字段“SessId”识别与发送和接收的数据的块相关联的对话。传输层212使用该“SessId”字段将数据的块与一特定对话相关联,并籍此多路传输和/或多路分解该块数据。以下将详细描述传输协议栈206运用的数据多路传输。
字段“BlobId”识别与发送和接收的数据相应的二进制大对象(BLOB)。传输协议栈可使用该字段“BlobId”将块组装或重新组装成相应的BLOB。“Offset”字段代表位于相应的BLOB中的块。BlobId也可用于在提交之前或接收到之后将BLOB按照它们适合的顺序组织起来。“BlobSize”字段代表BLOB的尺寸。“ChunkSize”字段代表不包括标题在内的数据的块的尺寸。
“Flags”字段提供许多传输层212使用的若干标记,以对在客户机之间发送和接收数据的过程进行管理。以下示出和描述示例的“Flags”:
  enum TLP_CONTROL_FLAGS
  {
        TLP_NAK=0x01,  //set in a non-acknowledgement packet(request for
                           //retransmit)
        TLP_ACK=0x02,  //set in an acknowledgement packet
        TLP_RAK=0x04,  //set in a request for acknowledgement packet
        TLP_RST=0x08,  //set in a Reset packet,closes the session on the other side
         TLP_BIG=0x10,  //set when this chunk is part of a blob that should be saved as
                           //a file
        TLP_CAL=0x20,  //set in a blob for which progress callbacks are requested
  };
传输网桥层214包括用于通过网络传输数据的逻辑电路。例如:传送网桥层214可执行数据编码和/或解码。在一个实施中,传输网桥层214包括一个或多个传输网桥(其中每一个具有对应于一网络配置的功能)和数据特征,用于在网络上通信。以下将详细描述示例的传输网桥及用于在诸网桥中进行选择的系统和操作。
在一个实施中,传输层214可利用传输网桥层214在对话期间在两种网桥之间传递。这样就可以在交换器(SB)网桥上开始对话,籍此,对话数据通过交换器服务器进行传送,但,接着将对话切换到一直接的或对等的连接。另外,如果该对等连接被打破了,传输层212能相应地切换回SB网桥或在网桥层214中的某个其它可用的网桥。传输层212以对传输协议栈206的更高层透明的方式处理到不同连接类型的转换。
传输层212与网桥层214一起工作确保以合适的次序提交和/或接收BLOB。因为在对话期间,连接的类型有可能从一个较慢的连接变为一个较快的连接,所以通过较慢连接发送的BLOB有可能在通过较快连接发送的BLOB之后到达它们的目的地,除非传输层212采取步骤确保合适的次序。以下对确保维持传送的合适次序的示例操作进行描述。
网络层218表示执行标准网络通信功能的较低层通信功能。网络层218可包括,但不限于,传输控制协议/网际协议(TCP/IP)功能性、通用数据报协议(UDP)功能、超文本传输协议(HTTP)功能、简单对象访问协议(SOAP)。网桥层214能通过网络使用网络层218功能传送数据。
就象在这里所讨论的,提供了多个传输网桥来处理不同的网络配置和数据类型、格式、和/或尺寸。表1示出示例的传输网桥和可在其中应用该网桥的相关联的网络配置。
                                   表1
  网桥 无NAT  1NAT   2NAT(非对称) 1UPnP  1UPnP&1NAT  2UPnp 防火墙 多点
  SB   √   √   √   √   √   √   √  √
  Twister(IPv6)TCP   √   √   √   √   √   √
  RUDP   √   √   √   √   √   √
在表1的行和列相交处的核查记号(√)指示出在相交行的网桥能用于相交列中的网络配置中。
SB网桥通过交换器服务器发送通信量(例如:交换器服务器114,图1)。在一个实施中,当开始建立一个即时通信对话时,SB网桥是用于传输即时对话数据的网桥。随后,只有在不能建立直接(对等)连接时使用的SB网桥被继续使用。Twister传输控制协议(TCP)(也称作网际协议版本5(IPv6)TCP)网桥可用于穿过网际协议版本4(IPv4)NAT。在一个实施中,IPV6网桥利用蛀船虫掘进(Teredotunneling)技术建立一个对等连接。蛀船虫(Teredo)是IPv4/IPv6的过渡技术,它在IPv4/IPv6主机位于一个或多个IPv4NAT之后时为单播IPv6提供地址分配和主机对主机的自动掘进。为了穿过IPv4NAT,将IPv6包作为基于IPv4的用户数据报协议(UDP)消息发送。
甚至在网络上配置了网络地址翻译器(NAT)时,可操作该TwisterTCP网桥来建立一个对等的TCP/IP连接。例如:如果第一客户机在NAT之后,且第二客户机不在NAT或防火墙之后,第一客户机的TwisterTCP网桥启动一个与第二客户机的输出TCP连接。第一客户机可使用一回应服务器(例如:回应服务器112,图1)来检测第一客户机是在NAT之后,并从而确定形成该连接的方向;即,第一客户机启动TCP连接。当客户机之一在通用即插即用(UPnP)NAT之后时,可应用类似的技术。
可靠的通用数据报协议(RUDP)网桥通过UDP通信,但通过确认收到数据的传送仿效TCP连接,和在TCP下确认“包”几乎一样。按照这种方式,RUDP网桥提供比传统UDP更可靠的连接,因为该协议能检测到数据何时丢失,并应被重新发送。RUDP网桥可用一个回应服务器来取得NAT网址,这样就能穿过NAT了。RUDP网桥将一个标题附加到发送的数据。以下示出示例的标题:
unsigned_int64 qwSeqNum;// sequence number of first byte in this packet
unsigned int64 qwAckNum;//ack number of next byte the sender of this packet expects
DWORD dwOtherFields;    //4 bit offset in qtadwords,5 bit reserved,5 control bits,16
                         //reserved,from most significant
DWORD dwWindow;         //window size receiver will accept
DWORD dwSendTime;       //timestamp for when the packet was sent
DWORD dwEchoTime;       //last timestamp the sender recorded in a packet from receiver
示例的RUDP网桥协议包括向侦听RUDP网桥发送一个“SYN”消息,用“SYN ACK”响应,并用“ACK”响应“SYN ACK”消息。接着,重发定时器将继续重发一组或多组数据,直到从相应的用于发送的(或重发的)数据组的RUDP网桥接收到一个ACK。
图3为示出可用于从一组传输网桥302中选择一个优选的传输网桥的示例选择模块302的方框图。即时通信应用程序可具有多个特征308,并且每个特征308与主对话306和对话登记程序310通信,以建立一个相关联的特征对话312。包括特征数据在内的即时通信数据通过选定的网桥进行传输。
主对话306在传输协议栈206(图2)中的对话层210(图2)进行。当对话在即时通信应用程序中开始时,建立主对话306。主对话306与一对话窗相关联,并且,是一对象特征308通过该对象请求从属的或特征的对话312。主对话306也可揭示一种静态方法,它使特征308能在对话窗的背景外开始主对话,籍此将建立一个即时通信对话。
特征308用对话登记程序310登记,它保持有关在对话期间运行的特征的信息。对话登记程序310也可保持有关“自动启动”特征的信息。自动启动特征是默认存在的特征,并且一旦建立了底层的交换器,将在与预定呼叫ID和对话ID的对话中,在双方客户机上调用它们的邀请处理程序。
当特征308用对话登记程序310登记时,特征308提供一邀请处理程序函数及一个与特征308相关联的全局唯一标识符。主对话306可使用特征登记程序信息来建立特征对话312,通过该对话特征308能与对等的特征进行对话。
例如:可以由主对话306接收来自对等者的邀请,邀请特征308进入到对话中。该邀请指定与特征308相关联的GUID。主对话306在对话登记程序310中查看GUID,以找到与特征308相关联的邀请处理程序函数。如果特征308接受该邀请,则主对话306建立新的特征对话312。
特征308可邀请一个对等的特征进入到对话。为了这样做,特征308从主对话306请求一个新的对话(例如:通过调用传输图2,API208中的CreatDataChannel())。从特征308对一个新的对话的请求可包括对一种连接的请求(例如:直接,非直接)。主对话306将用诸如请求的直接连接、数据的尺寸、和/或网络配置之类的信息调用网桥选择器302。网桥选择器302用该信息识别一个优选的传输网桥,用于请求的特征对话。
在一个实施中,网桥选择器302在传输层212(图2)执行,且实施传输网桥选择规则来选择优选的网桥。在一个实施中,设计目标是直接对等地发送尽可能多的通信量,以避免可能与交换器服务器相关联的延迟和开销。在这一实施中,分析了以下因素以选择传输网桥:请求的直接连接,由传输网桥支持的带宽,要发送的数据的尺寸,传输网桥的任何限制,与特定传输网桥相关联的开销(例如:中继开销),和/或秘密说明(例如:揭示或不揭示IP地址)。
每个传输网桥在上述因素的基础上计算机得分。网桥将它的得分给网桥选择器302,选择器302在得分的基础上选择出优选的传输网桥。在分析原始得分前,网桥选择器302考虑指定的请求。例如:如果特征308请求一个直接连接,则网桥选择器302可从候选网桥组中排除所有非直接网桥。不在特定的网络配置中操作的网桥也被从候选网桥组中排除。例如:如果网络配置包括2个对称的传统NAT,则不考虑TwisterTCP网桥。可以将在初始化对话时从回应服务器测试中取得的信息用于确定哪些网桥不能工作。
因此,网桥选择器302的一个实施使用以下传输网桥选择规则:
1.在回应测试结果的基础上,排除不能工作的网桥。
2.排除不能满足调用者的特定请求的网桥。
3.使用剩下的具有最高得分的网桥。
4.如果先前的网桥失效,则使用剩下的具有得分第二高的网桥。
5.如果先前的网桥失效,则使用剩下的具有下一最高得分的网桥,等等…
网桥选择器302根据规则,将优选的网桥通知主对话306。作为响应,主对话306建立特征对话312并例示要用的优选网桥。在建立特征对话312之后,特征308将通过特征对话312与其它对等特征通信。特征对话312处理发送数据及对话控制调用,例如:AcceptSession及AcceptDirect。
图4为示出穿过第一客户机装置406和第二客户机装置408之间的物理连接的虚拟信道402的方框图。客户机装置406和408用连接404和信道402来参与即时通信对话,其中传送了多种数据。尽管装置406和408被称为“客户机装置”,应理解在装置406和408之间的连接404不需要经过服务器,而可以是直接的,或对等的连接。
如示出的,数据信道0被用于在对话中传送文本消息;数据信道1被用来在客户机装置406和408之间传送文件;数据信道2被用来在装置406和408之间传送插入的图像;数据信道3被用来传送指示出用户是否正在装置406或408中的一个键入消息的键入指示信息。
虚拟信道数与对话标识符相对应。如以上讨论的,将一个标题(见以上的TLP标题)加到通过连接404传送的数据上。该标题包括指示该数据对应于哪个对话及哪根信道(例如:特征信道或主信道)的“SessId”。使用SessId,来自多个对话的数据能通过连接404多路传输。因此,信道402被认为是“虚拟”信道。在客户机装置406和408将接收到的数据剥离SessId,且将该数据路由至与SessId相关联的合适的对话。
在另一个实施中,在客户机装置406和客户机装置408之间建立了多个连接,且每个连接都可包括多个虚拟信道。例如:当在客户机装置406和客户机装置408之间开始建立对话时,将通过交换器服务器经过连接建立一个主对话。随后,可在客户机装置406和客户机装置408之间建立一个对等的连接。在这种情况下,在装置406和408上的特征在交换器上,或对等连接上都可以建立虚拟信道。
运用传输协议栈的示例操作
图5示出具有用于在主对话中建立特征对话,和在有可能时建立直接连接的示例操作的操作流程图。为了参与到与另一客户机装置的即时消息对话中去,对话操作流程500可由诸如:图1所示的客户机(1)102之类的客户机完成。
建立操作502建立一个主对话。主对话是在用户开始启动信使应用程序和尝试与其它用户联系时建立的。建立主对话包括邀请其它客户机来进入对话。在其它客户机接受邀请后,在邀请客户机和接收客户机上都建立主对话。主对话是通过交换器网桥,通过SB连接建立的。以后可以用主对话建立特征对话。
如果没有在建立操作502之前进行回应服务器测试,建立操作502可以进行回应服务器测试来检测防火墙、NAT、或其它可能出现的有效网络装置。该回应服务器测试包括向回应服务器发送一个测试消息(例如:回应服务器112,图1),且该回应服务器将对应于可能配置的任何有效网络装置的网址信息作为回答。
除了文本数据之外,用户可能想要传送特征数据。这种特征数据包括,但不限于文件、图像、客户的情绪图标、客户的用户贴图等等。另外,信使应用程序可建立一个特征对话来传送特征数据。因此,在另一个建立操作504中,建立了一个特征对话。该建立操作504包括在邀请客户机上建立一个特征对话,并将特征邀请发送至接收客户机的主对话。当特征邀请到达该接收的客户机时,该邀请或者被接受,或者被拒绝。
继续讨论建立操作504,如果特征邀请被接受了,在接收客户机上的主对话在接收客户机上建立一个特征对话。在接收的客户机上的特征对话具有与邀请特征相对应的GUID。在接收的客户机上的主对话也调用一个为GUID登记的邀请处理程序函数。如果该特征邀请被接受了,相关联的特征存储该特征对话,能使用这样该特征对话就与用于对话的传输API相互作用。在当特征接受时,将回叫消息发送至邀请特征和接受特征,让它们知道对话已准备好用于发送和接收数据。如果该特征邀请被拒绝了,主对话删除建立的特征对话。
建立操作504通过一个现存的连接(例如:建立的SB连接)建立特征对话。更具体地,如图4所示,用主对话数据对该特征对话数据进行多路传输,以同时进行特征对话和主对话。因为通过交换器的连接可能比对等连接慢,建立操作506尝试建立一个直接(对等)连接,通过它进行特征对话。建立操作506的示例实施在图6示出,并在以下进行描述。如果可以建立一个直接连接,将用直接连接进行特征对话。操作流程500在结束操作508处结束。
图6示出建立直接连接的示例操作的操作流程。假定用户向在邀请客户机的特征表明,该用户想要将特征对话变为直接连接而不是交换器(SB)服务器。该用户可能喜欢直接连接,因为她想避免受消息尺寸的限制,或者她想要发送比SB交换器允许的还要多的消息,或者也许是她想要将她的消息保持在她的共同防火墙之内。
当特征接收到移到直接连接的指示时,请求操作602执行,其中特征调用在特征的从属对话上的方法。该请求操作602请求一个直接连接。该从属对话将该请求传给主对话。作为响应,主对话向在接收客户机上的对等特征发送一“reINVITE”消息,请求直接连接。
继续讨论请求操作602,该“reINVITE”消息包括识别由邀请客户机支持的所有传输网桥类型的信息。在接收的客户机上的特征对话调用与该特征相关联的邀请处理程序函数。可以任何数量的方式接受该“reINVITE”消息。在一个实施中,特征可在特征的邀请处理程序上设定一个自动接受设置。自动接受设置表明所有对直接连接的请求都会自动被接受。在另一个实施中,可在邀请处理程序中设定自动拒绝设置,它表明直接连接请求将会被自动拒绝。
如果即没有设置自动接受,也没有设置自动拒绝,传输将查看全局默认值。如果该全局默认值设置成接受或拒绝,则对“reINVITE”作出适当的回答。如果全局默认值没有设置,该邀请特征可通过,例如:向用户提示是否接受或拒绝“reINVITE”来响应该邀请。假定“reINVITE”被接受了,在选择的操作606中识别出一个优选的传输网桥。
该选择操作606用以上参照图3讨论的优选因素选择一个优选的传输网桥。接受操作608将接受消息发送回邀请的客户机。接受消息包括优选的网桥。该接受还包括接受客户机的内部和外部IPv4地址,及其一个IPv6全局地址,如果客户机有的话。
在其它端的传输将尝试使用在接受消息中列出的优选网桥连接到接收的IP地址和端口。在邀请的客户机连接之后,该传输发送一个“RAK”,且接受的客户机用一“ACK”回答。如果连接失败,邀请的客户机将在发送“RAK”后超时。在一个实施中,邀请主对话随后发送另一个“reINVITE”,这次排除了失败的传输网桥类型。操作流程在结束操作610处结束。
图7示出用于按连续次序传输二进制大对象(BLOB)的示例操作的操作流程。通常,在通过一个新的直接连接传送最后一块BLOB之前,传输等待接收先前通过非直接连接传送的所有与BLOB块相关联的“ACK”。不管用了什么类型的传输网桥或连接(即,UDP、TCP或其它),以这种方式等待“ACK”。
传送操作702用一个非直接连接开始传送BLOB。查询操作704确定传输网桥类型是否已切换到直接连接。如果传输网桥类型还没有切换,查询操作704经过分支“否”到传送操作706。该传送操作706通过非直接连接传送一块BLOB。
在传送操作706中传送块之后,查询操作704再一次确定该传输网桥类型是否已改变。如该传输网桥类型已改变,则查询操作704通过分支“是”到另一查询操作708。该查询操作708判断当前BLOB标识符(ID)是否比最后一个BLOB ID大。如当前BLOB ID不比最后一个BLOB ID大,则查询操作708经过分支“否”到传送操作706,它传送一块当前BLOB。
如果查询操作708确定该当前BLOB ID比最后一个BLOB ID大,则查询操作708经过分支“是”到另一查询操作710。该查询操作710确定要传送的当前块是否为BLOB中最后的块。如果当前块不是BLOB中最后的块,则查询操作710经过分支“否”到传送操作706,它传送当前块。如果查询操作710确定当前块是BLOB中最后的块,则查询操作710经过分支到等待操作712。该等待操作712等待,直至对通过开始的非直接连接传送的BLOB接收到所有的ACK。
可在用于即时通信的网络环境中使用的示例计算机系统
图8和相应的讨论旨在提供能实施用于传输计算机数据的所述的配置和程序的合适的计算机环境的总的说明。示例计算机环境820仅仅是合适的计算机环境的一个例子,并不想试图对所述主题的使用范围或功能作任何限制。不应该将计算机环境820解释成对在示例计算机环境820中示出的任何一个部件或其组合具有依赖性或需要。
在互连装置之间传输计算机数据的示例配置和过程可用众多其它通用或专用计算机系统环境或配置进行操作。适用于所述主题的已知的计算机系统、环境和/或配置包括,但不限于,个人电脑、服务器计算机、瘦客户机、胖客户机、手提或膝上装置、多处理程序系统、基于微处理程序的系统、大型计算机、诸如服务器园及公司内联网等包括任何上述系统和装置的分布式计算机环境。
计算机环境820包括以计算机830形式的通用计算装置。计算机830可包括和/或作为用于以上参照图1-7描述的即时通信的传输系统的示例实施。计算机830的部件可包括,但不局限于,一个或多个处理程序或处理单元832、系统存储器834、和将包括系统存储器834在内的多种系统耦合到处理程序832的总线836。
总线836代表几种类型总线结构(包括:存储器总线或存储器控制器、外围总线、加速的图形端口、和处理程序或使用多种总线结构中的任何一个的局部总线)中的一种或多种。作为示例,而非限定,这种结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)本地总线、和外围设备互连(PCI)总线,也叫作夹层总线。
计算机830通常包括多种计算机可读媒体。这种媒体可以是可由计算机830访问的任何可用媒体,且它包括易失性和非易失性媒体,可移除和不可移除媒体。
系统存储器包括以易失性存储器形式的诸如随机存取存储器(RAM)840之类的计算机可读媒体和/或诸如只读存储器(ROM)838之类的非易失性存储器。基本输入输出系统(BIOS)842存储在ROM838中,它包括如在启动期间帮助在计算机830的部件之间传送信息的基本例程。RAM840通常包括可由处理程序832立即存取和/或当前由处理程序832操作的数据和/或程序模块。
计算机830还可包括其它可移除和不可移除,易失性和非易失性计算机存储器媒体。仅作为示例,图8示出用于从不可移除的非易失性磁媒体读出或写入不可移除的非易失性磁媒体的硬盘驱动器844(未示出,并通常称为“硬盘驱动器”),用于从可移除的非易失性磁媒体848(例如:软盘)的磁盘驱动器846,及用于从可移除的非易失性光盘852(例如:CD-ROM,DVD-ROM或其它光媒体)读出或写入的光盘驱动器850。硬盘驱动器844、磁盘驱动器846和光盘驱动器850中的每一个都由一个或多个接口854连接到总线836。
驱动器及与它们相关联的计算机可读媒体提供计算机可读指令、数据结构、程序模块和其它用于计算机830的数据的非易失性存储器。尽管这里描述的示例环境使用了硬盘、可移除磁盘848和可移除光盘852,本领域的技术人员应理解也可以将能存储可由计算机存取的数据的诸如磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的计算机可读媒体用于示例的操作环境中。
可以在硬盘、磁盘848、光盘852、ROM838、或RAM540上存储的许多程序模块,作为示例,包括但不限于操作系统858、一个或多个应用程序850、其它程序模块862和程序数据864。应用程序860,如这里讨论的,可包括即时通信应用程序、利用特征和传输协议栈。
用户可将命令和信息通过诸如键盘866和定位设备868(例如:“鼠标”)之类的可选择输入装置输入到计算机830。其它输入装置(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、串行接口、扫描仪等等。这些和其它输入装置通过一个耦合到总线836的用户输入界面870连接到处理单元832,但可以由其它诸如并行接口、游戏接口或通用串行总线(USB)之类的接口和总线结构连接。
可选的监视器872和其它类型的显示装置是通过诸如视频适配器874之类的接口连接到总线836的。除了监视器之外,个人电脑通常包括其它外围输出设备(未示出),例如:可以通过输出外围接口875连接的扬声器和打印机。
可以利用到一个或多个诸如远程计算机882之类的远程计算机的逻辑连接,在联网的环境中操作计算机830。远程计算机882可包括许多或全部在这里参照计算机830描述的元件和特征。如图8所示的逻辑连接为局域网(LAN)877和普通广域网(WAN)879。LAN877和WAN879可以是有线网络,无线网络,或是有线或无线网络的组合。这种网络环境在办公室、企业范围计算机网络、企业内联网和因特网中很常见。
当用于LAN网络环境中时,计算机830通过网络接口或适配器886连接到LAN877。当用于WAN网络环境中时,计算机830通常包括调制解调器878或其它用于在WAN879上建立通信的装置。调制解调器878(可以是内置式的或外接式的)可以通过用户输入界面870或其它合适的机构连接到系统总线836。图8所示的是一个通过因特网的WAN的特定实施。计算机830通常包括调制解调器878或其它用于在因特网880上建立通信的装置。调制解调器878通过接口870连接至总线836。
在联网的环境中,所述与个人电脑830相关的程序模块,或其一部分,可以存储在远程存储器装置中。作为示例而非限定,图8示出在远程计算机882的存储器装置上的远程应用程序889。将理解示出和描述的网络连接是示例性的,也可以使用在计算机之间建立通信链接的其它装置。
结论
尽管采用专用于结构特征和/或方法操作的语言描述所述配置和过程,应理解在所附权利要求书中定义的主题并不一定限于所述的特定特征或操作。而是,将特定的特征和操作作为实施要求保护的当前主题的优选的形式揭示。

Claims (22)

1.在其上存储了计算机可执行指令的计算机可读媒体,其特征在于,所述指令执行以下方法:
通过服务器在第一连接上建立一个主对话;和
在该连接上建立一条虚拟信道,可操作该虚拟信道传送特征对话。
2.如权利要求1所述的计算机可读媒体,其特征在于,该方法还包括:
建立一个绕过服务器的直接连接;和
将特征对话的通信切换到该直接连接。
3.如权利要求2所述的计算机可读媒体,其特征在于,所述建立一个直接连接包括在网络配置的基础上选择一个传输网桥。
4.如权利要求1所述的计算机可读媒体,其特征在于,所述建立一条虚拟信道包括在第一连接上对特征对话和主对话进行多路传输。
5.如权利要求4所述的计算机可读媒体,其特征在于,所述多路传输包括在特征对话中的数据上加一个特征对话标识符,和在主对话中的数据上加一个主对话标识符。
6.如权利要求1所述的计算机可读媒体,其特征在于,所述建立一个主对话包括利用对话层协议(SIP)初始化该主对话,其中该SIP利用一个电子邮件地址来初始化该主对话。
7.用于网络通信的系统,其特征在于,该系统包括:
多个传输网桥,每个传输网桥对应于一个有效网络装置配置;和
一个切换模块,可操作用于根据有效网络装置配置选择一个传输网桥,以便在两个计算机装置之间形成连接。
8.如权利要求7所述的系统,其特征在于,所述有效网络装置配置包括至少一个在第一计算机装置和第二计算机装置之间的防火墙。
9.如权利要求7所述的系统,其特征在于,所述有效网络装置配置包括至少一个在第一计算机装置和第二计算机装置之间的网址翻译器。
10.如权利要求7所述的系统,其特征在于,所述多个网桥包括以下网桥中的至少一个:
可靠的用户数据报协议网桥;
传送控制协议/因特网协议(TCP/IP)网桥;和
交换器网桥。
11.如权利要求7所述的系统,其特征在于,还包括:
一个特征;和
一个主对话,可用于建立与特征相关联的特征对话。
12.如权利要求11所述的系统,其特征在于,还包括一个传输层,可用于经过选定的传输网桥多路传输特征数据和主对话数据,和通过选定的传输网桥传送多路传输的数据。
13.用于给即时通信应用程序使用的传输协议栈,其特征在于,该传输协议栈包括:
一包括多个网桥模块的网桥层,每个网桥模块对应于一个有效网络装置配置;和
一切换模块,可用于根据有效网络装置配置动态地选择一个网桥模块。
14.如权利要求13所述的传输协议栈,其特征在于,还包括一个可用于检测有效网络装置配置的检测模块。
15.如权利要求13所述的传输协议栈,其特征在于,所述检测模块包括一个回应服务器。
16.如权利要求13所述的传输协议栈,其特征在于,还包括一个传输层,可用于通过选定的网桥模块之一多路传输来自多个对话的数据。
17.如权利要求13所述的传输协议栈,其特征在于,还包括一个主对话,可用于建立一个或多个与即时通信应用程序的特征相应的特征对话。
18.在其上存储了计算机可执行指令的计算机可读媒体,其特征在于,所述指令执行以下方法:
通过交换器服务器在第一客户机和第二客户机之间建立即时通信对话;
自动建立一个对等连接;
通过交换器服务器传送与即时通信对话相关联的第一数据;和
通过所述对等连接传送与即时通信对话相关联的第二数据。
19.如权利要求18所述的计算机可读媒体,其特征在于,该方法还包括:
确定一个与第一客户机和第二客户机相关联的有效网络装置配置;和
选择一个与有效网络装置配置相应的对等网桥。
20.如权利要求18所述的计算机可读媒体,其特征在于,所述对等网桥包括一个RUDP网桥。
21.如权利要求19所述的计算机可读媒体,其特征在于,所述对等网桥包括一个TCP/IP网桥。
22.如权利要求18所述的计算机可读媒体,其特征在于,还包括:
通过交换器服务器传送第一数据的BLOB的第一部分;和
通过所述对等连接传送第一数据的BLOB的后继部分。
CN200410063277.5A 2003-07-01 2004-06-30 即时消息的传输系统 Expired - Fee Related CN1578278B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/611,575 2003-07-01
US10/611,575 US7363378B2 (en) 2003-07-01 2003-07-01 Transport system for instant messaging

Publications (2)

Publication Number Publication Date
CN1578278A true CN1578278A (zh) 2005-02-09
CN1578278B CN1578278B (zh) 2019-07-16

Family

ID=33435436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410063277.5A Expired - Fee Related CN1578278B (zh) 2003-07-01 2004-06-30 即时消息的传输系统

Country Status (8)

Country Link
US (3) US7363378B2 (zh)
EP (3) EP2259514A1 (zh)
JP (2) JP4634077B2 (zh)
KR (1) KR101150110B1 (zh)
CN (1) CN1578278B (zh)
BR (1) BRPI0402437A (zh)
CA (2) CA2470013C (zh)
MX (1) MXPA04006451A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007140721A1 (fr) * 2006-05-29 2007-12-13 Tencent Technology (Shenzhen) Company Limited procédé et système pour une transmission de données d'homologue à homologue
WO2011015020A1 (zh) * 2009-08-06 2011-02-10 中兴通讯股份有限公司 文件传输方法、系统及客户端
CN101330431B (zh) * 2007-06-19 2011-04-06 阿里巴巴集团控股有限公司 一种即时信息存储方法和系统
TWI407727B (zh) * 2007-07-25 2013-09-01 Tencent Tech Shenzhen Co Ltd A Method and System of Data Transmission Based on Peer - to - Peer P2P
CN103472995A (zh) * 2013-09-10 2013-12-25 小米科技有限责任公司 一种消息展示的方法、装置及终端设备
US10320730B2 (en) 2013-09-10 2019-06-11 Xiaomi Inc. Method and device for displaying message

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546337B1 (en) 2000-05-18 2009-06-09 Aol Llc, A Delaware Limited Liability Company Transferring files
US7366779B1 (en) * 2000-06-19 2008-04-29 Aol Llc, A Delaware Limited Liability Company Direct file transfer between subscribers of a communications system
US8266677B2 (en) * 2000-12-20 2012-09-11 Intellisync Corporation UDP communication with a programmer interface over wireless networks
US20030235538A1 (en) * 2002-04-09 2003-12-25 Boehringer Ingelheim Pharma Gmbh & Co. Kg Method for the administration of an anticholinergic by inhalation
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7493371B1 (en) * 2004-03-31 2009-02-17 Network Appliance, Inc. Using a client-server connection protocol to establish a peer-to-peer connection
US7773550B2 (en) * 2004-04-05 2010-08-10 Daniel J. LIN Peer-to-peer mobile data transfer method and device
US7764637B2 (en) * 2004-04-05 2010-07-27 Daniel J. LIN Peer-to-peer mobile instant messaging method and device
US7961663B2 (en) * 2004-04-05 2011-06-14 Daniel J. LIN Peer-to-peer mobile instant messaging method and device
US7672255B2 (en) 2004-04-05 2010-03-02 Oomble, Inc. Mobile instant messaging conferencing method and system
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
EP1771998B1 (en) * 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
EP1771979B1 (en) 2004-07-23 2011-11-23 Citrix Systems, Inc. A method and systems for securing remote access to private networks
US20060053485A1 (en) * 2004-09-08 2006-03-09 Chia-Hsin Li Network connection through NAT routers and firewall devices
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US8838795B2 (en) * 2004-12-03 2014-09-16 At&T Intellectual Property I, L.P. System, method, apparatus, and product for resource sharing
US7558862B1 (en) * 2004-12-09 2009-07-07 LogMeln, Inc. Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US20060253605A1 (en) * 2004-12-30 2006-11-09 Prabakar Sundarrajan Systems and methods for providing integrated client-side acceleration techniques to access remote applications
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
WO2006079954A1 (en) * 2005-01-31 2006-08-03 Koninklijke Philips Electronics N.V. Method and terminal for selecting a communication path depending on the presence of nat devices
KR100666956B1 (ko) * 2005-03-08 2007-01-10 삼성전자주식회사 네트워크에서의 미디어 전송 장치 및 방법
US7543065B2 (en) * 2005-03-15 2009-06-02 Microsoft Corporation Method and system for reducing the number of ports allocated by a relay
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7957402B2 (en) * 2005-08-08 2011-06-07 American Megatrends, Inc. UDP to TCP bridge
US20070043820A1 (en) * 2005-08-18 2007-02-22 George David A System and method for obtaining remote instant messages
WO2007058633A1 (en) * 2005-11-21 2007-05-24 Cheh Ngee Goh An apparatus for communication and a method thereof
US9047588B2 (en) * 2005-12-21 2015-06-02 International Business Machines Corporation E-mail protocol for instant message
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8676899B2 (en) 2006-01-26 2014-03-18 International Business Machines Corporation Offline IM chat to avoid server connections
DE102006030613A1 (de) * 2006-07-03 2008-01-10 Combots Product Gmbh & Co. Kg Verfahren und Kommunikationssystem zur Steuerung des Datenflusses über Netzwerkknoten
US20090132712A1 (en) * 2007-11-19 2009-05-21 General Instrument Corporation Method and system for session mobility between end user communication devices
JP4703576B2 (ja) 2007-01-15 2011-06-15 株式会社東芝 コネクションを維持する装置、方法およびプログラム
US7764691B2 (en) * 2007-03-15 2010-07-27 Microsoft Corporation Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
US7715386B2 (en) * 2007-03-15 2010-05-11 Microsoft Corporation Reducing network traffic to teredo server
US7693091B2 (en) * 2007-03-30 2010-04-06 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
US8194683B2 (en) * 2007-03-30 2012-06-05 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
DE602007009490D1 (de) 2007-05-01 2010-11-11 Research In Motion Ltd Verfahren und System zur Kommunikation und Anzeige von Daten mit einem Sprachruf
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
US8086678B2 (en) 2007-09-24 2011-12-27 Zipit Wireless, Inc. Device centric controls for a device controlled through a web portal
US8875237B2 (en) * 2007-10-31 2014-10-28 Microsoft Corporation Private network access using IPv6 tunneling
US20090149205A1 (en) * 2007-12-10 2009-06-11 Zipit Wireless Inc. System And Method For Regulating Data Messaging Between A Wireless Device And A Mobile Communication Device Using Short Message Service
US9246613B2 (en) * 2008-05-20 2016-01-26 Verizon Patent And Licensing Inc. Method and apparatus for providing online social networking for television viewing
US8612753B2 (en) * 2008-12-23 2013-12-17 Intel Corporation Method and apparatus for protected code execution on clients
US10135630B2 (en) 2009-05-19 2018-11-20 Xerox Corporation System and method for coupling a wireless device to social networking services and a mobile communication device
US10740745B2 (en) 2009-05-19 2020-08-11 Zipit Wireless, Inc. System and method for coupling a wireless device to social networking services and a mobile communication device
US10826718B2 (en) 2009-05-19 2020-11-03 Xerox Corporation System and method for coupling a digital appliance to a monitoring service
WO2011133195A1 (en) 2010-04-22 2011-10-27 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
JP5326045B2 (ja) 2010-05-11 2013-10-30 株式会社チェプロ 双方向通信システムおよびこれに用いるサーバ装置
US8627411B2 (en) 2010-06-17 2014-01-07 Microsoft Corporation Techniques to share binary content
US9436685B2 (en) 2010-12-23 2016-09-06 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
US9679404B2 (en) 2010-12-23 2017-06-13 Microsoft Technology Licensing, Llc Techniques for dynamic layout of presentation tiles on a grid
GB2489283A (en) 2011-03-24 2012-09-26 Sony Corp OFDM frequency domain channel estimation with virtual scattered pilots created in frequency notches to restore pattern before interpolation
US9715485B2 (en) 2011-03-28 2017-07-25 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
WO2013148351A1 (en) * 2012-03-30 2013-10-03 Bmenu As System and method for analyzing an electronic documents
US9294563B2 (en) * 2013-02-27 2016-03-22 Omnivision Technologies, Inc. Apparatus and method for level-based self-adjusting peer-to-peer media streaming
US20150140978A1 (en) * 2013-11-18 2015-05-21 Zeta Project Swiss GmbH Voice conversations in a unified and consistent multimodal communication framework
US20160036873A1 (en) * 2014-08-01 2016-02-04 Smart Technologies Ulc Custom input routing using messaging channel of a ucc system
US9665414B2 (en) * 2015-01-21 2017-05-30 Oracle International Corporation Communication protocol bridge for card computing devices
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US11151239B2 (en) * 2017-10-02 2021-10-19 Red Hat, Inc. Single sign-on management for multiple independent identity providers
US11240318B1 (en) * 2021-05-11 2022-02-01 Integrity Security Services Llc Systems and methods for virtual multiplexed connections
CN114679354A (zh) * 2022-04-06 2022-06-28 北京小米移动软件有限公司 网关设备、桥接方法及装置、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379880A (zh) * 1999-10-18 2002-11-13 爱亭株式会社 信息分发装置和方法以及记录了程序的记录媒体

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278955A (en) * 1990-06-18 1994-01-11 International Business Machines Corporation Open systems mail handling capability in a multi-user environment
JPH0484248A (ja) * 1990-07-26 1992-03-17 Nec Corp 前置通信処理装置
US5432907A (en) * 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US6289390B1 (en) * 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5446888A (en) 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
JPH07311704A (ja) 1994-05-19 1995-11-28 Fujitsu Ltd ディレクトリシステム
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
WO1997019429A1 (en) 1995-11-20 1997-05-29 Motorola Inc. Displaying graphic messages in a radio receiver
US5802282A (en) * 1995-12-28 1998-09-01 Intel Corporation Recovering missing data during background data transfer in multipoint conferencing
US7013327B1 (en) 1996-02-16 2006-03-14 G&H Nevada -Tek Method and apparatus for computing within a wide area network
US20010055299A1 (en) * 1996-08-16 2001-12-27 Keith C. Kelly Method and apparatus for establishing communications between packet-switched and circuit-switched networks
US5943478A (en) * 1997-04-04 1999-08-24 Flash Communications, Inc. System for immediate popup messaging across the internet
US5940390A (en) * 1997-04-10 1999-08-17 Cisco Technology, Inc. Mechanism for conveying data prioritization information among heterogeneous nodes of a computer network
US5987515A (en) * 1997-08-29 1999-11-16 International Business Machines Corporation Internet protocol assists using multi-path channel protocol
US6003088A (en) * 1997-08-29 1999-12-14 International Business Machines Corporation Blocking IP datagrams in a multi-path channel point-to-point environment
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6252588B1 (en) 1998-06-16 2001-06-26 Zentek Technology, Inc. Method and apparatus for providing an audio visual e-mail system
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6262977B1 (en) * 1998-08-28 2001-07-17 3Com Corporation High availability spanning tree with rapid reconfiguration
JP2002525763A (ja) * 1998-09-23 2002-08-13 シーメンス アクチエンゲゼルシヤフト アクションに基づいて2つの状態の間の状態遷移が行われる、状態を有するシステムに対するアクションのシーケンスをもとめるための方法及び装置
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
US6873616B1 (en) * 1998-12-28 2005-03-29 Nortel Networks Limited Quasi-deterministic gateway selection algorithm for multi-domain source routed networks
US6760775B1 (en) * 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
CN1197322C (zh) 1999-04-26 2005-04-13 诺基亚移动电话有限公司 无线终端
US6788692B1 (en) * 1999-05-03 2004-09-07 Nortel Networks Limited Network switch load balancing
TW428146B (en) 1999-05-05 2001-04-01 Inventec Corp Data file updating method by increment
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US6549937B1 (en) * 1999-07-21 2003-04-15 Microsoft Corporation System and method for multi-protocol communication in a computer network
EP1075119A3 (en) * 1999-08-03 2002-09-18 AT&T Corp. Real-time messaging system with hyperlinks to objects on an application server
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6535867B1 (en) * 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
EP1104965B1 (en) * 1999-12-02 2007-02-28 Sony Deutschland GmbH Protocol for instant messaging
JP2001175550A (ja) 1999-12-07 2001-06-29 Kizna.Com Inc クライアントサーバシステム及びクライアントサーバシステムのデータ伝送方法並びにそのプログラムを記録した媒体
US6931003B2 (en) * 2000-02-09 2005-08-16 Bookline Flolmstead Llc Packet prioritization protocol for a large-scale, high speed computer network
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US7031956B1 (en) 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6594665B1 (en) * 2000-02-18 2003-07-15 Intel Corporation Storing hashed values of data in media to allow faster searches and comparison of data
DE60020518T2 (de) * 2000-03-01 2006-06-29 Sony International (Europe) Gmbh Verwaltung von Benutzerprofilen
US20030014477A1 (en) 2000-03-22 2003-01-16 Oppenheimer David Mig Integrated system and method of providing online access to files
WO2001077824A1 (en) * 2000-04-07 2001-10-18 Agora Interactive, Inc. Method for managing the simultaneous utilization of diverse real-time collaborative software applications
JP3855595B2 (ja) * 2000-04-25 2006-12-13 株式会社日立製作所 通信システム、通信方法及び通信装置
AU2001265407A1 (en) * 2000-05-31 2001-12-11 Snip, Llc Method and system for instant messaging
US6453294B1 (en) * 2000-05-31 2002-09-17 International Business Machines Corporation Dynamic destination-determined multimedia avatars for interactive on-line communications
US6807178B1 (en) * 2000-05-31 2004-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Session dispatcher at a wireless multiplexer interface
AU2001271263A1 (en) * 2000-06-30 2002-01-14 Net2Phone System, method, and computer program product for resolving addressing in a network including a network address translator
WO2002009437A2 (en) 2000-07-25 2002-01-31 America Online, Inc. Video messaging
US20020036990A1 (en) 2000-09-11 2002-03-28 Ben Chodor Still picture capture, editing and distribution system utilizing a publicly accessible wide area network
US7870196B2 (en) 2000-11-08 2011-01-11 Nokia Corporation System and methods for using an application layer control protocol transporting spatial location information pertaining to devices connected to wired and wireless internet protocol networks
US7222184B2 (en) 2000-11-29 2007-05-22 Ncr Corporation Method of downloading web content to a network kiosk in advance
KR100377936B1 (ko) 2000-12-16 2003-03-29 삼성전자주식회사 이동통신 단말기의 감정 아이콘 입력방법
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020103898A1 (en) * 2001-01-31 2002-08-01 Moyer Stanley L. System and method for using session initiation protocol (SIP) to communicate with networked appliances
US20020107925A1 (en) 2001-02-05 2002-08-08 Robert Goldschneider Method and system for e-mail management
US6993012B2 (en) * 2001-02-20 2006-01-31 Innomedia Pte, Ltd Method for communicating audio data in a packet switched network
JP3917076B2 (ja) * 2001-02-20 2007-05-23 アイボール ネットワークス インコーポレイテッド ファイアウォールを通過してデータを送信可能にする方法および装置
US20020194006A1 (en) 2001-03-29 2002-12-19 Koninklijke Philips Electronics N.V. Text to visual speech system and method incorporating facial emotions
US7080139B1 (en) 2001-04-24 2006-07-18 Fatbubble, Inc Method and apparatus for selectively sharing and passively tracking communication device experiences
JP2002330152A (ja) * 2001-04-27 2002-11-15 Fujitsu Ltd 障害時/増設時におけるスパニングツリー制御装置及び方法
US7171415B2 (en) 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
MXPA03010213A (es) 2001-05-11 2004-03-10 Nokia Corp Servicio de presencia y mensajeria instantanea movil.
US7480707B2 (en) * 2001-05-16 2009-01-20 International Business Machines Corporation Network communications management system and method
US6983305B2 (en) * 2001-05-30 2006-01-03 Microsoft Corporation Systems and methods for interfacing with a user in instant messaging
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7149189B2 (en) 2001-07-17 2006-12-12 Mcafee, Inc. Network data retrieval and filter systems and methods
US20040179712A1 (en) 2001-07-24 2004-09-16 Gerrit Roelofsen Method and sysem and data source for processing of image data
US6987991B2 (en) 2001-08-17 2006-01-17 Wildseed Ltd. Emoticon input method and apparatus
US7765484B2 (en) 2001-09-28 2010-07-27 Aol Inc. Passive personalization of lists
US7633942B2 (en) * 2001-10-15 2009-12-15 Avaya Inc. Network traffic generation and monitoring systems and methods for their use in testing frameworks for determining suitability of a network for target applications
NO315679B1 (no) 2001-10-19 2003-10-06 Dmates As Rik kommunikasjon over internett
US8095668B2 (en) * 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US6983370B2 (en) * 2001-11-27 2006-01-03 Motorola, Inc. System for providing continuity between messaging clients and method therefor
JP2003167832A (ja) * 2001-11-29 2003-06-13 Minolta Co Ltd メッセージ処理システムおよびメッセージ処理装置
US7127613B2 (en) * 2002-02-25 2006-10-24 Sun Microsystems, Inc. Secured peer-to-peer network data exchange
US7233979B2 (en) * 2002-03-14 2007-06-19 Microsoft Corporation Instant messaging session invite for arranging peer-to-peer communication between applications
US7203356B2 (en) * 2002-04-11 2007-04-10 Canesta, Inc. Subject segmentation and tracking using 3D sensing technology for video compression in multimedia applications
US6629793B1 (en) 2002-04-26 2003-10-07 Westie Intellectual Properties Limited Partnership Emoticon keyboard
US7689649B2 (en) 2002-05-31 2010-03-30 Aol Inc. Rendering destination instant messaging personalization items before communicating with destination
US20030225848A1 (en) 2002-05-31 2003-12-04 Brian Heikes Remote instant messaging personalization items
US7779076B2 (en) 2002-05-31 2010-08-17 Aol Inc. Instant messaging personalization
US7552204B2 (en) 2002-05-15 2009-06-23 Microsoft Corporation Method and system for supporting the communication of presence information among computing devices of a network
US20030217142A1 (en) 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
US7486611B1 (en) * 2002-05-20 2009-02-03 Cisco Technology, Inc. Standby router protocol using optimal route metric
US20030225847A1 (en) 2002-05-31 2003-12-04 Brian Heikes Sending instant messaging personalization items
EP2469716B1 (en) * 2002-06-26 2013-12-04 Yahoo! Inc. System and method for communicating images between intercommunicating users
US6757722B2 (en) 2002-07-16 2004-06-29 Nokia Corporation System and method for providing partial presence notifications
US9497168B2 (en) * 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
ITTO20020724A1 (it) 2002-08-14 2004-02-15 Telecom Italia Lab Spa Procedimento e sistema per la trasmissione di messaggi su
US7657597B2 (en) 2002-09-26 2010-02-02 Sun Microsystems, Inc. Instant messaging using distributed indexes
US7353253B1 (en) 2002-10-07 2008-04-01 Webex Communicatons, Inc. Peer-to-peer messaging system
WO2004046949A1 (en) 2002-11-18 2004-06-03 America Online, Inc. Handling a multimedia object associated with an electronic message
US7289520B2 (en) 2002-11-20 2007-10-30 Hewlett-Packard Development Company, L.P. Method, apparatus, and system for expressway routing among peers
US7523165B2 (en) 2002-12-24 2009-04-21 Telefonaktiebolaget L M Ericsson (Publ) Transmission of application information and commands using presence technology
US7185285B2 (en) 2003-02-19 2007-02-27 Microsoft Corporation User interface and content enhancements for real-time communication
US20040249958A1 (en) * 2003-06-04 2004-12-09 Ozdemir Hasan Timucin Method and apparatus for secure internet communications
US20040260841A1 (en) * 2003-06-19 2004-12-23 Mathew Tisson K. Method, apparatus, and system for internet protocol communication over intelligent platform management bus
US7296223B2 (en) 2003-06-27 2007-11-13 Xerox Corporation System and method for structured document authoring
EP1644840A4 (en) 2003-07-01 2007-04-25 Apple Computer PEER-TO-PEER CONTENT SHARING
US7539727B2 (en) 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
JP4046654B2 (ja) 2003-07-04 2008-02-13 日本電信電話株式会社 P2p通信システム
US20050027839A1 (en) 2003-07-31 2005-02-03 International Business Machiness Corporation Method, system and program product for dynamic transmission in a messaging session
AU2003903994A0 (en) 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US7315866B2 (en) 2003-10-02 2008-01-01 Agency For Science, Technology And Research Method for incremental authentication of documents
US7437374B2 (en) 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US20060015560A1 (en) 2004-05-11 2006-01-19 Microsoft Corporation Multi-sensory emoticons in a communication system
US20050273472A1 (en) 2004-06-04 2005-12-08 Prakash Reddy Verifying incremental updates to hierarchicaly structured information
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
TWI262678B (en) 2004-06-30 2006-09-21 Inst Information Industry Peer-to-peer communication system, method and machine-readable storage medium
US7302270B1 (en) 2004-08-02 2007-11-27 Cisco Technology, Inc. Time interval processing and annotation in presence systems
US7552430B2 (en) 2004-08-31 2009-06-23 Microsoft Corporation Patch sequencing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379880A (zh) * 1999-10-18 2002-11-13 爱亭株式会社 信息分发装置和方法以及记录了程序的记录媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007140721A1 (fr) * 2006-05-29 2007-12-13 Tencent Technology (Shenzhen) Company Limited procédé et système pour une transmission de données d'homologue à homologue
CN101330431B (zh) * 2007-06-19 2011-04-06 阿里巴巴集团控股有限公司 一种即时信息存储方法和系统
TWI407727B (zh) * 2007-07-25 2013-09-01 Tencent Tech Shenzhen Co Ltd A Method and System of Data Transmission Based on Peer - to - Peer P2P
WO2011015020A1 (zh) * 2009-08-06 2011-02-10 中兴通讯股份有限公司 文件传输方法、系统及客户端
CN103472995A (zh) * 2013-09-10 2013-12-25 小米科技有限责任公司 一种消息展示的方法、装置及终端设备
US10320730B2 (en) 2013-09-10 2019-06-11 Xiaomi Inc. Method and device for displaying message

Also Published As

Publication number Publication date
US20050005014A1 (en) 2005-01-06
CA2470013C (en) 2012-09-11
EP2259514A1 (en) 2010-12-08
US7363378B2 (en) 2008-04-22
US8185635B2 (en) 2012-05-22
CN1578278B (zh) 2019-07-16
CA2782768A1 (en) 2005-01-01
BRPI0402437A (pt) 2005-05-24
JP2011054178A (ja) 2011-03-17
JP4634077B2 (ja) 2011-02-16
EP1494410A3 (en) 2005-03-09
MXPA04006451A (es) 2005-08-19
EP1494410B1 (en) 2013-08-14
US20120233339A1 (en) 2012-09-13
CA2470013A1 (en) 2005-01-01
EP2259513A1 (en) 2010-12-08
KR20050004079A (ko) 2005-01-12
KR101150110B1 (ko) 2012-06-08
US20080209051A1 (en) 2008-08-28
CA2782768C (en) 2014-12-02
JP2005027318A (ja) 2005-01-27
EP1494410A2 (en) 2005-01-05

Similar Documents

Publication Publication Date Title
CN1578278A (zh) 即时消息的传输系统
CN1302684C (zh) 更新群组成员资格列表以促进群组通信的方法
CN1108563C (zh) 配置地址数据库的报文传送服务系统
CN1595933A (zh) 对话控制装置、信息通信终端、服务器以及终端
CN1716964A (zh) 维持会话连接
CN1864397A (zh) 支持增强媒体通信
CN1682209A (zh) 用于无线移动终端的语音和文本组聊天方法
CN1949809A (zh) 使用分组网电话机安排电话会议的方法和系统
CN1703690A (zh) 用于会议控制中成员资格管理的侧信道
CN1605074A (zh) 从单播到组播的视频会议对话转换
CN1214635C (zh) Ip网络会议电视的会议调度系统与方法
CN1653829A (zh) 在非即时消息传送环境中提供即时消息传送功能
CN1742473A (zh) 用于在不同网络协议之间传输数据的通用协议层体系结构和方法、以及通用协议分组
CN1943131A (zh) 用于在无线移动终端与联网计算机之间进行消息通信的方法、系统和装置
CN1863157A (zh) 穿越nat实现网络通信的方法及装置
CN101030865A (zh) 一种网络地址转换和/或防火墙穿越平台、系统及其方法
CN101047534A (zh) 用户主动加入会议的方法、装置及系统
CN101064869A (zh) 移动消息收发器服务中的图像传输的移动通信终端及方法
CN1450761A (zh) 网络虚拟形象在即时通信工具上表现的实现方法
CN101040511A (zh) Pt系统的预约服务方法
US20040246950A1 (en) Private sharing of computer resources over an internetwork
CN1889439A (zh) 一种保存即时消息业务中会话信息的方法及系统
CN1898941A (zh) VoIP网关装置及VoIP网关装置中呼叫的主叫与被叫控制方法
CN1859331A (zh) 一种多方通信的实现方法及系统
CN1756241A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150717

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150717

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190716

Termination date: 20200630

CF01 Termination of patent right due to non-payment of annual fee