数据传输系统、数据接收方法、及数据传输方法与流程

文档序号:14847737发布日期:2018-06-30 16:56阅读:4191来源:国知局
数据传输系统、数据接收方法、及数据传输方法与流程

本发明涉及一种数据传输系统及数据接收与数据传送方法,特别是指一种使用两阶存储器处理封包数据的数据传输系统、数据接收方法、及数据传输方法。



背景技术:

多点广播(multicast,又称组播)技术的优点是服务器可以同时向多个客户端发送数据,相对于传统TCP所使用的单点传播(unicast)的方式而言,组播技术占用更少的频宽。但组播技术的缺点是在数据传送过程中可能会有封包遗失,尤其容易在传输的数据比较大时,或是在客户端数据接收或处理速度不佳时发生。

为了解决使用组播技术在数据传输过程可能遗失封包的问题,客户端在判断出封包遗失时,可以向服务器请求重发遗失的封包(补包)。然而,一旦需要向服务器请求重发封包,也就表示数据完成传送的时间将会延长。一旦因为客户端数据接收或处理速度不佳而导致封包大量遗失,这将造成数据传送时间大幅度的增加。

综上所述,可知现有技术中长期以来一直存在组播技术在传输过程中可能因为客户端数据接收或处理速度不佳导致封包大量遗失而延长数据传输时间的问题,因此有必要提出改进的技术手段,来解决此一问题。



技术实现要素:

有鉴于现有技术存在传输过程中可能因为客户端数据接收或处理速度不佳导致封包大量遗失而延长数据传输时间的问题,本发明遂揭露一种使用两阶存储器处理封包数据的数据传输系统、数据接收方法、及数据传输方法,其中:

本发明所揭露的使用两阶存储器处理封包数据的数据传输系统,至少包含:服务器与客户端。其中,服务器更包含:服务处理模块,用以将目标数据分割为多个数据区块并分割各数据区块为封包数据;服务传输模块,用以以一定的频率或速度按顺序使用组播封包发送数据区块,其中,组播封包包含封包数据,及用以接收各客户端所传送的补包请求,合并重复的补包请求,并依据补包请求发送相对应的组播封包。客户端更包含:缓冲区;客户储存媒体;客户传输模块,用以向服务器请求加入组播群组,及用以在缓冲区中配置内存空间,接收组播封包,并将组播封包中的封包数据写入内存空间中的对应位置;客户处理模块,用以判断内存空间所储存的封包数据已组成完整的数据区块时,将数据区块由缓冲区移动到客户储存媒体中,及用以依据客户储存媒体中所储存的数据区块的识别数据判断数据区块不连续时,通过客户传输模块通知服务器,及依据客户储存媒体中所储存的数据区块的识别数据判断客户储存媒体已储存完整目标数据时通该客户传输模块退出组播群组。

本发明所揭露的数据传输的方法,应用于服务器,服务器提供客户端连接,其步骤至少包括:将目标数据分割为多个数据区块,并分割各数据区块为封包数据;接收客户端所传送的群组加入请求,并依据客户端的数量及目标数据的发送次数允许或拒绝客户端加入组播群组;重复下列步骤直到目标数据已重复发送一定次数或客户端都退出组播群组:以一定的频率或速度按数据区块于目标数据中的顺序选择数据区块;使用组播封包发送被选择的数据区块,组播封包包含封包数据;合并客户端所传送的重复的补包请求;依据补包请求发送相对应的组播封包。

本发明所揭露的使用两阶存储器处理封包数据的数据接收方法,应用于客户端,客户端包含缓冲区及客户储存媒体,且与服务器连接,其步骤至少包括:向服务器请求加入组播群组;在缓冲区中配置内存空间;接收服务器所传送的组播封包,并将组播封包中的封包数据写入内存空间中的对应位置;判断内存空间所储存的封包数据已组成完整的数据区块时,由缓冲区移动数据区块至客户储存媒体中;依据客户储存媒体中所储存的数据区块的识别数据判断数据区块不连续时,传送与不连续的数据区块相对应的补包请求至服务器;依据客户储存媒体中所储存的数据区块的识别数据判断客户储存媒体已储存完整目标数据时退出组播群组。

