用于消息会话中继协议会话的消息块大小的协商的制作方法

文档序号:11455603阅读:291来源:国知局
用于消息会话中继协议会话的消息块大小的协商的制造方法与工艺

相关申请的交叉引用

本申请要求2014年12月19日提交的题为“negotiationofchunksizeformessagesessionrelayprotocol”的在先提交的美国临时专利申请号62/094,227的优先权,其内容通过引用并入本文。

本公开大体上涉及在端点之间对消息会话中继协议msrp块大小的协商。



背景技术:

消息会话中继协议msrp是通过通信网络在端点之间使用以用于在会合会话的上下文中通过互联网协议ip网络交换一系列相关的即时消息的标准媒体平面协议。它由互联网工程任务组ietf在“请求注释”rfc4975中定义。即时消息中的内容可以是文本消息、超文本传输协议html页面、包含视频剪辑、图像、歌曲的文件或只是通用文件。该内容还可以与共享远端桌面或白板有关。

msrp是一种基于文本的协议,其通过传输协议(如传输控制协议tcp、ietfrfc793、流控制传输协议sctp、ietfrfc2690、tcp承载传输层安全tls、ietfrfc2246等)承载在媒体平面上。换句话说,提供拥塞控制的任何传输协议。如当前指定的,msrp不对消息大小或内容类型施加限制。

也可以按照ietfrfc4976所定义的使用msrp中继。当端点之一位于网络地址转换器nat后面(更具体地,如果msrp会话必须跨越多个管理域)时,使用msrp中继。msrp中继还用于支持批量消息收发,并通过少量中继间连接而承载用于大量msrp会话的消息。

msrp消息由请求和响应组成,并且并非每个msrp请求都通过msrp响应应答。msrp定义了方法,并且目前有三种指定的方法:

用于发送任意长度的即时消息或文件等的send(发送)方法。

用于提供消息传送通知的report(报告)方法。

用于使用中继认证端点的auth(认证)方法。

msrp无法独立设置会话,并且为了在端点之间建立msrp会话,通过外部会合机制协商msrp会话。用于建立msrp会话的典型会合机制是利用会话描述协议sdp供应/应答模型的会话发起协议sip。当然可以使用而不排除其他会合协议。目前,会话发起协议sipietfrfc3261和会话描述sdp供应/应答ietfrfc3264是用于建立msrp会话的唯一已知的标准化机制。sip是一种ietf标准协议,其允许建立涉及多媒体元素(如视频、语音、聊天、游戏和虚拟现实)的交互式用户会话。它还用于建立用于交换即时消息或文件的基于会话的消息收发会话,即msrp会话。根据sdp应答/供应模型交换msrp会话参数。

在sdp供应/应答交换中通过sip在端点之间交换以下sdp属性,以建立msrp会话:

接受类型:包含端点愿意接收的媒体类型的列表。

包装类型:包含端点在具有多部分内容的msrp消息中愿意接收的媒体类型的列表。

最大大小:指示端点愿意接收的msrp消息或最大消息的八位字节的最大数量。最大大小是指完整消息,而不是任何一个块的大小。发送方不应当超过在得到的会话中发送的任何消息的最大大小限制。

路径:指示在会话中发送的消息必须访问的一系列msrp设备(包括最终端点)。

通常,托管sip用户代理的起始端点100向也托管sip用户代理的远端端点发送包括sdp供应的sipinvite(邀请)。sdp供应包括消息媒体类型和路径属性中的起始端点100的msrpuri。如果远端端点接受邀请,则以200ok进行响应以确认对媒体的选择并包括接收msrpuri。此时,建立msrp会话,并且端点可以开始交换即时消息或文件等。当任一端点发送sipbye请求时,msrp会话终止。

一旦建立了msrp会话,起始端点100就发送send请求以传送完整消息,或者如果消息非常大,则起始端点100可以使用几个send请求以块的形式传送该消息,其中每个send请求包含整个消息的一个块、与整个消息相对应的消息id、标识send请求中承载的消息的部分的字节范围首部字段和消息的总大小。远端端点使用接收到的信息来对消息进行重新组合,并确定哪些块属于哪个消息。远端端点将块重新组合成完整消息。

send请求可以由来自对等节点或端点节点的msrp200ok和/或来自端点的指示成功地传送了完整消息的report请求来应答。也可以在接收到消息块时由远端端点生成逐步成功report请求。

目前,当从起始端点100向远端端点发送消息时,起始端点100基于例如其内部配置来确定msrp块大小。msrp中继还可以将msrp消息重新分段为与它接收到的块大小不同的块大小。在msrp中继处执行的重新分段通常基于内部配置。

