一种数据重传方法及装置的制造方法

文档序号:10690774阅读:498来源:国知局
一种数据重传方法及装置的制造方法
【专利摘要】本发明提供一种数据重传方法及装置,所述方法包括:当NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区;在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包;在查找到该指定数据包时,将该指定数据包发送至该客户端。因此本发明可以通过缓存重传数据包来使后续其他客户端请求相同的数据包时可以快速的重传,从而可以向客户端重传时间较早的数据包,提升用户体验。
【专利说明】
一种数据重传方法及装置
技术领域
[0001 ]本发明涉及视频监控技术领域,尤其涉及一种数据重传方法及装置。
【背景技术】
[0002]在视频监控系统中,一般采用组播方式发送实时视频数据到固定组播组,而接收者只需要加入相应的组播组即可接收到视频数据。现有的视频监控系统中,NVR(NetWOrkVideo Recorder,网络视频录像机)管理多台IPC以及多台点播客户端,基于UDP机制,IPC的数据先传输到NVR,NVR将数据进行存储或者解码播放,如果有客户端也在点播该IPC的实况数据,那么NVR就将该数据包转发给客户端。由于UDP是不可靠的通信协议,现有的视频监控系统一般都会采用消息重传来实现其可靠性。因此客户端可以通过数据包的序列表检测数据包的丢失情况。当检测到数据包丢失时,客户端通常会向NVR端发起重传请求,NVR再从缓存中再次发送该数据包给客户端。然而NVR自身的缓存资源十分有限,通常无法缓存太多数据,因此当客户端请求重传时间较早的丢包数据时,NVR通常很难实现数据重传服务。

【发明内容】

