发明内容
本发明所要解决的技术问题是提供一种视频监控***的通信方法及其设备,用以降低MS分发压力,减少MS复制分发的数据量
为解决上述技术问题,本发明提供方案如下:
一种视频监控***的通信方法,所述视频监控***包括中央管理服务器CMS和多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,所述通信方法包括:
步骤A,CMS接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,其中第一CU和第一PU不在同一个MS管辖的区域内;
步骤B,CMS查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择一个MS,作为提供第一PU的数据源的上级媒体交换机MS-TOP,所述***资源表中包括有所述视频监控***中的MS能够提供的PU的数据源的信息;
步骤C,CMS向第一CU所属区域的媒体交换机MS-CU发送携带有MS-TOP和第一PU的信息的指示消息,所述指示消息用于指示MS-CU向MS-TOP请求建立到第一PU的SIP会话;
步骤D,CMS在本地维护的***资源表中增加所述MS-CU,作为能够提供第一PU的数据源的MS,并向第一CU返回一个重定向响应消息,所述重定向响应消息用于指示第一CU向MS-CU请求建立到第一PU的SIP会话。
优选地,上述通信方法中,所述从中选择一个MS,作为提供第一PU的数据源的上级媒体交换机MS-TOP,是从能够提供第一PU的数据源的MS中,选择位于第一PU所属区域的上层汇聚网络的、且距离第一PU最近的MS,作为所述MS-TOP。
优选地,上述通信方法中,还包括:
步骤E,CMS接收到MS-CU发送的用于指示到第一PU的SIP会话已拆除的指示消息后,在本地维护的***资源表中,将MS-CU从能够提供第一PU的数据源的MS中删除。
优选地,上述通信方法中,所述步骤A还包括:
CMS判断第一PU所属区域的媒体交换机MS-PU当前的数据转发压力是否超出预定门限:若是,则进入步骤B;否则进入步骤F;
步骤F,CMS控制建立第一PU到MS-PU、MS-PU到MS-CU、MS-CU到第一CU的转发路径,通过该转发路径向第一CU发送第一PU的数据流。
本发明还提供了一种视频监控***的通信方法,所述视频监控***包括中央管理服务器CMS和多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,所述通信方法包括:
第一CU所属区域的媒体交换机MS-CU,接收CMS发送的携带有MS-TOP和第一PU的信息的指示消息,所述MS-TOP是CMS在接收到第一CU发送的请求建立到第一PU的SIP会话的SIP请求消息后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS;
MS-CU在接收到所述指示消息后,通过向MS-TOP发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与MS-TOP之间的SIP会话,并根据MS-TOP返回的携带有第一PU的信息的响应消息,在自身维护的PU资源表中增加第一PU,作为自身能够提供数据源的PU;
MS-CU接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应该SIP请求后,建立与第一CU之间的SIP会话;
MS-CU接收并记录MS-TOP下发的其所维护的能够提供第一PU数据源的P2P列表,并通过向下级MS中除自身外的其它MS发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与所述其它MS之间的SIP会话,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
MS-CU接收MS-TOP按照轮流向各个下级MS发送方式发送给本MS-CU的第一PU的部分数据,并与所述其它MS通过P2P方式相互交互各自缺失的第一PU的数据,获得第一PU的完整数据并进行排序,再将排序后得到的第一PU的数据流发送给第一CU。
优选地,上述通信方法中,还包括:
MS-CU接收第一CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,并向第一CU返回会话已拆除的响应消息;
MS-CU判断自身是否在向本区域内第一CU外的其它CU发送第一PU的数据流:
若是,则结束流程;
否则,通过向MS-TOP发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与MS-TOP之间的SIP会话,并在接收到MS-TOP返回的响应消息后,将第一PU从自身维护的PU资源表中删除;通过向所述下级MS中除自身外的其它MS发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与所述其它MS之间的SIP会话;以及,向CMS发送用于指示到第一PU的SIP会话已拆除的指示消息,指示CMS将MS-CU从能够提供第一PU的数据源的MS中删除。
本发明还提供了一种视频监控***的通信方法,所述视频监控***包括中央管理服务器CMS和多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,所述通信方法包括:
MS-TOP接收到MS-CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,所述MS-CU是第一CU所属区域的媒体交换机MS,所述MS-TOP是CMS在接收到第一CU发送的建立到第一PU的SIP会话的请求后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS;
MS-TOP查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应所述SIP请求消息,建立与MS-CU之间的SIP会话,并向MS-CU返回携带有第一PU的信息的响应消息,所述响应消息指示MS-CU在自身维护的PU资源表中增加第一PU,作为MS-CU能够提供数据源的PU;以及,在建立与MS-CU之间的SIP会话后,在本地维护的能够提供第一PU数据源的P2P列表中增加MS-CU,再向该P2P列表中的所有下级MS下发该P2P列表,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
MS-TOP在接收到所有下级MS在保存所述P2P列表后返回的响应消息后,轮流向各个下级MS发送来自第一PU的部分数据,所述部分数据用于供下级MS之间通过P2P方式进行数据交互,以得到第一PU的完整数据。
优选地,上述通信方法中,还包括:
MS-TOP接收MS-CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除与MS-CU之间的SIP会话,并将MS-CU从所述P2P列表中删除。
本发明还提供了一种视频监控***中的中央管理服务器CMS,所述视频监控***还包括多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,所述CMS包括:
会话请求接收单元,用于接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,其中第一CU和第一PU不在同一个MS管辖的区域内;
上级MS确定单元,用于查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择一个MS,作为提供第一PU的数据源的上级媒体交换机MS-TOP,所述***资源表中包括有所述视频监控***中的MS能够提供的PU的数据源的信息;
指示消息发送单元,用于向第一CU所属区域的媒体交换机MS-CU发送携带有MS-TOP和第一PU的信息的指示消息,所述指示消息用于指示MS-CU向MS-TOP请求建立到第一PU的SIP会话;
重定向单元,用于在接收到MS-CU在接收到所述指示消息后返回的响应消息后,在本地维护的***资源表中增加所述MS-CU,作为能够提供第一PU的数据源的MS,并向第一CU返回一个重定向响应消息,所述重定向响应消息用于指示第一CU向MS-CU请求建立到第一PU的SIP会话。
优选地,上述的CMS中,
所述上级MS确定单元,进一步用于从能够提供第一PU的数据源的MS中,选择位于第一PU所属区域的上层汇聚网络的、且距离第一PU最近的MS,作为所述MS-TOP。
优选地,上述的CMS中,还包括:
***资源表维护单元,用于在接收MS-CU发送的用于指示到第一PU的SIP会话已拆除的指示消息后,在本地维护的***资源表中,将MS-CU从能够提供第一PU的数据源的MS中删除。
本发明还提供了一种视频监控***的第一CU所属区域的媒体交换机MS-CU,所述视频监控***包括中央管理服务器CMS和多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,所述MS-CU包括:
指示消息接收单元,用于接收CMS发送的携带有MS-TOP和第一PU的信息的指示消息,所述MS-TOP是CMS在接收到第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS;
上级会话建立单元,用于在接收到所述指示消息后,通过向MS-TOP发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与MS-TOP之间的SIP会话;
表项维护单元,用于根据MS-TOP返回的携带有第一PU的信息的响应消息,在自身维护的PU资源表中增加第一PU,作为自身能够提供数据源的PU,以及接收并记录MS-TOP下发的其所维护的能够提供第一PU数据源的P2P列表,所述P2P列表中包括有MS-TOP和下级MS;;
第一会话建立单元,用于接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应该SIP请求后,建立与第一CU之间的SIP会话;
第二会话建立单元,用于通过向下级MS中除自身外的其它MS发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与所述其它MS之间的SIP会话,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
数据处理单元,用于接收MS-TOP按照轮流向各个下级MS发送方式发送给本MS-CU的第一PU的部分数据,并与所述其它MS通过P2P方式相互交互各自缺失的第一PU的数据,获得第一PU的完整数据并进行排序,再将排序后得到的第一PU的数据流发送给第一CU。
优选地,上述的MS-CU中,还包括:
拆除请求接收单元,用于接收第一CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,并向第一CU返回会话已拆除的响应消息;
会话请求处理单元,用于在接收到上述会话拆除请求后,判断本MS-CU是否在向本区域内第一CU外的其它CU发送第一PU的数据流:
若是,则不执行任何动作;
否则,通过向MS-TOP发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与MS-TOP之间的SIP会话,并在接收到MS-TOP返回的响应消息后,将第一PU从自身维护的PU资源表中删除;通过向所述下级MS中除自身外的其它MS发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与所述其它MS之间的SIP会话;以及,向CMS发送用于指示到第一PU的SIP会话已拆除的指示消息,指示CMS将MS-CU从能够提供第一PU的数据源的MS中删除。
本发明还提供了一种视频监控***的上级媒体交换机MS-TOP,所述视频监控***包括中央管理服务器CMS和多个媒体交换机MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU,
所述MS-TOP是CMS在接收到第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS;
所述MS-TOP包括:
会话请求接收单元,用于接收MS-CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,所述MS-CU是第一CU所属区域的媒体交换机MS,;
会话建立单元,用于在接收到所述SIP请求消息,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应所述SIP请求消息,建立与MS-CU之间的SIP会话,并向MS-CU返回携带有第一PU的信息的响应消息,所述响应消息指示MS-CU在自身维护的PU资源表中增加第一PU,作为MS-CU能够提供数据源的PU;
P2P列表维护单元,用于在建立与MS-CU之间的SIP会话后,在本地维护的能够提供第一PU数据源的P2P列表中增加MS-CU,再向该P2P列表中的所有下级MS下发该P2P列表,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
数据分发单元,用于在接收到所有下级MS在保存所述P2P列表后返回的响应消息后,轮流向各个下级MS发送来自第一PU的部分数据,所述部分数据用于供下级MS之间通过P2P方式进行数据交互,以得到第一PU的完整数据。
优选地,上述的MS-TOP中,还包括:
会话拆除单元,用于接收MS-CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除与MS-CU之间的SIP会话;
所述P2P列表维护单元,还用于在拆除与MS-CU之间的SIP会话后,将MS-CU从所述P2P列表中删除。
从以上所述可以看出,本发明提供的一种视频监控***的通信方法及其设备,通过整合视频监控***内的MS资源,形成以MS-TOP为源、以监控网络内其他MS为网络节点的分布式网络,通过该分布式网络传输实况图像。由于数据在该分布式网络采用分层P2P的传输方式,上级MS下级MS提供转发数据,下级MS之间以P2P的形式做数据共享,从而减少上级MS转发到下级MS的业务流量,大大降低了上级MS的数据分发压力,提高了视频监控***的整体性能。
具体实施方式
本发明通过整合视频监控***内的MS资源,形成以上级媒体交换机(MS-TOP)为源、以视频监控网络内其他MS为网络节点的分布式网络,通过该分布式网络传输实况图像。该分布式网络采用分层端到端(P2P,Peer toPeer)的结构,尽可能地减少MS的数据分发压力。布置在主干线路上的MS-TOP为上级转发服务器,向下级服务器转发数据。下级媒体交换机(MS-P2P)以P2P方式进行数据共享,减少MS-TOP转发到MS-P2P的业务流量。以下将结合附图,通过具体实施例对本发明作进一步的说明。
现有技术中,假设第一CU向CMS申请浏览第一PU的实况图像(第一PU和第一CU不在同一个MS管辖区域内),在经过CMS的准入控制后,建立实况图像转发路径:第一PU到第一PU所述区域的MS-PU、MS-PU到第一CU所属区域的MS-CU、MS-CU到第一CU的转发路径,通过该转发路径向第一CU发送第一PU的数据流。
本实施例中,在经过CMS准入控制后,CMS进一步判断MS-PU的当前数据转发压力是否超出预定门限:如果是,则按照图3所示的步骤进行处理;否则,按照现有技术的处理方式进行处理。这里,MS-PU的当前数据转发压力可以根据MS-PU当前转发到其它MS的数据量(或者转发的PU的路数)与MS-PU最大能够处理的转发数据量(或者最大能够转发的PU的路数)的比值确定。
请参照图3,本发明实施例所述视频监控***的通信方法,应用在一视频通信***中,该视频监控***包括一个CMS和多个媒体交换机MS,每个MS管辖的区域内包括有至少一个CU和/或至少一个PU,该通信方法包括以下步骤:
步骤101,某用户区域的CU(假设为第一CU)需要浏览某编码器区域的PU(假设为第一PU)的实况图像,该第一CU向CMS发起一个SIP请求消息(具体为SIP INVITE消息):第一PUCMS,用于请求建立到第一PU的SIP会话。
步骤102,CMS对该第一CU的进行准入控制,在第一CU通过准入控制后,判断出MS-PU的数据处理压力已超出预定门限,此时,CMS向第一CU回应100Trying的SIP响应消息。
这里,本实施例假设第一PU与第一CU并不处于同一个MS管辖的区域,此时第一PU的实况图像的数据需要经过第一CU所属区域的MS(记为MS-CU)的转发。如果第一PU与第一CU在同一个MS管辖的区域内,则两者之间直接建立SIP会话,传输实况图像,这属于现有技术的方案,不在本实施例的讨论范围内。
步骤103,CMS查找本地维护的***资源表第一PUCMS,该***资源表中包括有视频监控***中MS能够提供数据源的PU的信息,从而确定哪些MS可以提供第一PU的数据源,并从能够提供第一PU的数据源的MS中选择出一个MS,作为提供第一PU的数据源的上级媒体交换机MS-TOP,然后向第一CU所在区域的MS(即MS-CU)发送携带有MS-TOP和第一PU的信息的指示消息,该指示消息用于指示MS-CU向MS-TOP发送用于请求建立到第一PU的SIP会话的SIP请求消息,以建立到MS-TOP的SIP会话。这里,指示消息具体可以采用扩展的SIP INFO消息,其消息体使用扩展标记语言(XML,eXtensible Markup Language)描述如下:
<
xml version=″1.0″encoding=″UTF-8″
>
<Message Verison=″1.0″>
<Header MessageType=″SESSION_SETUP″
/>
<IE_SESSION_INFO PeerLocal=″MS-CU″
PeerRemote=″MS-TOP″
PU_ID=″PU1″
/>
</Message>
上述消息体中,PU1表示第一PU。
本步骤103中,从能够提供第一PU的数据源的MS中选择MS-TOP的方式,可以是从中随机选择一个MS作为MS-TOP,还可以是从中选择当前数据转发压力最小的MS作为MS-TOP。由于PU所属区域到CU所属区域通常需要经过复杂、分层的网络路由,一般来说MS-TOP通常选择在PU所属区域的上层汇聚网络的MS。另外,由于分层分布式网络采用P2P方式共享数据,不可避免引入转发时延,因此对于浏览质量要求较高的CU,需要保证MS-TOP尽可能靠近PU。因此,优选地,本实施例从能够提供第一PU的数据源的MS中,选择位于第一PU所属区域的上层汇聚网络的、且距离第一PU最近的MS,作为MS-TOP。
本实施例中,CMS还可以在本地***资源表中增加各个MS的服务优先级与网络优先级,下表1示出了CMS维护的***资源表的一种可能的形式。其中,MS的服务优先级可以由管理员预先设定,例如,根据MS管辖区域的重要程度,设置对应的服务优先级。MS的网络优先级,则根据MS所在的网络位置设定,例如,核心层、汇聚层和接入层的带宽和服务质量(QoS)通常是逐渐降低的,因此,可以设置:位于核心层MS的网络优先级>位于汇聚层的MS的网络优先级>位于接入层的MS的网络优先级。进而,本实施例可以根据CU所属区域的服务优先级与各个MS的网络优先级来综合判断,选择出MS-TOP。例如,在MS-CU的服务优先级较高时,可以从能够提供第一PU的数据源的MS中,选择网络优先级较高的MS,作为MS-TOP;在MS-CU的服务优先级一般时,可以从能够提供第一PU的数据源的MS中,选择网络优先级一般的MS,作为MS-TOP。当然,也可以简化处理,直接选择网络优先级最高的MS作为数据源。
序号 |
MS-ID |
服务优先级 |
网络优先级 |
能够提供数据源的PU ID |
1 |
MS-PU |
60 |
60 |
PUx |
2 |
MS-top |
80 |
80 |
PUx |
3 |
MS-P2P |
60 |
60 |
PUx |
4 |
MS-CU |
60 |
60 |
|
表1
步骤104,MS-CU接收到上述指示消息后,向CMS回应200OK的SIP响应消息,CMS接收到该SIP响应消息后,在本地保存的***资源表中添加MS-CU作为能够提供第一PU的数据源的MS,来更新维护该***资源表。
这里,CMS在本地维护的***资源表中包括有视频监控***中各个MS能够提供数据源的PU的信息。某个MS能够提供某个PU的数据源,是指该MS能够作为该PU的数据源,提供来自该PU的数据。CMS维护***资源表的方式包括:在某个MS与某个PU之间建立SIP会话后,CMS将该PU作为该MS能够提供数据源的PU,增加到***资源表中。
步骤105,CMS向第一CU回应300的重定向响应消息,其中该消息中的Contact字段填充为MS-CU的地址,该重定向响应消息用于指示第一CU向MS-CU请求建立到第一PU的SIP会话。MS-CU则根据上述指示消息,向MS-TOP发送一个SIP请求(INVITE)消息:第一PUMS-TOP,用于请求建立到第一PU的SIP会话。
这里,上述步骤105中的CMS重定向消息回复与MS-CU发送SIP请求消息两个动作之间并没有必然的时间联系,该两个动作只是CMS和MS-CU在步骤104后的独立动作。
步骤106,第一CU接收到上述重定向请求消息后,向CMS回应200OK的响应消息。MS-TOP则在接收到MS-CU发送的SIP请求(INVITE)消息后,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应所述SIP请求(INVITE)消息,建立与MS-CU之间的SIP会话,并向MS-CU返回携带有第一PU的信息的响应消息,所述响应消息指示MS-CU在自身PU资源表中增加第一PU,作为能够提供数据源的PU;MS-CU接收到MS-TOP返回的响应消息后,在自身维护的PU资源表里增加第一PU,作为自身能够提供数据源的PU。这里,MS-TOP发送的响应消息的消息体使用XML描述如下:
<
xml version=″1.0″encoding=″UTF-8″
>
<Message Verison=″1.0″>
<Header MessageType=″SOURCE_LIST″
/>
<IE_SOURCE_LIST SourceList=″PU1″
/>
</Message>
其中,SourceList=″PU1″,表示MS-CU将能够提供第一PU的数据源。
本实施例中,视频监控***中的各个MS都在本地维护有一PU资源表,该PU资源表中记录了本MS能够提供数据源的PU的信息。MS-CU在本地维护的PU资源表如下表2所示:
MS-ID |
能够提供数据源的PU ID |
MS-CU |
PU1 |
表2
上述步骤106中,第一CU回复的响应消息和MS-TOP回复的响应消息之间并没有必然的时间联系,只是第一CU与MS-TOP在步骤105后的独立动作。
步骤107,第一CU向自身所属区域的MS-CU发送SIP请求(INVITE)消息:第一PUMS-CU,用于请求建立到第一PU的SIP会话。
步骤108,MS-CU查询本地PU资源表判断出自身能够提供第一PU的数据源后,响应该SIP INVITE后,建立与第一CU之间的SIP会话,并向第一CU返回响应消息;
步骤109,MS-TOP在本地维护一个能够提供第一PU数据源的P2P列表,在步骤106中向MS-CU返回携带有第一PU的信息的响应消息后,在该P2P列表中增加MS-CU,再向该P2P列表中的所有下级MS下发该P2P列表,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS。下发该P2P列表可以使用扩展的SIP INFO消息,其消息体使用XML语言描述如下:
<
xml version=″1.0″encoding=″UTF-8″
>
<Message Verison=″1.0″>
<Header MessageType=″SUB_LEVEL_P2PLIST″
/>
<IE_P2P_LIST P2PID=″MS-P2P......MS-CU″
/>
</Message>
其中,P2PID表示MS-TOP维护的P2P列表中所包括的MS,这些MS能够提供第一PU的数据源。
步骤110,各个下级MS(包括MS-CU)接收到MS-TOP下发的P2P列表后,将该P2P列表记录到本地,并向MS-TOP回复200OK响应消息。
步骤111,在MS-TOP接收到P2P列表中的所有下级MS返回的响应消息后,轮流向各个下级MS发送来自第一PU的部分数据,所述部分数据用于供下级MS之间通过P2P方式进行数据交互,以得到第一PU的完整数据。
这里,MS-CU也是P2P列表中的一个下级MS,所述P2P列表中其它下级MS和MS-TOP之间均建立有SIP会话,会话建立方式与步骤105~106中MS-CU建立与MS-TOP之间的SIP会话相同。
这里,上述步骤111中,第一PU的数据通过实时传输协议(RTP,Real-timeTransport Protocol)传输;所述轮流向各个下级MS发送来自第一PU的部分数据,具体是:MS-TOP将来自第一PU的预定数量的RTP数据发送给P2P列表中的第一个下级MS,再将接下来的来自第一PU的预定数量的RTP数据发送给P2P列表中的第二个下级MS,以此类推,直至最后一个下级MS,然后再重复上述发送动作,从第一个下级MS开始继续发送。下级MS作为数据接收端,向MS-TOP发送RTP控制协议(RTCP,RTP Control Protocol)数据接收报告,报告数据接收情况。
步骤112,MS-CU向下级MS中除自身外的其它MS(记为MS-P2P)分别发送SIP请求(INVITE)消息:第一PUMS-P2P,请求建立到第一PU的SIP会话。
步骤113,各个MS-P2P在接收到MS-CU发送的SIP请求消息后,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应该SIP请求消息后,建立与MS-CU之间的SIP会话,并向MS-CU返回200OK响应消息。
步骤114,于是,下级MS(包括MS-CU和MS-P2P)接收MS-TOP按照轮流向各个下级MS发送方式发送给本MS的第一PU的部分数据,并且下级MS之间按照P2P方式进行数据共享,相互交互各自缺失的第一PU的数据:下级MS将各自收到的RTP数据分发给P2P列表中的其他下级MS,从而获得第一PU的完整数据。
步骤115,通过P2P方式,MS-CU获取到第一PU的完整数据后,再按照数据包的序列号进行排序,得到第一PU的数据流,再将第一PU的数据流发送给第一CU。
从以上所述可以看出,本实施例通过整合视频监控***内的MS资源,形成以MS-TOP为源、以视频监控***内其他下级MS为网络节点的分布式网络,通过该分布式网络传输实况图像。该分布式网络采用分层P2P的方式,尽可能地减少上级MS的数据分发压力。MS-TOP通常为布置在主干线路上的MS,作为上级转发服务器,提供向下级服务器转发数据。下级MS作为下级转发服务器,以P2P的形式做数据共享,从而减少上级服务器转发到下级服务器的业务流量。
例如,采用现有技术的复制分发方式,当有m个MS-CU请求第一PU的图像时,MS-PU需要将第一PU的数据复制m份再分别下发到各个MS-CU。采用本实施例所述通信方法后,MS-PU通常只需要发送一份第一PU的数据到MS-TOP;而对于MS-TOP,其下发到所有下级MS的第一PU的数据量总共也只有一份,因此本实施例不再需要根据MS-CU的数量来复制第一PU的数据,从而可以大幅度降低热点区域的MS的数据处理压力减少MS复制分发的数据量,提高视频监控***的整体性能。
以下请参照图4,在第一CU结束浏览第一PU的实况图像时,本实施例还包括以下步骤:
步骤116,第一CU在需要结束浏览第一PU的实况图像时,向MS-CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求(具体可以采用SIPBYE消息)。
步骤117,MS-CU接收到上述会话拆除请求后,向第一CU回应200OK响应消息,用于指示会话已拆除。
步骤118,MS-CU判断自身是否在向本区域(即MS-CU管辖区域)内第一CU外的其它CU发送第一PU的数据流:若是,则不执行任何动作,直接结束流程;否则,通过向MS-TOP发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与MS-TOP之间的SIP会话;
步骤119,MS-TOP接收到MS-CU发送的会话拆除请求后,向MS-CU回应200OK响应,并拆除与MS-CU之间的SIP会话,同时将MS-CU从本地维护的所述P2P列表中删除。在此之后,MS-TOP还可以将更新后的P2P列表下发到该P2P列表中除自身外的所有MS。MS-CU在接收到MS-TOP返回的200OK响应后,将第一PU从自身维护的PU资源表中删除。
步骤120,MS-CU在分发完第一PU的所有数据后,向下级MS中除自身外的其它MS(即MS-P2P)发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与所述其它MS之间的SIP会话。
步骤121,各个MS-P2P在接收到MS-CU发送的会话拆除请求后,向MS-CU回应200OK响应,并拆除与MS-CU之间的SIP会话。
步骤122,MS-CU在接收到各个MS-P2P返回的响应消息后,向CMS发送用于指示到第一PU的SIP会话已拆除的指示消息,指示CMS将MS-CU从能够提供第一PU的数据源的MS中删除,该指示消息可以采用扩展的SIPINFO消息,其消息体使用XML语言描述如下:
<
xml version=″1.0″encoding=″UTF-8″
>
<Message Verison=″1.0″>
<Header MessageType=″SESSION_RELAESE″
/>
<IE_SESSION_INFO PeerLocal=″MS-CU″
PeerRemote=″MS-TOP″
DataTransfer=″PU1″
/>
</Message>
步骤123,CMS在接收到上述指示消息后,在本地维护的***资源表中,将MS-CU从能够提供第一PU的数据源的MS中删除。
另外,如果因为网络丢包、个别MS故障等原因引发的第一PU的P2P个体数据缺失,此时的具体处理如下:由于第一PU的数据通过RTP协议承载,接收端实时地通过RTCP向发送端发送数据接收报告。如果发送端接收到的数据接收报告显示数据丢包,发送端根据丢失数据包的序列号(SequenceNumber)重发丢失的数据包;如果发送端接收某个MS的数据接收报告超时,则将该MS从P2P列表中清除,并将最新的P2P列表通知该P2P列表中除自身外的所有MS。
从以上所述可以看出,本发明实施例
通过整合视频监控***内的MS资源,形成以MS-TOP为源、以监控网络内其他MS为网络节点的分布式网络,通过该分布式网络传输实况图像。由于数据在该分布式网络采用分层P2P的传输方式,上级MS下级MS提供转发数据,下级MS之间以P2P的形式做数据共享,从而减少了上级MS转发到下级MS的业务流量,大大降低了上级MS的数据分发压力,提高了视频监控***的整体性能。
基于以上所述的视频监控***的通信方法,本发明实施例还提供了用于实施上述通信方法的设备及视频监控***,该视频监控***包括CMS和多个MS,各个MS管辖的区域内包括有至少一个客户端单元CU和/或至少一个前端单元PU。
其中,如图5所示,所述CMS包括:
会话请求接收单元,用于接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,其中第一CU和第一PU不在同一个MS管辖的区域内;
上级MS确定单元,用于查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择一个MS,作为提供第一PU的数据源的上级媒体交换机MS-TOP,所述***资源表中包括有所述视频监控***中的MS能够提供的PU的数据源的信息;
指示消息发送单元,用于向第一CU所属区域的媒体交换机MS-CU发送携带有MS-TOP和第一PU的信息的指示消息,所述指示消息用于指示MS-CU向MS-TOP请求建立到第一PU的SIP会话;
重定向单元,用于在接收到MS-CU在接收到所述指示消息后返回的响应消息后,在本地维护的***资源表中增加所述MS-CU,作为能够提供第一PU的数据源的MS,并向第一CU返回一个重定向响应消息,所述重定向响应消息用于指示第一CU向MS-CU请求建立到第一PU的SIP会话。
优选地,上述CMS中,所述上级MS确定单元,进一步用于从能够提供第一PU的数据源的MS中,选择位于第一PU所属区域的上层汇聚网络的、且距离第一PU最近的MS,作为所述MS-TOP。
优选地,上述CMS中,还包括:
***资源表维护单元,用于在接收MS-CU发送的用于指示到第一PU的SIP会话已拆除的指示消息后,在本地维护的***资源表中,将MS-CU从能够提供第一PU的数据源的MS中删除。
本发明实施例提供的视频监控***中,所述MS中包括有第一CU所属区域的媒体交换机MS-CU,如图6所示,所述MS-CU包括:
指示消息接收单元,用于接收CMS发送的携带有MS-TOP和第一PU的信息的指示消息,所述MS-TOP是CMS在接收到第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS;
上级会话建立单元,用于在接收到所述指示消息后,通过向MS-TOP发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与MS-TOP之间的SIP会话;
表项维护单元,用于根据MS-TOP返回的携带有第一PU的信息的响应消息,在自身维护的PU资源表中增加第一PU,作为自身能够提供数据源的PU,以及接收并记录MS-TOP下发的其所维护的能够提供第一PU数据源的P2P列表,所述P2P列表中包括有MS-TOP和下级MS;;
第一会话建立单元,用于接收第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应该SIP请求后,建立与第一CU之间的SIP会话;
第二会话建立单元,用于通过向下级MS中除自身外的其它MS发送用于请求建立到第一PU的SIP会话的SIP请求消息,建立与所述其它MS之间的SIP会话,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
数据处理单元,用于接收MS-TOP按照轮流向各个下级MS发送方式发送给本MS-CU的第一PU的部分数据,并与所述其它MS通过P2P方式相互交互各自缺失的第一PU的数据,获得第一PU的完整数据并进行排序,再将排序后得到的第一PU的数据流发送给第一CU。
优选地,上述MS-CU中,还包括:
拆除请求接收单元,用于接收第一CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,并向第一CU返回会话已拆除的响应消息;
会话请求处理单元,用于在接收到上述会话拆除请求后,判断本MS-CU是否在向本区域内第一CU外的其它CU发送第一PU的数据流:
若是,则不执行任何动作;
否则,通过向MS-TOP发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与MS-TOP之间的SIP会话,并在接收到MS-TOP返回的响应消息后,将第一PU从自身维护的PU资源表中删除;通过向所述下级MS中除自身外的其它MS发送用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除自身与所述其它MS之间的SIP会话;以及,向CMS发送用于指示到第一PU的SIP会话已拆除的指示消息,指示CMS将MS-CU从能够提供第一PU的数据源的MS中删除。
本发明实施例提供的视频监控***中,所述MS中还包括有上级媒体交换机MS-TOP,所述MS-TOP是CMS在接收到第一CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息后,通过查找本地维护的***资源表,确定能够提供第一PU的数据源的MS,并从中选择出的作为提供第一PU的数据源的上级MS。如图7所示,所述MS-TOP包括:
会话请求接收单元,用于接收MS-CU发送的用于请求建立到第一PU的SIP会话的SIP请求消息,所述MS-CU是第一CU所属区域的媒体交换机MS,;
会话建立单元,用于在接收到所述SIP请求消息,查询本地维护的PU资源表,判断出自身能够提供第一PU的数据源后,响应所述SIP请求消息,建立与MS-CU之间的SIP会话,并向MS-CU返回携带有第一PU的信息的响应消息,所述响应消息指示MS-CU在自身维护的PU资源表中增加第一PU,作为MS-CU能够提供数据源的PU;
P2P列表维护单元,用于在建立与MS-CU之间的SIP会话后,在本地维护的能够提供第一PU数据源的P2P列表中增加MS-CU,再向该P2P列表中的所有下级MS下发该P2P列表,所述下级MS是所述P2P列表中除MS-TOP之外的其它MS;
数据分发单元,用于在接收到所有下级MS在保存所述P2P列表后返回的响应消息后,轮流向各个下级MS发送来自第一PU的部分数据,所述部分数据用于供下级MS之间通过P2P方式进行数据交互,以得到第一PU的完整数据。
优选地,上述MS-TOP中,还包括:
会话拆除单元,用于接收MS-CU发送的用于请求拆除到第一PU的SIP会话的会话拆除请求,拆除与MS-CU之间的SIP会话;
所述P2P列表维护单元,还用于在拆除与MS-CU之间的SIP会话后,将MS-CU从所述P2P列表中删除。
综上所述,本发明实施例提供的视频监控***的通信方法、设备及视频监控***,可以降低MS的数据转发压力,提高视频监控***的整体性能。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。