如果它从高容量接入网移动到低容量接入网,或者反之亦然,或者如果远端端点中的网络/链路状况已发生变化,则块大小的确定未考虑远端端点能力、接收网络能力和远端端点移动性。这可能会在消息传送中导致可能无法传送的消息块或缺少优化。虽然msrp通过提供拥塞控制的传输协议承载,但是起始端点没有指示对于远端端点可接受的最佳块大小。



技术实现要素:

本发明的目的是通过使端点能够与远端端点或接收端点协商msrp块大小或与中间服务器(诸如背靠背用户代理b2bua或中继)协商msrp块大小来消除或减轻现有技术的至少一个缺点。然后,b2bua或中继将与远端端点协商块大小。然后,起始端点将考虑起始端点和远端端点或b2bua限制和能力(包括接入网类型、网络和链路状况和配置)确定要使用的最佳块大小。

在一个实施例中,端点与远端端点协商用于msrp媒体会话的msrp块大小。端点确定其为msrp媒体会话提出的优选msrp块大小,并向远端端点发送包括优选msrp块大小的消息。当端点接收到包括远端端点的优选msrp块大小的响应消息时,它将基于端点的优选msrp块大小和所接收的远端端点的优选msrp块大小来确定用于msrp媒体会话的msrp块大小。然后,端点将使用确定的msrp块大小来对通过msrp媒体会话传送的消息或文件或内容进行分段。远端端点可以是消息所去往的最终目的地远端端点或者驻留在网络中的服务器中的用于向最终目的地远端端点转发或中继消息的中间远端端点。

在一个实施例中,端点的优选msrp块大小和/或远端端点的优选块大小对应于针对该端点的最大允许块大小。

在一个实施例中,端点基于所使用的端点的接入网类型(例如,长期演进ltetm、wifitm)和/或本地端点配置和/或端点能力来确定优选msrp块大小。优选msrp块大小被编码在sdp属性中并以sdp供应和sdp应答进行交换。使用诸如sip协议(例如,使用sipinvite、sip200ok、sipre-invite和sipupdate消息等)的会合协议来传输sdp供应和sdp应答。

在另一个实施例中,端点在sdp属性中发送按偏好或优先级顺序列出的优选msrp块大小的列表。

在一个实施例中,端点通过选择端点的优选msrp块大小和远端端点的优选msrp块大小中的较小者来确定用于msrp媒体会话的msrp块大小。如果端点仅支持预配置的块大小的集合,并且接收到比端点的优选msrp块大小更小并且端点不能选择并用于msrp会话的远端端点的优选msrp块大小,则端点选择更接近并小于远端端点的优选msrp块大小的配置的msrp块大小。

端点向远端端点发送msrpsend请求,每个send请求包括要发送的文件或内容或消息的块,并且其中,块的大小依据由端点在协商之后确定的msrp块大小。

在一个实施例中,使用服务器来与起始端点(也称为第一端点)和远端端点(也称为第二端点)协商msrp块大小。当在第一端点与第二端点之间通过服务器传输消息时,服务器确定要用于第一(起始)端点与服务器之间以及服务器与第二(远端)端点之间的msrp会话的msrp块大小。服务器在第一消息(例如,sipinvite)中从第一端点接收包括第一端点的优选msrp块大小的sdp供应。在向第二端点转发具有sdp供应的第一消息之前,服务器可以使用本地策略和/或服务器与沿着通信路径的对等网络或第二端点所在的网络之间的服务级别协议来确定第一服务器优选msrp块大小。服务器在sdp供应中使用第一服务器优选msrp块大小替换从第一端点接收的第一端点的优选msrp块大小,并向第二端点转发具有更新的sdp供应的第一消息。当服务器在第二消息(例如,sip200ok)中接收到包括sdp应答属性中的第二端点的优选msrp块大小的sdp应答时,它可以使用本地策略和/或服务器与沿着朝向第一端点的通信路径的对等网络节点之间的服务级别协议来确定将在服务器与第一端点之间使用的第二服务器优选msrp块大小。然后,服务器在sdp应答中使用第二服务器优选msrp块大小来替换从第二端点接收的第二端点的优选msrp块大小。然后,服务器向第一端点转发第二消息中的更新的sdp应答。

在一个实施例中,第一服务器优选msrp块大小可以对应于在服务器与第二端点之间允许的最大msrp块大小。类似地,第二服务器优选msrp块大小可以对应于在服务器与第一端点之间允许的最大msrp块大小。

