管理网络节点之间的网络通信以及流传输协议的制作方法

文档序号:7848729阅读:261来源:国知局
专利名称:管理网络节点之间的网络通信以及流传输协议的制作方法
管理网络节点之间的网络通信以及流传输协议背景当面对面通信不切实际时,人们往往依赖于ー种或更多种技术性解决方案来满足其通信需求。这些解决方案一般设计为模拟面对面通信的ー个或更多个方面。传统电话系统使得能在呼叫者之间进行语音通信。即时消息接发(也称为“聊天”)通信系统使用户能够通过由即时消息服务器互连的即时消息计算机客户端来实时地传达文本消息。一些即时消息接发系统另外允许用户在虚拟环境中由用户可控的图形对象(称为“头像”)来表示。交互式虚拟现实通信系统使得在远程位置上的各用户能够在多个实时信道上进行通信井能通过在虚拟空间中操控其各自的头像来彼此交互。
成功的通信系统通常应具有相对低的计算资源要求,以便实时通信性能可使用当前可用的计算设备和网络带宽限制来达成。另外,此类系统通常应以在跨多样的网络拓扑的各种不同设备之间达成高可连通性、并提供对向这些通信设备的流传输的恰适控制以使得合意的通信体验能被达成的方式来实现。附图描述图I是包括第一客户端网络节点、第二客户端网络节点、以及服务器节点的网络通信环境的示例性实施例的图解视图。图2是图I的网络通信环境的示例性实施例的图解视图,其示出各网络节点之间的一组示例性的网络连接和会话。图3是客户端网络节点的示例性实施例的图解视图。图4示出根据发布订阅数据共享模型在网络节点之间共享数据的方法的示例性实施例。图5示出流传输协议记录的示例性实施例。图6示出封装在以太网帧中的流传输协议记录的示例性实施例。图7示出图I的网络通信环境的示例性实施例的在其中客户端和服务器网络节点在建立于这些网络节点之间的各个会话中的各种信道上通信的示例性实施例。图8示出响应于来自客户端节点的登录消息的方法的示例性实施例。图9示出响应于收到来自账户服务的站定义的方法的示例性实施例。

图10示出置备客户端节点以彼此通信的方法的示例性实施例。图11示出在客户端网络节点之间协商链路的方法的示例性实施例。图12示出包含在图11的方法的示例性实施例中在客户端网络节点之间传送的一组示例性消息的示例性交互图。图13示出在客户端网络节点之间在传输流之上建立会话的方法的示例性实施例。图14示出包含在图13的方法的示例性实施例中在客户端网络节点之间传送的一组示例性消息的示例性交互图。图15示出保活(Keepalive)定义记录的示例性实施例。图16示出保活(Keepalive)确收定义记录的示例性实施例。
图17示出控制确收消息的流动的方法的示例性实施例。图18A示出根据本发明实施例的在会话伙伴节点之间的示例性的保活消息互換。图18B示出根据本发明实施例的来自会话伙伴节点的分组的示例性流动。图18C示出确认收到来自会话伙伴节点的分组的方法的示例性实施例。图19示出在会话中在可靠信道上发送分组的方法的示例性实施例。图20示出根据本发明的实施例的由发送方节点发送分组并由接收方节点确认收到的分组的方法的示例性实施例。图21示出在会话中在可靠信道上接收分组的方法的示例性实施例。图22示出网络通信环境的示例性实施例。 图23示出客户端网络节点的示例性实施例。详细描述在以下描述中,相同參考标号用于标识相同元素。此外,附图g在以图解方式说明示例性实施例的主要特征。附图并非_在描绘实际实施例的每个特征,也非_在描绘所描绘的元素的相对尺寸,并且所描绘的元素不是按比例绘制的。I.术语的定义“通信者”是在ー个或更多个网络连接之上与其他人通信或以其他方式交互的人,其中该通信或交互可以在或可以不在虚拟区域的上下文中发生。“用户”是正在操作特定网络节点的通信者,其出于描述性目的定义特定视角。“计算机”是根据临时或永久地存储在计算机可读介质上的计算机可读指令来处理数据的任何机器、设备或装置。“计算机操作系统”是计算机系统的管理和协调任务执行以及计算和硬件资源共享的软件组件。“软件应用”(也被称为软件、应用、计算机软件、计算机应用、程序、以及计算机程序)是计算机能解读和执行以行使ー个或更多个具体任务的指令集。“计算机数据文件”是耐久地存储数据以供软件应用使用的信息块。“数据库”是以可由计算机捜索的标准化格式呈现的有组织的记录集合。数据库可被存储在单台计算机上的单个计算机可读数据存储介质上,或者其可跨一台或更多台计算机上的多个计算机可读数据存储介质分布。“数据阱”(在本文中简称为“阱”)是接收数据的设备(例如,计算机)、设备的一部分、或软件中的任一者。“数据源”(在本文中简称为“源”)是始发数据的设备(例如,计算机)、设备的一部分、或软件中的任一者。“网络节点”(也简称为“节点”)是通信网络中的联结或连接点。示例性网络节点包括,但不限于,終端、计算机和网络交換机。“服务器”网络节点是网络上的对信息或服务请求作出响应的主机计算机。“客户端网络节点”是网络上的向服务器请求信息或服务的计算机。术语“本地网络节点”是指当前为首要讨论主体的网络节点。术语“远程网络节点”是指由网络通信链路连接到本地网络节点的网络节点。“网络地址”是消息源或目的地的因协议而异的经编码表示,并被用于唯一性地标识网络上的网络节点。“套接字”是网络通信端点。应用程序通常通过调用托管该应用程序的操作系统的网络服务应用编程接ロ(API)来创建用于在网络之上通信的套接字。
“协议端ロ”(或简称“端ロ”)是在网络节点内起到通信端点作用的因应用而异的或因进程而异的软件构造。传输协议向各端ロ指派唯一性的号码以在网络节点内的不同端点间加以区分。“网络连接”(或简称“连接”)是两个网络节点之间的数据通信路径。从给定网络节点的视角来看,“传输流”(或简称“流”)是该给定网络节点与另ー网络节点之间的直接连接。“会话”是两个端点网络节点(本文中称为“会话伙伴”)之间的逻辑连接,其提供用于从该会话被建立的时间到其被拆卸的时间在这两个网络节点之间互换消息的上下文。从给定网络节点的视角来看,会话是在传输流上被传输的,其中该传输流可以被定址到或可以不被定址到会话伙伴。例如,传输流可以被定址到代理服务器,由该代理服务器将该会话桥接到会话伙伴。“对等”(P2P)会话是各自均能发起该P2P会话且在该P2P会话期间扮演客户端和服务器角色的两个网络节点之间的会话。

