数据通道建立方法和通信设备的制造方法_2

文档序号:9474141阅读:来源:国知局
有第二应答属性行的应答消息,之后发送端根据该应 答消息通过DCEP方式与接收端之间建立数据通道。
[0093] 另外,当提议消息中还包括第三提议属性行时,发送端和接收端在对数据通道协 商方式进行协商的同时,还可对数据通道上传输的数据协议进行协商,发送端和接收端之 间通过一次SDP会话即可完成数据通道协商方式的协商以及数据通道上传输的数据协议 的协商,充分提高了数据通道建立的效率。
[0094] 请参考图3,其示出了本发明另一实施例提供的数据通道建立方法的方法流程图, 本实施例以该数据通道建立方法应用于图1所示实施环境中的接收端侧来举例说明。该数 据通道建立方法可以包括如下几个步骤:
[0095] 步骤302,接收端接收发送端发送的携带有第一提议属性行和第二提议属性行的 提议消息。
[0096] 其中,第一提议属性行包括发送端支持的数据通道协商方式的信息,第二提议属 性行包括本次请求的数据通道协商方式的信息,且本次请求的数据通道协商方式为发送端 支持的数据通道协商方式中的一种。
[0097] 步骤304,接收端根据第一提议属性行、第二提议属性行以及接收端支持的数据通 道协商方式确定应答消息。
[0098] 步骤306,接收端向发送端发送应答消息,以便发送端根据应答消息与接收端之间 建立数据通道。
[0099] 其中,接收端和发送端中的至少一端支持两种或者两种以上数据通道协商方式。
[0100] 可选的,该数据通道建立方法还可以包括如下步骤:
[0101] 1、当提议消息中还包括第三提议属性行时,接收端根据第三提议属性行和接收端 在数据通道上支持的数据协议检测是否存在两端在数据通道上均支持的数据协议;其中, 第三提议属性行是发送端根据发送端在数据通道上支持的数据协议生成的。
[0102] 2、若检测出存在两端在数据通道上均支持的数据协议,则接收端根据两端在数据 通道上均支持的数据协议生成对应于第三提议属性行的第三应答属性行,以便发送端根据 第三应答属性行确定在数据通道上传输的数据协议。
[0103] 综上所述,本实施例提供的数据通道建立方法,解决了当通信两端中的至少一端 同时支持两种或者两种以上的数据通道协商方式时,通信两端就无法协商建立数据通道的 问题;当两端中的至少一端支持两种或两种以上数据通道协商方式时,通过两端对数据通 道协商方式的协商确定,进而在此基础上完成数据通道的建立,使得两端能够简单、高效地 建立数据通道,实现了不同终端、不同网络之间的互连互通。
[0104] 另外,当提议消息中还包括第三提议属性行时,发送端和接收端在对数据通道协 商方式进行协商的同时,还可对数据通道上传输的数据协议进行协商,发送端和接收端之 间通过一次SDP会话即可完成数据通道协商方式的协商以及数据通道上传输的数据协议 的协商,充分提高了数据通道建立的效率。
[0105] 请参考图4,其示出了本发明再一实施例提供的数据通道建立方法的方法流程图, 本实施例以该数据通道建立方法应用于图1所示实施环境中来举例说明。该数据通道建立 方法可以包括如下几个步骤:
[0106] 步骤401,发送端向接收端发送携带有第一提议属性行和第二提议属性行的提议 消息。
[0107] 发送端与接收端之间可以采用SDP会话进行数据通道的协商,该SDP会话通常表 现为SDP Offer/SDP Answer (SDP提议/SDP应答)的形式。提议消息(也即SDP Offer)可 以包括如下3个提议属性行:
[0108] m = application54111DTLS/SCTP5000
[0109] c = IN IP479. 97. 215. 79
[0110] a = sctpmap: 5000datachannel max-message-size = lOOOOOstreams = 16
[0111] 其中,"m ="行用于表示媒体类型和媒体流的发送端口;"c ="行用于表示连接信 息;"a ="行为会话属性行,一个SDP Offer可以包括0个或者多个会话属性行。
[0112] 另外,在本实施例提供的数据通道建立方法中,为了实现两端对采用何种数据通 道协商方式的协商,提议消息中还包括第一提议属性行和第二提议属性行。
[0113] 第一提议属性行包括发送端支持的数据通道协商方式的信息。在本发明各个实施 例中,发送端和接收端中的至少一端支持两种或者两种以上数据通道协商方式。第一提议 属性行中包括的信息可以是明确的携带有发送端支持的数据通道协商方式对应的标识的 信息,也可以是能够表明发送端支持的数据通道协商方式的其它任何形式的信息,对此本 实施例不作具体限定。
[0114] 另外,在本实施例中,以发送端支持的数据通道协商方式为DCEP方式以及SDP方 式中的任意一种或者全部两种来举例说明,在其它可能的实施例中,发送端还可能支持其 它数据通道协商方式,对此本实施例不作具体限定。
[0115] 第二提议属性行包括本次请求的数据通道协商方式的信息,本次请求的数据通道 协商方式为发送端支持的数据通道协商方式中的一种。第二提议属性行中包括的信息通常 包括相关用于建立数据通道的参数,比如SCTP端口号、数据通道关联的流标识、数据通道 对应的标签以及最大重传次数等等。
[0116] 具体地,以第一提议属性行中包括的信息为携带有DCEP方式和/或SDP方式对应 的标识的信息为例,提议消息的确定过程可以包括如下几个步骤:
[0117] 第一,根据发送端支持的数据通道协商方式确定本次请求的数据通道协商方式。
[0118] 本次请求的数据通道协商方式为发送端支持的数据通道协商方式中的一种。当发 送端支持的数据通道协商方式为DCEP方式时,本次请求的数据通道协商方式即为DCEP方 式;当发送端支持的数据通道协商方式为SDP方式时,本次请求的数据通道协商方式即为 SDP方式;当发送端支持的数据通道协商方式为DCEP方式以及SDP方式时,发送端可任意 选取一种数据通道协商方式作为本次请求的数据通道协商方式。
[0119] 第二,根据发送端支持的数据通道协商方式确定第一提议属性行。
[0120] 1、若发送端支持的数据通道协商方式为DCEP方式和SDP方式,则第一提议属性行 包括第一标识和第二标识。
[0121] 其中,第一标识与DCEP方式相对应,第二标识与SDP方式相对应。
[0122] 在本实施例中,假设以"dynamic"表示第一标识,"static"表示第二标识,则当发 送端同时支持两种数据通道协商方式时,第一提议属性行可以为:
[0123] a = assignstreamid: static ;dynamic
[0124] 2、若发送端支持的数据通道协商方式为DCEP方式,则第一提议属性行包括第一 标识。
[0125] 比如,第一提议属性行可以为:a = assignstreamid: dynamic
[0126] 3、若发送端支持的数据通道协商方式为SDP方式,则第一提议属性行包括第二标 识。
[0127] 比如,第一提议属性行可以为:a = assignstreamid: static
[0128] 第三,根据本次请求的数据通道协商方式确定第二提议属性行。
[0129] 1、若本次请求的数据通道协商方式为DCEP方式,则第二提议属性行包括任意流 标识符。
[0130] 其中,任意流标识符用于表示本次请求建立的数据通道关联的流标识为任意的, 其可由接收端在后续应答过程中选定一个未被使用的流标识作为数据通道关联的流标识, 也可在后续过程中以DCEP Open消息的形式进一步协商确定数据通道关联的流标识。
[0131] 在本实施例中,假设以表示任意流标识符。发送端生成的第二提议属性行除 了包括数据通道关联的流标识之外,通常还包括SCTP端口号、数据通道对应的标签以及最 大重传次数等参数。因此,第二提议属性行可以为:
[0132] a = dcmap:5000stream =氺;label = "channel2" ;max_retr = 3
[0133] 其中,"5000"表示SCTP端口号;"stream = 表示数据通道关联的流标识为任 意流标识符;"label = 〃channel2〃"表示数据通道对应的标签为channel2 ;"max_retr = 3"表示最大重传次数为3。
[0134] 若第二提议属性行包括任意流标识符,可以使得接收端在后续过程中确定采用 SDP方式建立数据通道时,在应答消息中直接反馈数据通道关联的流标识,避免两端在后续 过程中对流标识的进一步协商。
[0135] 2、若本次请求的数据通道协商方式为SDP方式,则第二提议属性行包括指定流标 识符。
[0136] 其中,指定流标识符用于表示数据通道关联的流标识为指定的。当发送端请求SDP 方式协商建立数据通道时,发送端为请求建立的数据通道选定一个未被使用的流标识。指 定流标识符可以是1、2、3、……、η中的任意整数,η彡1。
[0137] 在本实施例中,假设指定流标识符为"2",则第二提议属性行可以为:
[0138] a = dcmap:5000stream = 2 ;label = 〃channel2〃 ;max_retr = 3
[0139] 上述第二和第三两个步骤可以同时进行,也可以先后进行,本实施例不作具体限 定。
[0140] 第四,生成携带有第一提议属性行和第二提议属性行的提议消息。
[0141] 发送端在确定第一提议属性行和第二提议属性行之后,生成携带有第一提议属性 行和第二提议属性行的提议消息。
[0142] 比如,发送端生成的提议消息可以包括:
[0143] m = application54111DTLS/SCTP5000
[0144] c = IN IP479. 97. 215. 79
[0145] a = sctpmap: 5000datachannel max-message-size = lOOOOOstreams = 16
[0146] a = assignstreamid: static ;dynamic
[0147] a = dcmap:5000stream = * ;label = 〃channel2〃 ;max_retr = 3
[0148] 之后,发送端向接收端发送携带有第一提议属性行和第二提议属性行的提议消 肩、。
[0149] 对应地,接收端接收发送端发送的携带有第一提议属性行和第二提议属性行的提 议消息。
[0150] 步骤402,接收端根据第一提议属性行、第二提议属性行以及接收端支持的数据通 道协商方式确定应答消息。
[0151] 其中,接收端和发送端中的至少一端支持两种或者两种以上数据通道协商方式。 在本实施例中,以接收端支持的数据通道协商方式为DCEP方式以及SDP方式中的任意一种 或者全部两种来举例说明,在其它可能的实施例中,发送端还可能支持其它数据通道协商 方式,对此本实施例不作具体限定。
[0152] 应答消息(也即SDP Answer)与提议消息(也即SDP Offer)相对应,应答消息是 接收端根据发送端发送的提议消息做出的应答。在SDP会话机制中规定,应答消息中携带 的" a = "行数量不得超过提议消息中携带的" a = "行数量。
[0153] 具体地,本步骤可以包括如下几个子步骤:
[0154] 第一,根据第一提议属性行和接收端支持的数据通道协商方式确定两端均支持的 数据通道协商方式。
[0155] 第一提议属性行包括发送端支持的数据通道协商方式的信息。以第一提议属性行 中包括的信息为携带有DCEP方式和/或SDP方式对应的标识的信息为例,接收端读取第一 提议属性行中的信息,若第一提议属性行包括第一标识,则说明发送端支持的数据通道协 商方式为DCEP方式;若第一提议属性行包括第二标识,则说明发送端支持的数据通道协商 方式为SDP方式;若第一提议属性行包括第一标识和第二标识,则说明发送端支持的数据 通道协商方式为DCEP方式和SDP方式。之后,接收端根据发送端支持的数据通道协商方式 和接收端支持的数据通道协商方式确定出两端均支持的数据通道协商方式。
[0156] 第二,若两端均支持的数据通道协商方式有且只有DCEP方式,则确定同意采用的 数据通道协商方式为DCEP方式,并生成携带有第一应答属性行的应答消息。
[0157] 当两端均支持的数据通道协商方式有且只有DCEP方式时,接收端同意采用DCEP 方式与发送端之间建立数据通道。在这种情况下,接收端生成携带有第一应答属性行的应 答消息,以便发送端在后续过程中根据第一应答属性行检测出两端均支持DCEP方式后,通 过DCEP方式与接收端之间建立数据通道。
[0158] 第一应答属性行与第一提议属性行对应,第一应答属性行包括接收端支持的数据 通道协商方式的信息。该信息可以是明确的携带有DCEP方式和/或SDP方式对应的标识 的信息,也可以是能够表明接收端支持的数据通道协商方式的其它任何形式的信息,对此 本实施例不作具体限定。
[0159] 以第一应答属性行中包括的信息为携带有DCEP方式和/或SDP方式对应的标识 的信息为例,第一应答属性行的确定过程可以如下:
[0160] 1、若接收端支持的数据通道协商方式为DCEP方式和SDP方式,则第一应答属性行 包括第一标识和第二标识。
[0161] 其中,第一标识与DCEP方式相对应,第二标识与SDP方式相对应。
[0162] 仍然以"dynamic"表示第一标识,"static"表示第二标识。当接收端同时支持两 种数据通道协商方式时,第一应答属性行可以为:
[0163] a = assignstreamid: static ;dynamic
[0164] 2、若接收端支持的数据通道协商方式为DCEP方式,则第一应答属性行包括第一 标识。
[0165] 比如,第一应答属性行可以为:a = assignstreamid: dynamic
[0166] 3、若接收端支持的数据通道协商方式为SDP方式,则第一应答属性行包括第二标 识。
[0167] 比如,第一应答属性行可以为:a = assignstreamid: static
[0168] 因此,当确定同意采用的数据通道协商方式为DCEP方式时,应答消息可以包括:
[0169] c = IN IP479. 97. 215. 79
[0170] a = sctpmap: 5000datachannel max-message-size = lOOOOOstreams = 16
[0171] a = assignstreamid:dynamic
[0172] 其中,第一应答属性行"a = assignstreamid:dynamic"表示接收端支持的数据通 道协商方式为DCEP方式。
[0173] 第三,若两端均支持的数据通道协商方式有且只有SDP方式,则确定同意采用的 数据通道协商方式为SDP方式,并生成携带有第一应答属性行和第二应答属性行的应答消 肩、。
[0174] 其中,第一应答属性行与第一提议属性行对应,第一应答属性行包括接收端支持 的数据通道协商方式的信息。第二应答属性行与第二提议属性行对应,第二应答属性行包 括接收端同意采用的数据通道协商方式的信息,该信息通常包括相关用于建立数据通道的 参数,比如SCTP端口号、数据通道关联的流标识、数据通道对应的标签以及最大重传次数 等等。接收端生成携带有第一应答属性行和第二应答属性行的应答消息,以便发送端在后 续过程中读取第二应答属性行后,通过SDP方式与接收端之间建立数据通道。
[0175] 第二应答属性行还包括指定流标识符。当第二提议属性行中的流标识为任意流标 识符时,第二应答属性行中的指定流标识符是接收端确定的;当第二提议属性行中的流标 识为指定流标识符时,第二应答属性行中的指定流标识符即为第二提议属性行中的指定流 标识符。
[0176] t匕如,当第二提议属性行为:a = dcmap:5000stream = * ;label = 〃channel2"; max_retr = 3 时,对应的第二应答属性行可以为:a = dcmap:5000stream = 2 ;label = 〃channel2〃;max_retr = 3〇
[0177] 之后,接收端生成携带有第一应答属性行和第二应答属性行的应答消息。该应答 消息可以包括:
[0178] c = IN IP479. 97. 215. 79
[0179] a = sctpmap: 5000datachannel max-message-size = lOOOOOstreams = 16
[0180] a = assignstreamid:static
[0181] a = dcmap:5000stream = 2 ;label = 〃channel2〃 ;max_retr = 3
[0182] 接收端通过在应答消息中直接反馈数据通道关联的流标识,可以避免两端在后续 过程中对流标识的进一步协商,使得发送端接收到应答消息之后,可以直接根据应答消息 中携带的第二应答属性行与接收端之间通过SDP方式建立数据通道,减少两端信息交互的 次数,提高数据通道建立的效率;同时,还可避免因信息交互过程中可能存在的信息丢失、 或者收发延时等问题导致的协商失败,充分提高数据通道建立的成功率。
[0183] 另外,当第二提议属性行包括指定流标识符时,第二应答属性行中包括的指定流 标识符与第二提议属性行中的指定流标识符相同。
[0184] t匕如,当第二提议属性行为:a = dcmap:5000stream = 2 ;label = 〃channel2"; max_retr = 3 时,对应的第二应答属性行即为:a = dcmap: 5000stream = 2 ;label = 〃channel2〃 ;max_retr = 3〇
[0185] 第四,若两端均支持的数据通道协商方式为DCEP方式和SDP方式,则判断第二提 议属性行中包括的数据通道关联的流标识为任意流标识符还是指定流标识符;若为任意流 标识符,则确定同意采用的数据通道协商方式为DCEP方式,并生成携带有第一应答属性行 的应答消息;若为指定流标识符,则确定同意采用的数据通道协商方式为SDP方式,并生成 携带有第一应答属性行和第二应答属性行的应答消息。
[0186] 其中,第二提议属性行中的任意流标识符表示发送端本次请求的数据通道协商方 式为DCEP方式,第二提议属性行中的指定流标识符表示发送端本次请求的数据通道协商 方式为SDP方式。当两端均支持的数据通道协商方式为DCEP方式和SDP方式时,接收端根 据发送端请求的数据通道协商方式确定最终采用的数据通道协商方式。
[0187] 步骤403,接收端向发送端发送应答消息。
[0188] 对应地,发送端接收接收端发送的应答消息。
[0189] 步骤404,发送端根据应答消息与接收端之间建立数据通道。
[0190] 具体地,本步骤可以包括如下两种可能的实现方式:
[0191] 在第一种可能的实现方式中,当应答消息中携带有对应于第二提议属性行的第二 应答属性行时,通过SDP方式与接收端之间建立数据通道。
[0192] 其中,第二应答属性行是接收端确定同意采用的数据通道协商方式为SDP方式时 生成的。发送端可根据第二应答属性行中包括的数据通道关联的流标识、数据通道对应的 标签等参数直接与接收端之间建立数据通道。
[0193] 进一步地,可在该数据通道之上传输诸如MSRP (Message Session Relay Protocol,消息会话中继协议)或者 CLUE(C
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1