在一个实施例中,服务器基于第二端点的优选msrp块大小和第一服务器优选msrp块大小来确定要用于对从服务器到第二端点的消息进行分段的第一服务器msrp块大小。服务器可以通过选择第一服务器优选msrp块大小和第二端点的优选msrp块大小中的较小者来确定第一服务器msrp块大小。对于服务器与第一个端点之间的msrp会话,服务器基于第一端点的优选msrp块大小和第二服务器优选msrp块大小来确定第二服务器msrp块大小。类似地,服务器可以通过选择第二服务器优选msrp块大小和第一端点的优选msrp块大小中的较小者来确定第二服务器msrp块大小。

在一个实施例中,当服务器从第一端点接收到去往第二端点的大消息或文件或其他大内容的块时,服务器可以在转发根据第一服务器msrp块大小重新分段的消息之前存储从第一端点接收到的所有消息块。同样地,在另一个方向上,如果服务器从第二端点接收到大消息或文件或其他大内容的块,则服务器可以在转发根据第二服务器msrp块大小重新分段的消息之前存储从第二端点接收到的所有消息块。备选地,一接收到消息块,服务器就向任一端点发送重新分段的消息块。

在一个实施例中,服务器在sdp属性中向第二端点发送第一服务器优选msrp块大小的列表。可以按照偏好或优先级顺序列出第一服务器优选msrp块大小。本发明的另一个目的在于在sdp属性中提供最小块大小和最大块大小,从而提供允许的msrp块大小的范围。

附图说明

现在将仅通过举例的方式参考附图来描述本发明的实施例,其中:

图1是起始端点与远端端点之间的简化msrp会话建立的示例性实施例。

图2是在始发端点与远端端点之间经由诸如b2bua的服务器的简化msrp会话建立的示例性实施例。

图3是在端点处执行的协商msrp块大小的方法的示例性实施例。

图4是在服务器处执行的用于协商块大小的方法的示例性实施例。

图5是根据实施例的端点的示意图。

图6是根据实施例的服务器的示意图。

图7是根据另一实施例的端点的示意图。

具体实施方式

缩略词和定义

贯穿本公开使用以下首字母缩略词和术语

abnf:ietfrfc5234中所规定的扩充巴科斯诺尔范式。

端点:可以是手持设备、移动设备(例如,智能电话或平板电脑)。备选地,它可以是物联网iot设备、ip电话、便携式计算机、台式计算机、网关或交互功能。端点支持任何媒体格式,例如文本、图像、音频、视频、八位字节流、mime格式等,并且能够使用诸如sip用户代理等的通信用户代理来协商msrp会话以用于发送和接收msrp消息的目的。msrp消息可以包含可以通过建立的msrp会话传送的文本、文件和任何类型的多媒体内容。在本公开中呈现的实施例使用起始端点和远端端点或接收端点。起始端点对应于发起msrp会话的协商的端点,并且远端端点或接收端点对应于与其执行msrp会话协商的端点。端点可以直接或通过网络中的服务器协商msrp会话参数。当使用服务器时,服务器充当针对起始端点的中间远端端点和针对远端端点的中间起始端点。

ietf:互联网工程任务组。

msrp:对应于ietfrfc4975中规定的消息会话中继协议。

nni:网络到网络接口,它是网络中的两个节点之间的接口。

oma:开放移动联盟

rfc:请求注释。

服务器:在所描述的实施例中使用的服务器被定义为起始端点与远端端点或接收端点之间的网络节点或软件实体。服务器可以是msrp背靠背用户代理b2bua(例如在ietfrfc6714中描述的背靠背用户代理)、中继(例如,在ietfrfc4976中规定的中继)、应用消息收发服务器等。服务器用于与起始端点和远端端点或接收端点中的每一个协商msrp会话,在这种情况下,服务器充当针对起始端点的中间远端端点,并且充当针对远端端点的中间起始端点。起始端点与远端端点之间的所有消息都通过服务器传输。

sdp:在ietfrfc3264中规定的会话描述协议。

sip:在ietfrfc3261中规定的会话发起协议。

uri:统一资源标识符

uni:用户到网络接口,其是也对应于端点设备的用户设备与网络中的节点之间的接口。当端点是诸如智能电话或平板电脑的用户便携式设备时,uni的示例可以是端点到服务器(b2bua)接口。

现在将参考附图描述本发明的各种特征。下面将结合示例性实施例和示例更详细地描述这些各个方面,以便于理解本发明,但不应被解释为限于这些实施例。更确切地,这些实施例被提供,使得本公开将是彻底和完整的,并且将向本领域技术人员充分地传达本发明的范围。

