本发明涉及通信技术领域,具体而言,涉及一种数据重传方法及装置。
背景技术:
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义,其是网络通信的一种标准,目前,通过网络传输的数据大部分都是基于TCP协议进行传输。
在实际进行数据传输时,通常会有大量实时数据需要无线网络使用TCP协议上传到服务器,传输的实时数据每秒有几条到几十条不等,为了保证数据传输可靠性,在通过TCP协议将这些数据发送到服务器后,若在超过预定的时间未接收到服务器反馈的ACK报文,则启动TCP超时重传机制,即通过TCP协议重传未发送成功的数据。
但是,现有的TCP超时重传机制,其重传的次数和时间很短,一旦遇到GPRS(General Packet Radio Service,通用分组无线服务)、3G(3rd-Generation,第三代移动通信技术)、4G(the 4th Generation mobile communication technology,第四代移动通信技术)等网络拥堵或者信号不好的情况,很大概率会丢失几秒或者十几秒的数据,而且TCP本身的重传机制并不保证数据传输成功,经过前期测试依靠TCP本身的重传机制有20%以上的丢包率。并且在当前网络环境恶劣时,更加无法保证数据的准确性。
技术实现要素:
有鉴于此,本发明实施例的目的在于提供一种数据重传方法及装置,采用与TCP传输协议异步的重传工作机制,增加了数据发送的实时性和快速性。
第一方面,本发明实施例提供了一种数据重传方法,在向服务器发送实时数据包后,包括:
将所述实时数据包转存至第一缓存区,所述实时数据包中携带有包序号;
在第一时间阈值内未收到所述服务器返回的与所述实时数据包的包序号对应的应答信息时,通过重传线程向所述服务器重传在所述第一缓存区中与所述包序号对应的实时数据包。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在所述第一时间阈值内收到所述服务器返回的与所述第一缓存区中的所述实时数据包的包序号对应的应答信息时,还包括:
从所述第一缓存区中删除与所述包序号对应的实时数据包。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在将所述实时数据包转存至第一缓存区之后,还包括:
在第二时间阈值内未收到所述服务器返回的与所述第一缓存区中的所述实时数据包的包序号对应的应答信息时,将所述实时数据包转存至第二缓存区,其中,所述第二时间阈值大于所述第一时间阈值。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在将所述实时数据包转存至第二缓存区之后,还包括:
确定所述实时数据包在所述第二缓存区内的存储时间,当所述存储时间超过第三时间阈值时,将所述第二缓存区中的所述实时数据包转存至所述第一缓存区;
和/或,
确定所述第二缓存区的占用量和当前的网络状况,当确定所述占用量超过预设的占用量阈值且所述网络状况为正常时,将所述第二缓存区中的所述实时数据包转存至所述第一缓存区中。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,确定所述第二缓存区的占用量和当前的网络状况,包括:
实时监控所述第二缓存区的占用量,并在确定所述占用量超过所述占用量阈值时,监控是否接收到所述服务器发送的所述应答信息;
当接收到所述服务器发送的所述应答信息时,确定当前的网络状况为正常。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在将所述实时数据包转存至第一缓存区之后,还包括:
利用计数器记录所述第一缓存区中的实时数据包的重传次数;
当所述实时数据包的重传次数大于设定阈值时,将所述实时数据包转存到第二缓存区。
结合第一方面、结合第一方面的第一种可能的实施方式至第一方面的第五种可能的实施方式中任意一种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在将所述实时数据包转存至第一缓存区后,还包括:
对所述第一缓存区中存储的所述实时数据包加盖时间戳。
结合第一方面的第六种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,在所述第一时间阈值内未收到所述服务器返回的与所述实时数据包的包序号对应的应答信息时,通过所述重传线程向所述服务器重传在所述第一缓存区中与所述包序号对应的实时数据包,包括:
定时读取所述第一缓存区中的实时数据包的时间戳;
将与所述第一缓存区中的所述实时数据包对应的时间戳与当前时间进行对比,确定时间差值;
判断所述时间差值是否超过所述第一时间阈值,在确定所述时间差值超过所述第一时间阈值时,判断当前是否接收到所述服务器返回的与所述实时数据包的包序号对应的应答信息,在确定当前未接收到所述服务器返回的所述应答信息时,通过所述重传线程向所述服务器重传所述实时数据包。
第二方面,本发明实施例还提供了一种数据重传装置,包括:
第一转存模块,用于在向服务器发送所述实时数据包后,将所述实时数据包转存至第一缓存区,所述实时数据包中携带有包序号;
重传模块,用于在第一时间阈值内未收到所述服务器返回的与所述实时数据包的包序号对应的应答信息时,通过重传线程向所述服务器重传在所述第一缓存区中与所述包序号对应的实时数据包。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述数据重传装置,还包括:
删除模块,用于在所述第一时间阈值内收到所述服务器返回的与所述第一缓存区中的所述实时数据包的包序号对应的应答信息时,从所述第一缓存区中删除与所述包序号对应的实时数据包。
本发明实施例提供了一种数据重传方法及装置,采用在向服务器发送实时数据包后,将携带有包序号的实时数据包转存至第一缓存区,并在第一时间阈值内未收到服务器返回的与实时数据包的包序号对应的应答信息时,通过重传线程向服务器重传在第一缓存区中与包序号对应的实时数据包的异步重传机制,与现有技术中的TCP协议的重传机制无法保证数据传输成功,丢包率较高相比,其采用与TCP传输协议互为异步的重传工作机制,使首次发送数据包和接收数据包的应答信息处于异步工作进程中,即不用等到接收到数据包的应答信息才能继续发送下一条数据,避免了由于网络拥堵致使数据包和应答信息延迟后而导致的发送数据等待的情况,增加了数据实时性和快速性。
进一步的,本发明实施例提供的一种数据重传方法及装置,还设置有用于存储第一缓存区中重传超时的实时数据,并实时监控第二缓存区的占用量以及对应的网络情况,并在确定第二缓存区的占用量超过设定阈值且确定对应的传输网络正常时,再次将实时数据转存至第一缓存区以启动重传机制;上述方法适用于网络通讯质量较差的情况,可以防止由于需要重传的数据包数量过大,导致缓存区溢出或产生数据阻塞的情况发生,且极大的降低了功耗。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种数据重传方法的流程图;
图2示出了本发明实施例所提供的另一种数据重传方法的流程图;
图3示出了本发明实施例所提供的另一种数据重传方法的流程图;
图4示出了本发明实施例所提供的一种数据重传装置的结构示意图;
图5示出了本发明实施例所提供的一种数据重传装置的整体结构示意图;
图6示出了本发明实施例所提供的数据重传装置中确定模块的结构示意图;
图7示出了本发明实施例所提供的数据重传装置中重传模块的结构示意图。
主要标号说明:
11、第一转存模块;12、重传模块;13、删除模块;14、第二转存模块;15、确定模块;16、第三转存模块;17、记录模块;18、第四转存模块;19、时间戳设置模块;151、第二监控单元;152、确定单元;121、读取单元;122、对比单元;123、判断单元;124、重传单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的TCP(Transmission Control Protocol,传输控制协议)传输数据,重传的次数和时间很短,一旦遇到GPRS、3G、4G等网络拥堵或者信号不好,有很大概率会丢失几秒或者十几秒的数据,而且TCP本身的重传机制并不保证数据传输成功,经过前期测试依靠TCP本身的重传机制,有大概20%以上的丢包率。
考虑到现有技术中TCP的重传机制重传的次数和时间很短,且无法保证数据传输成功,丢包概率较大的问题,本发明实施例提供了一种数据重传方法及装置,其在现有的重传机制上再加一层重传机制,用来确保每一包数据都能上传到服务器。下面通过实施例进行描述。
参见图1所示的流程图,本发明实施例提供了一种数据重传方法,包括:
S101、在向服务器发送实时数据包后,将所述实时数据包转存至第一缓存区,所述实时数据包中携带有包序号。
本发明实施例提供的方法可以由发送端执行,具体的,发送端在收到实时数据包后,调用包含TCP协议的第一线程中的发送函数,对实时数据包进行第一次发送,并将经过第一次发送的实时数据包转存到第一缓存区;其中,实时数据包中带有包序号。
当实时数据包较多时,通过第一线程按照接收实时数据包的先后顺序依次发送这些实时数据包,同时将对应的经过第一次发送的实时数据包转存到第一缓存区。
其中,发送端可以通过第一线程将实时数据包转存至第一缓存区,也可以通过第二线程(即重传线程)将实时数据包转存至第一缓存区。其中,第二线程(即重传线程)与第一线程是两个异步传输机制。
S102、在第一时间阈值内未收到所述服务器返回的与所述实时数据包的包序号对应的应答信息时,通过重传线程向所述服务器重传在所述第一缓存区中与所述包序号对应的实时数据包。
本发明实施例中通过第二线程实时监控是否收到了服务器返回的与第一缓存区中存储的实时数据包的包序号对应的应答信息,若在第一时间阈值内收到应答信息,则判定由第一线程发送的实时数据包传输成功,将存储于第一缓存区中的与该应答信息对应的实时数据包删除;若在第一时间阈值内未收到应答信息,则判定由第一线程发送的实时数据包传输失败,此时,通过第二线程向服务器重传包序号对应的实时数据包。其中,上述应答信息可以是服务器反馈的ACK(Acknowledgement,确认字符)。上述第一时间阈值可以根据需要进行设置,如设置2毫秒至20秒,优选设置为20毫秒、40毫秒。同时,该第一时间阈值可以是一个门限值,也可以是一个阈值范围。
作为一种可选的实施方式,若超过第一时间阈值未收到应答信息,则判定由第一线程发送的实时数据包传输失败。此时第二线程将以预定的时间周期,循环对存储于第一缓存区中的实时数据包进行重传。当然,以预定的时间周期循环对存储于第一缓存区中的实时数据包进行重传的动作,还可以由另一线程执行,此处不做具体限定。
本发明实施例中,用户可以设置第二线程与TCP超时重传机制同时启用,具体的,用户可以预先设置第二线程与TCP超时重传机制的优先级,如设置第二线程的优先级高于TCP超时重传机制,此时,在通过第一线程向服务器发送实时数据包后,首先启动第二线程工作。另外,用户也可以设置只启用第二线程,而关闭TCP超时重传机制。
本发明实施例提供了一种数据重传方法,与现有技术中的TCP协议的重传机制无法保证数据传输成功,丢包率较高相比,其采用与TCP传输协议互为异步的重传工作机制,使首次发送数据包和接收数据包的应答信息处于异步工作进程中,即不用等到接收到数据包的应答信息才能继续发送下一条数据,避免了由于网络拥堵致使数据包和应答信息延迟后而导致的发送数据等待的情况,增加了数据实时性和快速性。
本发明实施例中的数据重传方法,还包括:若在所述第一时间阈值内收到所述服务器返回的与所述第一缓存区中的所述实时数据包的包序号对应的应答信息,则从所述第一缓存区中删除与所述包序号对应的实时数据包。
具体的,服务器返回的对应第一缓存区中实时数据包的包序号的应答信息可以是携带有ACK的应答信息;当发送端接收到服务器发送的实时数据包的包序号的ACK后,确定该包序号对应的实时数据包传输成功,此时,发送端可以通过第一线程从第一缓存区中将与ACK对应的数据包删除,也可以通过第二线程从第一缓存区中将与ACK对应的数据包删除。通过实时清理第一缓存区中发送成功的数据包的方法,能够快速查找并确认超时传输的数据包,以便于后续启动重传机制,保证数据包发送成功。
本发明实施例中的数据重传方法,在将所述实时数据包转存至第一缓存区后,还包括:对所述第一缓存区中存储的所述实时数据包加盖时间戳。其中,加盖的时间戳为第一线程第一次发送实时数据的时间信息。
参考图2,上述步骤102中,在所述第一时间阈值内未收到所述服务器返回的与所述实时数据包的包序号对应的应答信息时,通过所述重传线程向所述服务器重传在所述第一缓存区中与所述包序号对应的实时数据包,具体实现步骤包括:
S1021、定时读取所述第一缓存区中的实时数据包的时间戳。
本发明实施例中,可以通过第二线程定时读取第一缓存区中存储的每个实时数据包的时间戳;也可以通过另一线程执行上述读取时间戳的工作。
S1022、将与所述第一缓存区中的所述实时数据包对应的时间戳与当前时间进行对比,确定时间差值。
第二线程(或者另一线程)将上一步骤中读取的各个实时数据包的时间戳分别与当前时间进行对比,得到每一个实时数据包匹配的时间差值。
S1023、判断所述时间差值是否超过所述第一时间阈值;
S1024、在确定所述时间差值超过所述第一时间阈值时,继续判断当前是否接收到所述服务器返回的与所述实时数据包的包序号对应的应答信息;
S1025、在确定当前未接收到所述服务器返回的所述应答信息时,通过所述重传线程向所述服务器重传所述实时数据包。
具体的,第二线程(或者另一线程)监控服务器返回的实时数据包的包序号对应的应答信息是否超时的方法包括:首先判断各个实时数据包的时间差值是否超过第一时间阈值;在判断时间差值超过第一时间阈值且当前未接收到服务器返回的与第一缓存区中的实时数据包的包序号对应的应答信息时,向服务器重传对应的实时数据包。
上述第一时间阈值可以根据需要进行设置,如设置2毫秒至20秒,优选设置为20毫秒、40毫秒。同时,该第一时间阈值可以是一个门限值,也可以是一个阈值范围。
进一步的,本发明实施例提供的数据重传方法,在将所述实时数据包转存至第一缓存区之后,还包括:
在第二时间阈值内未收到所述服务器返回的与所述第一缓存区中的所述实时数据包的包序号对应的应答信息时,将所述实时数据包转存至第二缓存区,其中,所述第二时间阈值大于所述第一时间阈值。
具体的,在第一缓存区中的实时数据包的时间戳与当前时间的时间差值超过第二时间阈值后,将这些实时数据包转存到第二缓存区,目的是将多次重传不成功的实时数据包从第二缓存区中移除,防止出现阻塞等现象发生。
通常情况下,实时数据包如果出现多次重传都不成功时,说明此时网络连接出现异常,因此,将这些数据报转存至第二缓存区,等待一段时间或等待网络连接正常后,重新发送。
上述预先设置的第二时间阈值一般大于第一时间阈值,例如可以设置为第一时间阈值的整数倍,例如3至20倍,其可根据数据量而定,本发明实施例对其不作具体限定。
参考图3,本发明实施例提供的数据重传方法,在将所述实时数据包转存至第一缓存区之后,还包括:
S201、利用计数器记录所述第一缓存区中的实时数据包的重传次数。
具体的,发送端在启动第二线程的异步重传机制的同时,还启动计数器,通过计数器记录第一缓存区中的存储的各个实时数据包的重传次数。
S202、当所述实时数据包的重传次数大于设定阈值时,将所述实时数据包转存到第二缓存区。
具体的,通过第二线程将计数器记录的第一缓存区中各个实时数据包的重传次数与设定阈值进行对比,若重传次数超过了设定阈值,则判定这些实时数据包重传超时,此时,将对应的这些实时数据包转存到第二缓存区中。
进一步的,本发明实施例提供的数据重传方法,在将所述实时数据包转存至第二缓存区之后,通过以下两种方法将第二缓存区的实时数据(即重传超时的实时数据)再次进行重传:
第一,确定所述实时数据包在所述第二缓存区内的存储时间,当所述存储时间超过第三时间阈值时,将所述第二缓存区中的所述实时数据包转存至所述第一缓存区,以便通过重传线程(即第二线程)再次将该实时数据重传。
上述预先设置的第三时间阈值优选大于等于上述第二时间阈值,例如可以设置5秒、10秒、15秒等,其可根据数据量而定,本发明实施例对其不作具体限定。
第二,确定所述第二缓存区的占用量和当前的网络状况,当确定所述占用量超过预设的占用量阈值且所述网络状况为正常时,将所述第二缓存区中的所述实时数据包转存至所述第一缓存区中。
其中,上述确定所述第二缓存区的占用量和当前的网络状况的方式包括,发送端首先通过第二线程实时监控第二缓存区的占用量情况,在确定所述第二缓存区的占用量超过占用量阈值时,进一步监控是否接收到服务器发送的应答信息(如接收到服务器发送的任意应答信息,说明此时网络连接恢复),当接收到所述服务器发送的所述应答信息时,确定当前的网络状况为正常,此时,可以将实时数据包转存至第一缓存区中,以便启动重传线程进行重传操作。
其中,上述两种对第二缓存区的实时数据(即重传超时的实时数据)再次进行重传的方法可以同时使用,也可以分别单独使用。
进一步的,本发明实施例提供的一种数据重传方法,还设置有用于存储第一缓存区中重传超时的实时数据,并实时监控第二缓存区的占用量以及对应的网络情况,并在确定第二缓存区的占用量超过设定阈值且确定对应的传输网络正常时,再次将实时数据转存至第一缓存区以启动重传机制;上述方法适用于网络通讯质量较差的情况,可以防止由于需要重传的数据包数量过大,导致缓存区溢出或产生数据阻塞的情况发生,且极大的降低了功耗。
参考图4,本发明实施例还提供了一种数据重传装置,所述数据重传装置用于执行上述数据重传方法,所述装置包括:
第一转存模块11,用于在向服务器发送实时数据包后,将实时数据包转存至第一缓存区,实时数据包中携带有包序号;
重传模块12,用于在第一时间阈值内未收到服务器返回的与实时数据包的包序号对应的应答信息时,通过重传线程向服务器重传在第一缓存区中与包序号对应的实时数据包。
进一步的,参考图5,本发明实施例提供的数据重传装置,还包括:
删除模块13,用于在第一时间阈值内收到服务器返回的与第一缓存区中的实时数据包的包序号对应的应答信息时,从第一缓存区中删除与包序号对应的实时数据包。
进一步的,参考图5,本发明实施例提供的数据重传装置,还包括:
第二转存模块14,用于在第二时间阈值内未收到服务器返回的与第一缓存区中的实时数据包的包序号对应的应答信息时,将实时数据包转存至第二缓存区,其中,第二时间阈值大于第一时间阈值。
进一步的,参考图5,本发明实施例提供的数据重传装置,还包括:
确定模块15,用于确定实时数据包在第二缓存区内的存储时间;
第三转存模块16,用于当存储时间超过第三时间阈值时,将第二缓存区中的实时数据包转存至第一缓存区;
和/或,
所述确定模块15还用于,确定第二缓存区的占用量和当前的网络状况;
所述第三转存模块16还用于,当确定占用量超过预设的占用量阈值且网络状况为正常时,将第二缓存区中的实时数据包转存至第一缓存区中。
进一步的,参考图6,本发明实施例提供的数据重传装置,确定模块15包括:
第二监控单元151,用于实时监控第二缓存区的占用量,并在确定占用量超过占用量阈值时,监控是否接收到服务器发送的应答信息;
确定单元152,用于当接收到服务器发送的应答信息时,确定当前的网络状况为正常。
进一步的,参考图5,本发明实施例提供的数据重传装置,还包括:
记录模块17,用于利用计数器记录第一缓存区中的实时数据包的重传次数;
第四转存模块18,用于当实时数据包的重传次数大于设定阈值时,将实时数据包转存到第二缓存区。
进一步的,参考图5,本发明实施例提供的数据重传装置,还包括:
时间戳设置模块19,用于对第一缓存区中存储的实时数据包加盖时间戳。
进一步的,参考图7,本发明实施例提供的数据重传装置,重传模块12,包括:
读取单元121,用于定时读取第一缓存区中的实时数据包的时间戳;
对比单元122,用于将与第一缓存区中的实时数据包对应的时间戳与当前时间进行对比,确定时间差值;
判断单元123,用于判断对比单元122确定的时间差值是否超过第一时间阈值,在确定上述时间差值超过第一时间阈值时,判断当前是否接收到服务器返回的与实时数据包的包序号对应的应答信息;
重传单元124,用于在确定当前未接收到所述服务器返回的所述应答信息时,通过所述重传线程向所述服务器重传所述实时数据包。
本发明实施例提供了一种数据重传装置,与现有技术中的TCP协议的重传机制无法保证数据传输成功,丢包率较高相比,其采用与TCP传输协议互为异步的重传工作机制,使首次发送数据包和接收数据包的应答信息处于异步工作进程中,即不用等到接收到数据包的应答信息才能继续发送下一条数据,避免了由于网络拥堵致使数据包和应答信息延迟后而导致的发送数据等待的情况,增加了数据实时性和快速性。
进一步的,本发明实施例提供的一种数据重传装置,还设置有用于存储第一缓存区中重传超时的实时数据,并实时监控第二缓存区的占用量以及对应的网络情况,并在确定第二缓存区的占用量超过设定阈值且确定对应的传输网络正常时,再次将实时数据转存至第一缓存区以启动重传机制;上述方法适用于网络通讯质量较差的情况,可以防止由于需要重传的数据包数量过大,导致缓存区溢出或产生数据阻塞的情况发生,且极大的降低了功耗。
本发明实施例所提供的数据重传的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。