本发明所揭露的系统与方法如上,与现有技术之间的差异在于本发明通过在客户端设置缓冲区与储存媒体两阶存储器,当客户端接收到服务器所传送的组播封包时,先将组播封包中的封包数据暂存于缓冲区中,当缓冲区中储存完整的数据区块时,将数据区块由缓冲区中移动到储存媒体中,并在储存媒体中的数据区块不连续时,通知服务器重送遗失的组播封包,藉以解决现有技术所存在的问题,并可以达成以较短时间较少频宽完成数据传送的技术功效。

附图说明

图1为本发明所提的服务器的元件示意图。

图2为本发明所提的客户端的元件示意图。

图3为本发明所提的数据传输方法的流程图。

图4为本发明所提的使用两阶存储器处理封包数据的数据接收方法的流程图。

【符号说明】

100 服务器

110 服务储存媒体

120 服务处理模块

130 服务传输模块

200 客户端

210 缓冲区

220 客户传输模块

230 客户处理模块

240 客户储存媒体

具体实施方式

以下将配合图式及实施例来详细说明本发明的特征与实施方式,内容足以使任何本领域技术人员能够轻易地充分理解本发明解决技术问题所应用的技术手段并据以实施,藉此实现本发明可达成的功效。

本发明应用于服务器对大量客户端使用组播(multicast)技术的网络环境中,其中,本发明在客户端中额外设置有缓冲区,藉以让客户端在接收由服务器所发出的组播封包时,可以将接收到的组播封包暂存于缓冲区中,而后再将储存缓冲区中的完整数据写入储存媒体中。

以下先以「图1」本发明所提的服务器的元件示意图以及「图2」本发明所提的客户端的元件示意图来说明本发明的系统运作。如「图1」与「图2」所示,本发明的系统含有服务器100以及客户端200。

服务器100负责接收客户端200所传送的群组加入请求,并依据服务器100当前的状态选择是否让客户端200加入组播群组,另外,服务器100也负责通过组播技术将目标数据以组播封包发送给同一组播群组内的客户端200。其中,服务器100更包含服务储存媒体110、服务处理模块120、以及服务传输模块130。

服务储存媒体110负责储存目标数据。服务储存媒体110所储存的目标数据通常为文件大小较大的文件,但本发明并不以此为限。

服务处理模块120负责以预定的区块长度(例如:2MB,但本发明并不以此为限)将服务储存媒体110所储存的目标数据分割为多个数据区块,并以预定的数据长度(例如:32KB,但本发明亦不以此为限)将每一个数据区块分割为一个或多个封包数据。其中,服务处理模块120分割产生的各个数据区块依照对应到目标数据的位置而具有相对应的顺序。

在部分的实施例中,服务传输模块130可以先压缩分割产生的数据区块,在将压缩后的数据区块分割为封包数据。

服务传输模块130负责接收客户端200所传送的群组加入请求,并依据被请求加入的组播群组内的客户端数量及/或目标数据的发送次数选择允许或拒绝客户端200加入组播群组。例如,当组播群组内的客户端数量达到预定的上限值时,又如,当目标数据的发送次数达到预定的次数时,服务传输模块130可以拒绝客户端200加入所请求的组播群组。

服务传输模块130也负责按顺序选择服务处理模块120分割目标数据所产生的各个数据区块,并将当前被选择的数据区块的封包数据逐一封装为不同的组播封包后发送给客户端200。例如,服务传输模块130可以先将由第一个数据区块分割产生的封包数据依序封装为组播封包并发送给客户端200,接着将由第二个数据区块分割产生的封包数据依序封装为组播封包并发送给客户端200,依此类推。

服务传输模块130可以依照一定的频率或速度封装一个封包数据为组播封包并发送被产生的组播封包到客户端200,也可以一次将多个封包数据分别封装为不同的组播封包后,依照一定的频率或速度发送一个组播封包,本发明并没有特别的限制。其中,上述的一定的频率或速度可以是一定的时间间隔(例如每隔十毫秒)或是固定的时间(例如每秒中的第零毫秒与第50毫秒等),但本发明并不以此为限,且上述的一定的频率或速度可以是系统的预定值,也可以是服务器100管理者所设定的设定值。