围绕由计算机系统的元件或能够执行编程指令的其他硬件执行的动作序列或功能来描述本发明的多个方面。将认识到,各种动作可以由专用电路来执行,通过由一个或多个处理器执行程序指令来执行,或者由两者的组合执行。此外,本发明还可以被认为完全体现在任何形式的计算机可读载体或载波中,所述任何形式的计算机可读载体或载波包含将使处理器执行本文所述技术的适当的计算机指令集合。

图1示出了起始端点100和远端端点101之间的简化msrp会话建立的示例性实施例,其中仅示出了相关步骤。为了建立msrp会话,在步骤102,起始端点100发送sipinvite,并且包括包含公知的路径属性的sdp供应。如果起始端点100确定必须以块的形式传送消息或文件,则指示起始端点的优选块大小的新sdp属性被包括在sdp供应中。起始端点100至少部分地基于接入网类型、接入网/接入链路状况、内部配置和/或起始端点100能力来确定优选块大小。备选地,起始端点100可以提供优选块大小的列表。远端端点101以sip200ok进行响应,sip200ok包括包含公知路径属性在内的sdp应答和指示远端端点的优选块大小的新属性。备选地,远端端点101可以提供其优选块大小的列表。如果远端端点的优选块大小与起始端点的优选块大小相同,则远端端点101可以省略在sdp应答中向起始端点100发送远端端点的优选块大小。

起始端点100的优选块大小和远端端点的优选块大小可以指示端点针对msrp会话允许的最大块大小。另外,如果sdp属性包含优选块大小的列表,则列表中的每个块大小可以指示绝对块大小值,在这种情况下,块大小按偏好或优先级顺序列出。可选地,列表可以包括指示最小块大小值和最大块大小值的两个值,从而提供可以用于msrp会话的可允许的块大小范围。

起始端点使用起始端点的优选块大小和远端端点的优选块大小来确定当向远端端点101发送消息块时使用的最佳块大小。在优选实施例中,起始端点100选择并使用起始端点的优选块大小和远端端点的优选块大小中的最小块大小。图1示出了可以以两个块发送消息。步骤104示出了起始端点100在send请求中向远端端点101发送完整消息的第一段或块,在步骤105,远端端点101以msrp200ok进行响应。send请求中的消息块的大小是起始端点100确定的用于起始端点和远端端点的最佳块大小。在步骤106,起始端点100在第二send请求中向远端端点101发送完整消息的第二和最后一个段或块,在步骤107,远端端点101以msrp200ok进行响应。一旦远端端点101确定接收到所有块,它就可选地发送report请求以指示成功地传送了消息,如步骤108所示。为了终止msrp会话,起始端点100发送sipbye消息,并从远端端点101接收sip200ok,如捆绑步骤109所示。

图2示出了在起始端点100和远端端点101之间通过诸如b2bua200的服务器的简化msrp会话建立的示例性实施例。还可以使用其他服务器,例如消息收发应用服务器或msrp中继。在图2中示出了b2bua200。为了简单起见,图2没有示出诸如sip代理和服务呼叫会话控制功能s-cscf等的中间节点。仅示出了端点与b2bua200之间的相关步骤。为了通过b2bua200建立msrp会话,在步骤201,起始端点100通过b2bua200向远端端点101发送sipinvite,并且包括包含公知的路径属性在内的sdp供应。如果起始端点100确定必须以块的形式传送消息或文件,则指示起始端点的优选块大小的新sdp属性被包括在sipinvite的sdp供应中。备选地,起始端点100可以在sdp属性中提供优选块大小的列表。

b2bua200接收包括新sdp属性的sipinvite,并且当在步骤202向远端端点101转发或中继sipinvite之前,b2bua200确定sdp属性中的起始端点的优选块大小是否应该用其自己的优选块大小替换。如果b2bua200确定应该替换起始端点的优选块大小,则b2bua200确定其自己的优选msrp块大小,即要与远端端点101协商的第一服务器msrp优选块大小。b2bua200可以根据其内部配置或网络/链路状况、能力和/或与远端端点网络的服务级别协议来确定第一服务器msrp优选块大小。b2bua200向远端端点101转发修改的sipinvite,其中它已经在sdp供应属性中用第一服务器msrp优选块大小替换了起始端点的优选块大小。备选地,b2bua200可以用b2bua优选块大小的列表来替换起始端点的优选块大小,并向远端端点101转发sipinvite。在接收到包括第一服务器msrp优选块大小的修改的sipinvite时,远端端点101可以基于接入网类型、网络状况/链路和内部配置来确定其优选块大小。在步骤203,远端端点101通过b2bua200向起始端点100发送sip200ok,其中它包括包含公知路径属性在内的sdp应答和指示远端端点的优选块大小的新sdp属性。备选地,远端端点101可以在新sdp属性中提供优选块大小的列表。