“普遍唯一性标识符”(也称为“全局唯一性标识符”、或⑶ID)是用来唯一性地标识计算机系统中或网络(例如,因特网)上的对象的号码。普遍唯一性标识符是在不需要中央服务或权威机构来管辖的情况下生成的。普遍唯一性标识符通常是16个八位位组(128比持)的八位位组串。取决于用来生成普遍唯一性标识符的具体机制,普遍唯一性标识符或者被担保不同于、或者至少及其可能不同于任何其他普遍唯一性标识符。“公知UUID”是用来跨网络可靠地标识持久性对象的UUID。同步会议是指各通信者同时參与的通信。同步会议涵盖了所有类型的联网协作技术,包括即时消息接发(例如,文本聊天)、音频会议、视频会议、应用共享、以及文件共享技术。“实时数据流”是在连续流动中被结构化和处理、且被设计成无延迟地或仅以觉察不到的延迟被接收的数据。实时数据流包括语音、视频、用户移动、面部表情以及其他物理现象的数字表示,以及计算环境内的可受益于快速传输、快速执行、或快速传输和快速执行两者的数据,包括例如头像移动指令、文本聊天、实时数据馈送(例如,传感器数据、机器控制指令、交易流和股价信息馈送)、以及文件传输。“虚拟区域”(也称为“区域”或“场所”)是计算机管理的空间或场景的表示。虚拟区域通常是ー维、ニ维、或三维表示;尽管在一些实施例中虚拟区域可对应于单个点。虚拟区域时常被设计为模拟物理的现实世界空间。例如,使用传统的计算机监视器,虚拟区域可被视觉化为计算机生成的三维空间的ニ维图形。但是,虚拟区域不需要相关联的视觉化来实现交換规则。虚拟区域通常是指虚拟区域大纲的实例,其中大纲以变量的形式来定义虚拟区域的结构和内容,而实例以已从特定上下文解析出的值的形式来定义虚拟区域的结构和内容。“虚拟区域应用”(也称为“虚拟区域规范”)是在创建虚拟环境时使用的对虚拟区域的描述。虚拟区域应用通常包括对与虚拟区域的一个或更多个区划相关联的几何、物理、和实时交换规则的定义。“虚拟区域通信应用”是将实时音频通信(以及潜在可能将其他实时通信,例如视频、聊天、以及其他实时数据流)与虚拟区域中的交互的视觉呈现相集成的客户端通信应用。
“虚拟环境”是包括至少ー个虚拟区域且支持通信者之间的实时通信的由计算机管理的空间的表示。“区划”是虚拟区域中与至少ー个交换规则或支配规则相关联的界域。“交换规则”是规定一个或更多个实时数据源以及一个或更多个实时数据阱的受制于一个或更多个先决条件的连接或断开的指令。交换规则控制实时数据流在虚拟区域的上下文中通信的网络节点之间的交換(例如,路由、连接、以及断开)。支配规则控制通信者对资源(例如,区域、区域的界域、或该区域或界域的内容)的访问、该访问的范围、以及该访问的后继结果(例如,必须记录与该访问有关的审计记录的要求)。“可呈现区划”是与相应的视觉化相关联的区划。虚拟区域中的“位置”是指该虚拟区域中的点或面积或体积的位置。点通常是由单组定义虚拟区域中的位点的ー维、ニ维、或三维坐标(例如,X、I、z)来表示的。面积通常由定义虚拟区域中闭合的ニ维形状的边界的三个或更多个共面顶点的三维坐标来表示。体积通常由定义虚拟区域中的三维形状的闭合边界的四个或更多个非共面顶点的三维坐标来表示。 在虚拟区域的上下文中,“对象”(有时也称作“道具(prop)”)是虚拟区域中可有用地与该虚拟区域的几何分开对待的任何类型的分立元素。示例性的对象包括门、入口、窗、视图屏幕、以及扬声器电话。对象通常具有与虚拟区域的属性和特性分离且相异的属性和特性。“头像”(本文中也称作“精灵贴图”)是在虚拟区域中表示通信者的对象。如本文中所使用的,术语“包括”意味着包括但不限干,术语“包含”意味着包含但不限干。术语“基干”意味着至少部分地基干。II.引言本文中描述的实施例提供支持在各自网络节点上操作的通信者之间的实时网络通信的流传输协议。该流传输协议具有相对低的计算资源要求,从而实时通信性能可使用当前可用的广大范围的计算设备和网络连接来达成。在一些实施例中,该流传输协议不但支持对客户端通信会话的远程管理及对音频和图形呈现引擎的远程配置和执行,还支持响应于从远程托管的服务器应用接收的指令(也称为定义)对数据流的交換。以此方式,该流传输协议使得应用开发者能維持其通信环境在远程客户端网络节点上的呈现的控制,由此鼓励开发各种各样不同类型的虚拟区域并增加将想要采用该通信系统的用户的数目。该流传输协议不但在连接和断开上、而且在传输上是高效率的。在一些实施例中,该流传输协议提供在传输协议(例如,UDP, TCP、HTTP、以及PPP)之上的面向连接的经加密连接。该流传输协议另外在客户端应用与传输层之间提供重连机制,该重连机制在无需客户端应用的干预的情况下自动尝试重新建立失效的连接,由此在固有不可靠的通信协议的上面増加了可靠性。III.综览图I示出示例性网络通信环境10的实施例,其包括由网络20互连的第一客户端网络节点12(客户端节点A)、第二客户端网络节点14(客户端网络节点B)、服务器节点16、以及任选的代理节点18。第一客户端网络节点12包括有形计算机可读存储器22、处理器
24、以及输入/输出(I/O)硬件26 (包括显示器)。处理器24执行存储于存储器22中的至少ー个通信应用28。第二客户端网络节点14通常以与第一客户端网络节点12基本上相同的一般方式来配置成具有存储至少ー个通信应用32的有形计算机可读存储器30、处理器
34、以及输入/输出(I/O)硬件36 (包括显示器)。服务器节点16通常是支持客户端节点12、14之间的ー种或更多种类型的通信(例如,即时消息接发(例如,文本聊天)、音频会议、视频会议、应用共享、以及文件共享)的同步会议服务器节点。通信应用28、32与服务器节点16—起提供用于如由服务器节点16托管的服务器应用38所规定的那样来管理根据流传输协议在网络节点12、14上操作的通信者之间的通信的平台(本文中称为“平台”),该流传输协议支持对客户端通信会话的远程管理、对流处理引擎的远程配置和执行、以及对实时数据流的远程控制的交換。网络20可包括局域网(LAN)、城域网(MAN)和广域网(WAN)(例如,因特网)中的任一者。网络20通常包括广为支持网络节点之间各种各样不同的媒体类型(例如,文本、语音、音频、以及视频)的传输的数个不同的计算平台和传输设施。图2示出可在客户端节点12、14与服务器节点16之间建立的一组示例性的会话。 在此示例中,客户端节点12、14各自与服务器节点16建立相应的服务器会话40、42。服务器会话40、42各自是在客户端节点12、14中相应的ー个与服务器节点16之间的相应网络连接之上建立的。另外,客户端节点12、14各自还在客户端节点12、14之间的网络连接之上建立对等(P2P)会话44。客户端节点12、14还可建立并保活一个或更多个替换(或备份)连接46、48、50,其可被用作用于在发生原始P2P会话失效的情况下在客户端节点12、14之间重新建立P2P会话的故障转移连接。在所解说的示例中,替换网络连接50是通过代理节点18来建立的,该代理节点18仅单纯地在客户端节点12、14之间中继消息(包括会话协商消息)。网络节点12、14各自具有相应的ー组ー个或更多个源52、54以及示例性的ー组ー个或更多个阱56、58。每个源是始发特定数据流内容类型的数据的设备或组件,并且每个阱是接收特定数据流内容类型的数据的设备或组件。相同数据流内容类型的源和阱在本文中被称为是“互补的”。示例性的源包括音频源(例如,诸如话筒之类的音频捕捉设备)、视频源(例如,诸如摄像机之类的视频捕捉设备)、聊天源(例如,诸如键盘之类的文本捕捉设备)、运动数据源(例如,诸如计算机鼠标之类的定点设备);以及其他源(例如,文件共享源或定制实时数据流源)。示例性的阱包括音频阱(例如,诸如扬声器或听筒之类的音频呈现设备)、视频阱(例如,诸如显示器监视器之类的视频呈现设备)、聊天阱(例如,诸如显示器监视器之类的文本呈现设备)、运动数据阱(例如,诸如显示器监视器之类的运动呈现设备)、以及其他阱(例如,用于打印共享文件的打印机、用于呈现不同于已描述的那些的实时数据流的设备、或处理实时流供分析或定制显示的软件)。每个源具有活跃状态和不活跃状态,在活跃状态中该源对始发数据可用,并且在不活跃状态中该源对始发数据不可用。类似地,每个阱具有活跃状态和不活跃状态,在活跃状态中该阱对接收数据可用,并且在不活跃状态中该阱对接收数据不可用。源和阱的状态通常可由操作客户端节点12、14的通信者经由通信应用28、32提供的控件来控制。例如,在一些实施例中,通信应用28、32提供用于开/关客户端网络节点12、14上的本地话筒和本地扬声器(例如,头戴式送受话器)的用户控件。如在下面详细解释的,在服务器会话40、42中,服务器节点16根据服务器应用38中规定的交换规则来向客户端节点12、14中的每ー者发送置备消息60、62,置备消息60、62将客户端节点12、14配置成把其互补的源和阱中活跃的那些互补的源和阱之间相应的数据流互连起来。通过使服务器应用开发者能够控制如何在处于不同客户端节点上的源与阱之间建立连接,该平台就使应用开发者能够控制通信者当在网络通信环境10中彼此通信及以其他方式交互时的体验。以此方式,服务器应用开发者就能够使通信者之间的通信针对特定通信目的或针对特定通信环境(例如,虚拟聊天室、虚拟艺廊、虚拟礼堂、虚拟会议室、以及虚拟俱乐部会所)来最优化。IV.实施该流传输通信协议的示例性系统和方法A.引言图3示出客户端节点12、14中的一者或其两者的示例性实施例70,其包括流传输服务72以及其他客户端进程74,它们合而构成用于根据接收自服务器节点16的指令来呈现通信环境的轻型客户端通信应用。流传输服务72以及其他客户端进程74在不同级别エ作一从网络特征一直到音频和图形呈现配置。流传输服务72管理客户端网络节点70与 其他网络节点之间的会话。在此过程中,流传输服务72通常提供向应用层中的客户端进程74导出信道和会话的本地API、以及用于在服务器会话中与工作在服务器网络节点16上的通信服务通信的远程API。在一些实施例中,客户端节点12、14上的通信应用28、32通常包括各自的图形用户界面(⑶I)应用,其提供用于对通信者交互进行视觉化和控制的视觉界面。这些⑶I应用被配置成通过本地流传输服务API来与服务器应用38通信。在一些实施例中,GUI应用是远程控制的终端应用,其被配置成将用户输入(例如,计算机鼠标输入)传递给实现本地API的相应各个客户端进程74,并呈现从这些客户端进程74接收到的图形数据(例如,聊天数据和图形内容,诸如屏幕共享数据之类)。实现本地API的这些客户端进程74与流传输服务72通信以在恰适会话和信道上公布包含用户输入的定义的消息,并订阅在恰适会话和信道上接收自远程网络节点的数据。另外,其中一个或更多个客户端进程74由接收自服务器网络节点16上的通信服务的指令远程配置成创建(和拆卸)用于处理接收自其他客户端网络节点的入站数据的数据处理组件图。例如,一些实施例包括实时内核的可远程配置的音频处理服务,其响应于接收自服务器网络节点16上的通信服务的定义来创建和拆卸音频处理组件图。关于包括可远程配置的处理组件的示例性实时内核的更多详情在2009年12月4日提交的美国申请No. 12/630,973中提供。在会话期间,数据作为传输协议套接字之上的定义记录在客户端网络节点70与其他网络节点之间共享。此轻型客户端架构通过在服务器会话之上接收的定义记录来接收来自服务器节点16的配置指令。此轻型客户端架构还通过在与其他客户端网络节点的相应各个会话上的因内容而异的信道上接收的定义记录来接收来自其他客户端网络节点的内容。数据根据公布/订阅模型被共享。流传输服务72仅订阅客户端网络节点70所需要的那些数据。为了订阅,流传输服务72在与另ー网络节点建立的会话上协商信道。该信道是通过用于该特定服务器应用38的公知GUID来协商的。定义记录仅在订户存在于传输协议套接字的另一端上时才被传送。由流传输服务72接收的定义记录一旦到达即被递送给这些客户端进程74中进行了订阅的那些进程。如图3中所示,流传输服务72管理传输流78上的会话76。在一些实施例中,流传输协议会话的上下文中的传输流由{IP,端ロ }地址对以及标识用于创建该流的传输协议(例如,m)P)的传输⑶ID来定义。会话76包括零个或更多个逻辑信道,其中信道是对特定客户端进程74 (例如,图形引擎、音频管理器、以及流交換管理器)而言恰适的定义记录的序列。由此,单个套接字上的相同传输流78可传输不同信道上的定义记录,其各自由客户端进程74中的零个、ー个、或多个进程所订阅。在所解说的实施例中,流传输服务72管理两种信道包含流送媒体记录86 (例如,音频分组)的媒体信道80 ;以及包含定义记录88的定义记录信道82。媒体记录86的示例包括音频编解码器和文本。定义记录88的示例包括会话维护定义(例如,保活/确收定义记录)、客户端置备定义(例如,诸如音频处理元素之类的处理图元素的定义)、3D呈现资产(例如,纹理和网格)的定义、以及RDS (例如,头像运动检查点)的定义。定义记录88和媒体记录86被封装在流传输协议记录中。流传输协议记录由加密进程84加密,用分组号来贯序,并包括消息完好性字段。流传输协议记录的贯序独立于记录源或目的——其是用于检测脱序或丢失记录的链路级别特征。流传输协议记录由信道来 标识。GUID被用作信道标识符。定义记录88和媒体记录86可以信道级别使用相应各个因信道而异的压缩器90、92独立于流传输协议记录封装地来压缩。每个流传输协议记录通常包含一个或更多个定义记录88或ー个媒体分组96。流传输协议记录在传输流78之上作为根据传输协议(例如,UDP、TCP、HTTP、以及PPP)格式化的分组的载荷来递送。在图3中所示的实施例中,流传输服务72是四层协议套件的组件,该四层协议套件包括应用层91、传输层93、网络层95、以及链路层96。应用层91包含使通信者与网络接ロ的用户级别进程。传输层91包括流传输服务72和传输协议99 (例如,用户数据报协议(UDP)),并使应用层93与网络层95接ロ。网络层95根据ー个或更多个协议(例如,网际协议(IP)、网际控制消息协议(ICMP)、以及网际组管理协议(IGMP))来管理数据通过网络的移动。链路层97管理物理地与网络介质(例如,以太网电缆等)接ロ的详情,并且通常包括操作系统的设备驱动程序组件以及客户端节点70的物理网络硬件组件(例如,网络接ロ卡(NIC))。B公布和订阅数据共享模型在一些实施例中,数据由网络节点根据公布/订阅模型来共享,该模型通常是无连接的。在这些实施例中,客户端节点12、14仅订阅它们需要的数据。服务器节点16基于客户端节点12、14的源和阱各自相应的状态(即,活跃或不活跃)来确定每个客户端节点需要什么信道。服务器应用38向每个客户端节点12、14发送各自相应的发布消息,发布消息指示有什么信息流对该客户端可用,并用GUID句柄来对每个流加标签。在每个客户端节点上操作的每个客户端进程74可订阅这些信道中的零个或更多个信道。订阅信道的客户端进程74向本地流传输服务72注册以在信道状态改变和信道记录到来时接收其通知。每个客户端节点然后使用由服务器应用38规定的公知信道GUID来订阅来自其他客户端节点的合意信道。对特定信道的服务器数据的任何改变均将作为定义记录向已订阅该信道的所有客户端发送。图4示出客户端网络节点12、14藉以根据公布和订阅数据共享模型来彼此共享数据的方法的实施例。在此方法中,本地客户端网络节点从服务器网络节点接收可从该本地客户端网络节点公布的本地公布信道的标识(图4,框101)。这些公布信道对应于能从本地客户端网络节点起源的内容。本地客户端网络节点存储标识能从该本地客户端网络节点公布的本地公布信道、以及与该本地客户端网络节点上的一个或更多个本地软件实体相关联的本地订阅信道的寄存器(图4,框103)。本地客户端网络节点与远程客户端网络节点建立对等会话(图4,框105)。本地客户端网络节点在该对等会话上公布这些本地公布信道和本地订阅信道(图4,框107)。响应于在该对等会话上收到一个或更多个远程公布信道的公布,本地客户端网络节点向该远程客户端网络节点发送对匹配于这些远程公布信道中的相应ー个远程公布信道的每个本地订阅信道的订阅请求(图4,框109)。响应于在对等会话上在匹配于这些本地订阅信道中的相应ー个本地订阅信道的内容信道中收到数据,本地客户端网络节点将接收到的数据传递给与匹配的本地订阅信道相关联的每个本地软件实体(图4,框111)。响应于在该会话上收到订阅这些本地公布信道中的相应ー个本地公布信道的请求,本地客户端网络节点向远程客户端网络节点发送与相应的本地公布信道相关联的数据(图 4,框 113)。回到图3,流传输服务72维护本地公布和订阅实体的寄存器94 (例如,表)。该列
表中的每个条目包含·由该实体创建的本地客户端进程74的标识符·服务器标识符·信道标识符·该条目是公布条目还是订阅条目的指示 (对于订阅)一个或更多个传输參数本地公布和订阅实体的寄存器94用以下内容来初始化{StreamTransportServicelD, GUID_NULL, SessionChannelID, Subscribe, Reliable, Uncompressed} ( {流传输服务ID,⑶ID_空,会话信道ID,订阅,可靠,未压缩})以此方式,流传输服务72 (其由StreamTransportServicelD标识)订阅任何会话信道上正到达的所有正到达定义记录88,包括公布和订阅定义记录。⑶ID_NULL信道从不被公布,并且每一服务器假定⑶ID_NULL信道在每个传输流上是用公知信道ID来订阅的。流传输服务72还维护所有已到达的公布定义的寄存器96,以供在本地列表中注册后来订阅被的情形中使用。{IDClient, IDServer, IDChannel} ( {ID 客户端,ID 服务器,ID 信道})其中IDClient是该信道g在去往的特定客户端进程74的⑶ID (可能为空),IDServer是信道记录的远程源,并且IDChannel是信道的公知⑶ID。当流传输服务72接收针对去往另ー个站的连接的会话定义吋,该流传输服务72建立该流,发送该会话定义,并且然后在会话信道上发送定义记录中的所有存储着的本地公布条目。当公布定义到达流传输服务72处时,流传输服务72将该定义输入到公布定义表中,井随后在该会话信道上为本地列表中在公布记录中具有匹配信道ID的每个订阅条目发送订阅定义。当订阅定义到达时,流传输服务72开始在给定的定义记录信道上发送包含针对该定义的定义记录的定义更新(从公布服务器应用38以管道输送)。这些记录可在不止ー个信道上被发送。当客户端进程74想要与服务器一起參与信道吋,该客户端进程74定义订阅请求,无论是否存在去往任何服务器的任何传输流。如果服务器应用38以后才公布(即,在流被建立之后),则本地表中的改变触发远程公布定义表中的公布条目的重新发送,这自动触发在该传输流的另一端上的任何潜在订阅。如果客户端进程74以后才订阅且公布表96中有条目,则流传输服务72自动发送订阅请求。该过程确保信道数据仅在被接收方需要时才在传输流之上被发送。C SODA定义记录在一些实施例中,由网络节点传送的定义记录是SODA (Sococo定义架构)记录。每个SODA记录包含ー个或更多个SODA定义。SODA定义的示例有会话维护定义(例如,保活/确收定义记录)、客户端置备定义(例如,诸如音频处理元素之类的处理图元素的定义)、3D呈现资产(例如,纹理和网格)的定义、以及RDS (例如,头像运动检查点)的定义。SODA记录是具有初始⑶ID ID及ー个或更多个SODA定义的嵌套结构。SODA定义 具有定义类型、定义长度以及零个或更多个字段。定义类型是公知的GUID(例如,guidAsset和guidAudioMix)。长度指示该SODA定义的包括所有字段的总大小。字段是因类型而异的固定字段和嵌套SODA定义的组合。SP,
SOD \ Rccord:"SODA と
guid 丨D/7guid !D
SODA definitionSODA iX
…II ...
SODA Definition://SODA 记义
Guid DefmitionType//Guid 定义类型
long length;//长整型长度
.[Field] - depend upon definitionType //[字段]-取决于定义类塑
Fixed field//固定字段
OrSODA Definition//或 SODA 定义例如,
SODAミ丨」4
GI;ID: YYVY—
SODA操作长度318_
操作ART ASSET (艺术资产)_
属性长度24类,纹理
COLLADA NAME (C0LLADA 名称),Tex7
COLLADA ID. 449 _
数据:长度25β _
0002 2B (SC 00 01 ...D. STRAW 信道和 STRAW 分组在不同网络节点上工作的流传输服务的实例在各信道之上通信,这些信道为会话话务的逻辑细分。在一些实施例中,这些信道由STRAW (Sococo WAN传输)信道,其各自由信道ID标识,并被定义为内容ID、压缩ID、标志集、以及压缩预载数据串。在这些实施例中,信道是在会话中的两个网络节点之间传递SODA或媒体记录的逻辑构造。信道可以是可靠的或不可靠的,经压缩的或非压缩的。信道的内容由内容内容ID来标识。内容ID是公知的UUID——它们被置于报头文件中,并在数据库中公布,由此应用开发者能编写服务来使它们上场。服务器节点16上的通信服务被配置成在恰适的信道上发送消息,以使得这些消息的内容类型匹配于这些信道的内容ID (例如,聊天消息在聊天信道上发送,并且RDS消息在RDS信道上发送)。服务将忽略在错误的信道上发送的消息。每个会话上的每个信道具有不同的信道ID。服务(例如,客户端进程74 )使用内容ID来绑定到信道数据。信道定义的所有其他字段均供流传输服务72在传输信道数据以及区分信道数据的优先级时使用。标志包括 Reliable (可靠的)递送所有数据分组KeyFrameUser (关键巾贞用户)可使用KeyFrame (关键巾贞)标志的数据分组Compressed (压缩的)数据分组必须被原封不动地处理(例如不是象流那样被切成小块)OrderIndependent (次序独立的)分组可在收到之际按任何次序处理服务信道内容类型的示例有AUD10Μ0Ν0 具有标志{KeyFrameUser}的音频内容。没有Reliable标志暗示该流应被不可靠地递送(丢失的分组不被重传)。没有OrderIndependent标志暗示流数据在收到之际必须按次序来处理。没有Compressed标志暗示数据没有被STRAW所压缩(音频编解码器已压缩该数据)。KVMMEDIA 具有标志{Reliable, KeyFrameUser}的屏幕共享内容。Reliable 标志暗示所有分组必须被重传直至收到。没有OrderIndependent标志暗示流数据在收到之际必须按次序来处理。没有Compressed标志暗示该数据没有被STRAW所压缩(音频编解码器已压缩该数据)。SESSION(会话)具有标志{Reliable}的会话内容。此信道上的所有分组包含Soda记录;所有均必须被可靠地传送并且按次序来处理。Compression标志视需要也可被呈现。信道记录在共享相同报头CHANNEL_ID并具有顺序分组号和MAC字段的STRAW记录序列中传输。MAC演算取决于给定信道上仅在ー个方向上的分组序列。在单个信道上传送的所有STRAW记录共享单个配置參数集(例如,{Client, reliable, compressed} ( {客户端,可靠的,压缩的})。单个信道上的记录如以下所解说地被压缩为串行流。
权利要求
1.ー种方法,包括由服务器网络节点(16):确定连接到由所述服务器网络节点(16)托管的服务器应用(38)的一对或更多对客户端网络节点(12、14 ),其中每ー对的构成客户端网络节点(12、14 )具有各自相应的数据流内容类型的一组或更多组活跃的互补源和阱;并且对于所确定的每ー对客户端网络节点(12、14 ),向该对的构成客户端网络节点(12、14)中的每ー者发送定义在该对的构成客户端网络节点(12、14)之间的网络连接之上的各自相应的对等会话的各自相应的会话定义。
2.如权利要求I所述的方法,其中客户端网络节点(12、14)各自被指派相应的唯一性站标识符;并且所述方法进ー步包括,由所述服务器网络节点(16)向连接到所述服务器应用(38)的每个客户端网络节点(12、14 )传送指派给其他客户端网络节点(12、14 )的各自相应的唯一性站标识符。
3.如权利要求2所述的方法,进ー步包括由所述服务器网络节点(16)为每个客户端网络节点(12、14),确定各自相应的站定义,所述站定义包括各自相应的站标识符以及ー个或更多个各自包括相应的无连接传输协议地址和用于所述客户端网络节点上的协议端ロ的各自相应的协议端ロ标识符的ー个或更多个条目;并且所述传送包括向连接到所述服务器应用(38)的每个其他客户端网络节点(12、14)发送各自相应的站定义。
4.如权利要求3所述的方法,其中对于每个客户端网络节点(12、14)所述确定各自相应的站定义包括,由所述服务器网络节点(16)从接收自所述客户端网络节点的ー个或更多个消息中的每个消息提取出各自相应的网络地址以及用于所述客户端网络节点上的协议端ロ的各自相应的协议端ロ标识符。
5.如权利要求3所述的方法,进ー步包括由所述服务器网络节点(16)为所确定的每一对客户端网络节点(12、14)生成各自相应的会话定义,以包括(i)指派给该对的构成客户端网络节点(12、14)的各自相应的站标识符,以及(ii)与用于在该对的构成客户端网络节点(12、14 )之间建立所述网络连接的无连接传输协议相关联的传输标识符。
6.如权利要求5所述的方法,进ー步包括由所述服务器网络节点(16)为所确定的每一对客户端网络节点(12、14),生成各自相应的会话定义,以包括与用于加密在该对的构成客户端网络节点(12、14)之间的网络连接上传输的数据的加密过程相关联的加密标识符。
7.如权利要求I所述的方法,进ー步包括由所述服务器网络节点(16)向连接到所述服务器应用(38)的每个客户端网络节点(12、14)传送代理服务器的站定义,其中所述站定义包括指派给所述代理服务器的各自相应的站标识符、以及各自包括相应的网络地址和用于所述代理服务器上的协议端ロ的各自相应的协议端ロ标识符的一个或更多个条目。
8.如权利要求I所述的方法,进ー步包括由所述服务器网络节点(16)对所确定的每一对客户端网络节点(12、14 ),为该对的构成客户端网络节点(12、14 )之间的各自相应的数据流内容类型的每ー组活跃的互补源和阱,确定逻辑地划分在该对的构成客户端网络节点(12、14)之间的网络连接之上的所述会话中传输的数据的各自相应的信道的定义。
9.如权利要求8所述的方法,其中所述信道定义中的ー个或更多个各自包括独立于任何其他信道上的数据传输地控制在各自相应的信道上的数据传输的各自相应的ー组ー个或更多个传输參数值。
10.如权利要求9所述的方法,其中所述信道定义中的ー个或更多个各自包括各自相应的可靠性传输參数值,其指示各自相应的信道上的数据是应由可靠传输协议还是不可靠传输协议来传输,根据可靠传输协议,丢失的数据分组被重传,而根据不可靠传输协议,丢失的数据分组被丢弃。
11.如权利要求9所述的方法,其中所述信道定义中的ー个或更多个各自包括各自相应的经压缩传输參数值,其指示各自相应的信道上的数据是否被要求要被原封不动地处理。
12.如权利要求9所述的方法,其中所述信道定义中的ー个或更多个各自包括各自相应的排序传输參数值,其指示各自相应的信道上的数据是要被按序还是按任何次序来处理。
13.如权利要求9所述的方法,其中所述信道定义中的ー个或更多个各自包括各自相应的压缩标识符,其规定用于压缩在各自相应的信道上传输的数据的各自相应的压缩过程。
14.如权利要求8所述的方法,其中所述信道定义中的一个或更多个各自与各自相应的唯一性内容标识符相关联,各自相应的唯一性内容标识符标识指派给该信道的各自相应的数据流内容类型。
15.如权利要求I所述的方法,进ー步包括由所述服务器网络节点(16) 与连接到所述服务器应用(38)的每个客户端网络节点(12、14)建立各自相应的服务器会话(40、42);并且 在每个服务器会话(40、42)之上,在不同的相应各个信道上传输不同内容类型的控制消息,所述不同的相应各个信道按内容类型来逻辑地划分所述控制消息。
16.如权利要求15所述的方法,其中每个控制消息以指派给所述服务器会话(40、42)的唯一性服务器会话标识符(40、42)、以及标识所述控制消息的内容类型的各自相应的内容标识符来发送。
17.如权利要求I所述的方法,进ー步包括由所述服务器网络节点(16) 响应于收到来自所述客户端网络节点(12、14)中的给定客户端网络节点的要从所述服务器应用(38)断开的消息,向所述客户端网络节点(12、14)中与所述给定网络节点具有各自相应的会话的其他客户端网络节点发送要拆卸其与所述给定客户端网络节点各自相应的会话的各自相应的指令。
18.ー种装置(16),包括 存储计算机可读指令的计算机可读存储器;以及 耦合至所述存储器的数据处理器,其能作用于执行所述指令,并至少部分地基于所述指令的执行能作用于执行操作,所述操作包括确定连接到由所述装置(16)托管的服务器应用(38)的一对或更多对客户端网络节点(12、14),其中每ー对的构成客户端网络节点(12、14)具有各自相应的数据流内容类型的一组或更多组活跃的互补源和阱;并且 对于所确定的每ー对客户端网络节点(12、14 ),向该对的构成客户端网络节点(12、14)中的每ー者发送定义在该对的构成客户端网络节点(12、14)之间的网络连接之上的各自相应的对等会话的各自相应的会话定义。
19.至少ー个其中实施有计算机可读程序代码的计算机可读存储器设备,所述计算机可读程序代码适配成由计算机(16)执行以实现ー种方法,包括 确定连接到由所述计算机(16)托管的服务器应用(38)的一对或更多对客户端网络节点(12、14),其中每ー对的构成客户端网络节点(12、14)具有各自相应的数据流内容类型的一组或更多组活跃的互补源和阱;并且 对于所确定的每ー对客户端网络节点(12、14 ),向该对的构成客户端网络节点(12、14)中的每ー者发送定义在该对的构成客户端网络节点(12、14)之间的网络连接之上的各自相应的对等会话的各自相应的会话定义。
20.ー种方法,包括由给定客户端网络节点(12) 连接到由服务器网络节点(16)托管的服务器应用(38),并且有一个或更多个其他客户端网络节点(14)连接着所述服务器应用(38),其中所述给定客户端网络节点和所述ー个或更多个其他客户端网络节点(14)之中的每ー个网络节点均具有各自相应的数据流内容类型的ー个或更多个源和阱; 为所述其他客户端网络节点(14)中、所述给定的客户端网络节点与之具有至少ー个互补的活跃源或阱的每一个其他客户端网络节点(14),从所述服务器网络节点(16)接收所述给定客户端网络节点与所述其他客户端网络节点(14 )中各自相应的会话伙伴客户端网络节点之间各自相应的会话定义,其中所述至少一个互补的活跃源或阱是与所述另ー客户端网络节点的所述ー个或更多个源和阱中活跃的ー个互补;并且 对于每个收到的会话定义,基于所述会话定义在所述给定的客户端网络节点与各自相应的会话伙伴客户端网络节点之间的各自相应的网络连接之上建立各自相应的对等会话。
21.如权利要求20所述的方法,其中所述会话定义中的至少ー个与多个各自相应的地址相关联,以用于与相应各个会话伙伴客户端网络节点协商相应各个网络连接;并且 进ー步包括由所述给定客户端网络节点(12) 对所述至少ー个会话定义中的每ー个,尝试通过与所述会话定义相关联的所述多个各自相应的地址的全部来与各自相应的会话伙伴客户端网络节点(14)建立各自相应的网络连接。
22.如权利要求21所述的方法,进ー步包括由所述给定的客户端网络节点(12) 对所述会话伙伴客户端网络节点(14)中、所述给定客户端网络节点(12)已成功与另一客户端网络节点(14)建立多个并发网络连接的每ー个会话伙伴客户端网络节点,选择与所述会话伙伴客户端网络节点的所述多个网络连接之一,并在所选定的与所述会话伙伴客户端网络节点(14)的网络连接之上建立各自相应的会话。
23.如权利要求22所述的方法,进ー步包括由所述给定客户端网络节点(12) 为所述会话伙伴客户端网络节点(14)中、所述给定的客户端网络节点(12)已成功与另ー客户端网络节点(14)建立多个并发的网络连接的每ー个会话伙伴客户端网络节点,在建立于所选定的网络连接之上的各自相应的会话期间使与所述会话伙伴客户端网络节点(14)的所述多个并发网络连接中未被选定的那些之中的ー个或更多个维活。
24.如权利要求21所述的方法,进ー步包括由所述给定客户端网络节点(12) 从所述服务器网络节点(16)接收对所述其他客户端网络节点(14)中连接到所述服务器应用(38)的一个或更多个中的每ー个其他客户端网络节点的各自相应的站定义,其中每个所述站定义包括指派给相应各个其他客户端网络节点(14)的各自相应的唯一性站标识符、以及各自包括相应网络地址以及用于相应各个其他客户端网络节点(14)的协议端ロ的各自相应的协议端ロ标识符的ー个或更多个条目; 其中每个所述会话定义包括指派给各自相应的会话伙伴客户端网络节点的唯一性站标识符;并且 对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12),基于所述会话定义中的站标识符来确定各自相应的会话伙伴客户端网络节点(14)的站定义中的所述ー个或更多个条目,并且对于每个所述条目,尝试通过各自相应的网络地址和各自相应的协议端ロ标识符来与各自相应的会话伙伴客户端网络节点(14)建立各自相应的网络连接。
25.如权利要求24所述的方法,其中每个所述会话定义包括与用于建立所述网络连接的无连接传输协议相关联的传输标识符;并且 对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12)尝试根据与各自相应的会话定义中的传输标识符相关联的无连接传输协议来与各自相应的会话伙伴客户端网络节点(14)建立各自相应的网络连接。
26.如权利要求20所述的方法,其中每个所述会话定义与一个或更多个各自相应的地址相关联,以用于与相应各个会话伙伴客户端网络节点(14)协商相应各个网络连接;并且 所述方法进ー步包括由所述给定客户端网络节点(12), 从所述服务器网络节点(16)接收代理服务器网络节点(16)各自相应的地址;并且 对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12),尝试通过与所述会话定义相关联的所述ー个或更多个各自相应的地址中的每ー个并通过所述代理服务器网络节点(16)各自相应的地址来与相应各个会话伙伴客户端网络节点(14 )建立各自相应的网络连接。
27.如权利要求20所述的方法,其中 每个所述会话定义与指派给所述给定客户端网络节点(12)和所述相应各个其他客户端网络节点(14)中的甸一者的各自相应的卩隹一性站标识符相关联;并且 对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12), 从包含指派给相应各个会话伙伴客户端网络节点(14)的各自相应的站标识符的ー个或更多个入站消息中的每ー个提取各自相应的源网络地址;以及 更新由指派给各自相应的会话伙伴客户端网络节点(14)的站标识符索引的本地存储的站定义以包括尚未被包括在所述本地存储的站定义中的每个提取出的源网络地址。
28.如权利要求20所述的方法,其中每个所述会话定义与指派给所述给定客户端网络节点(12)和所述相应各个其他客户端网络节点(14)中的甸一者的各自相应的卩隹一性站标识符相关联;并且 对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12), 向所述各自相应的会话伙伴客户端网络节点(14)发送包含指派给所述给定客户端网络节点(12)的唯一性站标识符的出站消息; 响应于收到响应于所述出站消息且包含指派给所述各自相应的会话伙伴客户端网络节点(14)的唯一性站标识符的入站消息,从所述入站消息中提取出各自相应的源网络地址,并将各自相应的会话伙伴客户端网络节点(14)绑定到所提取出的源网络地址。
29.如权利要求28所述的方法,其中 每个所述会话定义与各自相应的唯一性会话标识符相关联;并且对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(912), 在定址到各自相应的会话伙伴客户端网络节点(14)所绑定到的网络地址的传输流之上,向所述各自相应的会话伙伴客户端网络节点(14)发送包含指派给各自相应的会话的唯一性会话标识符的另ー出站消息;并且 响应于收到响应于所述另ー出站消息且包含指派给各自相应的会话的唯一性会话标识符的入站消息,将所述传输流指定为有效以供在所述各自相应的会话中传送数据。
30.如权利要求20所述的方法,其中对于每个收到的会话定义建立各自相应的会话包括,由所述给定客户端网络节点(12) 与各自相应的会话伙伴客户端网络节点(14)创建多个网络连接; 在所创建的网络连接中选定的ー个网络连接上建立各自相应的会话; 在所选定网络连接之上所建立的会话期间,使所创建的网络连接中未被选定的网络连接中的ー个或更多个维活。
31.如权利要求30所述的方法,其中对于每个收到的会话定义建立各自相应的会话包括,响应于所创建的网络连接中给定的ー个网络连接失效,由所述给定客户端网络节点(12)尝试与各自相应的会话伙伴客户端网络节点(14)重新创建所述给定的网络连接。
32.如权利要求20所述的方法,进ー步包括由所述给定客户端网络节点(12) 从所述服务器网络节点(16)接收能从所述给定客户端网络节点(12)公布的本地公布信道的表示;并且 在每个所建立的对等会话上公布所述本地公布信道。
33.如权利要求32所述的方法,进ー步包括由所述给定客户端网络节点(12) 响应于收到订阅所述本地公布信道中在所建立的对等会话中给定的ー个对等会话上的给定的一个本地公布信道的请求,向各自相应的会话伙伴客户端网络节点(14)发送与所述给定的本地公布信道相关联的数据。
34.如权利要求32所述的方法,进ー步包括由所述给定客户端网络节点(12) 确定与所述给定客户端网络节点(12)上的一个或更多个本地软件实体相关联的本地订阅信道;并且 响应于收到所建立的对等会话中给定的ー个对等会话上的一个或更多个远程公布信道的公布,向各自相应的会话伙伴客户端网络节点(14)发送对订阅所述本地订阅信道中匹配于相应各个远程公布信道的每个本地订阅信道的请求。
35.如权利要求34所述的方法,进ー步包括由所述给定客户端网络节点(12) 响应于在所述给定的对等会话上在匹配于所述本地订阅信道中的相应各个本地订阅信道的相应各个远程公布信道中收到数据,将接收到的数据传递给所述本地软件实体中与匹配的本地订阅信道相关联的每个本地软件实体。
36.如权利要求20所述的方法,进ー步包括由所述给定客户端网络节点(12) 从所述服务器网络节点(16)接收按数据流内容类型逻辑地划分在所述会话中的给定一个会话上传输的数据的相应各个信道的定义;并且 根据数据流的内容类型在所述给定的会话上在相应各个信道中向相应各个会话伙伴客户端网络节点(14)传送所述数据流。
37.如权利要求36所述的方法,其中每个所述信道定义包括标识指派给各自相应的信道的各自相应的数据流内容类型的各自相应的唯一性内容标识符,并且所述传送包括在各自相应的一个信道上将每ー个数据流以包含与该数据流的内容类型相对应的相应ー个内容标识符的分组的形式来传送。
38.如权利要求36所述的方法,其中所述信道定义各自包括独立于所述给定会话中的任何其他信道上的数据传输地控制在各自相应的信道上的数据传输的各自相应的ー组ー个或更多个传输參数值。
39.如权利要求38所述的方法,其中所述信道定义各自包括各自相应的可靠性传输參数值,其指示各自相应的信道上的数据是应由可靠传输协议还是不可靠传输协议来传输,根据可靠传输协议,丢失的数据分组被重传,而根据不可靠传输协议,丢失的数据分组被丢弃。
40.如权利要求39所述的方法,其中所述传输包括由所述给定客户端网络节点(12) 对所述给定会话中的信道中由指示数据在该信道上应由所述可靠传输协议来传输的可靠性传输值定义的每一个信道 在所述信道上传送数据分组;并且 响应于确定对会话伙伴客户端网络节点(14)尚未确认收到的已传送数据分组的计数超过由所述会话伙伴客户端网络节点定义的窗阈,在所述信道上重传所述已传送数据分组中的相应各个。
41.如权利要求40所述的方法,其中所述传送包括由所述给定客户端网络节点(12) 对所述给定会话中的信道中由指示数据在该信道上应由所述可靠传输协议来传输的可靠性传输值定义的每一个信道 保留在所述信道上传送的数据分组;并且 响应于收到已传送数据分组中的相应各个已被会话伙伴客户端网络节点(14)接收到的确认,释放所保留的数据分组。
42.如权利要求36所述的方法,进ー步包括由所述给定客户端网络节点(12) 从各自相应的会话伙伴客户端网络节点(14)接收包括发送窗大小数目和接收窗大小数目的会话维护消息; 向各自相应的会话伙伴客户端网络节点(14)传送数据分组直至有所述发送窗大小数目个未被会话伙伴客户端网络节点(14)确认收到的已传送数据分组;并且 响应于自前一会话维护消息被发往会话伙伴客户端网络节点(14)起收到至少所述接收窗大小数目个来自所述会话伙伴客户端网络节点(14)的数据分组,向各自相应的会话伙伴客户端网络节点(14)发送各自相应的会话维护消息。
43.如权利要求42所述的方法,其中由所述给定客户端网络节点(12)发送的各自相应的会话维护消息对于处于活跃状态的每个信道包括在该信道上接收到的分组的最大分组序列号的相应指示。
44.如权利要求42所述的方法,进ー步包括,从各自相应的会话伙伴客户端网络节点(14)接收数据分组序列,其中每个数据分组包括各自相应的顺序的信道级别分组号以及各自相应的唯一性的会话级别的分组标识符,并且所述发送包括在发送给各自相应的会话伙伴客户端网络节点(14)的各自相应的会话维护消息中納入对于每个信道,与该信道中由所述给定客户端网络节点(12)处理的数据分组的顺序分组号中最高的一个对应的各自相应的值;以及由所述给定客户端网络节点(12)跨所述给定会话中的所有信道处理的数据分组中最近期的ー个的各自相应的唯一性分组标识符。
45.如权利要求42所述的方法,其中由所述给定客户端网络节点(12)发送的各自相应的会话维护消息对于处于活跃状态的每个信道包括未在该信道上接收到的丢失分组的各自相应的标识。
46.如权利要求20所述的方法,进ー步包括由所述给定客户端网络节点(12) 从各自相应的会话伙伴客户端网络节点(14)接收包括第一时间參数值和第二时间參数值的会话维护消息; 响应于确定所述给定会话处于活跃状态,以由所述第一时间參数值设定的最大间隔来向所述会话伙伴客户端网络节点(14)传送分组收到确认会话维护消息;并且 响应于确定所述给定会话处于空闲状态,以由所述第二时间參数值设定的最大间隔来向所述会话伙伴客户端网络节点(14)传送分组收到确认会话维护消息。
47.如权利要求46所述的方法,进ー步包括由所述客户端网络节点(12) 响应于确定在由所述给定客户端网络节点向所述会话伙伴客户端网络节点(14)传送了两个接连的会话维护消息之前已从所述会话伙伴客户端网络节点(14)接收到至少ー个数据分组,确定所述给定会话处于活跃状态;并且 响应于确定在由所述给定客户端网络节点(12 )向所述会话伙伴客户端网络节点(14 )传送了两个接连的会话维护消息之前未曾从所述会话伙伴客户端网络节点(14)接收到数据分组,确定所述给定会话处于空闲状态。
48.ー种装置(12),包括 存储计算机可读指令的计算机可读存储器(22);以及 耦合至所述存储器的数据处理器(24),其能作用于执行所述指令,并至少部分地基于所述指令的执行能作用于执行操作,所述操作包括 连接到由服务器网络节点(16)托管的服务器应用(38),并且有一个或更多个其他客户端网络节点(14)连接着所述服务器应用38,其中所述给定客户端网络节点和所述ー个或更多个其他客户端网络节点(14)之中的每ー个网络节点均具有各自相应的数据流内容类型的ー个或更多个源和阱;为所述其他客户端网络节点(14)中、所述给定的客户端网络节点与之具有至少ー个互补的活跃源或阱的每一个其他客户端网络节点(14),从所述服务器网络节点(16)接收所述给定客户端网络节点与所述其他客户端网络节点(14)中各自相应的会话伙伴客户端网络节点之间各自相应的会话定义,其中所述至少一个互补的活跃源或阱是与所述另ー客户端网络节点的所述ー个或更多个源和阱中活跃的ー个互补;并且 对于每个收到的会话定义,基于所述会话定义在所述装置与各自相应的会话伙伴客户端网络节点(14)之间的各自相应的网络连接之上建立各自相应的对等会话。
49.至少ー个其中实施有计算机可读程序代码的计算机可读存储器设备(22),所述计算机可读程序代码适配成由计算机(12)执行以实现ー种方法,包括 连接到由服务器网络节点(16)托管的服务器应用(38),并且有一个或更多个其他客户端网络节点(14)连接着所述服务器应用38,其中所述给定客户端网络节点和所述ー个或更多个其他客户端网络节点(14)之中的每ー个网络节点均具有各自相应的数据流内容类型的ー个或更多个源和阱; 为所述其他客户端网络节点(14)中、所述计算机(12)与之具有至少ー个互补的活跃源或阱的每一个其他客户端网络节点(14),从所述服务器网络节点(16)接收所述给定客户端网络节点与所述其他客户端网络节点(14)中各自相应的会话伙伴客户端网络节点之间各自相应的会话定义,其中所述至少一个互补的活跃源或阱是与所述另ー客户端网络节点的所述ー个或更多个源和阱中活跃的ー个互补;并且 对于每个收到的会话定义,基于所述会话定义在所述计算机(12 )与各自相应的会话伙伴客户端网络节点(14)之间的各自相应的网络连接之上建立各自相应的对等会话。
50.ー种方法,包括由给定客户端网络节点(12) 存储多个地址,用干与会话伙伴客户端网络节点(14)协商各自相应的网络连接;以及 尝试通过与会话定义相关联的所述多个相应的地址的全部来与所述会话伙伴客户端网络节点(14)建立各自相应的网络连接。
51.如权利要求50所述的方法,进ー步包括由所述给定客户端网络节点(12) 响应于成功与所述会话伙伴客户端网络节点(14)建立多个并发的网络连接,选择所述多个并发的网络连接之一,并在所选定的网络连接上与所述会话伙伴客户端网络连接(14)建立相应的会话。
52.如权利要求51所述的方法,进ー步包括由所述给定客户端网络节点(12) 在建立于所选定的网络连接的各自相应的会话期间,使与所述会话伙伴客户端网络节点(14)的所述多个并发的网络连接中未被选定的那些网络连接中的ー个或更多个维活。
53.如权利要求50所述的方法,其中所述尝试包括,由所述给定客户端网络节点(12)尝试通过所述ー个或更多个各自相应的地址中的每ー个,并通过代理服务器网络节点(16)各自相应的地址,来与所述会话伙伴客户端网路节点(14)建立各自相应的网络连接。
54.如权利要求50所述的方法,进ー步包括由所述给定客户端网络节点(12) 从包含指派给所述会话伙伴客户端网络节点(14)的各自相应的站标识符的一个或更多个入站消息中的每ー个提取各自相应的源网络地址;以及 将每个非冗余的所提取出的源网络地址作为用干与所述会话伙伴客户端网络节点(14)协商相应各个网络连接的地址中相应的ー个地址来存储。
55.ー种方法,包括由给定客户端网络节点(12) 与会话伙伴客户端网络节点(14)建立网络连接,其中所述建立包括 向所述会话伙伴客户端网络节点(14)发送包含指派给所述给定客户端网络节点(12)的唯一性站标识符的出站消息;并且 响应于收到响应于所述出站消息且包含指派给所述会话伙伴客户端网络节点(14)的唯一性站标识符的入站消息,从所述入站消息中提取出源网络地址,并将所述会话伙伴客户端网络节点(14)绑定到所提取出的源网络地址。
56.如权利要求55所述的方法,进ー步包括由所述给定客户端网络节点(12) 在定址到各自相应的会话伙伴客户端网络节点(14)所绑定到的网络地址的传输流之上,向所述会话伙伴客户端网络节点(14)发送包含指派给所述会话的唯一性会话标识符的另ー出站消息;并且 响应于收到响应于所述另ー出站消息且包含指派给各自相应的会话的唯一性会话标识符的入站消息,将所述传输流指定为有效以供在所述各自相应的会话中传送数据。
57.ー种方法,包括由给定客户端网络节点(12) 与会话伙伴客户端网络节点(14)建立对等会话; 在所建立的对等会话上,公布从所述给定客户端网络节点(12)可用的本地公布信道,其中所述信道按数据流内容类型逻辑地划分在所述对等会话上传输的数据。
58.如权利要求57所述的方法,进ー步包括由所述给定客户端网络节点(12) 响应于收到订阅所述本地公布信道中在所建立的对等会中给定的一个对等会话上的给定的一个本地公布信道的请求,向所述会话伙伴客户端网络节点(14)发送与所述给定的本地公布信道相关联的数据。
59.如权利要求57所述的方法,进ー步包括由所述给定客户端网络节点(12) 确定与所述给定客户端网络节点(12)上的一个或更多个本地软件实体相关联的本地订阅信道;并且 响应于收到所建立的对等会话上的一个或更多个远程公布信道的公布,向所述会话伙伴客户端网络节点(14)发送对订阅所述本地订阅信道中匹配于相应各个远程公布信道的姆个本地订阅信道的请求。
60.如权利要求59所述的方法,进ー步包括由所述给定客户端网络节点(12) 响应于在所述对等会话上在匹配于所述本地订阅信道中的相应各个本地订阅信道的相应各个远程公布信道中收到数据,将接收到的数据传递给所述本地软件实体中与匹配的本地订阅信道相关联的每个本地软件实体。
61.ー种方法,包括由给定客户端网络节点(12) 与会话伙伴客户端网络节点(14)建立对等会话; 存储和按数据流内容类型逻辑地划分在所述对等会话上传输的数据的相应各个信道的定义;以及 根据数据流的内容类型在所述对等会话上在相应各个信道中向所述会话伙伴客户端网络节点(14)传送所述数据流。
62.如权利要求61所述的方法,其中每个所述信道定义包括标识指派给各自相应的信道的各自相应的数据流内容类型的各自相应的唯一性内容标识符,并且所述传送包括在各自相应的一个信道上将每ー个数据流以包含与该数据流的内容类型相对应的相应ー个内容标识符的分组的形式来传送。
63.如权利要求61所述的方法,其中所述信道定义各自包括独立于所述给定会话中的任何其他信道上的数据传输地控制在各自相应的信道上的数据传输的各自相应的ー组ー个或更多个传输參数值。
64.如权利要求63所述的方法,其中所述传送包括由所述给定客户端网络节点(12) 对所述对等会话中的信道中由指示数据在该信道上应由可靠传输协议来传输的可靠性传输值定义的每ー个信道 在所述信道上传送数据分组;并且 响应于确定对会话伙伴客户端网络节点(14)尚未确认收到的已传送数据分组的计数超过由所述会话伙伴客户端网络节点(14)定义的窗阈,在所述信道上重传所述已传送数据分组中的相应各个。
65.如权利要求64所述的方法,其中所述传送包括由所述给定客户端网络节点(12) 对所述对等会话中的信道中由指示数据在该信道上应由所述可靠传输协议来传输的可靠性传输值定义的每一个信道 保留在所述信道上传送的数据分组;并且 响应于收到已传送数据分组中的相应各个已被会话伙伴客户端网络节点(14)接收到的确认,释放所保留的数据分组。
66.如权利要求61所述的方法,进ー步包括由所述给定客户端网络节点(12) 从会话伙伴客户端网络节点(14)接收包括发送窗大小数目和接收窗大小数目的会话维护消息; 向所述会话伙伴客户端网络节点(14)传送数据分组直至有所述发送窗大小数目个未被所述会话伙伴客户端网络节点(14)确认收到的已传送数据分组;并且 响应于自前一会话维护消息被发往所述会话伙伴客户端网络节点(14)起收到至少所述接收窗大小数目个来自所述会话伙伴客户端网络节点(14)的数据分组,向所述会话伙伴客户端网络节点(14)发送各自相应的会话维护消息。
67.如权利要求66所述的方法,其中由所述给定客户端网络节点(12)发送的会话维护消息对于处于活跃状态的每个信道包括在该信道上接收到的分组的最大分组序列号的相应指示。
68.如权利要求66所述的方法,进ー步包括,从各自相应的会话伙伴客户端网络节点(14)接收数据分组序列,其中每个数据分组包括各自相应的顺序的信道级别分组号以及各自相应的唯一性的会话级别的分组标识符,并且所述发送包括在发送给各自相应的会话伙伴客户端网络节点(14)的各自相应的会话维护消息中納入对于每个信道,与该信道中由所述给定客户端网络节点(12)处理的数据分组的顺序分组号中最高的一个对应的各自相应的值;以及由所述给定客户端网络节点(12)跨所述给定会话中的所有信道处理的数据分组中最近期的ー个的各自相应的唯一性分组标识符。
69.如权利要求66所述的方法,其中由所述给定客户端网络节点(12)发送的会话维护消息对于处于活跃状态的每个信道包括未在该信道上接收到的丢失分组的各自相应的标识。
70.ー种方法,包括由给定客户端网络节点(12) 与会话伙伴客户端网络节点(14)建立对等会话; 从所述会话伙伴客户端网络节点(14)接收包括第一时间參数值和第二时间參数值的会话维护消息; 响应于确定所述对等会话处于活跃状态,以由所述第一时间參数值设定的最大间隔来向所述会话伙伴客户端网络节点(14)传送分组收到确认会话维护消息;并且 响应于确定所述对等会话处于空闲状态,以由所述第二时间參数值设定的最大间隔来向所述会话伙伴客户端网络节点(14)传送分组收到确认会话维护消息。
71.如权利要求70所述的方法,进ー步包括由所述客户端网络节点(12) 响应于确定在由所述给定客户端网络节点(12)向所述会话伙伴客户端网络节点(14)传送了两个接连的会话维护消息之前已从所述会话伙伴客户端网络节点(14)接收到至少ー个数据分组,确定所述对等会话处于活跃状态;并且 响应于确定在由所述给定客户端网络节点(12)向所述会话伙伴客户端网络节点(14)传送了两个接连的会话维护消息之前未曾从所述会话伙伴客户端网络节点(14)接收到数据分组,确定所述给定会话处于空闲状态。
全文摘要
流传输协议支持在各自的客户端网络节点(12、14)上操作的通信者之间的实时网络通信。该流传输协议支持对客户端通信会话的远程管理,包括为每一对客户端网络节点(12、14)置备各自的会话定义,其定义在该对的组成客户端网络节点(12、14)之间的网络连接之上的相应对等会话。该流传输协议具有相对低的计算资源要求,从而实时通信性能可使用当前可用的广大范围的计算设备和网络连接来达成。
文档编号H04L12/24GK102823196SQ201180015906
公开日2012年12月12日 申请日期2011年3月24日 优先权日2010年3月26日
发明者J·阿尔特梅尔, R·巴特勒, D·范威尼 申请人:社会传播公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1