一般而言,服务传输模块130可以在服务器100启动后,接收到第一个客户端200所传送的群组加入请求并允许该客户端200加入组播群组后,也就是该客户端200与服务器100建立连接后,依照预定的频率或速度发送组播封包给加入组播群组的所有客户端200,后续的任何客户端200是否被允许或拒绝加入组播群组都不会影响服务传输模块130向组播群组发送组播封包的频率或速度。但本发明并不以此为限。在部分的实施例中,服务传输模块130也可以在判断组播群组中没有任何客户端200时停止发送组播封包。

服务传输模块130还负责接收各个客户端200所传送的补包请求,并合并重复的补包请求(也就是在不同客户端请求再次发送相同封包数据时,将请求相同封包数据的多个补包请求视为一个补包请求),以及依据所接收到的补包请求发送相对应的组播封包给发出补包请求的客户端200。

在部分的实施例中,服务传输模块130可以在接收到补包请求时,依据所接收到的补包请求所请求的组播封包丢弃发送顺序在前一定数量的补包请求。也就是当当前所发送的封包数据与被请求的封包数据的间所具有的封包数据数多于预定值时,服务传输模块130可以丢弃被请求的封包数据的补包请求。

客户端200负责向服务器100请求加入组播群组,并负责通过组播技术接收由服务器100所发送的组播封包,藉以由服务器100取得目标数据。其中,客户端200包含缓冲区210、客户传输模块220、客户处理模块230、以及客户储存媒体240。

缓冲区210负责提供客户传输模块220暂存所接收到的封包数据。缓冲区210可以使用随机存取存储器、闪存、或其他的储存媒体,本发明并没有特别的限制。特别值得一提的是,缓冲区210与公知网络卡上的缓冲区(buffer)不同,通常为额外配置的存储器。

客户传输模块220负责传送群组加入请求给服务器100,藉以向服务器100请求加入组播群组。

客户传输模块220也负责在缓冲区210中配置内存空间,并接收到的组播封包中的封包数据写入所配置的内存空间中的对应位置。一般而言,客户传输模块220所接收到的组播封包中记载有足以让客户传输模块220辨识出所接收到的组播封包的顺序的数据(例如组播封包表头中的流水号或组播封包内容中的编号等,本发明没有特别的限制),使得客户传输模块220可以依据所接收到的组播封包的顺序将组播封包中的封包数据写入内存空间中的对应位置。

客户传输模块220可以在判断出所配置的内存空间已满时,删除储存时间最久的封包数据,藉以储存新收到的封包数据。

在部分的实施例中,客户传输模块220可以丢弃加入组播群组后的预定时间内所接收到的组播封包,藉以避免接收到不完整的组播封包而影响所接收到的数据的正确性。

客户处理模块230负责判断客户传输模块220所配置的内存空间中所储存的封包数据已可以组成完整的一个或多个数据区块时,将已完整的数据区块由缓冲区210移动到客户储存媒体240中,也就是将已完整的数据区块复制到客户储存媒体240中储存,并由缓冲区210中删除已复制到客户储存媒体240中的封包数据。

客户处理模块230也负责依据客户储存媒体240中所储存的数据区块的识别数据判断被储存于客户储存媒体240中的数据区块不连续时,通过客户传输模块220通知服务器100,并在依据客户储存媒体240中所储存的数据区块的识别数据判断客户储存媒体240已储存完整目标数据时,通知客户传输模块220退出组播群组。一般而言,上述的数据区块的识别数据可以由任意数量的文字或数字任意排列而成,本发明没有特别的限制,但不同数据区块的识别数据并不重复。

接着以一个实施例来解说本发明的运作系统与方法,并请参照「图3」本发明所提的数据传输方法的流程图以及「图4」本发明所提的使用两阶存储器处理封包数据的数据接收方法的流程图。本实施例假设本发明应用于生产线上,但本发明并不以此为限。

在服务器100启动后,服务器100的服务处理模块120可以由服务器100的服务储存媒体110中读取目标数据,再将目标数据分割为多个数据区块,并将各个数据区块分割为封包数据(步骤305)。