b2bua200从远端端点接收sip200ok消息。当在步骤204向起始端点100转发或中继sip200ok之前,b2bua200可以用其可能愿意针对起始端点100使用的第二服务器msrp优选块大小代替远端端点的优选块大小来替换远端端点的优选块大小。b2bua200可以根据其内部配置、能力、网络/链路状况和/或与起始端点100的服务级别协议来确定第二服务器msrp优选块大小。b2bua200向起始端点100发送修改的sip200ok,其中它已经用其自己的优选块大小,即第二服务器msrp优选块大小替换了远端端点的优选块大小。备选地,在向起始端点100转发修改的sip200ok之前,b2bua200可以用b2bua优选块大小的列表来替换远端端点的优选块大小。b2bua200可以针对远端端点101和起始端点100使用不同的第一服务器msrp优选块大小和第二服务器msrp优选块大小或不同的b2bua优选块大小的列表。

对于从起始端点100向远端端点101发送的消息,如图2所示,起始端点100使用其优选块大小和第二服务器msrp优选块大小来确定当针对远端端点101向b2bua200发送消息块时要使用的最佳块大小。在一个实施例中,起始端点100选择并使用起始端点的优选块大小和第二服务器msrp优选块大小中的最小块大小作为最佳端点块大小。

最佳端点块大小=min(起始端点优选块大小、服务器(例如,b2bua200)的第二msrp优选块大小)

在步骤204,b2bua200使用其已经向远端端点101发送的第一服务器msrp优选块大小和远端端点的优选块大小来确定在向远端端点101转发起始端点100的消息时要使用的最佳块大小。在一个实施例中,b2bua200选择并使用第一服务器msrp优选块大小和远端端点的优选块大小中的最小块大小作为最佳服务器块大小。

最佳服务器块大小=min(远端端点的优选块大小、第一服务器msrp优选块大小)

图2示出了起始端点100使用最佳端点块大小以使用两个块:块1和块2通过b2bua200向远端端点101发送完整消息的实施例。b2bua200将使用最佳服务器块大小(也可以被称为第一服务器msrp块大小)在三个块(块1′、块2′和块3′)中向远端端点101转发从起始端点100接收到的完整消息。图2示出了当消息块被接收时b2bua200向远端端点101发送消息块。在所示实施例中,最佳端点块大小大于(>)最佳服务器块大小/第一服务器msrp块大小,因此块1′小于块1。因此,b2bua200需要针对远端端点101使用更多的send请求来转发从起始端点100接收的消息。

步骤205示出了起始端点100使用确定的最佳端点块大小在send请求中向b2bua200发送完整消息的第一段或块1。当块1′小于块1时,b2bua200存储消息的块1,并且在步骤206向远端端点101发送包括消息的块1′的send请求。在步骤207,b2bua200从远端端点101接收msrp200ok,以确认接收到块1′。在步骤208,b2bua200向起始端点100发送msrp200ok以确认在步骤205接收到send消息。注意,步骤208可以在步骤207或步骤206之前发生。在步骤209,起始端点100在第二send请求中向b2bua200发送第二和最后一个消息段或块2。b2bua200存储接收到的消息的块2,并确定块2是完整消息的最后一个块。在步骤210,b2bua200向远端端点101发送包括完整消息的块2′的send请求。在步骤211,远端端点101在msrp200ok消息中确认接收到send请求。在步骤212,b2bua200向远端端点101发送包括完整消息的块3′的最后一个send请求。在步骤213,远端端点101使用msrp200ok消息确认接收到send请求。注意,b2bua200不需要等待步骤211的块2′的msrp200ok来执行步骤212。步骤214示出了b2bua200向起始端点100发送msrp200ok以确认接收到块2。类似地,步骤214可以在步骤209之后立刻发生。

可以使用其他实施例,其中最佳端点块大小小于(<)最佳服务器块大小(第一服务器msrp块大小),在这种情况下,b2bua200在消息块到达时存储接收到的消息块,在它针对远端端点101使用第一服务器msrp块大小对消息进行重新分段之前等待直到接收到所有消息块为止。即使最佳端点块大小大于(>)第一服务器msrp块大小,作为图2所示实施例的替代方案,b2bua200可以在消息块到达时存储接收到的消息块,在它针对远端端点101使用也被称为最佳服务器块大小的第一服务器msrp块大小对消息进行重新分段之前等待直到接收到所有消息块为止。