[0003]有鉴于此,本发明提供一种数据重传方法及装置来解决现有技术中NVR无法重传时间较早的数据包的问题。
[0004]具体地,本发明是通过如下技术方案实现的:
[0005]本发明提供一种数据重传方法,所述方法包括:
[0006]当NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区;
[0007]在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包;
[0008]在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0009]进一步的,所述方法还包括:
[0010]若所述IPC发送的数据包不是重传数据时,则将该数据包保存在该IPC对应的独立缓存区;
[0011]当NVR在公共缓存区中未查找到该指定数据包时,在该IPC对应的独立缓存区中查找该指定数据包;
[0012]在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0013]进一步的,所述方法还包括:
[0014]当NVR在该IPC对应的独立缓存区中未查找到该指定数据包时,向该IPC请求对该指定数据包进行重传;
[0015]当收到该IPC重传的所述指定数据包时,将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。
[0016]进一步的,所述方法还包括:
[0017]NVR按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量将自身的缓存数据大小反馈至该NVR,NVR接收并记录该IPC的缓存数据大小;
[0018]在NVR向该IPC请求对该指定数据包进行重传之前,所述方法还包括:
[0019]通过记录的该IPC的缓存数据大小判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。
[0020]进一步的,所述若所述IPC发送的数据包不是重传数据时,则将该数据包保存在该IPC对应的独立缓存区,具体包括:
[0021]当NVR收到IPC发送的非重传的第一数据包时,判断该IPC对应的独立缓存区是否存满;
[0022]若存满,则NVR根据该IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC;并将该第一数据包按照时间顺序存储到该独立缓存区;
[0023]若未存满,则NVR将该第一数据包按照时间顺序存储到该独立缓存区。
[0024]基于相同的构思,本发明还提供一种数据重传装置,所述装置包括:
[0025]保存单元,用于在NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区;
[0026]查找单元,用于在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包;
[0027]发送单元,用于在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0028]进一步的,所述保存单元,还用于当所述IPC发送的数据包不是重传数据时,将该数据包保存在该IPC对应的独立缓存区;
[0029]所述查找单元,还用于在公共缓存区中未查找到该指定数据包时,在该IPC对应的独立缓存区中查找该指定数据包;
[0030]所述发送单元,还用于在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0031]进一步的,所述装置还包括:
[0032]请求单元,用于在该IPC对应的独立缓存区中未查找到该指定数据包时,向该IPC请求对该指定数据包进行重传;当收到该IPC重传的所述指定数据包时,将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。
[0033]进一步的,所述装置还包括:
[0034]检测单元,用于按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量将自身的缓存数据大小反馈至该NVR,NVR接收并记录该IPC的缓存数据大小;
[0035]所述请求单元,还用于在NVR向该IPC请求对该指定数据包进行重传之前,通过记录的该IPC的缓存数据大小判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。
[0036]进一步的,所述保存单元,具体用于在NVR收到IPC发送的非重传的第一数据包时,判断该IPC对应的独立缓存区是否存满;若存满,则NVR根据该IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC;并将该第一数据包按照时间顺序存储到该独立缓存区;若未存满,则NVR将该第一数据包按照时间顺序存储到该独立缓存区。
[0037]由此可见,本发明可以将IPC重传的数据包保存在NVR的公共缓存区,并在收到客户端请求IPC对指定数据包进行重传时,在公共缓存区查找该指定数据包,并将查找的该指定数据包发送至该客户端。因此本发明可以通过缓存重传数据包来使后续其他客户端请求相同的数据包时可以快速的重传,从而可以向客户端重传时间较早的数据包,提升用户体验。
【附图说明】
[0038]图1是本发明一种示例性实施方式中的一种数据重传方法的处理流程图;
[0039]图2是本发明一种示例性实施方式中的数据重传组网架构的示意图;
[0040]图3本发明一种示例性实施方式中的数据重传装置所在设备的硬件结构图;
[0041]图4本发明一种示例性实施方式中的一种数据重传装置的逻辑结构图。
【具体实施方式】
[0042]为了解决现有技术存在的问题,本发明提供一种数据重传方法及装置,可以将IPC重传的数据包保存在NVR的公共缓存区,并在收到客户端请求IPC对指定数据包进行重传时,在公共缓存区查找该指定数据包,并将查找的该指定数据包发送至该客户端。因此本发明可以通过缓存重传数据包来使后续其他客户端请求相同的数据包时可以快速的重传,从而可以向客户端重传时间较早的数据包,提升用户体验。
[0043]请参考图1,是本发明一种示例性实施方式中的一种数据重传方法的处理流程,所述方法可应用于NVR,所述方法包括:
[0044]步骤101、当NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区;
[0045]在本实施例中,NVR除了为每个IPC设置对应的独立缓存区以外,还会设置公共缓存区,该公共缓存区用于存储所有IPC已重传的数据包。因此,当NVR收到IPC发送的数据包时,先判断该数据包是否为重传数据,若是重传数据,则将该数据包保存在公共缓存区,这就是公共缓存区的数据来源方式。公共缓存区可以按照时间的顺序进行队列的出入操作,缓存空间被存满时,会删除时间较早的数据包。因此,结合上述方案,当NVR收到客户端请求IPC对指定数据包进行重传时,该NVR具体可以在公共缓存区的已重传数据包中查找该指定数据包。由于现有技术中NVR只缓存每个IPC在一段时间内发送的数据包,因此当用户需要重传更早的数据包时,NVR通常无法实现数据重传。但本发明在缓存每个IPC在一段时间内发送的数据包之外,还可以在公共缓存区缓存这些IPC已重传的数据包。因此当其他客户端也请求重传的数据包时,NVR则可以将数据包发送给客户端,从而可以扩大NVR缓存的数据量,提升用户体验。
[0046]步骤102、在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包;
[0047]在本实施例中,当客户端接收IPC的数据过程中检测到丢包时,可以向NVR发送重传请求,请求中包括该IPC的IP地址等标识信息,以及需要重传的指定数据包对应的序列号。当NVR收到客户端的重传请求时,可以根据该重传请求中的IPC标识信息以及该指定数据包对应的序列号,在本地的公共缓存区中保存的已重传的数据包中查找该指定数据包。
[0048]步骤103、在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0049]当NVR在公共缓存区查找到该指定数据包时,可以将该指定数据包发送至该客户端。由于已重传的数据包相比于其他数据包来讲,其被请求重传的概率会更高,因此本发明通过公共缓存区缓存这些IPC已重传的数据包,可以扩大NVR缓存的数据量,为客户端提供更高效的重传服务。
[0050]若IPC发送的数据包不是重传数据,则NVR可以将该数据包保存在该IPC对应的独立缓存区。由于公共缓存区只缓存已重传的数据包,而不是所有独立缓存区中的数据包,因此当NVR在公共缓存区中未查找到该指定数据包时,还可以在该IPC对应的独立缓存区中查找该指定数据包,并在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0051 ]若NVR在该IPC对应的独立缓存区中亦未查找到该指定数据包时,还可以向该IPC请求对该指定数据包进行重传。若该IPC中存储该指定数据包时,可以将该指定数据包发送到NVR。当NVR收到该IPC重传的所述指定数据包时,可以将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。需要说明的是,由于IPC发送的指定数据包的源地址为IPC的地址,目的地址为NVR的地址,因此NVR在将该指定数据包发送到客户端时需要重新封装该指定数据包的IP头部,即将该指定数据包IP头部的源地址改为该NVR的地址,目的地址改为请求该指定数据包的客户端的地址。从而可以使该客户端收到重传的指定数据包。
[0052]然而在一般情况下,IPC和NVR的独立缓存区中的数据包都是同一时间段内的最新数据,比如通过计算IPC独立缓存区的空间只能保存30秒的数据,假设此时最新时间为10:00:00秒,那么缓存数据保存范围就应该是9:59:30秒到10点这30秒的数据。重传的数据如果超出此时间范围则无法重传。由于目前IPC和NVR二者都保存着最新时间段的30秒的数据,所以二者缓存区的数据是重复的,换言之,IPC缓存区的存在的数据NVR中该IPC独立缓存区中也会存在,反之则二者都不存在。
[0053]为了解决上述问题,本发明在NVR和IPC之间建立一种协同工作机制。具体来讲,NVR可按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量确定自身的缓存数据大小并向该NVR反馈该缓存数据大小,NVR接收并记录该IPC的缓存数据大小。例如,IPC在被NVR管理上线后,NVR在自己的缓存里为该IPC划分独立缓存区,假设该缓存空间大小为5MB,之后NVR可定期向该IPC发送缓存空间大小。例如NVR通过SIP/0NVIF等协议通知IPC,告知IPC对应的独立缓存区为5MB。考虑到独立缓存区空间如果有变化,则NVR需要定期发送该消息来通报实时的缓存区空间大小,例如间隔I分钟。当IPC接收到该信息后,即得知NVR的对应IPC的独立缓存区的空间为5MB,此时IPC再实时检测自身的视频码流大小,假设视频流量为8Mb/s,即IMB/s,通过运算得知NVR的独立缓存区可以接收当前码流为5秒。假设IPC的缓存空间为5MB,则IPC可以告知NVR其可以缓存更早一点,例如IPC可以缓存比NVR更早5秒的数据。IPC确定自身的缓存数据大小后,会进一步向该NVR反馈该缓存数据大小。NVR接收并记录IPC发送的缓存数据大小,从而可以在请求重传数据前进行预判操作。具体来讲,在NVR向该IPC请求对该指定数据包进行重传之前,NVR可以通过记录的IPC的缓存数据大小可以判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。例如,如果IPC将自身的缓存数据大小为1-5秒告知NVR,当NVR向该IPC请求对第二秒的数据包进行重传之前,根据IPC的缓存数据大小判断得知IPC缓存有第二秒的数据包,因此可以向IPC发送重传请求,并获得IPC的重传数据;如果IPC将自身的缓存数据大小为3-5秒告知NVR,当NVR向该IPC请求对第二秒的数据包进行重传之前,根据IPC的缓存数据大小判断得知IPC未缓存第二秒的数据包,因此可以避免向IPC发送重传请求,因此本实施例可以进一步提高NVR的重传效率。
[0054]在本发明可选的实施例中,当NVR收到IPC发送的非重传的第一数据包时,可以进一步判断该IPC对应的独立缓存区是否存满;若存满,则NVR根据IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC,并将该第一数据包按照时间顺序存储到该独立缓存区。具体来讲,当IPC的缓存空间大于NVR中IPC对应的独立缓存区时,IPC中缓存的数据包中会包括所述第二数据包,因此NVR可以将该第二数据包删除;当IPC的缓存空间小于等于NVR中IPC对应的独立缓存区时,IPC中缓存的数据包中则不包括所述第二数据包,因此NVR可以将该第二数据包回传至该IPC,以使IPC缓存该第二数据包,需要说明的是,NVR在向IPC回传之前,需要通知IPC该回传消息,以使IPC启动与NVR的回传机制。此外,在本发明可选的实施例中,IPC也可以根据NVR发送的缓存空间大小以及IPC自身的缓存数据大小判断是否需要NVR进行回传数据,判断方法与NVR端的判断方法类似,不同的是,若需要NVR回传,则IPC会向NVR发送回传请求,并主动启动与NVR的回传机制。
[0055]若NVR中的独立缓存区未存满,说明IPC发送的数据包没有超过缓存范围,则NVR可以将该第一数据包按照时间顺序存储到该独立缓存区。
[0056]为使本发明的目的、技术方案及优点更加清楚明白,下面对本发明该方案作进一步地详细说明。
[0057]请参考图2,该数据重传组网架构中包括NVR、IPC以及客户端。该NVR上将缓存区预先划分为公共缓存区以及为在线IPCl至IPCn划分对应的独立缓存区,即缓存区I至缓存区η。有当客户端点播IPCl的实况数据时,假设IPCl为客户端发送序列号为1-15的数据包,假设NVR的缓存区I的缓存空间为5个数据包,则NVR每次可以将最新的5个数据包缓存在IPCl对应的缓存区I中,并发送到客户端。当客户端检测到丢包时,客户端可向NVR发送重传请求,其中包括IPCl的IP地址以及丢包的数据包的序列号,例如数据包3。当NVR收到重传请求后,首先在公共缓存区查找该数据包IP头部为IPCl的IP地址,且序列号为3的数据包。若之前有其他客户端也请求重传该IPCl中的数据包3,则NVR此时可以在公共缓存区中查找到数据包3,并将该数据包3发送至客户端。但若之前没有客户端请求重传过IPCl中的数据包3,贝IjNVR可以在IPCl对应的缓存区I中查找该数据包3,若查找到则将该数据包3发送至客户端。若在独立缓存区仍未查找到该数据包3,则NVR需要再向对应的IPCl发送重传请求。IPCl收到NVR的重传请求后,在IPCl本地的缓存区查找该数据包3,并将该数据包3发送到NVR。NVR从IPCl获取到数据包3后,首先将该数据包放入到公共缓存区,再将数据包3转发给客户端。转发时需要重新封装数据包3的IP头部,因为IPCl的发过来的数据包3的IP源地址和目的地址分别为IPCl的地址和NVR的地址,此时NVR将该数据包3转发至客户端,需要将源地址和目的地址分别改成NVR的地址和客户端的地址。此后,若有其他客户端请求IPCl的数据包3,则NVR可以在公共缓存区查找到该数据包3,并将数据包3发送至该客户端。从而可以快速实现数据重传。
[0058]另外,IPCl在被NVR管理上线后,假设NVR为IPCl划分独立缓存区(缓存区I)的缓存空间大小为5MB,之后NVR通过SIP/0NVIF等协议通知IPCl该缓存空间大小的消息。当IPCl接收到该信息后,会再次检查自身数据缓存区空间,如果IPCl的数据缓存区空间大于NVR的独立缓存区空间,比如IPCl数据缓存区空间为1MB,那么意味着IPCl自身可以缓存的数据比NVR要多,因此IPCl自身可以缓存10秒的数据,如果按一秒一个数据生成序列号的话,SPIPCl的数据缓存区空间缓存了序列号为1-10数据包,而NVR的独立缓存区缓存了序列号为11-15数据包(较新数据)。此时IPCl得知自己比NVR可以多缓存5个序列号的数据包时,IPCl会回应NVR的定期缓存通知消息,IPCl回应的内容包括IPCl可以缓存更老10秒的数据。考虑到独立缓存区空间可能会发生变化,因此NVR可以设置定时器,例如每隔I分钟向IPCl发送消息来通报实时的缓存区空间大小。当NVR在实况数据发送的过程中,接收到客户端发送的重传请求时,若NVR无法查询到需要的数据包,则会通过需要重传的数据序列号来判断IPCl中是否会存在该数据包,假设需要重传的数据序列号为2,NVR独立缓存区中最老的数据序列号为11,由于IPCl可以缓存更老1秒的数据,,则NVR可知IPCI此时的缓存数据中包括序列号1-10的数据包,因此IPCl包含有序列号2的数据包,在这个条件满足后,NVR才会向IPCl发送重传申请,反之则不会发出。
[0059]上述情况为IPCl的缓存空间大于NVR的独立缓存区,这样IPCl才能存放更多更旧的数据包,但IPCI的缓存空间小于等于NVR的缓存区时,例如NVR独立缓存区空间为1MB,IPC的数据缓存区空间为5MB时,在NVR的缓存空间定期消息上报到IPCl后,IPCl通过自身计算可得知自身缓存可以缓存的包的数量。并得知自身数据缓存区空间小于NVR的独立缓存区空间时,IPCl会回应NVR的定期缓存通知消息,IPCl回应的内容包括IPCl可以缓存更老5秒的数据。因此,当NVR需要将该IPCl对应的独立缓存区(缓存区I)的数据丢弃时,则可以将该数据反向传回给IPCl。例如,IPCl发送了数据序列1-15,NVR的缓存区I会保存最新的一部分数据(10个数据包),假设当前NVR的缓存区I数据包序列号为5-14,那么当序列号为15的数据包到达后,缓存区I会自动清除最老的数据包,也就是序列号为5的数据包,此时NVR可以根据IPCl的反馈得知IPCl的缓存空间中没有序列号为5的数据包,因此NVR会在清除序列号为5的数据包之前将该数据回传到IPCUIPC1接收到回传的序列号为5的数据包后,会将其放入自身的缓存空间,这样就保障了 IPCl的缓存空间为旧数据,NVR的为新数据。并且由于IPCl和NVR—般带宽是足够的,数据回传并不会带来负面的影响。
[0060 ]因此本发明可以通过缓存通知的机制使得IPC和NVR能保存不同时间范围的数据,从而使总缓存时间大大延长。
[0061]基于相同的构思,本发明还提供一种数据重传装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的数据重传装置作为一个逻辑意义上的装置,是通过其所在NVR设备中的CPU将存储器中对应的计算机程序指令读取后运行而成。
[0062]请参考图3及图4,是本发明一种示例性实施方式中的一种数据重传装置400,该装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,该装置400包括:
[0063]保存单元401,用于在NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区;
[0064]查找单元402,用于在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包;
[0065]发送单元403,用于在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0066]可选的,所述保存单元401,还用于当所述IPC发送的数据包不是重传数据时,将该数据包保存在该IPC对应的独立缓存区;
[0067]所述查找单元402,还用于在公共缓存区中未查找到该指定数据包时,在该IPC对应的独立缓存区中查找该指定数据包;
[0068]所述发送单元403,还用于在查找到该指定数据包时,将该指定数据包发送至该客户端。
[0069]可选的,所述装置还包括:
[0070]请求单元404,用于在该IPC对应的独立缓存区中未查找到该指定数据包时,向该IPC请求对该指定数据包进行重传;当收到该IPC重传的所述指定数据包时,将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。
[0071]可选的,所述装置还包括:
[0072]检测单元405,用于按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量将自身的缓存数据大小反馈至该NVR,NVR接收并记录该IPC的缓存数据大小;
[0073]所述请求单元404,还用于在NVR向该IPC请求对该指定数据包进行重传之前,通过记录的该IPC的缓存数据大小判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。
[0074]可选的,所述保存单元401,具体用于在NVR收到IPC发送的非重传的第一数据包时,判断该IPC对应的独立缓存区是否存满;若存满,则NVR根据该IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC;并将该第一数据包按照时间顺序存储到该独立缓存区;若未存满,则NVR将该第一数据包按照时间顺序存储到该独立缓存区。
[0075]由此可见,本发明可以将IPC重传的数据包保存在NVR的公共缓存区,并在收到客户端请求IPC对指定数据包进行重传时,在公共缓存区查找该指定数据包,并将查找的该指定数据包发送至该客户端。因此本发明可以通过缓存重传数据包来使后续其他客户端请求相同的数据包时可以快速的重传,从而可以向客户端重传时间较早的数据包,提升用户体验。
[0076]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0077]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0078]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种数据重传方法,其特征在于,所述方法包括: 当NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区; 在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包; 在查找到该指定数据包时,将该指定数据包发送至该客户端。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 若所述IPC发送的数据包不是重传数据时,则将该数据包保存在该IPC对应的独立缓存区; 当NVR在公共缓存区中未查找到该指定数据包时,在该IPC对应的独立缓存区中查找该指定数据包; 在查找到该指定数据包时,将该指定数据包发送至该客户端。3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 当NVR在该IPC对应的独立缓存区中未查找到该指定数据包时,向该IPC请求对该指定数据包进行重传; 当收到该IPC重传的所述指定数据包时,将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。4.根据权利要求2所述的方法,其特征在于,所述方法还包括: NVR按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量将自身的缓存数据大小反馈至该NVR,NVR接收并记录该IPC的缓存数据大小; 在NVR向该IPC请求对该指定数据包进行重传之前,所述方法还包括: 通过记录的该IPC的缓存数据大小判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。5.根据权利要求4所述的方法,其特征在于,所述若所述IPC发送的数据包不是重传数据时,则将该数据包保存在该IPC对应的独立缓存区,具体包括: 当NVR收到IPC发送的非重传的第一数据包时,判断该IPC对应的独立缓存区是否存满;若存满,则NVR根据该IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC;并将该第一数据包按照时间顺序存储到该独立缓存区; 若未存满,则NVR将该第一数据包按照时间顺序存储到该独立缓存区。6.一种数据重传装置,其特征在于,所述装置包括: 保存单元,用于在NVR收到IPC发送的数据包时,判断该数据包是否为重传数据;若是重传数据,则将该数据包保存在公共缓存区; 查找单元,用于在NVR收到客户端请求对该IPC中的指定数据包进行重传时,该NVR在公共缓存区中查找该指定数据包; 发送单元,用于在查找到该指定数据包时,将该指定数据包发送至该客户端。7.根据权利要求6所述的方法,其特征在于, 所述保存单元,还用于当所述IPC发送的数据包不是重传数据时,将该数据包保存在该IPC对应的独立缓存区; 所述查找单元,还用于在公共缓存区中未查找到该指定数据包时,在该IPC对应的独立缓存区中查找该指定数据包; 所述发送单元,还用于在查找到该指定数据包时,将该指定数据包发送至该客户端。8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 请求单元,用于在该IPC对应的独立缓存区中未查找到该指定数据包时,向该IPC请求对该指定数据包进行重传;当收到该IPC重传的所述指定数据包时,将该指定数据包保存在公共缓存区,并将该指定数据包发送至客户端。9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 检测单元,用于按照预设时间间隔将该IPC对应的独立缓存区的缓存空间大小发送到该IPC,以使该IPC根据当前流量将自身的缓存数据大小反馈至该NVR,NVR接收并记录该IPC的缓存数据大小; 所述请求单元,还用于在NVR向该IPC请求对该指定数据包进行重传之前,通过记录的该IPC的缓存数据大小判断该IPC是否缓存该指定数据包,若是,则向该IPC请求对该指定数据包进行重传。10.根据权利要求7所述的装置,其特征在于, 所述保存单元,具体用于在NVR收到IPC发送的非重传的第一数据包时,判断该IPC对应的独立缓存区是否存满;若存满,则NVR根据该IPC的缓存数据大小判断该IPC的缓存数据中是否包括该IPC对应的独立缓存区中时间最早的第二数据包,若包括,则将该第二数据包删除;若不包括,则将该第二数据包回传至该IPC;并将该第一数据包按照时间顺序存储到该独立缓存区;若未存满,则NVR将该第一数据包按照时间顺序存储到该独立缓存区。
【文档编号】H04L29/06GK106059718SQ201610292019
【公开日】2016年10月26日
【申请日】2016年5月5日
【发明人】周迪, 余剑声
【申请人】浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1