之后,当客户端200在生产线移动时,客户端200的客户传输模块220可以与服务器100连接,并传送群组加入请求给服务器100,藉以向服务器100请求加入组播群组(步骤402)。在本实施例中,假设客户传输模块220可以通过无线网络与服务器100连接,并通过无线网络技术传送群组加入请求至服务器100。

在服务传输模块130接收到客户端200所传送的群组加入请求后,服务传输模块130可以依据当前已加入同一组播群组的客户端数量及/或目标数据当前的发送次数选择允许或拒绝客户端200加入所请求的组播群组(步骤320)。在本实施例中,假设客户端200所请求加入的组播群组中的客户端数量并未达到上限值200,且目标数据当前的发送次数也尚未达到预定次数5次,如此,服务传输模块130可以选择允许客户端200加入所请求的组播群组。而若客户端200所请求加入的组播群组已有200个其他客户端加入,或目标数据当前的发送次数为第5次(最后一次)时,服务传输模块130可以选择拒绝客户端200加入请求的组播群组,如此,客户端200需要等待其他客户端200离开所请求的组播群组,或是等待服务传输模块130重新开始发送目标数据后,服务传输模块130才可以选择允许客户端200加入组播群组。

当有任何客户端200被允许加入组播群组,服务传输模块130可以先以一定的频率或速度按分割产生的数据区块于目标文件中的顺序,依序选择数据区块(步骤330),再将被选择的数据区块中的各个封包数据依序封装为组播封包,并发送封装产生的组播封包给客户端200(步骤340)。在本实施例中,假设服务传输模块130在分割产生数据区块后,可以先压缩所产生的数据区块,再将压缩后的数据区块分割为封包数据,并可以每隔预定的时间间隔发送组播封包给组播群组中的所有客户端200。

在客户端200加入组播群组后,客户端200的客户传输模块220可以在客户端200的缓冲区210中配置内存空间(步骤406)。在本实施例中,假设客户传输模块220所配置的内存空间为缓冲区210中的剩余空间的75%。

之后,当客户传输模块220接收到服务传输模块130所传送的组播封包时,可以将所接收到的组播封包中的封包数据写入内存空间中的对应位置(步骤410)。在本实施例中,为了让客户端200确保所接收到的数据的正确性,在客户端200加入组播群组后,客户传输模块220可以丢弃预定时间内所接收到的所有组播封包。另外,当客户传输模块220接收到服务传输模块130所传送的组播封包时,若内存空间已满,则客户传输模块220可以先删除储存时间最久的一个封包数据,再写入所接收到的封包数据。

另外,同样在客户端200加入组播群组后,客户端200的客户处理模块230也可以判断被客户传输模块220所写入缓冲区210中的封包数据是否已经组成完整的数据区块(步骤420)。若是,则客户处理模块230可以将已组成完整数据区块的封包数据由缓冲区210一同移动到客户端200的客户储存媒体240中(步骤430);若否,则客户处理模块230可以继续等待客户传输模块220写入缓冲区210中的封包数据组成完整的数据区块。

在客户处理模块230将组成完整数据区块的封包数据由缓冲区210移动到客户端200的客户储存媒体240后,客户处理模块230可以进一步判断储存于客户储存媒体240中的数据区块是否连续(步骤440)。若客户储存媒体240中的数据区块不连续,则客户传输模块220可以传送与不连续的数据区块对应的补包请求至服务器100(步骤450),并继续接收服务器100所传送的组播封包,以及将组播封包中的封包数据写入内存空间中(步骤410)。例如,当客户储存媒体240中所储存的数据区块为第一与第三数据区块,而没有第二数据区块时,客户处理模块230可以判断出客户储存媒体240中所储存的数据区块不连续,并通知客户传输模块220检查以写入缓冲区210中的第二数据区块的封包数据,并将尚未收到的第二数据区块的封包数据的识别数据封装为相对应的补包请求,在传送所产生的补包请求给服务器100。