一旦远端端点101确定接收到所有块,它就可选地向b2bua200发送report请求以指示成功地传送了完整消息,如步骤215所示。然后,b2bua200向起始端点100发送report请求以指示成功地传送了完整消息,如步骤216所示。当msrp会话终止时,起始端点100然后可以通过发送sipbye消息并从b2bua200接收sip200ok来终止会话,如捆绑的步骤217所示。然后,b2bua200通过发送sipbye消息并从远端端点101接收sip200ok来终止会话,如捆绑的步骤218所示。

注意,起始端点的优选块大小、第一个服务器msrp优选块大小和远端端点的优选块大小可以指示每个实体支持的最大块大小。另外,如果使用了优选块大小的列表,则它可以指示绝对块大小值,在这种情况下,它们按偏好或优先级顺序列出。可选地,列表可以包括指示最小块大小和最大块大小的两个值,从而提供可允许的块大小范围。

图3示出了在端点处执行的方法30的实施例,该端点向远端端点发出即时消息。远端端点可以是msrp消息的目的地/接收方端点,在这种情况下,端点与作为目的地/接收方端点的远端直接进行通信。备选地,远端端点可以是作为针对端点的中间远端端点的服务器。服务器用于代表端点与目的地/接收方远端端点进行通信或互通。因此,从端点到目的地端点的包括msrp消息的所有通信都通过服务器(例如,b2bua)。无论它是作为中间远端端点的服务器还是目的地/接收方端点,这里将其称为远端端点。

在步骤31,端点确定即时消息或文件或内容将以块的形式发送,并进一步确定消息的优选块大小。优选块大小作为sdp供应在sipinvite中发送。在另一实施例中,端点可以替代地发送按偏好或优先级顺序列出的优选块大小的列表。在另一实施例中,端点可以发送指示最小块大小和最大块大小的两个块大小值,从而提供可允许的块大小范围。端点至少部分地基于包括以下项的标准来确定优选块大小:端点接入网类型、端点接入网/接入链路状况和/或内部配置。

在步骤32,端点在sip200ok中从远端端点101接收sdp应答。如果远端端点101支持协商消息块大小,则sip200ok包括远端端点的优选块大小。远端端点101可以基于远端端点接入网类型、远端端点接入网/接入链路状况和/或内部配置来确定其优选块大小。备选地,远端端点101可以替代地在sdp应答中包括按偏好或优先级顺序列出的优选块大小的列表。在另一实施例中,远端端点101可以替代地在sdp应答中包括指示最小块大小和最大块大小的两个块大小值,从而提供可允许的块大小范围。

一旦端点已经在sdp应答中接收到远端端点优选块大小,则它确定要用于msrp会话的最佳块大小。确定最佳块大小的实施例如下:

-如果端点的优选块大小小于远端端点的优选块大小,则最佳块大小是端点的优选块大小。

-如果远端端点的优选块大小小于端点的优选块大小并且它可以由端点支持,则最佳块大小是远端端点的优选块大小。

-如果远端端点的优选块大小小于优选端点块大小,并且由于端点被配置为仅使用一些预配置的msrp块大小因而端点不能支持远端端点的优选块大小,则端点将最佳块大小选择为小于远端端点优选快大小的最接近的预配置的msrp块大小或远端端点的优选块大小。

除了上述实施例以外,如果远端端点101不支持对块大小的协商,则端点应该假设如今的已知行为,即,对于块大小没有限制,并且它可以使用其自己配置的值或甚至其自己确定的优选块大小。

在步骤33,msrp会话开始,其中端点使用上面在步骤32确定的会话的最佳块大小来发送包括完整消息的第一块的send请求。端点可以从远端端点101接收msrp200ok以确认接收到send请求。端点在完整消息被发送和传送之前继续发送包括后续消息块的后续send请求。一旦远端端点101已经接收到完整消息并重新组合了所有块,就可以接收到指示成功传送的报告消息。

在一个实施例中,在活动msrp会话期间,端点和/或远端端点101可以从一个接入网类型移动到另一个不同容量的接入网类型,或者一个或两个端点的接入网/接入链路状况已经发生了改变。当上述任何一种情况发生时,端点和/或远端端点101可以在正在进行的msrp会话期间在sipre-invite或sipupdate中发送更新的sdp供应。更新的sdp供应将包括针对一个端点的更新的优选块大小值,并且返回sdp应答,sdp应答可以包括针对另一端点的更新的优选块大小。然后,发送消息的端点可以基于更新的sdp供应/应答中的更新的优选块大小来对最佳块大小值进行新的确定,并使用新确定的最佳块大小值继续msrp会话。

