CN1905531A - 待发送数据的处理方法以及数据发送方法、装置 - Google Patents
待发送数据的处理方法以及数据发送方法、装置 Download PDFInfo
- Publication number
- CN1905531A CN1905531A CNA2006101096280A CN200610109628A CN1905531A CN 1905531 A CN1905531 A CN 1905531A CN A2006101096280 A CNA2006101096280 A CN A2006101096280A CN 200610109628 A CN200610109628 A CN 200610109628A CN 1905531 A CN1905531 A CN 1905531A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- thread
- processing
- packets
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种待发送数据的处理方法,首先设置多个数据包处理线程,然后接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程,利用所述数据包处理线程处理对应数据缓冲区中的数据包。本发明能够充分利用系统CPU资源处理数据包,因此能够最大限度地提高数据包处理和数据包发送的效率,具有较低的数据发送延迟。本发明还提供了一种基于上述方法的数据发送方法以及数据发送装置。
Description
技术领域
本发明涉及一种数据处理方法和一种数据发送方法以及数据发送装置。
背景技术
在数据传输系统中,数据发送端为了快速有效地将数据发送到数据接收端,通常要采取很多措施,例如对待发送的数据进行编码压缩、对待发送的数据进行数据缓冲区的分配等处理。一种常见的处理方法是将数据按照重要性或预先确定的权值分类,确定发送优先级,再将优先级不同的数据分配优先等级不同的队列发送。图1是一个数据传输系统示例图。图1中,每一个服务器都连接着多台终端,一个终端通过互联网发送到另一个终端的数据,需要通过与之连接的服务器发送到数据处理设备,经过数据处理设备的处理发送到对端的数据处理设备,进而发送到目的终端。图1中,数据处理设备发送的数据需要经过适当的处理,而非简单的按序发送。
图2是图1所示系统的数据处理设备的数据处理方法原理图。按照图2,汇集到数据处理设备的数据通常按照某种通信协议将数据包装为具体的数据包,所述数据包经过服务器汇集到数据处理设备,所述数据处理设备的优先级判断单元按照预先设定的标准判断所述数据包的优先级,然后将所述数据包送到数据缓冲区组中的相应优先级的数据缓冲区中,最后由所述数据发送单元调度发送。在大部分的数据传输系统中,数据发送前的处理,一是如图2所示将数据包划分优先级,然后按照优先级的顺序发送。如果要压缩数据包,减少发送的数据量,则要在优先级判断单元的前面或后面增加一个编码压缩单元,将数据包分别编码压缩后再按照其优先级分配到所述的优先级队列。或者,在数据发送装置的前面增加一个编码压缩单元,使数据包的编码压缩既可以针对具体的分级数据包,也可以将从不同的优先级队列中调度出的不同的数据包进行混合的编码压缩后发送。在一个具体的应用中,所述优先级判断装置可以拆分为数据包输入单元和数据包分配单元,而数据发送装置可以拆分为数据输出单元和输出数据缓冲区。
由上可知,现有的待发送数据的处理方法无论是优先级队列的分配还是数据的编码压缩,都是顺序进行的,由于数据的调度、压缩等处理操作消耗的时间较多,使得优先级队列的串行处理产生的延迟导致物理链路的大量传输资源空闲。这样,不但使得一些优先级较低数据包的发送延迟较大,即使对于优先级较高的数据来说,也可能导致数据发送的延迟。
发明方案
本发明要解决的技术问题在于提供一种数据发送延迟较低的待发送数据的处理方法以及数据发送方法、数据发送装置。
本发明提供的待发送数据的处理方法,包括:
设置多个数据包处理线程;
接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
利用所述数据包处理线程处理对应数据缓冲区中的数据包。
其中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
也可以按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
所述目的地址包括目的IP地址和目的端口号。
还可以按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
而且,隔离所述数据包处理线程的内存空间。
另外,将每一个数据缓冲区分为两部分,第一部分用于存储待处理的数据包,第二部分用于存储处理后的数据包。
所述方法还包括:设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
所述方法还包括:所述数据缓冲区包括多个并列的子数据缓冲区。
为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,用于处理所述子数据缓冲区中的数据包。
所述方法还包括:设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
本发明提供的数据发送方法,包括:
设置多个数据包处理线程;
接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
利用所述数据包处理线程处理对应数据缓冲区中的数据包;
将处理后的数据包送到输出数据缓冲区中发送。
其中,按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
或者,按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
所述目的地址包括目的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 (25)
1、一种待发送数据的处理方法,其特征在于包括:
设置多个数据包处理线程;
接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
利用所述数据包处理线程处理对应数据缓冲区中的数据包。
2、如权利要求1所述的待发送数据的处理方法,其特征在于:按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
3、如权利要求1所述的待发送数据的处理方法,其特征在于:按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
4、如权利要求3所述的待发送数据的处理方法,其特征在于:所述目的地址包括目的IP地址和目的端口号。
5、如权利要求1所述的待发送数据的处理方法,其特征在于:按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
6、如权利要求1、2、3、4或5所述的待发送数据的处理方法,其特征在于:隔离所述数据包处理线程的内存空间。
7、如权利要求1、2、3、4或5所述的待发送数据的处理方法,其特征在于还包括:将每一个数据缓冲区分为两部分,第一部分用于存储待处理的数据包,第二部分用于存储处理后的数据包。
8、如权利要求7所述的待发送数据的处理方法,其特征在于还包括:设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
9、如权利要求8所述的待发送数据的处理方法,其特征在于:所述数据缓冲区包括多个并列的子数据缓冲区。
10、如权利要求9所述的待发送数据的处理方法,其特征在于还包括:为所述数据包处理线程设置多个与所述子数据缓冲区对应的子线程,用于处理所述子数据缓冲区中的数据包。
11、如权利要求10所述的待发送数据的处理方法,其特征在于还包括:设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
12、一种数据发送方法,其特征在于包括:
设置多个数据包处理线程;
接收数据包,将所述数据包分别输入多个数据缓冲区,使每个数据缓冲区对应一个数据包处理线程;
利用所述数据包处理线程处理对应数据缓冲区中的数据包;
将处理后的数据包送到输出数据缓冲区中发送。
13、如权利要求12所述的数据发送方法,其特征在于:
按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
14、如权利要求12所述的数据发送方法,其特征在于:
按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
15、如权利要求12所述的数据发送方法,其特征在于:所述目的地址包括目的IP地址和目的端口号。
16、如权利要求12所述的数据发送方法,其特征在于:
按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
17、如权利要求12、13、14、15或16所述的数据发送方法,其特征在于还包括:设置多个数据包分配线程,用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
18、如权利要求17所述的数据发送方法,其特征在于还包括:设置多个数据包发送线程,用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
19、一种数据发送装置,包括数据包输入单元、数据包分配单元、数据缓冲区组、数据输出单元和输出数据缓冲区,其特征在于还包括:第一线程存储单元,用于存储预先设置的多个数据包处理线程,所述数据包处理线程与所述数据缓冲区一一对应;
所述数据包分配单元,从所述数据包输入单元接收数据包,将所述数据包分别输入多个数据缓冲区;所述数据输出单元,将所述数据包处理线程处理后的数据包送到所述输出数据缓冲区中发送。
20、如权利要求19所述的数据发送装置,其特征在于:
按照对数据包的操作设置数据包处理线程,以及,按照对数据包的操作将所述数据分别输入到相应的数据缓冲区。
21、如权利要求19所述的数据发送装置,其特征在于:
按照数据包发送的目的地址设置数据包处理线程,以及,按照数据包的目的地址将所述数据包分别输入到相应的数据缓冲区。
22、如权利要求21所述的数据发送装置,其特征在于:所述目的地址包括目的IP地址和目的端口号。
23、如权利要求19所述的数据发送装置,其特征在于:
按照数据包优先级的级数设置数据包处理线程,以及,按照数据包的优先级将所述数据包分别输入到相应的数据缓冲区。
24、如权利要求19、20、21、22或23所述的数据发送装置,其特征在于还包括:用于存储多个数据包分配线程的第二线程存储单元,所述数据包分配线程用于判断接收到的数据包归属的数据缓冲区,以及将所判断的数据包发送到相应的数据缓冲区。
25、如权利要求24所述的数据发送装置,其特征在于还包括:用于存储多个数据包发送线程的第三线程存储单元,所述数据包发送线程用于将输出数据缓冲区中的数据包通过不同的数据通道发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101096280A CN1905531A (zh) | 2006-08-11 | 2006-08-11 | 待发送数据的处理方法以及数据发送方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101096280A CN1905531A (zh) | 2006-08-11 | 2006-08-11 | 待发送数据的处理方法以及数据发送方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1905531A true CN1905531A (zh) | 2007-01-31 |
Family
ID=37674661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101096280A Pending CN1905531A (zh) | 2006-08-11 | 2006-08-11 | 待发送数据的处理方法以及数据发送方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1905531A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056097A (zh) * | 2009-11-09 | 2011-05-11 | 华为技术有限公司 | 基于网关的消息发送方法及Parlay X网关 |
CN101527644B (zh) * | 2009-04-17 | 2011-07-20 | 腾讯科技(深圳)有限公司 | 一种通知消息的发送方法和装置 |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN103475586A (zh) * | 2013-08-22 | 2013-12-25 | 东软集团股份有限公司 | 网络数据报文的转发方法、装置及系统 |
CN104380669A (zh) * | 2012-06-18 | 2015-02-25 | 西门子公司 | 在通讯网络中传输数据包的方法和通讯网络 |
CN104506959A (zh) * | 2014-12-15 | 2015-04-08 | 广东威创视讯科技股份有限公司 | 一种h264码流分包传输方法及系统 |
CN104735096A (zh) * | 2013-12-18 | 2015-06-24 | 博雅网络游戏开发(深圳)有限公司 | 消息推送请求的发送方法和系统 |
CN105471703A (zh) * | 2014-08-27 | 2016-04-06 | 北京奇虎科技有限公司 | 一种消息发送方法及装置 |
CN105512079A (zh) * | 2015-12-12 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线多通道流数据并行组包方法 |
CN106648974A (zh) * | 2016-11-16 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种数据备份方法及移动终端 |
CN107704767A (zh) * | 2016-08-08 | 2018-02-16 | 北大方正集团有限公司 | 数据生成方法和数据生成装置 |
CN108111870A (zh) * | 2017-12-28 | 2018-06-01 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种视频处理方法及装置 |
CN108536535A (zh) * | 2018-01-24 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种dns服务器及其线程控制方法和装置 |
WO2019029220A1 (zh) * | 2017-08-10 | 2019-02-14 | 华为技术有限公司 | 网络设备 |
CN112256208A (zh) * | 2020-11-02 | 2021-01-22 | 南京云信达科技有限公司 | 一种离线数据包存储分析方法及装置 |
CN113535664A (zh) * | 2021-09-14 | 2021-10-22 | 深圳兆瑞优品科技有限公司 | 一种基于数据页预加载的数据库数据同步方法 |
CN113612856A (zh) * | 2021-08-19 | 2021-11-05 | 白杰 | 待发送数据的处理方法及发送数据的方法 |
-
2006
- 2006-08-11 CN CNA2006101096280A patent/CN1905531A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527644B (zh) * | 2009-04-17 | 2011-07-20 | 腾讯科技(深圳)有限公司 | 一种通知消息的发送方法和装置 |
CN102056097A (zh) * | 2009-11-09 | 2011-05-11 | 华为技术有限公司 | 基于网关的消息发送方法及Parlay X网关 |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN102137027B (zh) * | 2011-05-03 | 2013-07-31 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN104380669B (zh) * | 2012-06-18 | 2017-09-15 | 西门子公司 | 在通讯网络中传输数据包的方法和通讯网络 |
CN104380669A (zh) * | 2012-06-18 | 2015-02-25 | 西门子公司 | 在通讯网络中传输数据包的方法和通讯网络 |
US9585053B2 (en) | 2012-06-18 | 2017-02-28 | Siemens Aktiengesellschaft | Communication network and method for transmitting data packets in the communication network |
CN103475586B (zh) * | 2013-08-22 | 2016-05-04 | 东软集团股份有限公司 | 网络数据报文的转发方法、装置及系统 |
CN103475586A (zh) * | 2013-08-22 | 2013-12-25 | 东软集团股份有限公司 | 网络数据报文的转发方法、装置及系统 |
CN104735096A (zh) * | 2013-12-18 | 2015-06-24 | 博雅网络游戏开发(深圳)有限公司 | 消息推送请求的发送方法和系统 |
CN105471703A (zh) * | 2014-08-27 | 2016-04-06 | 北京奇虎科技有限公司 | 一种消息发送方法及装置 |
CN104506959A (zh) * | 2014-12-15 | 2015-04-08 | 广东威创视讯科技股份有限公司 | 一种h264码流分包传输方法及系统 |
CN105512079A (zh) * | 2015-12-12 | 2016-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线多通道流数据并行组包方法 |
CN105512079B (zh) * | 2015-12-12 | 2018-07-03 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线多通道流数据并行组包方法 |
CN107704767A (zh) * | 2016-08-08 | 2018-02-16 | 北大方正集团有限公司 | 数据生成方法和数据生成装置 |
CN106648974A (zh) * | 2016-11-16 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种数据备份方法及移动终端 |
WO2019029220A1 (zh) * | 2017-08-10 | 2019-02-14 | 华为技术有限公司 | 网络设备 |
US11165710B2 (en) | 2017-08-10 | 2021-11-02 | Huawei Technologies Co., Ltd. | Network device with less buffer pressure |
CN108111870A (zh) * | 2017-12-28 | 2018-06-01 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种视频处理方法及装置 |
CN108536535A (zh) * | 2018-01-24 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种dns服务器及其线程控制方法和装置 |
CN112256208A (zh) * | 2020-11-02 | 2021-01-22 | 南京云信达科技有限公司 | 一种离线数据包存储分析方法及装置 |
CN113612856A (zh) * | 2021-08-19 | 2021-11-05 | 白杰 | 待发送数据的处理方法及发送数据的方法 |
CN113535664A (zh) * | 2021-09-14 | 2021-10-22 | 深圳兆瑞优品科技有限公司 | 一种基于数据页预加载的数据库数据同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1905531A (zh) | 待发送数据的处理方法以及数据发送方法、装置 | |
CN1162993C (zh) | 分配无线电资源的方法、无线电设备和无线电通信系统 | |
CN1360783A (zh) | 数据包的处理 | |
CN1525716A (zh) | 因特网广播系统和方法及因特网广播中继系统 | |
CN1615618A (zh) | 双向分包数据传输系统和方法 | |
CN1910868A (zh) | 用于控制队列缓冲器的方法及装置 | |
CN101039254A (zh) | 一种媒体数据重组方法以及组包服务器 | |
CN1801679A (zh) | 一种移动广播业务分发方法和系统 | |
CN1836411A (zh) | 会话中继设备和中继方法 | |
CN101034969A (zh) | 指示终端发送数据所采用的分组数据信道的方法 | |
CN1612501A (zh) | 利用复帧传送数据 | |
CN1897745A (zh) | 均衡发送mbms业务数据的方法 | |
CN1852249A (zh) | 一种实现组播业务的方法 | |
CN1925385A (zh) | 数据发送及接收系统 | |
CN101056252A (zh) | 压缩文件的传播方法 | |
CN1925458A (zh) | 一种网络端口地址转换的实现方法 | |
CN1885832A (zh) | 用于无线通信系统的分组调度方法和装置 | |
CN106775961A (zh) | 一种跨系统数据及信号传递的方法 | |
CN1905570A (zh) | 一种多级远端无线设备的标识方法及装置 | |
CN1499751A (zh) | 数据发射装置、发射和接收数据的方法及数据通信系统 | |
CN1728698A (zh) | 并行结构保序流量平衡系统及基于流分类的报文调度方法 | |
CN1946231A (zh) | 一种无线接入系统下行链路资源调度的方法和装置 | |
CN1905516A (zh) | 一种分配双向转发检测会话鉴别符的方法 | |
CN1756258A (zh) | 信息传输方法 | |
CN101047884A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20070131 |