在服务传输模块130接收到客户端200所传送的补包请求时,服务传输模块130可以先记录被请求重发的封包数据的识别数据,并在完整的将一个数据区块发送给客户端200后,合并不同客户端200所传送的相同的补包请求(步骤350),并依据合并后的补包请求发送相对应的组播封包给客户端200(步骤370)。在本实施例中,假设有两个客户端200请求重发识别数据为208的封包数据,有一个客户端200请求重发识别数据为413的封包数据,则服务传输模块130可以将两个重发识别数据为208的封包数据的补包请求合并为一个,如此,服务传输模块130将可以只传送一个封装识别数据为208的封包数据的组播封包以及一个封装识别数据为413的封包数据的组播封包给客户端200。

而若客户处理模块230判断储存于客户储存媒体240中的数据区块连续,则客户处理模块230可以再次判断客户储存媒体240中是否已储存所有的数据区块,也就是判断客户储存媒体240中是否已储存完整的目标数据(步骤460),若否,则继续由客户传输模块220接收服务器100所传送的组播封包,以及将组播封包中的封包数据写入内存空间中(步骤410);若是,则客户处理模块230可以决定让客户端200退出组播群组,使得客户端200可以在生产线上继续移动,且客户传输模块220可以传送群组退出信息至服务器100,使得客户端200退出所加入的组播群组(步骤470)。

另外,在服务传输模块130依据所接收到的补包请求发送相对应的组播封包给客户端200(步骤370)后,服务传输模块130可以判断目标数据是否已发送达到一定次数或客户端200是否都已退出所加入组播群组(步骤380)。若是,则服务器100可以结束本发明;若否,也就是目标数据尚未发送一定次数(如5次)或仍然有客户端200在组播群组中,则服务传输模块130可以继续以一定的频率或速度按分割产生的数据区块于目标文件中的顺序,依序选择数据区块(步骤330),再将被选择的数据区块中的各个封包数据依序封装为组播封包,并发送封装产生的组播封包给客户端200(步骤340)。

综上所述,可知本发明与现有技术之间的差异在于具有客户端设置缓冲区与储存媒体两阶存储器,当客户端接收到服务器所传送的组播封包时,先将组播封包中的封包数据暂存于缓冲区中,当缓冲区中储存完整的数据区块时,将数据区块由缓冲区中移动到储存媒体中,并在储存媒体中的数据区块不连续时,通知服务器重送遗失的组播封包的技术手段,藉由此一技术手段可以来解决现有技术所存在传输过程中可能因为客户端数据接收或处理速度不佳导致封包大量遗失而延长数据传输时间的问题,进而达成以较短时间较少频宽完成数据传送的技术功效。

上述的实施例中,在服务传输模块130接收到客户端200所传送的补包请求时,服务传输模块130也可以依据所接收到的补包请求所请求的组播封包丢弃发送顺序在前一定数量的补包请求。在本实施例中,假设当前所发送的封包数据的识别数据为315,被请求的封包数据的识别数据为228,由于被请求的封包数据与当前所发送的封包数据的顺序差为87,此一顺序差多于预定值50时,服务传输模块130可以丢弃被请求的封包数据的补包请求,并记录没有被丢弃的被请求的封包数据的识别数据,也就是选择不重送发送顺序在前一定数量的封包数据。换句话说,如此一来,当客户端200请求重发发送顺序在前一定数量的封包数据时,客户端200将无法立刻接收到请求重发的封包数据,而是需要等待服务传输模块130再次由第一数据区块、第二数据区块、…的顺序重新发送各个封包数据给客户端200时,才能接收到请求重发的封包数据。

再者,本发明的使用两阶存储器处理封包数据的数据接收方法与数据传送方法,可实现于硬件、软件或硬件与软件的组合中,亦可在计算机系统中以集中方式实现或以不同元件散布于若干互连的计算机系统的分散方式实现。

虽然本发明所揭露的实施方式如上,惟所述的内容并非用以直接限定本发明的专利保护范围。任何本发明所属技术领域中的技术人员,在不脱离本发明所揭露的精神和范围的前提下,对本发明的实施的形式上及细节上作些许的更动润饰,均属于本发明的专利保护范围。本发明的专利保护范围,仍须以所附的权利要求书所界定者为准。

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