图4示出了在服务器200处执行的示例性方法40,服务器200将即时消息从起始端点100中继或转发到远端端点101。服务器200可以是具有在起始端点100和远端端点101之间建立msrp会话并且按需要根据定义或动态的服务器标准对在起始端点100和远端端点101之间发送的即时消息进行重新分段的能力的b2bua、中继或消息中心。服务器200与每个端点协商msrp会话的参数。msrp会话建立在步骤41开始,当服务器200在sipinvite消息中接收sdp供应时,sdp供应包括传统的msrp参数,例如路径、最大大小等以及当可以从起始端点100以块的形式传送消息时指示消息的起始端点的优选块大小的新sdp属性。在步骤42,服务器200根据路径参数确定远端端点101,针对远端端点101确定第一服务器优选msrp块大小。如果第一服务器优选msrp块大小与接收到的起始端点的优选块大小值不同,则其通过用其自己的优选msrp块大小(即,第一服务器优选msrp块大小)替换接收的sdp供应中指示起始端点的优选块大小的新sdp属性值来进一步修改sipinvite消息。然后,服务器200向远端端点101转发具有sdp供应的修改的sipinvite。在步骤43,服务器200在sip200ok中从远端端点101接收sdp应答,sdp应答包括传统msrp参数和指示远端端点的优选块大小的新sdp参数。此外,服务器200确定第二服务器优选msrp块大小,但是这一次针对起始端点100。如果第二服务器优选msrp块大小不同于远端端点的优选块大小值,则它进一步修改sip200ok,其中它用其自己的优选msrp块大小(即,第二服务器优选msrp块大小)替换sdp应答中指示远端端点的优选块大小的新sdp属性值,并且向起始端点100转发具有sdp应答的修改的sip200ok。如果第二服务器优选msrp块大小与远端端点的优选块大小相同,则服务器200可以不用其自己的优选msrp块大小(即,第二服务器优选msrp块大小)替换sdp应答中指示远端端点的优选块大小的新sdp属性值。

在一个实施例中,服务器200基于标准来确定第一服务器优选msrp块大小和第二服务器优选msrp块大小,该标准包括内部配置或配置的策略和/或服务器与沿着路径(例如,网络到网络互连nni或者甚至用户到网络互连uni(如果服务器200在没有其他中间节点的情况下直接与一个或两个端点进行通信的话))的下一个节点之间的服务级别协议。

在图4的步骤44,服务器200确定针对从起始端点100接收的消息的第一服务器msrp块大小,其是要针对远端端点101使用的最佳块大小。服务器200还确定针对同一msrp会话上在从远端端点101到起始端点100的另一方向上接收的消息的第二服务器msrp块大小,其是要针对起始端点100使用的最佳块大小。描述了确定第一服务器msrp块大小的实施例。相同的实施例可应用于关于起始端点100确定第二服务器msrp块大小:

-如果在步骤42确定的第一服务器优选msrp块大小小于远端端点的优选块大小,则第一服务器msrp块大小(即要在服务器200与远端端点101之间使用的块大小)是第一服务器优选msrp块大小。

-如果远端端点的优选块大小小于第一服务器优选msrp块大小,并且它可以被服务器200支持,则第一服务器msrp块大小是远端端点的优选块大小。

-如果远端端点的优选块大小小于第一服务器优选msrp块大小,并且由于服务器200被配置为仅使用一些预配置的msrp块大小因而服务器200不能支持远端端点的优选块大小,则服务器200将第一服务器msrp块大小(或最佳块大小)选择为小于远端端点的优选块大小的最接近的预配置的服务器msrp块大小。

除了上述实施例之外,如果服务器200(例如,b2bua)和远端端点101不能协商块大小,则服务器200应该假定如今的已知行为,即,对块大小可以没有限制并且对于从服务器200转发到远端端点101的消息,其可以使用其自己的配置值或甚至其自己确定的优选块大小。可能存在服务器200(例如,b2bua)能够与远端端点101而不是与起始端点100(反之亦然)协商块大小的情况。当块大小的协商不能与端点中的任一个协商时,有关的端点和服务器200将根据现有技术在相应链路上使用默认块大小。

在步骤45,建立msrp会话。服务器200使用第一服务器msrp块大小和第二服务器msrp块大小在起始端点100和远端端点101之间传输消息。当服务器200从起始端点100接收到消息块时,它可能需要在接收到完整消息之前存储所有消息块,然后开始向远端端点101转发根据第一服务器msrp块大小重新分段的消息。备选地,服务器200一接收到并存储了足够的消息字节或八位字节以允许根据第一服务器msrp块大小进行重新分段,服务器200就可以开始向远端端点101转发重新分段的消息。在该后一种备选方案中,服务器200在其开始向远端端点101转发之前可能仅需要存储消息的少量块而不需要等待从起始端点100接收并存储完整消息。

