CN100490379C - 非实时局域网广播通讯方法 - Google Patents
非实时局域网广播通讯方法 Download PDFInfo
- Publication number
- CN100490379C CN100490379C CNB2004100192366A CN200410019236A CN100490379C CN 100490379 C CN100490379 C CN 100490379C CN B2004100192366 A CNB2004100192366 A CN B2004100192366A CN 200410019236 A CN200410019236 A CN 200410019236A CN 100490379 C CN100490379 C CN 100490379C
- Authority
- CN
- China
- Prior art keywords
- user
- thread
- server
- data
- router
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本非实时局域网广播通讯方法包含若干服务器及其一套相关的软件集成。软件集成有软件块的工作流程、服务流程、户下载块的工作流程。该件集成由一个简单的终端用户程序和若干运行于服务器上的服务构成。包含若干服务器的物理网及其一套相关的软件程序集成;此外,对于具体不同构造物理局域网,有若干特定设备改进和要求。服务器/用户终端机及软件集成基于逻辑局域网中,独立于具体物理网,因此适用于各类型网络。本发明的特点是:对广域网接口带宽得到更有效的利用;并提高网络的效率;有效利用网络的通信能力。能进一步扩展可存储文件种类,使本发明能应用于不那么常见的文件,并近一步提高效率。
Description
技术领域
本发明属于网络广播通讯技术,特别涉及一种非实时局域网广播通讯方法。
背景技术
目前互联网络通讯在繁忙时经常发生网络壅塞现象。尤其当多个用户差不多同时下载数据量很大的文件,容易发生通讯瓶颈问题,降低通讯效率。
发明内容
本发明的目的是提供一种非实时局域网广播通讯技术方法,充分利用非实时和足够数量的终端用户两个条件,在英特网/局域网实现巨量数据的高速下载。实际上解决英特网上常见巨量数据通讯的少量提供方和广大接收方的通讯瓶颈问题。
目前网络下载是以P2P模式为主,用户A和用户B分别要求下载同一个大文件,相同的数据会在不同时刻重复传送,哪怕A和B发出请求的时间差不多。
本发明是一种附加于拥有相当数目终端用户局域网的大文件下载服务系统,小文件增益率较低但总效率仍远高于现行网络。其主要特征是一种特殊的,基于UDP(用户数据报协议)的服务器面向终端机的网络广播。
本发明的基本原理是:管理员级别程序能在局域网实现广播通讯,即同一个数据包经一个广播发送,所有愿意接收该数据包的终端用户都能够收到。这就是并行通讯相对P2P(点对点)通讯的效率放大缘故。当然前提是有相当数目的用户愿意接收该数据包。对于拥有一定数量(几百以上)的终端用户的局域网,在一定时间范围内(一天以上),从统计角度而言,用户选择下载的重复率是很高的。这一点对于网络上带宽要求最高的影视节目更是如此。此外符合此条件的下载还有各类出版物(尤其是定时出版物如流行报刊杂志等)。
本发明设计包含若干服务器及其一套相关的软件集成。
该软件集成由一个简单的终端用户程序和若干运行于服务器上的服务程序构成。此外,对于具体不同物理构造的局域网,有若干特定设备改进要求。服务器/用户终端机及软件集成基于逻辑局域网中,独立于具体物理网,因此适用于各类型网络。对于具体物理网(常见的如ADSL网-非对称数字用户线路网),在某个环节上(路由器),广播通信可能是非常不经济的,应用本发明需要特殊路由器支持。该特殊路由器中CPU(中央处理器)要运行额外处理指令。
一种非实时局域网广播通讯方法,其特征在于:
包含若干服务器的物理网及其一套相关的软件程序集成;
其包含若干服务器的物理网是由英特网总站服务器连接的若干个局域网内的路由器,每个局域网的路由器联接若干服务器,路由器还连接各个终端用户;其中的路由器带有CPU中央处理器;
通讯方法的软件程序集成为:
有软件块的工作流程;
总站服务器上的服务程序,总站网页及数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新;服务内容即暂存在每台服务器的大容量储存器上的大文件;每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序;正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载会调入一个下载任务子程序;
本发明的一个服务流程由用户引起;
1.用户访问总站网页;
2.网页服务程序取得用户实时资料;
3.用户通过总站网页浏览数据库;
4.用户选择某个服务内容即大文件要求下载;
5.总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应此服务内容的服务器资料;若用户所在局域网存在该服务内容则直接执行步骤6;
若用户所在局域网不存在该服务内容,将执行步骤1)—5);
1)总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
2)若没有服务器有多余空间,则优化地删除可删内容;
3)若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
4)总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
5)当调配程序成功初始化,总站服务程序可继续,否则返回错误
6.总站服务程序向用户机器上的下载用户程序返回服务器资料;
7.总站服务程序启动用户机器上的下载用户程序的一个下载任务子程序,向用户程序报告任务初始化完成;
在用户终端机上的软件流程是:
1.用户启动下载程序或者总站服务程序激活该程序;
2.总站服务程序初始化下载任务子程序后;
3.只要用户不干预即终止,下载任务子程序一直在后台运行;
4.下载任务子程序定时向对应服务器发出待下载数据信息;
5.下载任务子程序一直监听UDP广播;
6.下载任务子程序检查得到的UDP数据包,若是所要的数据,解码该数据包;
7.下载任务子程序随时更新已下数据树记录;
8.若服务内容完全下载,下载任务子程序结束;
9.若所有下载任务子程序结束后,若用户仍在访问总站网页,则下载程序继续待命,不然退出;
对应局域网服务器上软件流程是:
1.服务器启动同时,服务器配分程序随之运行;
2.服务器配分程序初始化,和总站数据库建立实时更新;
3.总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做出反应;
4.若该服务内容已有对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5.服务器配分程序保持监视所有运行中的派分程序,并和总站数据库保持实时更新;
6.派分程序保持监听请求入口,随时更新下载数据树;
7.派分程序优化分发服务内容的数据包,进行广播发送;
8.若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
用户下载程序可以同时包含若干下载块,每个下载块对应一个独立的下载内容。
用户下载块的工作流程是:
1.用户下载程序调入用户下载块,把任务参数传入给用户下载块,任务参数包含派分程序所在IP网络地址/PORT端口号/ID内容标识/SIZE大小;
2.检查硬盘,如果上一次用户中途终止或其它意外,对应此ID文件已部分存在,就以此产生用户下载块的文件数据,不然产生一个全新的不包含实际需下载内容的文件数据;
3.以2中无内容或有部分内容文件数据初始化数据树;
4.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道,此通道是点对点反馈;
5.辅助线程将定时检查数据树,以INDEX内容索引元形式表示当前下载状态;
6.辅助线程将定时向派分程序反馈压缩后的下载状态;
7.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
8.主线程在辅助线程启动以后继续,初始化UDP监听派分程序的IP网络地址/PORT端口号;
9.主线程保持监听UDP,超时无信号会退出;
10.若收到数据包,主线程先检查错误,对通过侦错检查的数据包进行RAID冗余阵列分配还原;
11.主线程对从顺序而言遗漏包尝试RAID冗余阵列分配合成,取决于实际遗漏包的情况,该合成需要从已下文件数据中读取某些相关数据段;
12.主线程根据新得到的数据包更新数据树,然后将新数据包写入用户下载块的文件数据;
13.主线程判断是否可以退出,退出条件是所有数据都已下载完,或用户要求终止;
14.若不退出,主线程返回9继续监听UDP;
15.若退出,主线程先存盘,然后要等到辅助线程已经ACK确认退出才能退出;
局域网中每台服务器上可有若干个派分程序,每个派分程序对应一个独立的服务下载内容。
派分程序的工作流程是:
1.派分程序由配分程序启动;
2.派分程序根据初始参数读入文件;
3.派分程序根据读入文件初始数据树;
4.派分程序启动用户反馈线程;
5.派分程序启动UDP广播线程;
6.用户反馈线程初始化时要建立点对点接口来接收用户反馈;
7.用户反馈线程保持监听反馈接口,超时无信号会退出;
8.用户反馈线程得到用户反馈数据包,要先解压;
9.用户反馈线程将用户下载状态更新到数据树,更新的方式是内容索引元形式;
10.用户反馈线程通过检查一个由主线程设置的变量来判断是否可以退出;
11.若不退出,用户反馈线程返回7;若退出,用户反馈线程将结束;
12.UDP线程初始化时要建立UDP接口来广播;
13.UDP线程通过检查一个由主线程设置的变量来判断是否可以退出;
14.若不退出,UDP线程检查待发送INDEX内容索引流,若没有待发送数据则闲置一些时间,返回13,若有待发送数据则继续15;
15.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就取出所有INDEX;
16.UDP线程根据14中INDEX内容索引从文件数据读入对应数据段;
17.UDP线程对16中那组数据段进行RAID冗余阵列分配,段数不足所选定的RAID冗余阵列分配数时,用空数据段顶替;
18.UDP线程按顺序将RAID冗余阵列分配后的数据包用UDP发送,取决具体RAID算法,特例时的空数据段RAID处理后不空者也要发送,用户段RAID还原时会扔掉空数据段的;
19.UDP线程返回13;
20.在用户反馈线程和UDP线程初始化完成后,主线程取得反馈接口和UDP接口设置,初始化优化控制块和配分程序建立联系;
21.主线程实时从配分程序处得知UDP速度参数,新加入用户ID内容标识;
22.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
23.主线程从22中数据树情况,优选下一步待发送INDEX内容索引,并放入14中的INDEX内容索引流;
24.主线程退出条件是数据树表示无用户在等待数据,主线程若不退出则返回21继续;
25.主线程要等到配分程序ACK确认自己最后下载状态,用户反馈线程和UDP线程ACK确认退出后,才能退出。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接电缆局域网路由器,电缆局域网路由器连接网络管理服务器,电缆局域网路由器通过电缆连接若干用户终端。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器和广播路由器,局域网路由器连接网络管理服务器,局域网路由器和广播路由器分别连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器,局域网路由器连接网络管理服务器和卫星天线发射台,局域网路由器连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
不使用卫星广播情形下所述的ADSL路由器,由高带宽通讯线和高带宽UDP线连接路由器,路由器的CPU及RAM连接广播回路和信号分配回路,路由器的CPU及RAM、广播回路和信号分配回路同时连接高速分路,高速分路再连接低带宽电话线,低带宽电话线连接用户终端。所述的ADSL路由器的CPU及RAM通过数据线和控制总线连接信号分配回路。
本发明的特点是:对于本发明适用的常见大文件(特定条件下可推广到小文件),和现况相比,本发明的改进是:
a.使用大容量存储器将常见文件保存在服务器上,使宝贵的广域网接口带宽得到更有效利用;
b.使用广播方式以最优化方式向用户提供大文件下载,越大/越常下载的文件在用户越多的局域网得到越高的并行度,即相对说来效率提高越多;
c.终端机/服务器上自动下载管理程序充分利用用户对大文件下载实时性不介意条件,在方便用户的同时,尽可能提高网络通讯的并行度,即更有效利用网络的通信能力;
d.由于将大文件尽可能并行下载,综合而言,使用本发明的局域网能有更多的带宽用于非常见数据通信;
e.将若干使用本发明的局域网并网,由一个统一的总站服务器管理,能进一步扩展可存储文件种类,使本发明能应用于不那么常见的文件,进一步提高效率;
附图说明
图1表示了基于本发明的网络总体概况。
图2是电缆局域网的情况,
图3是ADSL局域网的情况,
图4是卫星微波下行/ADSL或播号上行混合局域网的情况。
图5是对现有ADSL路由器的最简洁改进。
图6是对现有ADSL路由器的更复杂改进。
图7从数据流向的角度表示了复杂改进2实际上是两重信号分配,且新一重是特殊的多频道N通广播。
图8是总站服务器上的服务程序,总站网页及数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新。
图9所示,N用户通过和总站服务程序交流取得下载服务信息,并启动下载。
图10是用户下载块,服务派送块和优化控制块的工作原理程序。
具体实施例
图2-4有一个共同点,即服务器群及大量可接收广播信号的终端机群。位于广域网中的总站服务器运行一个服务程序,总站网页及数据库程序(数据库程序可以运行在另一台服务器上)。每个局域网中有一个配分程序运行于某一个服务器上。配分程序了解该局域网所有服务内容即大文件的存储情况,并和总站数据库保持实时更新。每个服务内容对应一个派分程序。配分程序负载启动派分程序,并实时监控它们。终端用户通过访问总站网页间接访问总站数据库来取得可下载内容情况。终端用户由总站网页给出下载请求。此时,若用户终端机上没有下载用户软件,总站网页会要求用户下载该软件(一次性),若该用户尚未运行该用户软件,总站网页会启动它,总站网页返回对应此服务内容的派分程序情况,用户软件初始化一个下载任务子程序。
本发明核心是下载任务模块(同时运行于N个用户终端机上)和派分程序间高效并自动纠错的通信。为实现这一目的,局域网必须附加若干台服务器,其中一台须有高速广域网接口。对于任何局域网内的面向终端用户P2P优化的桥式连接(如ADSL路由器)必须加以一定改进防止路由器被广播通信堵塞从而抵消本发明的增益。
下面就列举的三种最常见物理局域网范例,逐一介绍硬件细节。
电缆局域网如图2所示,每个电缆拖带若干(几十至几千)用户,若干电缆和一个网络管理服务器经一个路由器连接成局域网,若不用本发明服务,该路由器直接连通广域网即可。如无特殊设置,电缆局域网用户始终共享上下行带宽。
为实现本发明服务,若干服务器要用高速连接和上述路由器如图构成回路,使大量广播信号能直接下行。每个服务器拥有尽可能大的存储器来保持常见下载文件。网络设置成使其中一台服务器有最大广域网的带宽,配分程序即运行在该服务器上。这一点额外硬件对任何应用本发明的各类型局域网(如下面的ADSL网和混合网)都是一样的。
ADSL局域网如图3所示,用户的ADSL电话线接入中心的ADSL路由器,一般每个路由器可拖10-80终端用户。一般一个典型ADSL局域网要有两层路由器才有一定用户规模。和电缆网一样,ADSL局域网也需要一台网络服务器做管理。若不用本发明服务,最顶端路由器直接连通广域网即可。
和电缆网不同,ADSL用户始终是独享自己ADSL电话线的带宽的。因此现行的普通ADSL路由器的数据传送是单通的(因为ADSL支持协议通常都是P2P形式),结果广播数据在ADSL路由器内是一次一次的发送给每个ADSL用户的。这样一来,由于广播通信造成的数据风暴有可能严重堵塞ADSL路由器。
图5表示了对现有ADSL路由器的最简洁改进。即使用能动态工作于单通与全通两种模式下的集成电路搭建ADSL路由器中的信号分配电路。然后设置ADSL路由器中CPU指令,让它在遇上广播数据包时,将信号分配电路设成全通,其它时候单通。图5表示一个ADSL路由器为若干个用户服务的原理。每个用户段的ADSL解调器和局中心的一个ADSL解调器通过电话线动态连接,每个局中心ADSL解调器是路由器的一个外围IO设备(低端)。路由器的高端通向局域网络内高一级的路由器。在路由器内部,高端和低端的每一个设备把数据包按照先进先出(较高级路由器每个IO设备都已包含缓存)的原则读写于内存。通常ADSL的通信协议都是P2P,故CPU控制下通信以单通为主,即任何时刻只有一个低端设备和高端交换数据。假如总线为100M(bps),ADSL实用带宽为1.5M(bps),存在约60个以上低端设备时,本发明广播就会堵塞路由器。采用本发明的路由器需增加共享内存(正比于低端设备数),使广播数据包能一次复制到所有低端设备的对应内存,即广播下载是全通。这一点是由CPU控制总线分配电路来实现的。
图6表示了对现有ADSL路由器的更复杂改进。从硬件构件来看,和图5没有大的区别,只是UDP包将由专用路由器传入(见图4),此外数据流程上多了一重特殊的来自该特定端口的数据包N通广播,(没有网络协议可对应,完全由路由器完成)。路由器中CPU要运行较为复杂的指令,在记录ADSL用户和某个IP(网络地址)/PORT(端口号)(唯一确认某个派分程序)对话同时,在处理来自该IP/PORT的UDP数据包时,把所有N个有记录的ADSL用户在共享内存中变成N通进行同时读取。使用这种改进ADSL路由器的用户下载程序在退出下载任务时最后和派分程序反馈时要有一个特殊数据包,ADSL路由器CPU见到此包,会将该用户和此IP/PORT对话记录抹去。
图7从数据流向的角度表示了改进2实际上是两重信号分配,且新一重是特殊的多频道N通广播。
这里需要注意网络通信中广播指P个连接下,来自于其中一个Pi的信号被发送到其余P-1个连接的情况。由于改进2中特殊N通广播需要一个特殊路由表,故这种情况下,用户A必须首先向服务派分程序发出第一个成功请求,路由器该特殊路由表中才产生对应A的路径,然后A才能够得到下载数据包,这一点是比较特殊的。
当然若局域网中的ADSL路由器性能很好,不存在广播风暴问题(同时以同等效率支持桥式和支点式派送,或内部芯片性能之高足够以重复发送方式处理广播包),则上述改进都是可省略的。
ADSL或播号混合卫星微波局域网如图4所示,用户上行信号和ADSL/播号局域网一样,下行信号是来自于非常高速的微波卫星信号。上行用户始终独享带宽,下行始终共享带宽。这样和电缆网一样,不需要对硬件作大改进。这种局域网尤其适用本发明,因其直接面对的终端用户数目巨大,而且其上行下行完全分离,若用户上网基本上是下载(绝大多数人除发大电子邮件外基本如此),则播号上行+微波下行能以最低代价充分享受本发明带来的高速共享下载。
最后,由于应用本发明后,共享下行带宽又会有相当高比例是广播通讯,而且相当高比例终端用户在接收这种通信,所以有可能对共享下行带宽进行广播/非广播分频,如用户数目庞大,为增加广播内容种类,可进一步将广播带宽分成若干频道。终端用户的接入解调器改进成能动态倾听不同频道(广播+非广播)。当然在这种超规模用户/服务内容种类时,用户下载程序/配分程序都要有额外功能,会在下一个发明中说明。此时电缆解调器和卫星微波解调器都要有相应改进来支持动态频道,而ADSL路由器倾向于改进2。
以下是主要软件块的工作流程。
如图8所示,总站服务器上的服务程序(网页)连同数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新。服务内容(大文件)位于每台服务器的大容量储存器上。每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序。正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载内容会调入一个下载任务子程序。
本发明的一个服务流程由用户引起。
1.用户访问总站网页;
2.网页服务程序取得用户实时资料;
3.用户通过总站网页浏览数据库;
4.用户选择某个服务内容即大文件要求下载;
5.总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应此服务内容的服务器资料;若用户所在局域网存在该服务内容则直接执行步骤6;
若用户所在局域网不存在该服务内容,将执行步骤1)—5);
1)总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
2)若没有服务器有多余空间,则优化地删除可删内容;
3)若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
4)总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
5)当调配程序成功初始化,总站服务程序可继续,否则返回错误
6.总站服务程序向用户机器上的下载用户程序返回服务器资料;
7.总站服务程序启动用户机器上的下载用户程序的一个下载任务子程序,向用户程序报告任务初始化完成;
在用户终端机上的软件流程是:
1.用户启动下载程序或者总站服务程序激活该程序;
2.总站服务程序初始化下载任务子程序后;
3.只要用户不干预即终止,下载任务子程序一直在后台运行;
4.下载任务子程序定时向对应服务器发出待下载数据信息;
5.下载任务子程序一直监听UDP广播;
6.下载任务子程序检查得到的UDP数据包,若是所要的数据,解码该数据包;
7.下载任务子程序随时更新已下数据树记录;
8.若服务内容完全下载,下载任务子程序结束;
9.若所有下载任务子程序结束后,若用户仍在访问总站网页,则下载程序继续待命,不然退出;
对应局域网服务器上软件流程是:
1.服务器启动同时,服务器配分程序随之运行;
2.服务器配分程序初始化,和总站数据库建立实时更新;
3.总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做出反应;
4.若该服务内容已有对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5.服务器配分程序保持监视所有运行中的派分程序,并和总站数据库保持实时更新;
6.派分程序保持监听请求入口,随时更新下载数据树;
7.派分程序优化分发服务内容的数据包,进行广播发送;
8.若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
本发明的技术核心是局域网内的并行发送。其具体原理是一种特殊的数据广播。和普通广播不同,对于某一个特定用户而言,广播是无序的。任务的结果为用户是否收到所有数据。这一特性使得派分程序不可能是普通意义上的发送后不管的广播。并行的特性又要求派分程序以集合的概念来对待用户的请求,而不是逐个去满足每一个用户的请求。
以下进一步详细叙述实现高并行度下,自动纠错广播下载的技术细节。
如图9所示,N用户通过和总站服务程序交流取得下载服务信息,并启动下载。每个用户可同时进行P个下载。每个局域网有一个配分程序来管理K个派分程序,配分程序负责实时更新总站数据库。每个派分程序对应一个服务内容(下载文件),每个派分程序同时服务于L个需要该文件的用户。局域网A的缺漏文件(局域网B有该文件)由一个调配程序从B调入A。
A线下行通信是高密度RAID(冗余阵列分配)数据广播,黑色上行通信是L*INDEX(序号)数据更新。黑色上行通信就某个用户而言是很稀疏,就是通讯间隔和下行通信相比较而言,当错误率低时,稀疏上行通信的数据量也相应很小。
B线通信是实时更新,数据量极其小。
C线通信是几台服务器间的通讯,通信量又极其小。若只有一台服务器承担所有工作则没有C线,不同服务程序间的通信都是机器内部通信。
D线,E线是一次性/偶尔通信。
对照图9,只有A线通信不同一般,是本发明的关键。
下面详细介绍本发明对于一个特定服务的最关键步骤,即一个派分程序将特定巨量数据向Q个等待的终端用户派送。派分程序抽象地将该巨量数据分成X个数据包,每次以UDP协议向局域网广播一个包。对于某一个具体终端用户而言,特定服务的完成是该用户收到所有X个数据包。对该派分程序而言,特定服务的完成是没有任何用户在等待属于该巨量数据的任意一个数据包。
为简单起见,假定某特定服务对应的巨量数据在所讨论的时间段内完全存在于局域网的数据缓冲中,有N个用户在任意不同时刻要求该特定服务,其间没有取消,此巨量数据依2K字节的数据包大小进行打包,若无RAID分配,则共有(数据总长度+2K-1)/2K个包,式中各量的单位均是字节,若有RAID分配,总包数应按冗余率上升。假定局域网速度令每包发送消耗时间T,所讨论时间段即N个用户都完整得到需要文件的时间必定>=总包数*T,且仅在最理想化条件下取等号。本专利保障服务结束时间基本上为最后一个用户所发出要求时间加上最小时间即总包数*T,注意服务结束时间和N无关。
实现本发明的核心派分程序共分三大块,它们是用户下载块,服务派送块,优化控制块。
若用户同时下载几个文件,每个文件下载块对应一个任务,即用户下载块以不同的参数互不干扰运行。服务派送块,优化控制块构成派分程序(服务器)主体,一个服务派送块通信于N个用户终端机上的对应用户下载块。优化控制块根据N个用户的更新情况和下载情况,优化控制服务派送块的派送。
程序设计的原则是尽可能高的并行度,低遗漏率/低重复派送率,同等条件下尊重时间优先。此外尽量允许在整个局域网范围内更灵活的下载调节。
图10详细表示用户下载块,服务派送块和优化控制块的工作原理;
用户下载块的工作流程是:
1.用户下载程序调入用户下载块,把任务参数传入给用户下载块,任务参数包含派分程序所在IP网络地址/PORT端口号/ID内容标识/SIZE大小;
2.检查硬盘,如果上一次用户中途终止或其它意外,对应此ID文件已部分存在,就以此产生用户下载块的文件数据,不然产生一个全新的不包含实际需下载内容的文件数据;
3.以2中无内容或有部分内容文件数据初始化数据树;
4.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道,此通道是点对点反馈;
5.辅助线程将定时检查数据树,以INDEX内容索引元形式表示当前下载状态;
6.辅助线程将定时向派分程序反馈压缩后的下载状态;
7.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
8.主线程在辅助线程启动以后继续,初始化UDP监听派分程序的IP网络地址/PORT端口号;
9.主线程保持监听UDP,超时无信号会退出;
10.若收到数据包,主线程先检查错误,对通过侦错检查的数据包进行RAID冗余阵列分配还原;
11.主线程对从顺序而言遗漏包尝试RAID冗余阵列分配合成,取决于实际遗漏包的情况,该合成需要从已下文件数据中读取某些相关数据段;
12.主线程根据新得到的数据包更新数据树,然后将新数据包写入用户下载块的文件数据;
13.主线程判断是否可以退出,退出条件是所有数据都已下载完,或用户要求终止;
14.若不退出,主线程返回9继续监听UDP;
15.若退出,主线程先存盘,然后要等到辅助线程已经ACK确认退出才能退出;
派分程序的工作流程是:
1.派分程序由配分程序启动;
2.派分程序根据初始参数读入文件;
3.派分程序根据读入文件初始数据树;
4.派分程序启动用户反馈线程;
5.派分程序启动UDP广播线程;
6.用户反馈线程初始化时要建立点对点接口来接收用户反馈;
7.用户反馈线程保持监听反馈接口,超时无信号会退出;
8.用户反馈线程得到用户反馈数据包,要先解压;
9.用户反馈线程将用户下载状态更新到数据树,更新的方式是内容索引元形式;
10.用户反馈线程通过检查一个由主线程设置的变量来判断是否可以退出;
11.若不退出,用户反馈线程返回7;若退出,用户反馈线程将结束;
12.UDP线程初始化时要建立UDP接口来广播;
13.UDP线程通过检查一个由主线程设置的变量来判断是否可以退出;
14.若不退出,UDP线程检查待发送INDEX内容索引流,若没有待发送数据则闲置一些时间,返回13,若有待发送数据则继续15;
15.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就取出所有INDEX;
16.UDP线程根据14中INDEX内容索引从文件数据读入对应数据段;
17.UDP线程对16中那组数据段进行RAID冗余阵列分配,段数不足所选定的RAID冗余阵列分配数时,用空数据段顶替;
18.UDP线程按顺序将RAID冗余阵列分配后的数据包用UDP发送,取决具体RAID算法,特例时的空数据段RAID处理后不空者也要发送,用户段RAID还原时会扔掉空数据段的;
19.UDP线程返回13;
20.在用户反馈线程和UDP线程初始化完成后,主线程取得反馈接口和UDP接口设置,初始化优化控制块配分程序建立联系;
21.主线程实时从配分程序处得知UDP速度参数,新加入用户ID内容标识;
22.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
23.主线程从22中的数据树情况,优选下一步待发送INDEX内容索引,并放入14中的INDEX内容索引流;
24.主线程退出条件是数据树表示无用户在等待数据,主线程若不退出则返回21继续;
25.主线程要等到配分程序ACK确认自己最后下载状态,用户反馈线程和UDP线程ACK确认退出后,才能退出。
本发明核心程序在微软OS(操作系统)局域网中试验,实际增益与预计相符。假定大文件已在局域网中中某台服务器上,N个用户从有相似网络接口的服务器分别在任意T时间段下载该文件,不使用本发明,合计下载时间是K。试验表明任意时间若有N>10用户下载,则服务器下行带宽耗尽,有若干用户会持续得到连接错误,所以K是在任何时间N<=10情况下取得。同样情况下若使用本发明,合计下载时间是T2-T1+P,P是即一个用户对一台服务器下载时间,T1是第一个用户开始下载时间,T2是最后一个用户开始下载时间。结果是不使用本发明时N个用户随机从某台服务器下载的合计时间K约等于N*P。这里要注意到使用本发明时,不会有N<=10的限制。真正的限制来自于当总用户反馈信号量接近文件量时,这需要N很大和下载有一定错误率,由于条件限制,没能验证该特性。
本发明除引入无序但基本连续(不是完全没有顺序,是不保证大文件下载一定是从头到尾)广播外,另外还有使用RAID和数据树来尽可能减少用户反馈给服务器的通信量。现在网络质量虽很稳定,一般还有Q=10^-3以下的随机错误率(如数据包在线路上损坏,用户机内部通信随机过忙等等),一级RAID能将错误率(需要重传)降至约常数*Q^2,这样一来,以数据包2K大小为例,一个几百兆的大文件只有至多10个左右错误包,这样一来使用户极少有因随机错误而必须反馈的情形。用户若有其它错误(如断电,用户机其他软件错误导致下载任务终止,用户因某种原因暂停等等),需要重传的数据包是连续的,理论上可证明使用数据树表示这些连续包的INDEX在数量级上是最优化的(压缩)。
使用数据树的额外好处是针对N用户可以有良好的算法来给出优化的下载INDEX序列。
附录:
ADSL的几种协议:
局域网(RFC1483-基于ATM(异步传输模式)的以太网协议)驱动支持RFC-1483协议;广域网(RFC2364-基于ATM的点对点协议,RFC216-基于以太网的点对点协议)驱动支持RFC-2364和RFC-216协议;
相关US专利:
6,343,072
6,366,583
6,618,353
本专利中数据树与一般常见树不同的特征:
1.数据树以B元树的形式对一个大文件进行编序,叶单元唯一对应一个序号数据包;
2.数据树的非叶单元一般包含若干个子单元,不满非叶单元只可能是该级别非叶单元的尾单元;
3.数据树的叶单元必定是同一级别;
4.数据树的非叶单元(满)最终包含叶单元的总数是B^K,这里K是级别差;
5.数据树的B元值应随RAID,即RAID设置B个包变换成传B+RAID级数个包,
英文简略语注释:
ACK-应答;
ADSL-非对称数字用户线路;
ATM-异步传输模式;
CPU-中央处理器;
INDEX-序号;
OS-操作系统;
P2P-点对点;
RAID-冗余阵列分配;
UDP-用户数据报协议;
Claims (6)
1、一种非实时局域网广播通讯方法,其特征在于:
包含若干服务器的物理网及其一套相关的软件程序集成;
其包含若干服务器的物理网是由英特网总站服务器连接的若干个局域网内的路由器,每个局域网的路由器联接若干服务器,路由器还连接各个终端用户;其中的路由器是带有CPU中央处理器路由器;
通讯方法的软件程序集成为:
有软件块的工作流程;
总站服务器上的服务程序,总站网页及数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新;服务内容即暂存在每台服务器的大容量储存器上的大文件;每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序;正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载会调入一个下载任务子程序;
本发明的一个服务流程由用户引起;
1.用户访问总站网页;
2.网页服务程序取得用户实时资料;
3.用户通过总站网页浏览数据库;
4.用户选择某个服务内容即大文件要求下载;
5.总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应此服务内容的服务器资料;若用户所在局域网存在该服务内容则直接执行步骤6;
若用户所在局域网不存在该服务内容,将执行步骤1)—5);
1)总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
2)若没有服务器有多余空间,则优化地删除可删内容;
3)若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
4)总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
5)当调配程序成功初始化,总站服务程序可继续,否则返回错误;
6.总站服务程序向用户机器上的下载用户程序返回服务器资料;
7.总站服务程序启动用户机器上的下载用户程序的一个下载任务子程序,向用户程序报告任务初始化完成;
在用户终端机上的软件流程是:
1.用户启动下载程序或者总站服务程序激活该程序;
2.总站服务程序初始化下载任务子程序;
3.只要用户不干预即终止,下载任务子程序一直在后台运行;
4.下载任务子程序定时向对应服务器发出待下载数据信息;
5.下载任务子程序一直监听UDP广播;
6.下载任务子程序检查得到的UDP数据包,若是所要的数据,解码该数据包;
7.下载任务子程序随时更新已下数据树记录;
8.若服务内容完全下载,下载任务子程序结束;
9.所有下载任务子程序结束后,若用户仍在访问总站网页,则下载程序继续待命,不然退出;
对应局域网服务器上软件流程是:
1.服务器启动同时,服务器配分程序随之运行;
2.服务器配分程序初始化,和总站数据库建立实时更新;
3.总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做出反应;
4.若该服务内容已有对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5.服务器配分程序保持监视所有运行中的派分程序,并和总站数据库保持实时更新;
6.派分程序保持监听请求入口,随时更新下载数据树;
7.派分程序优化分发服务内容的数据包,进行广播发送;
8.若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
用户下载块的工作流程是:
1.用户下载程序调入用户下载块,把任务参数传入给用户下载块,任务参数包含派分程序所在IP网络地址/PORT端口号/ID内容标识/SIZE大小;
2.检查硬盘,如果上一次用户中途终止或其它意外,对应此ID文件已部分存在,就以此产生用户下载块的文件数据,不然产生一个全新的不包含实际需下载内容的文件数据;
3.以2中无内容或有部分内容文件数据初始化数据树;
4.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道,此通道是点对点反馈;
5.辅助线程将定时检查数据树,以INDEX内容索引元形式表示当前下载状态;
6.辅助线程将定时向派分程序反馈压缩后的下载状态;
7.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
8.主线程在辅助线程启动以后初始化UDP监听派分程序的IP网络地址/PORT端口号;
9.主线程保持监听UDP,超时无信号会退出;
10.若收到数据包,主线程先检查错误,对通过侦错检查的数据包进行RAID冗余阵列分配还原;
11.主线程对从顺序而言遗漏包尝试RAID冗余阵列分配合成,取决于实际遗漏包的情况,该合成需要从已下文件数据中读取某些相关数据段;
12.主线程根据新得到的数据包更新数据树,然后将新数据包写入用户下载块的文件数据;
13.主线程判断是否可以退出,退出条件是所有数据都已下载完,或用户要求终止;
14.若不退出,主线程返回9继续监听UDP;
15.若退出,主线程先存盘,然后要等到辅助线程已经ACK确认退出才能退出;
派分程序的工作流程是:
1.派分程序由配分程序启动;
2.派分程序根据初始参数读入文件;
3.派分程序根据读入文件初始数据树;
4.派分程序启动用户反馈线程;
5.派分程序启动UDP广播线程;
6.用户反馈线程初始化时要建立点对点接口来接收用户反馈;
7.用户反馈线程保持监听反馈接口,超时无信号会退出;
8.用户反馈线程得到用户反馈数据包,要先解压;
9.用户反馈线程将用户下载状态更新到数据树,更新的方式是内容索引元形式;
10.用户反馈线程通过检查一个由主线程设置的变量来判断是否可以退出;
11.若不退出,用户反馈线程返回7;若退出,用户反馈线程将结束;
12.UDP线程初始化时要建立UDP接口来广播;
13.UDP线程通过检查一个由主线程设置的变量来判断是否可以退出;若退出,则UDP线程结束。
14.若不退出,UDP线程检查待发送INDEX内容索引流,若没有待发送数据则闲置一些时间,返回13,若有待发送数据则继续15;
15.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就取出所有INDEX;
16.UDP线程根据14中INDEX内容索引从文件数据读入对应数据段;
17.UDP线程对16中那组数据段进行RAID冗余阵列分配,段数不足所选定的RAID冗余阵列分配数时,用空数据段顶替;
18.UDP线程按顺序将RAID冗余阵列分配后的数据包用UDP发送,取决具体RAID算法,特例时的空数据段RAID处理后不空者也要发送,用户段RAID还原时会扔掉空数据段的;
19.UDP线程返回13;
20.在用户反馈线程和UDP线程初始化完成后,主线程取得反馈接口和UDP接口设置初始化优化控制块,和配分程序建立联系;
21.主线程实时从配分程序处得知UDP速度参数,新加入用户ID内容标识;
22.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
23.主线程根据22中的数据树情况,优选下一步待发送INDEX内容索引,并放入14中的INDEX内容索引流;
24.主线程退出条件是数据树表示无用户在等待数据,主线程若不退出则返回21继续;
25.主线程要等到配分程序ACK确认自己最后下载状态,用户反馈线程和UDP线程ACK确认退出后,才能退出。
2、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接电缆局域网路由器,电缆局域网路由器连接网络管理服务器,电缆局域网路由器通过电缆连接若干用户终端。
3、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器和广播路由器,局域网路由器连接网络管理服务器,局域网路由器和广播路由器分别连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
4、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,服务器连接局域网路由器,局域网路由器连接网络管理服务器和卫星天线发射台,客户接入服务器连接局域网路由器并连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
5、根据权利要求3或权利要求4所述的非实时局域网广播通讯方法,其特征在于:所述的ADSL路由器,由高带宽通讯线和高带宽UDP线连接局域网路由器,ADSL路由器的CPU及RAM连接广播回路和信号分配回路,ADSL路由器的CPU及RAM、广播回路和信号分配回路同时连接高速分路,高速分路再连接低带宽电话线,低带宽电话线连接用户终端。权利要求3或权利要求4所述的服务器和用户的通讯是基于由局域网路由器通过多个ADSL路由器再由每个ADSL路由器与多个低带宽用户终端连接来实现的。
6、根据权利要求5所述的非实时局域网广播通讯方法,其特征在于:所述的ADSL路由器的CPU及RAM通过数据线和控制总线连接信号分配回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100192366A CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100192366A CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1630236A CN1630236A (zh) | 2005-06-22 |
CN100490379C true CN100490379C (zh) | 2009-05-20 |
Family
ID=34845684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100192366A Expired - Fee Related CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100490379C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100438408C (zh) * | 2006-03-15 | 2008-11-26 | 华为技术有限公司 | 一种实现代理下载的方法、装置及系统 |
CN102291413B (zh) * | 2011-08-31 | 2016-03-30 | 广东威创视讯科技股份有限公司 | 基于互联网的发现协议系统 |
CN102299834A (zh) * | 2011-09-07 | 2011-12-28 | 中国联合网络通信集团有限公司 | 局域网数据共享方法、设备及系统 |
CN102368729B (zh) * | 2011-09-23 | 2013-11-27 | 北京东方网信科技股份有限公司 | 一种在非实时系统上精确网络限速的方法 |
CN105049452B (zh) * | 2015-08-25 | 2018-04-20 | 广东欧珀移动通信有限公司 | 资源下载方式的切换方法、装置及智能终端 |
CN107085925A (zh) * | 2016-12-30 | 2017-08-22 | 佛山亚图信息技术有限公司 | 一种用于学校的地震预警系统 |
-
2004
- 2004-05-14 CN CNB2004100192366A patent/CN100490379C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1630236A (zh) | 2005-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1615403B1 (en) | Efficient one-to-many content distribution method in a peer-to-peer computer network | |
EP1484888B1 (en) | Method and system to provide blade server load balancing using spare link bandwidth | |
CN100438408C (zh) | 一种实现代理下载的方法、装置及系统 | |
CN101894092B (zh) | 多核cpu及其核间通信方法 | |
CN101309282B (zh) | 一种局域网内传输文件的方法、服务器和系统 | |
CN101222490B (zh) | 一种网络服务器系统及方法 | |
US11303372B2 (en) | Methods and apparatus for transporting data on a network | |
WO2014061481A1 (ja) | 適応的圧縮アルゴリズムを用いたデータ転送装置及びデータ転送システム | |
CN105847139A (zh) | 数据传输方法、装置及系统 | |
US20060153100A1 (en) | On-demand group communication services with quality of service (QoS) guarantees | |
CN101866326B (zh) | 一种消息传递接口支持总线通信框架 | |
CN108600300A (zh) | 日志数据处理方法及装置 | |
CN103561078A (zh) | 电信运营系统及业务服务方法 | |
CN111181873A (zh) | 数据发送方法、装置、存储介质和电子设备 | |
CN100490379C (zh) | 非实时局域网广播通讯方法 | |
Sun et al. | Republic: Data multicast meets hybrid rack-level interconnections in data center | |
CN114024910A (zh) | 一种用于金融交易系统的极低延时可靠通讯系统及方法 | |
CN115866059B (zh) | 一种区块链节点调度方法和装置 | |
CN102845042B (zh) | 一种应用层多个活动物理接口的带宽聚集系统及方法 | |
US7783784B1 (en) | Method and apparatus for adaptive selection of algorithms to load and spread traffic on an aggregation of network interface cards | |
EP1242895A1 (en) | Multinode server | |
CN101257390A (zh) | 机架式网络设备及其网络处理器插卡和业务处理方法 | |
Ghosal et al. | Parallel architectures for processing high speed network signaling protocols | |
CN106888240A (zh) | 一种页面数据发布方法及系统 | |
CN115917519B (zh) | 存储有信息处理程序的记录介质、信息处理装置和信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090520 Termination date: 20210514 |
|
CF01 | Termination of patent right due to non-payment of annual fee |