CN106775961A - 一种跨系统数据及信号传递的方法 - Google Patents
一种跨系统数据及信号传递的方法 Download PDFInfo
- Publication number
- CN106775961A CN106775961A CN201510801861.4A CN201510801861A CN106775961A CN 106775961 A CN106775961 A CN 106775961A CN 201510801861 A CN201510801861 A CN 201510801861A CN 106775961 A CN106775961 A CN 106775961A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- thread
- buffer zone
- processing
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种跨系统数据及信号传递的方法,首先设置处理数据信号的线程池,该线程池处理系统间数据的发送和接收,所述线程池中集合了多个数据包处理线程,设置信号类型适配程序,根据已有的信号类型数据库,判断信号类型,将所述数据包分别输入多个数据存储区或数据缓冲区,使每个数据缓冲区对应一个数据包处理线程,利用上述的信号类型适配程序,将所述数据存储区或缓冲区中的数据按照类型进行再编码,将编码后的数据通过任何的通信协议进行广播传送。
Description
技术领域
本发明涉及一种跨系统数据及信号传递的方法。
背景技术
在目前ESB总线结构的并基于SOA面向服务的应用系统而言,数据消息的传输中,数据发送端为了快速有效地将数据发送到数据接收端,通常要采取很多措施,例如对待发送的数据进行编码压缩或加密编码,对待发送的数据进行数据缓冲区的分配等处理。一种常见的处理方法是将数据按照重要性或预先确定的权值分类,确定发送优先级,再将优先级不同的数据分配优先等级不同的队列发送。图1是一个数据传输系统示例图。图1中,每一个服务器都连接着多台终端,一个终端通过互联网发送到另一个终端的数据,需要通过与之连接的服务器发送到数据处理设备,经过数据处理设备的处理发送到对端的数据处理设备,进而发送到目的终端。图1中,数据处理设备发送的数据需要经过适当的处理,而非简单的按序发送。
图2是图1所示系统的数据处理设备的数据处理方法原理图。按照图2,汇集到数据处理设备的数据通常按照某种通信协议将数据包装为具体的数据包,所述数据包经过服务器汇集到数据处理设备,所述数据处理设备的优先级判断单元按照预先设定的标准判断所述数据包的优先级,然后将所述数据包送到数据缓冲区组中的相应优先级的数据缓冲区中,最后由所述数据发送单元调度发送。在大部分的数据传输系统中,数据发送前的处理,一是如图2所示将数据包划分优先级,然后按照优先级的顺序发送。如果要压缩数据包,减少发送的数据量,则要在优先级判断单元的前面或后面增加一个编码压缩单元,将数据包分别编码压缩后再按照其优先级分配到所述的优先级队列。在一个具体的应用中,所述优先级判断装置可以拆分为数据包输入单元和数据包分配单元,而数据发送装置可以拆分为数据输出单元和输出数据缓冲区。
因此现有的跨系统数据及信号传递的方法无论是优先级队列的分配还是数据的编码压缩,都是顺序进行的,由于数据的调度、压缩等处理操作消耗的时间较多,使得优先级队列的串行处理产生的延迟导致物理链路的大量传输资源要处理重复编码的数据,并且大量相同类型的数据和信号要重复的处理。这样,不但使得一些优先级较低数据包的发送延迟较大,即使对于优先级较高的数据来说,也可能导致数据发送的延迟,并且ESB企业中线结构中的每一个子系统都要承载多次的同新握手,直接消耗了系统资源以及导致了响应延迟。
发明方案
本发明要解决的技术问题在于提供一种数据发送延迟较低的并且高效的支持超大规模并发响应的跨系统数据及信号传递的方法。
本发明提供的跨系统数据及信号传递的方法,包括:
设置处理数据信号的线程池,该线程池处理系统间数据的发送和接收;
所述线程池中集合了多个数据包处理线程;设置信号类型适配程序,根据已有的信号类型数据库,判断信号类型。
将所述数据包分别输入多个数据存储区或数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;将所述数据包处理线程处理对应数据缓冲区中的数据包,按照对数据包的操作设置数据包处理线程,并且按照对数据包的操作将所述数据分别输入到相应的数据存储区。
利用上述的信号类型适配程序,将所述数据存储区或缓冲区中的数据按照类型进行再编码;将编码后的数据通过任何的通信协议进行广播传送。
设置多个数据包处理线程;接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;利用所述数据包处理线程处理对应数据缓冲区中的数据包;将处理后的数据包送到输出数据缓冲区中发送。
将处理后的数据包送到输出数据缓冲区中发送。
其中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
或者,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
所述目的地址包括目的IP地址和目的端口号。
还可以按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
所述方法还包括:设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
所述方法还包括:设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
本发明提供的数据发送装置,包括数据包输入单元、数据包分配单元、数据缓冲区组、数据输出单元和输出数据缓冲区,其特征在于还包括:第一线程存储单元,用于存储预先设置的多个数据包处理线程,所述数据包处理线程与所述数据缓冲区一一对应;
所述数据包分配单元,从所述数据包输入单元接收数据包,将所述数据包分别输入多个数据缓冲区;所述数据输出单元,将所述数据包处理线程处理后的数据包送到所述输出数据缓冲区中发送。
其中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
或者,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
所述目的地址包括目的IP地址和目的端口号。
还可以按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
所述装置还包括:用于存储多个数据包分配线程的第二线程存储单元,所述数据包分配线程用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
所述装置还包括:用于存储多个数据包发送线程的第三线程存储单元,所述数据包发送线程用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
由于本发明设置多个数据包处理线程,使每个数据缓冲区对应一个数据包处理线程,使得能够利用所述数据包处理线程处理对应数据缓冲区中的数据包,由于线程具有并发处理的特性,能够充分利用系统CPU资源处理数据包,因此能够最大限度地提高数据包处理和数据包发送的效率,具有较低的数据发送延迟。
更进一步,由于本发明可以按照对数据包的操作设置数据包处理线程,或者按照数据包发送的目的地址设置数据包处理线程,或者按照数据包优先级的级数设置数据包处理线程,上述方案的单独或组合使用,不但使本发明更具有应用的灵活性,还能够更充分的利用系统CPU和存储资源,进一步提高数据包处理的效率。
另外,本发明采取的设置多个数据包分配线程,以及为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,和设置多个数据包发送线程的改进方案,更能够帮助促进系统资源的更充分的利用,从而最大限度地提高系统的数据传输性能。
附图说明
图1是一个数据传输系统示例图;
图2是图1所示系统的数据处理设备的数据处理方法原理图;
图3是本发明所述跨系统数据及信号传递的方法的一个实施例的流程图;
图4是本发明一个实施例的数据包处理线程与数据缓冲区的关系图;
图5为本发明的实施例采用的数据包分配线程工作原理图;
图6是本发明所述数据发送方法的一个实施例的流程图;
图7是本发明所述数据发送装置的第一实施例框图;
图8是本发明所述数据发送装置的第二实施例框图;
图9是本发明所述数据发送装置的第三实施例框图。
具体实施方式
参考图2,按照传统方法处理数据包,数据包的发送延时几乎是不可避免的,首先,数据包按照优先级输入相应数据缓冲区的判断要逐个进行;其次,从数据缓冲区中调度出来的数据包无论是否进行压缩,都要按照优先级的原则发送或者混合编码发送;延迟的主要原因是顺序或串行的处理方式导致的。
本发明采用多线程处理的方式,充分利用系统的资源并行处理待发送的数据包,从而能够减少数据发送的延迟。具体的实施例可以参考图3。按照图3,为了实现对数据包的并发处理,需要预先设置多个数据包处理线程,当所述设置的线程的个数与要处理的任务数量相适应时,能够充分利用系统的资源。在本实施例中,由于要处理的数据包存储在不同的数据缓冲区中,因此预先设置的数据包处理线程的个数与数据缓冲区的个数相同。事实上,所述数据包处理线程的个数与数据缓冲区的个数不相同,使一个数据包处理线程处理两个数据缓冲区的数据包,或者,使二个数据包处理线程处理一个数据缓冲区的数据包,等等,也能够实现本发明。
以所述预先设置的多个数据包处理线程为基础,就可以在步骤31接收数据包,然后在步骤32将所述接受大数据包分别输入多个数据缓冲区中对应数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;最后在步骤33由所述数据包处理线程处理其对应的队列中的数据包。在本例中,为了提高数据包的发送效率,将具有相同目的地址的数据包采用同一个的数据包发送线程处理,因此,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的队列。
由于缓冲区的最本质的任务是暂存等待处理的数据,因此,其设置的关键在于兼顾使用的灵活性、效率以及数据处理的需求,因此缓冲区的数量和每个缓冲区的容量应当根据系统的数据处理需求设置,例如,当系统的突发数据量较少时,每个缓冲区的容量可以小一些,数量也可以少一些;而在数据的种类或等级较多时,缓冲区的数量可以多一些,此时缓冲区的容量要根据突发数据量或数据的平均暂存时间设置,等等。因此,本实施例设置两个以上的缓冲区。
其次,为了有效使用缓冲区,使缓冲区之间具有独立和组合双重性质,需要要对所述多个缓冲区进行有效的管理。本实施例将所述缓冲区组织成一个环形队列(在本发明的另一个实施例中,将所述缓冲区组织成一个先进先出队列),因此在本步骤还设置用于指示和标识所述缓冲区的数据表,用于对所述缓冲区进行管理。在所述数据表中至少设置用于标识缓冲区的名称字段,用于作为指向该缓冲区的地址指针字段,以及指向所述缓冲区当前单元的、用于管理所述缓冲区的存储单元字段。在本发明的另外的实施例中,数据表设置为两个,分别用于缓冲区的静态和动态管理。实际上,将所述缓冲区组织成一个队列进行管理也是通过对所述数据表的操作实现的。
当所述缓冲区正常使用时,按照预先设定的使用条件或数据处理的条件对缓冲区进行使用和管理。所述缓冲区的使用和管理时分不开的,因此要判断所述缓冲区是否满足数据处理的条件,如果满足,就要对所述缓冲区进行数据处理,以及利用所述数据表对所述缓冲区进行管理,否则继续其它的数据处理。
在通常的通信协议规定中,用于包装数据的数据结构通常有发出数据的源终端和接收数据的目的终端的地址,以使终端能够正确接收数据以及进行各种反馈。例如,IP协议规定的IP数据包,TCP协议规定的TCP数据包,UDP协议规定的UDP数据包,尽管它们由于不同的数据传输目的而设置,具有不同的结构,但是在数据包中,例如在包头中,都记载有源地址和目的地址等信息。本实施例涉及的数据包,其中记载的目的地址就包括目的IP地址和目的端口号两部分。因此,本实施例采用的数据缓冲区的个数与其涉及的目的地址的组数是相同的。例如,应用本实施例的数据处理设备涉及或连接着9个其它的能够进行数据包收发的数据处理设备,因此,这十个数据处理设备中的任意一个,都以其它9个数据处理设备作为目的端点,因此,对应设置的数据缓冲区的个数也是9个,每一个数据处理设备对应其中的一个数据缓冲区。在本实施例中,一个数据处理设备及其连接的所有终端的地址被视为相同的目的地址,这样便于采用一个数据缓冲区处理到相同目的地数据处理设备的数据包。实际上,按照二个数据处理设备对应一个数据缓冲区,进而对应一个数据包处理线程的方法设置所述数据包处理线程,或者按照一个数据处理设备对应二个数据缓冲区,进而对应二个数据包处理线程的方法设置所述数据包处理线程,都可以实现本发明的思想。
在另外的实施例中,所述的数据缓冲区也可以是一组,这样可以增加针对一个数据处理设备的数据包处理的灵活性。即,所述数据缓冲区包括多个并列的子数据缓冲区,同时,为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,用于处理所述子数据缓冲区中的数据。实际中,每一个数据缓冲区需要设置多少个子数据缓冲区,以及是否需要设置子数据缓冲区根据实际的需要确定,例如目的数据处理装置连接有5个终端,就可能在所述数据处理装置对应的数据缓冲区中设置5个并列的子数据缓冲区,而另一个数据处理装置连接有10个终端,就有可能在其对应的数据缓冲区中设置10个并列的子数据缓冲区。相应的,所述子数据缓冲区对应的子线程也要根据操作的需要预先设置。同理,也可以多个终端对应一个子数据缓冲区,进而对应一个子线程,或者,一个终端的数据包由于操作的不同等因素,而使一个终端对应多个子数据缓冲区,进而对应多个子线程。
需要指出的是,所述数据包处理线程及子线程的个数受系统内存空间大小的约束,实际中,可以通过隔离所述数据包处理线程的内存空间的方法辅助设置数据包处理线程或子线程,例如为一个具体的线程或子线程配置内存空间的地址范围或标志来实现所述隔离。
按照数据包的目的地址设置数据包处理线程只是实现数据包并发及并行处理的一种方式,在本发明另外的实施例中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的队列,也是其中的一种方式。也就是说,划分对数据包的不同操作,进行相同操作的数据包采用相同的线程处理,不同的操作对应不同的线程。在该实施例中,将数据包的处理分为拆包、数据转换、编码压缩三个操作,其中,拆包是将接收到的IP数据包中的目的地址、目的端口号、具体的数据等等取出;所述数据转换是将上一步骤得到的有意义的数据转换为便于压缩编码的无意义的数据;所述编码压缩是对转换后的数据进行压缩编码,生成具体的传输数据。参考图4。接收到的数据包首先在第一数据缓冲区中由线程1完成拆包操作,拆包后的数据被线程1送到第二数据缓冲区;所述第二数据缓冲区中的数据由线程2完成数据转换操作,转换后的数据被线程2送到第三数据缓冲区;线程3对所述第三数据缓冲区中的数据完成编码压缩后输出。
根据常识可知,根据数据缓冲区的数据的不同,每一个数据缓冲区实际上可能是由具有更小存储单元组成的串行存储单元队列,或者由较小存储单元并列组成的空间更大的存储单元。在本实施例中,这些数据缓冲区具有串行关系,而在图3所示的实施例中,所述数据缓冲区具有并行的关系,对于本实施例来说,尽管物理上为串行关系,但在数据处理时确是多个线程构成的并行处理关系。
在本发明的第三个实施例中,按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的队列。该实施例在涉及服务质量(QoS)保证的传输中有重要意义。由于数据包具有传输效率的约定,因此,为不同终端或不同用户的数据包设置优先级,以保证该数据包的传输效率。数据包传输效率的实现,一种措施是保证数据传输的优先,在本实施例中,体现的是数据处理的优先。因此,根据数据包具有的优先级,将优先级分组,即将所述数据包划分为若干个等级,数据缓冲区的设置与所述等级相对应,在设置数据包处理线程时,使数据包处理线程的个数与所述数据缓冲区的个数相同,由于不同数据缓冲区中的数据包的优先等级不同,本实施例中,为优先等级高的数据缓冲区设置的数据包处理线程分配较多的系统资源,例如较长的CPU(中央处理器)的时间片,从而使优先等级高的数据缓冲区对应的线程占有较多的CPU资源处理数据缓冲区中的数据包。
需要指出的是,在本发明的方法具体实施时,上述数据包处理线程的设置方案可以混合采用,例如,按优先级设置与按目的地址设置的方式就可以混合在一起,比如,目的地址相同的数据包,优先级可能不同,因此可以考虑将一个目的数据处理设备对应的数据缓冲区划分为多个优先等级不同的子数据缓冲区,这样能够方便数据包输出是按照优先级调度。同理,按优先级设置与按对数据包的操作设置的方式也可以混合在一起,在保证操作顺序的前提下,需要较长时间处理的数据部分可以获得高优先级的处理,从而实现整体数据包处理过程中的协调。等等。
例如,本实施例中,数据包的优先级为5级,分别为a、b、c、d、e,将其分为三组,即三个等级,分别为A、B、C,其中,级别a、b对应等级A,级别c、d对应等级B,级别e对应等级C,为等级A、B、C设置的数据包处理线程分别为线程A、线程B、线程C,线程A占用的CPU时间片最大,而线程C占用的CPU时间片最小,从而保证对级别为a、b的数据包处理的速度最快,能够优先处理完毕并通过发送数据缓冲区优先发送。在本实施例中,所述数据缓冲区物理上的关系为并行关系。
在上面提到的实施例中,可以更进一步的改进,将每一个数据缓冲区分为两部分,第一部分用于存储待处理的数据包,第二部分用于存储处理后的数据包。上面所述数据包处理线程对应的是第一部分,而第二部分需要后续的线程处理,或者设置单独的线程处理。
更进一步,对上述实施例还可以采用下述更进一步的改进:
1、将所述数据缓冲区设置为多个子数据缓冲区,所述子数据缓冲区物理上可以如前文所述的并行关系或串行关系,但是由于并行处理,其之间的关系实质上为并列关系。所述并列关系体现在为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,这些子线程用于并行或并发处理所述子数据缓冲区中的数据包。
2、设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。这里所述数据包分配线程具有相同的操作和功能,可以与上述提到的任何一个具体实施例结合起来处理数据包进入数据缓冲区前的分配数据缓冲区的处理。参考图5,接收到的数据包首先被送入到输入数据缓冲区中,并发操作的多个数据包分配线程从所述输入数据缓冲区取出数据包进行判断或其他规定的操作,进而将所述处理完毕的数据送入到相应的数据缓冲区中。或者,还可以采用另外的处理方式,首先采用一个数据包分配线程处理接收到的数据包,此时,其它数据包分配线程的CPU资源释放给系统的其它线程使用,当一个数据包分配线程不足以处理接收到的数据包时,再启动其它的数据包分配线程,从而通过线程的按需使用,实现系统资源的合理共享。
3、设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。在具有多个数据发送通道的前提下,设置多个数据包发送进程能够加快数据包的发送速度。与该思想相对应,可以将输出数据缓冲区设置为多个并列的子缓冲区,以与多个数据包发送线程对应。在数据包发送过程中,也可以通过线程的按需使用,实现系统资源的合理共享。即,先采用一个数据包发送线程发送输出缓冲区中的数据包,其它数据包发送线程的CPU资源释放给系统的其它线程使用,当一个数据包发送线程不足以发送所述输出数据缓冲区中的数据包时,再启动其它的数据包发送线程发送数据包。
图6是本发明所述数据发送方法的一个实施例的流程图。图6所示实施例包括4个步骤,同样,为了实现图4所示实施例,也需要预先设置多个数据包处理线程。在本实施例中,预先设置的数据包处理线程的个数与数据缓冲区的个数相同。同样,所述数据包处理线程的个数与数据缓冲区的个数不相同,使一个数据包处理线程处理两个数据缓冲区的数据包,或者,使二个数据包处理线程处理一个数据缓冲区的数据包等等,也能够实现本发明。
按照图6,首先在步骤61接收数据包,然后在步骤62将所述接受大数据包分别输入多个数据缓冲区中对应数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;在步骤63由所述数据包处理线程处理其对应的队列中的数据包,最后在步骤64将处理后的数据包送到输出数据缓冲区中,由后续的进程调度发送。
在本例中,为了提高数据包的发送效率,将具有相同目的地址的数据包采用同一个的数据包发送线程处理,因此,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的队列。
所述的目的地址包括目的IP地址和目的端口号两部分。通过接收到的要发送的数据包中的目的地址,将发送到同一个数据处理设备的数据包暂存到同一个数据缓冲区中,经过处理后,例如编码压缩,以新的数据包发送到目的数据处理设备,由该数据处理设备解码解压缩后再逐步分发到目的终端(可能经过多个中间节点)。
在本发明另外的实施例中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。即,划分对数据包的不同操作,使进行相同操作的数据包采用相同的线程处理,不同的操作对应不同的线程。
在本发明的第三个实施例中,按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的队列。
上述数据包处理线程的设置方案可以混合采用,例如,按优先级设置与按目的地址设置的方式就可以混合在一起,或者,按优先级设置与按对数据包的操作设置的方式也可以混合在一起,等等。
在上面提到的实施例中,可以更进一步的改进,将每一个数据缓冲区分为两部分,第一部分用于存储待处理的数据包,第二部分用于存储处理后的数据包。上面所述数据包处理线程对应的是第一部分,而第二部分需要后续的线程处理,或者设置单独的线程处理。
更进一步,对上述实施例还可以采用下述更进一步的改进:
1、将所述数据缓冲区实质为多个子数据缓冲区,并且为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,这些子线程用于并行或并发处理所述子数据缓冲区中的数据包。
2、设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。这里所述数据包分配线程具有相同的操作和功能,可以与上述提到的任何一个具体实施例结合起来处理数据包进入数据缓冲区前的分配数据缓冲区的处理。
3、设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。在具有多个数据发送通道的前提下,设置多个数据包发送进程能够加快数据包的发送速度。
以图6为例,由于本发明所述的数据发送方法中主要包括了跨系统数据及信号传递的方法,且所述跨系统数据及信号传递的方法前文已经有详细的说明,因此,有关本发明所述的数据发送方法的实施例的详细内容可以参考前文。
图7是本发明所述数据发送装置的第一实施例框图。图7所示的数据发送装置,包括数据包输入单元71、数据包分配单元72、数据缓冲区组73、数据包输出单元75和输出数据缓冲区76,以及第一线程存储单元74,用于存储预先设置的多个数据包处理线程,所述数据包处理线程与所述数据缓冲区组73中的数据缓冲区一一对应;
所述数据包分配单元72,从所述数据包输入单元71接收数据包,根据预先设定的条件判断,将所述数据包分别输入数据缓冲区组73中的多个数据缓冲区;所述数据输出单元75给出通知系统启动第一线程存储单元74中的相应线程处理所述数据缓冲区中的数据包,并将处理后的数据包送到所述输出数据缓冲区76中发送。
在图7所示实施例中,对数据缓冲区组73中的数据缓冲区的监控以及通知系统启动第一线程存储单元74中的相应线程由数据输出单元75完成,然而在另外的实施例中,这些操作由数据包分配单元72完成,或者由系统的另外线程完成,此时,所述数据输出单元75仅仅用于处理后的数据打包以及将打包后的数据包向输出数据缓冲区76中调度。
本实施例中,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。所述目的地址包括目的IP地址和目的端口号。在另外的实施例中,也可以按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。或者按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
上述数据包处理线程的设置方案可以混合采用,例如,按优先级设置与按目的地址设置的方式就可以混合在一起,比如,目的地址相同的数据包,优先级可能不同,因此可以考虑将一个目的数据处理设备对应的数据缓冲区划分为多个优先等级不同的子数据缓冲区,这样能够方便数据包输出是按照优先级调度。等等。
同样,对上述装置的实施例还可以采用下述更进一步的改进:
1、将所述数据缓冲区设置为多个子数据缓冲区,所述并列关系体现在为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,这些子线程用于并行或并发处理所述子数据缓冲区中的数据包。
2、设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
3、设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。这是在具有多个数据发送通道的前提下的改进方案,设置多个数据包发送进程能够加快数据包的发送速度。同样,也可以将输出数据缓冲区设置为多个并列的子缓冲区,以与多个数据包发送线程对应。在数据包发送过程中,也可以通过线程的按需使用,实现系统资源的合理共享。即,先采用一个数据包发送线程发送输出缓冲区中的数据包,其它数据包发送线程的CPU资源释放给系统的其它线程使用,当一个数据包发送线程不足以发送所述输出数据缓冲区中的数据包时,再启动其它的数据包发送线程发送数据包
图8示出了一个改进的方案,图8所示的是本发明所述数据发送装置的第二实施例框图。与图7不同的是,图8所示装置还包括一个用于存储多个数据包分配线程的第二线程存储单元77,所述数据包分配线程用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
图9示出了另一个改进的方案,图9所示的是本发明所述数据发送装置的第三实施例框图。与图8不同的是,图9所示装置还包括用于存储多个数据包发送线程的第三线程存储单元78,所述数据包发送线程用于将输出数据缓冲区中的数据包通过不同的数据通道发送。由于本实施例的具体实施细节在前文已经有详细的表述,在此不再详述。
Claims (10)
1.一种跨系统数据及信号传递的方法,其特征在于包括:
设置处理数据信号的线程池,该线程池处理系统间数据的发送和接收;
所述线程池中集合了多个数据包处理线程;
设置信号类型适配程序,根据已有的信号类型数据库,判断信号类型;
将所述数据包分别输入多个数据存储区或数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
将所述数据包处理线程处理对应数据缓冲区中的数据包,按照对数据包的操作设置数据包处理线程,并且按照对数据包的操作将所述数据分别输入到相应的数据存储区;
利用上述的信号类型适配程序,将所述数据存储区或缓冲区中的数据按照类型进行再编码;
将编码后的数据通过任何的通信协议进行广播传送。
2.如权利要求1所述的跨系统数据及信号传递的方法,其特征在于:所述再编码是指利用按照预定的结构或者算法从新编码的过程;
设置多个数据包处理线程;
接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
利用所述数据包处理线程处理对应数据缓冲区中的数据包;
将处理后的数据包送到输出数据缓冲区中发送。
3.如权利要求1或2所述的跨系统数据及信号传递的方法,其特征在于:
按照数据包发送的目的IP地址和目的端口号设置数据包处理线程,及按照数据包的目的IP地址和目的端口号将所述数据包分别输入到相应的数据缓冲区或数据存储区;
按照数据包发送的目的IP地址和目的端口号设置数据包处理线程,及按照数据包的目的IP地址和目的端口号将所述数据包进行数据类型的识别;
按照对数据包的操作设置数据包处理线程,及按照对数据包的操作将所述数据分别输入到相应的数据缓冲区或数据区;
按照数据包发送的目的地址设置数据包处理线程,及按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区或数据区。
4.如权利要求1或3所述的跨系统数据及信号传递的方法,其特征在于:按照数据包优先级的级数设置数据包处理线程,及按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区或数据区;
按照对数据包的操作设置数据包处理线程,及按照对数据包的操作将所述数据分别输入到相应的数据缓冲区或数据区;
按照数据包发送的目的地址设置数据包处理线程,及按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区或数据区。
5.如权利要求1、2、3或4所述的跨系统数据及信号传递的方法,其特征在于:隔离所述数据包处理线程的内存空间。
6.如权利要求1、2、3、4或5所述的跨系统数据及信号传递的方法,其特征在于还包括:将每一个数据缓冲区分为两部分,第一部分用于存储待处理的数据包,第二部分用于存储处理后的数据包。
7.如权利要求6所述的跨系统数据及信号传递的方法,其特征在于还包括:
设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区;
所述数据缓冲区包括多个并列的子数据缓冲区。
8.如权利要求6或7所述的跨系统数据及信号传递的方法,其特征在于还包括:为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,用于处理所述子数据缓冲区中的数据包。
9.如权利要求7或8所述的跨系统数据及信号传递的方法,其特征在于还包括:设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
10.如权利要求1、2、7、8或9所述的跨系统数据及信号传递的方法,其特征在于还包括:
设置处理数据信号的线程池,该线程池处理系统间数据的发送和接收;所述线程池中集合了多个数据包处理线程;设置信号类型适配程序,根据已有的信号类型数据库,判断信号类型;将所述数据包分别输入多个数据存储区或数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;将所述数据包处理线程处理对应数据缓冲区中的数据包,按照对数据包的操作设置数据包处理线程,并且按照对数据包的操作将所述数据分别输入到相应的数据存储区;利用上述的信号类型适配程序,将所述数据存储区或缓冲区中的数据按照类型进行再编码;将编码后的数据通过任何的通信协议进行广播传送;
设置多个数据包处理线程;接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;利用所述数据包处理线程处理对应数据缓冲区中的数据包;将处理后的数据包送到输出数据缓冲区中发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801861.4A CN106775961A (zh) | 2015-11-20 | 2015-11-20 | 一种跨系统数据及信号传递的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801861.4A CN106775961A (zh) | 2015-11-20 | 2015-11-20 | 一种跨系统数据及信号传递的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106775961A true CN106775961A (zh) | 2017-05-31 |
Family
ID=58914425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510801861.4A Pending CN106775961A (zh) | 2015-11-20 | 2015-11-20 | 一种跨系统数据及信号传递的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775961A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391090A (zh) * | 2017-07-28 | 2017-11-24 | 成都优博创通信技术股份有限公司 | 多线程执行方法及装置 |
CN108446183A (zh) * | 2018-04-13 | 2018-08-24 | 广东亿迅科技有限公司 | 基于消息分发的处理方法及装置 |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
WO2020024961A1 (zh) * | 2018-08-01 | 2020-02-06 | 华为技术有限公司 | 数据处理方法、设备及系统 |
-
2015
- 2015-11-20 CN CN201510801861.4A patent/CN106775961A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391090A (zh) * | 2017-07-28 | 2017-11-24 | 成都优博创通信技术股份有限公司 | 多线程执行方法及装置 |
CN107391090B (zh) * | 2017-07-28 | 2020-04-17 | 成都优博创通信技术股份有限公司 | 多线程执行方法及装置 |
CN108446183A (zh) * | 2018-04-13 | 2018-08-24 | 广东亿迅科技有限公司 | 基于消息分发的处理方法及装置 |
WO2020024961A1 (zh) * | 2018-08-01 | 2020-02-06 | 华为技术有限公司 | 数据处理方法、设备及系统 |
US11463346B2 (en) | 2018-08-01 | 2022-10-04 | Huawei Technologies Co., Ltd. | Data processing method, device, and system |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN110727520B (zh) * | 2019-10-23 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961741B (zh) | 一种上行资源分配方法和装置 | |
CN101668005B (zh) | 一种基于发送端多接入通道的数据传输加速引擎方法 | |
CN101621460B (zh) | 一种分组调度方法和装置 | |
CN104378308A (zh) | 报文发送速率检测方法及装置 | |
CN106775961A (zh) | 一种跨系统数据及信号传递的方法 | |
CN103580842A (zh) | 一种多类型无线链路并行传输的方法和系统 | |
CN108156628A (zh) | 一种资源分配的方法、设备和系统 | |
CN102195885A (zh) | 报文处理方法及装置 | |
CN104427625A (zh) | 一种基于用户体验的网络资源调度方法及系统 | |
CN101120612A (zh) | 无线基站、控制装置以及无线通信方法 | |
CN110851252A (zh) | 一种基于tsn架构的规约转换设备和规约转换方法 | |
CN107306192A (zh) | 一种业务数据传输方法、装置和系统 | |
CN100525245C (zh) | 一种用于多业务分组数据调度的装置和方法 | |
CN114710571B (zh) | 数据包处理系统 | |
CN101990271A (zh) | 一种基站与终端间的通信方法及一种无线通信基站、系统 | |
CN104780118A (zh) | 一种基于令牌的流控方法及装置 | |
CN102111237A (zh) | 云转码系统及其云转码方法 | |
CN101854622B (zh) | 一种高速上行分组接入终端及其数据传输方法 | |
CN104661315B (zh) | 一种上报缓存状态报告的方法及用户设备 | |
CN102802200A (zh) | 一种数据报文的发送方法和设备 | |
CN101808117B (zh) | 一种通信中时间标签业务数据的构造及服务方法 | |
CN105873223A (zh) | 业务调度方法、装置、无线网络控制器及基站 | |
CN105337832A (zh) | 在线多播虚拟网络的资源分配方法 | |
CN109413598B (zh) | 一种资源分配与管理的方法及装置 | |
CN106790320A (zh) | 一种多应用系统间数据推送的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170531 |