例如,如果来自起始端点100的msrpsend请求中使用的消息块大小小于第一服务器msrp块大小,则服务器200存储消息块,并在其开始向远端端点101转发并根据第一服务器msrp块大小进行重新分段之前等待更多的消息块从起始端点100到达。

方法40的步骤45对于从远端端点101接收的消息被等同地执行,其中在朝向起始端点100的相反方向上根据第二msrp块大小对消息块进行重新分段。

此外,在正在进行的msrp会话期间,起始端点100和/或远端端点101可以随时更新其对应的优选msrp块大小。端点可以随时在sipre-invite或sipupdate消息中发送sdp供应。如果例如网络/链路状况已经改变或端点之一或两个端点已经移动到不同容量的不同接入网类型(不同的带宽策略可能适用),则可能发生这种情况。然而,如果从一个端点接收到更新的sdp供应的服务器200确定它应该保持其先前确定的第一服务器优选msrp块大小或第二服务器优选msrp块大小,则它对该端点进行响应而不向另一端点转发sdp供应。

以下实施例示出了当包含在sdp供应和sdp应答中的新sdp属性用于承载优选块大小时该属性的格式。属性的定义和语法的示例如下:

sdp——行属性“a=chunk-size:”可以取例如100千字节开始的以kb为单位的值。

块大小可以是最大块大小。

为了与rfc4975的向后兼容性,在sdp供应或sdp应答中未接收到msrp块大小属性的端点应该假定如今的行为,即对块大小没有限制,并且它可以使用其自己配置的值。

针对新sdp属性的扩充巴科斯诺尔范式abnf语法可以是:

chunk-size=chunk-size-label“:”chunk-size-value

chunk-size-label=“chunk-size”

chunk-size-value=1*(digit);块大小(千字节)

当属性用于承载按照偏好或优先级顺序列出的优选块大小的列表时,可以使用类似的实施例。备选地,属性可以被格式化为承载优选块大小的最小值和最大值。

图5所示的实施例示出了包括电路50的端点,其中除了在此描述的其它实施例之外,电路50还执行根据如图1和图3所述的实施例的方法步骤。在一个实施例中,电路50可以包括处理器51和包含指令的存储设备52(也称为存储器),指令在被执行时使处理器51执行根据本文描述的实施例的方法中的步骤。电路50还可以包括通信接口53以与外部实体通信。

图6所示的实施例示出了包括电路60的服务器200,除了本文所述的其它实施例之外,电路60还执行根据如图2和图4所述的实施例的方法步骤。在一个实施例中,电路50可以包括处理器61和包含指令的存储设备62(也称为存储器),指令在被执行时使处理器61执行根据本文所描述的实施例的方法中的步骤。电路60还可以包括通信接口63以与外部实体和端点通信。

在图7中示出了端点的另一个实施例。图7示出了包括处理模块71的电路70,处理模块71被配置为确定用于msrp会话的优选msrp块大小,并且通过通信模块73发送包括端点的优选msrp块大小在内的消息。该消息可以是sip-invite消息。处理模块71还被配置为通过通信模块73接收响应消息,其中响应消息包括远端端点的优选msrp块大小。处理模块71被配置为确定要用于msrp媒体会话的msrp块大小。当通过通信模块73向远端端点发送msrp会话消息时,处理模块71还被配置为根据存储在存储器模块(72)中的确定的msrp块大小来对msrp会话消息进行分段。

图7中的电路70还包括通信模块73,被配置为发送和接收用于建立msrp会话的通信消息,并协商用于端点之间的msrp会话的msrp块大小。通信模块73还被配置为发送根据确定的msrp块大小被分段的分段的msrp会话消息。通信模块73还被配置为从远端端点接收msrp会话消息,其中可能根据远端端点确定的msrp块大小对msrp会话消息进行了分段。存储器模块72维持由端点确定的msrp块大小,该确定的msrp块大小用于对从端点到远端端点的msrp消息进行分段。

已经参考特定实施例描述了本发明。然而,对于本领域技术人员显而易见的是,可以以与上述实施例不同的具体形式不同的具体形式来体现本发明。所描述的实施例仅仅是说明性的,而不应被认为是任何限制性的。本发明的范围由所附权利要求而不是前面的描述给出,并且落入权利要求的范围内的所有变化和等同物旨在被包含在其中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1