CN102662907B - 多处理器环境下的tcp连接的指标获取方法及装置 - Google Patents

多处理器环境下的tcp连接的指标获取方法及装置 Download PDF

Info

Publication number
CN102662907B
CN102662907B CN201210054414.3A CN201210054414A CN102662907B CN 102662907 B CN102662907 B CN 102662907B CN 201210054414 A CN201210054414 A CN 201210054414A CN 102662907 B CN102662907 B CN 102662907B
Authority
CN
China
Prior art keywords
data
module
list
tcp
connects
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.)
Active
Application number
CN201210054414.3A
Other languages
English (en)
Other versions
CN102662907A (zh
Inventor
唐济生
蒋浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210054414.3A priority Critical patent/CN102662907B/zh
Publication of CN102662907A publication Critical patent/CN102662907A/zh
Application granted granted Critical
Publication of CN102662907B publication Critical patent/CN102662907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提出一种多处理器环境下的工作在内核层的TCP连接的指标获取方法及装置。其中所述方法包括以下步骤:向缓存模块请求获得指向信息条目的指针;从skb获取TCP连接数据包中的第一数据;将第一数据保存到指针指向的信息条目中;从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据;将第二数据存储到日志缓存中;以及将日志缓存中的第二数据写入日志文件。根据本发明实施例的方法,可进行模块的灵活加载、卸载;效率高、抓包率高、数据准确率高,可保证不丢失数据;可轻松获取更深层次的TCP连接数据;设计精简,在低消耗(如低CPU占用)的前提下,获取所需的全部数据;直接通过内核线程输出数据来完成,无复制、效率高。

Description

多处理器环境下的TCP连接的指标获取方法及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种多处理器环境下工作在内核层的TCP连接的指标获取方法及装置。
背景技术
现有技术在TCP流量监控、TCP连接指标获取或者深度剖析TCP连接时,在应用层通过复制底层数据包并进行相应处理。
现有技术存在以下缺点:(1)效率低,在将数据包复制到应用层时逻辑复杂并且效率低下,同时取样率低使得分析结果不准确;(2)无法获取TCP连接中更深层次的数据,从而无法实现及指导TCP连接的优化。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种效率高、抓包率高、数据准确率高及低消耗的多处理器环境下的TCP连接的指标获取方法。
本发明的另一目的在于提出一种多处理器环境下的TCP连接的指标获取装置。
为了实现上述目的,根据本发明的第一方面实施例的多处理器环境下的TCP连接的指标获取方法包括以下步骤:向缓存模块请求获得指向信息条目的指针;从skb获取TCP连接数据包中的第一数据;将所述第一数据保存到所述指针指向的信息条目中;从所述信息条目读取所述第一数据并将所述信息条目中的所述第一数据转换为第二数据;将所述第二数据存储到日志缓存中;以及将所述日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的TCP连接的指标获取方法,以抓包的方式获取TCP连接的原始数据以及计算出所需的第二数据,在内核态的IP层实现TCP连接指标的获取,具有以下的优点:(1)可以进行模块的灵活加载、卸载;(2)由于工作在底层,因此效率高、抓包率高、数据准确率高,可以保证不丢失数据;(3)可以轻松获取更深层次的TCP连接数据,便于TCP优化;(4)设计精简,降低系统消耗,在低消耗(如低处理器占用)的前提下,获取所需的全部数据。
为了实现上述目的,根据本发明的第二方面的实施例的多处理器环境下的TCP连接的指标获取装置包括:缓存模块,所述缓存模块用于存储信息条目;请求模块,所述请求模块用于向所述缓存模块请求获得指向信息条目的指针;获取模块,所述获取模块用于从skb获取TCP连接数据包中的第一数据;保存模块,所述保存模块用于将所述第一数据保存到所述指针指向的信息条目中;读取模块,所述读取模块用于从所述信息条目读取所述第一数据并将所述信息条目中的所述第一数据转换为第二数据;存储模块,所述存储模块用于将所述第二数据存储到日志缓存中;以及写入模块,所述写入模块用于将所述日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的TCP连接的指标获取装置,以抓包的方式获取TCP连接的原始数据以及计算出所需的第二数据,在内核态的IP层实现TCP连接指标的获取,具有以下的优点:(1)可以实现模块的灵活加载、卸载;(2)由于工作在底层,因此该装置的效率高、抓包率高、数据准确率高,可以保证不丢失数据;(3)可以轻松获取更深层次的TCP连接数据,便于TCP优化;(4)设计精简,系统消耗低,可以在低消耗(如低CPU占用)的前提下获取所需的全部数据。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图2是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图3是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图4是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图5是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图6是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图7是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图8是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图;
图9是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图;
图10是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图;
图11是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图;
图12是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图;
图13是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图;以及
图14是根据本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考说明书附图描述根据本发明实施例的多处理器环境下的TCP连接的指标获取方法。
一种多处理器环境下的TCP连接的指标获取方法,包括以下步骤:向缓存模块请求获得指向信息条目的指针;从skb获取TCP连接数据包中的第一数据;将第一数据保存到指针指向的信息条目中;从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据;将第二数据存储到日志缓存中;以及将日志缓存中的第二数据写入日志文件。
图1为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图1所示,根据本发明实施例的多处理器环境下工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S101,向缓存模块请求获得指向信息条目的指针。
其中,信息条目(info entry)为一种数据结构,用于保存一个数据输入输出流的相关数据,例如可以用于保存一个TCP数据包的相关数据。
步骤S102,从skb获取TCP连接数据包中的第一数据。
具体地,在skb(Socket Buffer,套接字缓冲区)上保存了网络实际传输中的TCP连接的原始数据即第一数据,从skb获取TCP连接数据包中的第一数据包括以下信息:源IP地址、目的IP地址、TCP连接开始时间、TCP连接结束时间、TCP连接结束原因、TCP连接过程中接收的数据总量、TCP连接过程中发送的数据总量、HTTP协议层的返回码、TCP连接窗口大小、TCP连接数据包重传的数量(重传是指重复传输一次数据包)。
在本发明的一个实施例中,从skb获取TCP连接数据包中的第一数据之后,首先从第一数据的数据特征判断该第一数据是否需要后续处理,如果不需要后续处理则直接将其写入日志文件,如果需要后续处理则继续执行步骤S103。
步骤S103,将第一数据保存到指针指向的信息条目中。
步骤S104,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
在本发明的一个实施例中,第二数据是文本类型数据。具体地,在从信息条目读取第一数据的同时将信息条目中的第一数据从二进制型数据转换为文本类型的第二数据,其中转换后的第二数据包括以下信息:源IP地址、目的IP地址、TCP连接开始时间、TCP连接结束时间、TCP连接结束原因、TCP连接持续时间、TCP连接过程中接收的数据总量、TCP连接过程中接收数据的平均速度/峰值速度/阶段性速度、TCP连接过程中发送的数据总量、TCP连接过程中发送数据的平均速度/峰值速度/阶段性速度、HTTP协议层的返回码、TCP连接窗口大小、TCP连接数据包重传的数量。
步骤S105,将第二数据存储到日志缓存中。
步骤S106,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,以抓包的方式获取TCP连接的原始数据以及计算出所需的第二数据,在内核态的IP层实现TCP连接指标的获取,具有以下的优点:(1)可以进行模块的灵活加载、卸载;(2)由于工作在底层,因此效率高、抓包率高、数据准确率高,可以保证不丢失数据;(3)可以轻松获取更深层次的TCP连接数据,便于TCP优化;(4)设计精简,降低系统消耗,在低消耗(如低处理器占用)的前提下,获取所需的全部数据。
图2为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图2所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S201,向缓存模块请求获得指向信息条目的指针。
步骤S202,从skb获取TCP连接数据包中的第一数据。
在本发明的一个实施例中,从skb获取TCP连接数据包中的第一数据之后,首先从第一数据的数据特征判断该第一数据是否需要后续处理,如果不需要后续处理则直接将其写入日志文件,如果需要后续处理则继续执行步骤S203。
步骤S203,将第一数据保存到指针指向的信息条目中。
步骤S204,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
在本发明的一个实施例中,第二数据是文本类型数据。
步骤S205,通知缓存模块指针使用完毕。
具体地,通知缓存模块指针使用完毕,缓存模块可以释放指针所指向的空间。
步骤S206,将第二数据存储到日志缓存中。
步骤S207,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,在TCP数据包的第一数据读取、转换之后通知缓存模块指针使用完毕,缓存模块可以释放指针所指向的空间,由此节约缓存模块的资源开销。
图3为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图3所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S301,向缓存模块请求获得指向信息条目的指针。
步骤S302,从skb获取TCP连接数据包中的第一数据。
在本发明的一个实施例中,从skb获取TCP连接数据包中的第一数据之后,首先从第一数据的数据特征判断该第一数据是否需要后续处理,如果不需要后续处理则直接将其写入日志文件,如果需要后续处理则继续执行步骤S303。
步骤S303,将第一数据保存到指针指向的信息条目中。
步骤S304,将信息条目的信息分配到哈希表的子链表中。
具体地,哈希表(hash table)为一系列子链表头部,每个信息条目的信息被分配并添加至对应的子链表中,其中哈希表的hash依据是每个信息条目所存储的TCP数据包的socket pair(源IP地址、源port端口、目的IP地址、目的port端口)。
步骤S305,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
在本发明的一个实施例中,第二数据是文本类型数据。
步骤S306,通知缓存模块指针使用完毕。
步骤S307,将第二数据存储到日志缓存中。
步骤S308,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,采用哈希表的子链表存储信息条目的信息,通过哈希表可以迅速定TCP数据包所在信息条目的位置,并且采用链表结构可以更好的处理hash中的冲突问题,冲突概率低。
图4为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图4所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S401,向缓存模块请求获得指向信息条目的指针。
步骤S402,从skb获取TCP连接数据包中的第一数据。
在本发明的一个实施例中,从skb获取TCP连接数据包中的第一数据之后,首先从第一数据的数据特征判断该第一数据是否需要后续处理,如果不需要后续处理则直接将其写入日志文件,如果需要后续处理则继续执行步骤S403。
步骤S403,将第一数据保存到指针指向的信息条目中。
步骤S404,使用slab分配器来保存信息条目。
为了加速每个信息条目的信息动态分配并添加至对应的子链表中的过程,使用slab分配器来动态分配及保存信息条目,使用slab分配器首先申请slab cache,然后在slabcache上进行动态信息条目的申请或释放(将在后续的步骤中介绍),其中slab分配器实现动态分配的详细过程可具体参考linux kernel内slab分配器接口的相关介绍。
步骤S405,将信息条目的信息分配到哈希表的子链表中。
具体地,根据步骤S404的分配结果将信息条目的信息分配到向应的哈希表的子链表中。
步骤S406,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
在本发明的一个实施例中,第二数据是文本类型数据。
步骤S407,使用slab分配器来释放信息条目。
步骤S408,通知缓存模块指针使用完毕。
步骤S409,将第二数据存储到日志缓存中。
步骤S410,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,通过slab分配器可以加速信息条目在子链表中的分配,由此提高效率。
图5为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图5所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S501,向缓存模块请求获得指向信息条目的指针。
步骤S502,从skb获取TCP连接数据包中的第一数据。
步骤S503,将第一数据保存到指针指向的信息条目中。
步骤S504,使用slab分配器来保存信息条目。
步骤S505,将信息条目的信息分配到哈希表的子链表中。
步骤S506,当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。
具体地,根据步骤S505建立的哈希表为全局哈希表,各个处理器共享全局哈希表及其数据,给每个哈希表的子链表分配一个自旋锁,当处理器想读取某个子链表内数据时(例如查找某个信息条目)需要首先锁住该子链表,当处理器读取完毕后再解锁,该过程使用可以使用spin read lock完成,同时允许多个处理器同时对该子链表进行读取操作,但是禁止同时写操作;当处理器需要对某个信息条目进行写操作或者在某子链表中添加、删除信息条目时,则可以使用spin write lock完成,保证只有该处理器在该时刻可以操作该子链表。
步骤S507,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
步骤S508,使用slab分配器来释放信息条目。
步骤S509,通知缓存模块指针使用完毕。
步骤S510,将第二数据存储到日志缓存中。
步骤S511,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁,实现并发,由此保证并行性及数据的正确性。
图6为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图6所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S601,向缓存模块请求获得指向信息条目的指针。
步骤S602,从skb获取TCP连接数据包中的第一数据。
步骤S603,将第一数据保存到指针指向的信息条目中。
步骤S604,使用slab分配器来保存信息条目。
步骤S605,将信息条目的信息分配到哈希表的子链表中。
步骤S606,当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。
步骤S607,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
步骤S608,将已经完成的信息条目记录到完成列表中。
具体地,在读取第一数据的时候通过抓包函数该TCP数据包是否已经记录完毕,然后将记录完毕的数据包所对应的信息条目记录到完成列表中。
步骤S609,将已经完成的信息条目的信息从哈希表的子链表删除。
步骤S610,使用slab分配器来释放信息条目。
步骤S611,通知缓存模块指针使用完毕。
步骤S612,将第二数据存储到日志缓存中。
步骤S613,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,将已经完成的信息条目记录到完成列表中,可以方便其他线程例如内核线程(日志线程)分辨出记录完毕的信息条目,提高其他线程例如内核线程(日志线程)的处理效率。
图7为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图7所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S701,向缓存模块请求获得指向信息条目的指针。
步骤S702,从skb获取TCP连接数据包中的第一数据。
步骤S703,将第一数据保存到指针指向的信息条目中。
步骤S704,使用slab分配器来保存信息条目。
步骤S705,将信息条目的信息分配到哈希表的子链表中。
步骤S706,当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。并发,保持数据同步。
步骤S707,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
步骤S708,为内核线程设置第一完成列表。
步骤S709,为抓包函数设置第二完成列表,其中当内核线程处理完第一完成列表后,将第一完成列表和第二完成列表调换。
步骤S710,将已经完成的信息条目记录到第二完成列表中。
在本发明的一个实施例中,从信息条目读取第一数据包括从第一完成列表顺序读取信息条目。按照顺序读取信息条目作为第一数据包可以避免信息条目的读取混乱。
具体地,每个处理器包括两个完成列表且为处理器的私有结构,每个处理器设置的两个完成列表可以通过linux内核所提供的percpu接口来实现,同时为了使处理器的私有数据最小化,在每个处理器上加了间接指针,因此每个处理器拥有3个私有数据,两个完成列表的链表头,一个index索引。其中第一完成列表为内核线程使用,第二完成列表为抓包函数使用,内核线程和抓包函数只操作自己所对应的完成列表。例如,内核线程处理第一完成列表complete_list[1-index],抓包函数操作第二完成列表complete_list[index],当内核线程将自己的完成列表中的全部信息都处理完毕且释放了所有信息条目之后,将index的值由1变到0(或者由0变到1),来调换内核线程和抓包函数操作的完成列表,该调换操作需要采用原子操作来完成,由此实现当内核线程处理完第一完成列表后将第一完成列表和第二完成列表调换。
步骤S711,将已经完成的信息条目的信息从哈希表的子链表删除。
步骤S712,使用slab分配器来释放信息条目。
步骤S713,通知缓存模块指针使用完毕。
步骤S714,将第二数据存储到日志缓存中。
步骤S715,将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,一方面为内核线程和抓包函数分别设置完成列表,可以消除了使用锁机制的繁琐逻辑,由此保证数据结构的正确性,并且提高效率,另一方面直接通过内核线程输出数据来完成,无复制、效率高。
图8为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法的流程图。
如图8所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,包括下述步骤。
步骤S801,向缓存模块请求获得指向信息条目的指针。
步骤S802,从skb获取TCP连接数据包中的第一数据。
步骤S803,将第一数据保存到指针指向的信息条目中。
步骤S804,使用slab分配器来保存信息条目。
步骤S805,将信息条目的信息分配到哈希表的子链表中。
步骤S806,当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。并发,保持数据同步。
步骤S807,从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。
步骤S808,为内核线程设置第一完成列表。
在本发明的一个实施例中,从信息条目读取第一数据包括从第一完成列表顺序读取信息条目。
步骤S809,为抓包函数设置第二完成列表,其中当内核线程处理完第一完成列表后,将第一完成列表和第二完成列表调换。
步骤S810,将已经完成的信息条目记录到第二完成列表中。
步骤S811,将已经完成的信息条目的信息从哈希表的子链表删除。
步骤S812,使用slab分配器来释放信息条目。
步骤S813,通知缓存模块指针使用完毕。
步骤S814,将第二数据存储到日志缓存中。
步骤S815,判断日志缓存是否已满或者完成列表是否已经处理完。
步骤S816,如果是,则将日志缓存中的第二数据写入日志文件。
在本发明的一个实施例中,如果判断日志缓存是未满或者完成列表未已经处理完,则继续等待,当日志缓存是已满或者完成列表已经处理完时将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取方法,通过判断日志缓存已满或者完成列表已经处理完时,将日志缓存中的第二数据写入日志文件,提高数据的准确性。
下面参考说明书附图描述根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置。
一种多处理器环境下的TCP连接的指标获取装置,包括:缓存模块,缓存模块用于存储信息条目;请求模块,请求模块用于向缓存模块请求获得指向信息条目的指针;获取模块,获取模块用于从skb获取TCP连接数据包中的第一数据;保存模块,保存模块用于将第一数据保存到指针指向的信息条目中;读取模块,读取模块用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据;存储模块,存储模块用于将第二数据存储到日志缓存中;以及写入模块,写入模块用于将日志缓存中的第二数据写入日志文件。
图9为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图9所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600和写入模块700。
具体地,缓存模块100用于存储信息条目。其中,信息条目(info entry)为一种数据结构,用于保存一个数据输入输出流的相关数据,例如可以用于保存一个TCP数据包的相关数据。
请求模块200用于向缓存模块请求获得指向信息条目的指针。
获取模块300用于从skb获取TCP连接数据包中的第一数据。更具体地,在skb(Socket Buffer,套接字缓冲区)上保存了网络实际传输中的TCP连接的原始数据即第一数据,从skb获取TCP连接数据包中的第一数据包括以下信息:源IP地址、目的IP地址、TCP连接开始时间、TCP连接结束时间、TCP连接结束原因、TCP连接过程中接收的数据总量、TCP连接过程中发送的数据总量、HTTP协议层的返回码、TCP连接窗口大小、TCP连接数据包重传的数量(重传是指重复传输一次数据包)。
在本发明的一个实施例中,获取模块300还用于从skb获取TCP连接数据包中的第一数据之后,首先从第一数据的数据特征判断该第一数据是否需要后续处理,如果不需要后续处理则直接将其写入日志文件。
保存模块400用于将一数据保存到指针指向的信息条目中。
读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。在本发明的一个实施例中,第二数据是文本类型数据。具体地,在从信息条目读取第一数据的同时将信息条目中的第一数据从二进制型数据转换为文本类型的第二数据,其中转换后的第二数据包括以下信息:源IP地址、目的IP地址、TCP连接开始时间、TCP连接结束时间、TCP连接结束原因、TCP连接持续时间、TCP连接过程中接收的数据总量、TCP连接过程中接收数据的平均速度/峰值速度/阶段性速度、TCP连接过程中发送的数据总量、TCP连接过程中发送数据的平均速度/峰值速度/阶段性速度、HTTP协议层的返回码、TCP连接窗口大小、TCP连接数据包重传的数量。
存储模块600用于将第二数据存储到日志缓存中。
写入模块700用于将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,以抓包的方式获取TCP连接的原始数据以及计算出所需的第二数据,在内核态的IP层实现TCP连接指标的获取,具有以下的优点:(1)可以实现模块的灵活加载、卸载;(2)由于工作在底层,因此该装置的效率高、抓包率高、数据准确率高,可以保证不丢失数据;(3)可以轻松获取更深层次的TCP连接数据,便于TCP优化;(4)设计精简,系统消耗低,可以在低消耗(如低CPU占用)的前提下获取所需的全部数据。
图10为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图10所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600、写入模块700和通知模块800。
具体地,缓存模块100用于存储信息条目。请求模块200用于向缓存模块请求获得指向信息条目的指针。获取模块300用于从skb获取TCP连接数据包中的第一数据。保存模块400用于将第一数据保存到指针指向的信息条目中。读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。存储模块600用于将第二数据存储到日志缓存中。写入模块700用于将日志缓存中的第二数据写入日志文件。通知模块800用于通知缓存模块100指针使用完毕,其中通知缓存模块100指针使用完毕,缓存模块100可以释放指针所指向的空间。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,在TCP数据包的第一数据读取、转换之后通知缓存模块指针使用完毕,缓存模块可以释放指针所指向的空间,由此节约缓存模块的资源开销。
图11为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图11所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600、写入模块700、通知模块800和分配模块900。
具体地,缓存模块100用于存储信息条目。请求模块200用于向缓存模块请求获得指向信息条目的指针。获取模块300用于从skb获取TCP连接数据包中的第一数据。保存模块400用于将第一数据保存到指针指向的信息条目中。读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。存储模块600用于将第二数据存储到日志缓存中。写入模块700用于将日志缓存中的第二数据写入日志文件。通知模块800用于通知缓存模块100指针使用完毕,其中通知缓存模块100指针使用完毕,缓存模块100可以释放指针所指向的空间。分配模块900将信息条目的信息分配到哈希表的子链表中,其中哈希表(hash table)为一系列子链表头部,分配模块900将每个信息条目的信息分配并添加至对应的子链表中,哈希表的hash依据是每个信息条目所存储的TCP数据包的socket pair(源IP地址、源port端口、目的IP地址、目的port端口)。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,采用哈希表的子链表存储信息条目的信息,通过哈希表可以迅速定TCP数据包所在信息条目的位置,并且采用链表结构可以更好的处理hash中的冲突问题,冲突概率低。
在本发明的一个实施例中,使用slab分配器来保存或释放信息条目。具体地,为了加速每个信息条目的信息动态分配并添加至对应的子链表中的过程,使用slab分配器来动态分配及保存信息条目,使用slab分配器首先申请slab cache,然后在slab cache上进行动态信息条目的申请或释放,其中slab分配器实现动态分配的详细过程可具体参考linux kernel内slab分配器接口的相关介绍。
图12为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图12所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600、写入模块700、通知模块800、分配模块900和上锁模块1000。
具体地,缓存模块100用于存储信息条目。请求模块200用于向缓存模块请求获得指向信息条目的指针。获取模块300用于从skb获取TCP连接数据包中的第一数据。保存模块400用于将第一数据保存到指针指向的信息条目中。读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。存储模块600用于将第二数据存储到日志缓存中。写入模块700用于将日志缓存中的第二数据写入日志文件。通知模块800用于通知缓存模块100指针使用完毕,其中通知缓存模块100指针使用完毕,缓存模块100可以释放指针所指向的空间。分配模块900将信息条目的信息分配到哈希表的子链表中。上锁模块1000用于当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。
具体地,根据分配模块900所建立的哈希表为全局哈希表,各个处理器共享全局哈希表及其数据,上锁模块1000给每个哈希表的子链表分配一个自旋锁,当处理器想读取某个子链表内数据时(例如查找某个信息条目)上锁模块1000首先锁住该子链表,当处理器读取完毕后再解锁,该过程使用可以使用spin read lock完成,同时允许多个处理器同时对该子链表进行读取操作,但是禁止同时写操作;当处理器需要对某个信息条目进行写操作或者在某子链表中添加、删除信息条目时,则可以使用spin write lock完成,保证只有该处理器在该时刻可以操作该子链表。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,通过上锁模块当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁,实现并发,由此保证并行性及数据的正确性。
图13为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图13所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600、写入模块700、通知模块800、分配模块900、上锁模块1000、记录模块1100和删除模块1200。
具体地,缓存模块100用于存储信息条目。请求模块200用于向缓存模块请求获得指向信息条目的指针。获取模块300用于从skb获取TCP连接数据包中的第一数据。保存模块400用于将第一数据保存到指针指向的信息条目中。读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。存储模块600用于将第二数据存储到日志缓存中。写入模块700用于将日志缓存中的第二数据写入日志文件。通知模块800用于通知缓存模块100指针使用完毕,其中通知缓存模块100指针使用完毕,缓存模块100可以释放指针所指向的空间。分配模块900将信息条目的信息分配到哈希表的子链表中。上锁模块1000用于当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。记录模块1100用于将已经完成的信息条目记录到完成列表中,其中,在读取第一数据的时候通过抓包函数该TCP数据包是否已经记录完毕,然后通过记录模块1100将记录完毕的数据包所对应的信息条目记录到完成列表中。删除模块1200用于将已经完成的信息条目的信息从哈希表的子链表删除。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,通过记录模块将已经完成的信息条目记录到完成列表中,可以方便其他线程例如内核线程(日志线程)分辨出记录完毕的信息条目,提高其他线程例如内核线程(日志线程)的处理效率。
在本发明的一个实施例中,为内核线程设置第一完成列表,为抓包函数设置第二完成列表,其中当内核线程处理完第一完成列表后,将第一完成列表和第二完成列表调换。
具体地,每个处理器包括两个完成列表且为处理器的私有结构,每个处理器设置的两个完成列表可以通过linux内核所提供的percpu接口来实现,同时为了使处理器的私有数据最小化,在每个处理器上加了间接指针,因此每个处理器拥有3个私有数据,两个完成列表的链表头,一个index索引。其中第一完成列表为内核线程使用,第二完成列表为抓包函数使用,内核线程和抓包函数只操作自己所对应的完成列表。例如,内核线程处理第一完成列表complete_list[1-index],抓包函数操作第二完成列表complete_list[index],当内核线程将自己的完成列表中的全部信息都处理完毕且释放了所有信息条目之后,将index的值由1变到0(或者由0变到1),来调换内核线程和抓包函数操作的完成列表,该调换操作需要采用原子操作来完成,由此实现当内核线程处理完第一完成列表后将第一完成列表和第二完成列表调换。
在本发明的一个实施例中,从信息条目读取第一数据包括从第一完成列表顺序读取信息条目。按照顺序读取信息条目作为第一数据包可以避免信息条目的读取混乱。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,一方面为内核线程和抓包函数分别设置完成列表,可以消除了使用锁机制的繁琐逻辑,由此保证数据结构的正确性,并且提高效率,另一方面直接通过内核线程输出数据来完成,无复制、效率高。
图14为本发明一个实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置的结构框图。
如图14所示,根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,包括缓存模块100、请求模块200、获取模块300、保存模块400、读取模块500、存储模块600、写入模块700、通知模块800、分配模块900、上锁模块1000、记录模块1100、删除模块1200和判断模块1300。
具体地,缓存模块100用于存储信息条目。请求模块200用于向缓存模块请求获得指向信息条目的指针。获取模块300用于从skb获取TCP连接数据包中的第一数据。保存模块400用于将第一数据保存到指针指向的信息条目中。读取模块500用于从信息条目读取第一数据并将信息条目中的第一数据转换为第二数据。存储模块600用于将第二数据存储到日志缓存中。写入模块700用于将日志缓存中的第二数据写入日志文件。通知模块800用于通知缓存模块100指针使用完毕,其中通知缓存模块100指针使用完毕,缓存模块100可以释放指针所指向的空间。分配模块900将信息条目的信息分配到哈希表的子链表中。上锁模块1000用于当处理器从哈希表的子链表读取信息条目的信息时或向哈希表的子链表写入时,将哈希表的子链表上锁。记录模块1100用于将已经完成的信息条目记录到完成列表中。删除模块1200用于将已经完成的信息条目的信息从哈希表的子链表删除。判断模块1300用于判断日志缓存是否已满或者完成列表是否已经处理完,其中如果日志缓存已满或者完成列表已经处理完,则写入模块700将日志缓存中的第二数据写入日志文件。在本发明的一个实施例中,如果判断模块1300判断日志缓存是未满或者完成列表未已经处理完,则继续等待,当日志缓存是已满或者完成列表已经处理完时通过写入模块700将日志缓存中的第二数据写入日志文件。
根据本发明实施例的多处理器环境下的工作在内核层的TCP连接的指标获取装置,通过判断模块判断日志缓存已满或者完成列表已经处理完时,将日志缓存中的第二数据写入日志文件,提高数据的准确性。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (18)

1.一种多处理器环境下的TCP连接的指标获取方法,其特征在于,包括以下步骤:
向缓存模块请求获得指向信息条目的指针,其中,所述信息条目为一种数据结构,用于保存一个数据输入输出流的相关数据;
从skb获取TCP连接数据包中的第一数据;
将所述第一数据保存到所述指针指向的信息条目中;
从所述信息条目读取所述第一数据并将所述信息条目中的所述第一数据转换为第二数据,其中,所述第二数据是文本类型数据;
将所述第二数据存储到日志缓存中;以及
将所述日志缓存中的第二数据写入日志文件。
2.根据权利要求1所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
通知所述缓存模块所述指针使用完毕。
3.根据权利要求1所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
将所述信息条目的信息分配到哈希表的子链表中。
4.根据权利要求3所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
使用slab分配器来保存或释放所述信息条目。
5.根据权利要求3所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
当处理器从所述哈希表的子链表读取所述信息条目的信息时或向所述哈希表的子链表写入时,将所述哈希表的子链表上锁。
6.根据权利要求3所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
将已经完成的信息条目记录到完成列表中,所述完成列表包括第一完成列表或第二完成列表;以及
将所述已经完成的信息条目的信息从所述哈希表的子链表删除。
7.根据权利要求6所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
为内核线程设置第一完成列表;以及
为抓包函数设置第二完成列表,其中
当所述内核线程处理完所述第一完成列表后,将所述第一完成列表和所述第二完成列表调换。
8.根据权利要求7所述的多处理器环境下的TCP连接的指标获取方法,其特征在于:
从所述信息条目读取所述第一数据包括从所述第一完成列表顺序读取信息条目。
9.根据权利要求7所述的多处理器环境下的TCP连接的指标获取方法,其特征在于,进一步包括步骤:
判断所述日志缓存是否已满或者所述完成列表是否已经处理完;
如果是,则将所述日志缓存中的第二数据写入日志文件。
10.一种多处理器环境下的TCP连接的指标获取装置,其特征在于,包括:
缓存模块,所述缓存模块用于存储信息条目,其中,所述信息条目为一种数据结构,用于保存一个数据输入输出流的相关数据;
请求模块,所述请求模块用于向所述缓存模块请求获得指向信息条目的指针;
获取模块,所述获取模块用于从skb获取TCP连接数据包中的第一数据;
保存模块,所述保存模块用于将所述第一数据保存到所述指针指向的信息条目中;
读取模块,所述读取模块用于从所述信息条目读取所述第一数据并将所述信息条目中的所述第一数据转换为第二数据,其中,所述第二数据是文本类型数据;
存储模块,所述存储模块用于将所述第二数据存储到日志缓存中;以及
写入模块,所述写入模块用于将所述日志缓存中的第二数据写入日志文件。
11.根据权利要求10所述的多处理器环境下的TCP连接的指标获取装置,其特征在于,进一步包括:
通知模块,所述通知模块用于通知所述缓存模块所述指针使用完毕。
12.根据权利要求10所述的多处理器环境下的TCP连接的指标获取装置,其特征在于,进一步包括:
分配模块,所述分配模块将所述信息条目的信息分配到哈希表的子链表中。
13.根据权利要求12所述的多处理器环境下的TCP连接的指标获取装置,其特征在于:
使用slab分配器来保存或释放所述信息条目。
14.根据权利要求10所述的多处理器环境下的TCP连接的指标获取装置,其特征在于,进一步包括:
上锁模块,所述上锁模块用于当处理器从哈希表的子链表读取所述信息条目的信息时或向所述哈希表的子链表写入时,将所述哈希表的子链表上锁。
15.根据权利要求10所述的多处理器环境下的TCP连接的指标获取装置,其特征在于,进一步包括:
记录模块,所述记录模块用于将已经完成的信息条目记录到完成列表中,所述完成列表包括第一完成列表或第二完成列表;以及
删除模块,所述删除模块用于将所述已经完成的信息条目的信息从哈希表的子链表删除。
16.根据权利要求15所述的多处理器环境下的TCP连接的指标获取装置,其特征在于:
为内核线程设置第一完成列表;以及
为抓包函数设置第二完成列表,其中
当所述内核线程处理完所述第一完成列表后,将所述第一完成列表和所述第二完成列表调换。
17.根据权利要求16所述的多处理器环境下的TCP连接的指标获取装置,其特征在于:
所述读取模块用于从所述第一完成列表顺序读取信息条目。
18.根据权利要求16所述的多处理器环境下的TCP连接的指标获取装置,其特征在于,进一步包括:
判断模块,所述判断模块用于判断所述日志缓存是否已满或者所述完成列表是否已经处理完,其中
如果所述日志缓存已满或者所述完成列表已经处理完,则所述写入模块将所述日志缓存中的第二数据写入日志文件。
CN201210054414.3A 2012-03-02 2012-03-02 多处理器环境下的tcp连接的指标获取方法及装置 Active CN102662907B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210054414.3A CN102662907B (zh) 2012-03-02 2012-03-02 多处理器环境下的tcp连接的指标获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210054414.3A CN102662907B (zh) 2012-03-02 2012-03-02 多处理器环境下的tcp连接的指标获取方法及装置

Publications (2)

Publication Number Publication Date
CN102662907A CN102662907A (zh) 2012-09-12
CN102662907B true CN102662907B (zh) 2015-05-06

Family

ID=46772403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210054414.3A Active CN102662907B (zh) 2012-03-02 2012-03-02 多处理器环境下的tcp连接的指标获取方法及装置

Country Status (1)

Country Link
CN (1) CN102662907B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103796228B (zh) 2012-10-31 2018-09-11 中兴通讯股份有限公司 一种无线网络毛细管道性能评估方法及装置
CN106341288A (zh) * 2016-08-23 2017-01-18 成都科来软件有限公司 一种检验pf_ring抓包模块是否丢包的方法和系统
CN110799968A (zh) * 2017-07-17 2020-02-14 北京嘀嘀无限科技发展有限公司 用于空间索引的系统和方法
CN109842511B (zh) * 2017-11-28 2022-07-08 网宿科技股份有限公司 一种tcp性能参数的确定方法及系统
CN113485661B (zh) * 2021-07-01 2023-08-22 深圳市同泰怡信息技术有限公司 四路服务器及其输出日志信息的方法
CN115209394A (zh) * 2022-05-31 2022-10-18 深圳市广和通无线股份有限公司 日志抓取方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186117A (zh) * 2011-03-30 2011-09-14 深圳市同洲电子股份有限公司 一种网络状态的判定方法和数字电视终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102186117A (zh) * 2011-03-30 2011-09-14 深圳市同洲电子股份有限公司 一种网络状态的判定方法和数字电视终端

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
入侵防御系统日志采集和存储的改进方法;马强等;《计算机工程与设计》;20100915;第3763-3765,3910页 *
基于Linux内核的网络性能优化;杨晓强等;《计算机工程》;20100215;第36卷(第3期);第97-98页 *
基于嵌入式Linux的网络流量监测系统;鲍娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100215;第9-11页 *
基于连接跟踪的存储优化日志系统的研究;李宁波等;《计算机应用研究》;20080430;第25卷(第4期);第1120-1122,1141页 *
网络行为监测与还原系统及关键技术研究;田伟等;《计算机工程与设计》;20080131;第29卷(第2期);第479-482页 *

Also Published As

Publication number Publication date
CN102662907A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662907B (zh) 多处理器环境下的tcp连接的指标获取方法及装置
US11139991B2 (en) Decentralized edge computing transactions with fine-grained time coordination
US10788992B2 (en) System and method for efficient access for remote storage devices
US9389995B2 (en) Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning
CN106844041B (zh) 内存管理的方法及内存管理系统
CN102567275B (zh) 一种多核处理器上多个操作系统间内存访问的方法及系统
US9143562B2 (en) Managing transfer of data from a source to a destination machine cluster
RU2568292C2 (ru) Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия
KR20160014043A (ko) 네트워크 파일 액세스 프로토콜을 통한 효율적이고 프로그래매틱 메모리 액세스
KR102047037B1 (ko) 로컬 캐시들을 갖는 메모리 캐시형 시스템들
US9355106B2 (en) Sensor data locating
Solomon Radiocontrast-induced nephropathy.
US10379983B2 (en) Simulation device and distribution simulation system
CN114338660A (zh) 用于边缘环境中数据生命周期管理的设备、系统、制品和方法
CN109032803A (zh) 数据处理方法和装置、客户端
Weber Inflammatory diseases of the paranasal sinuses and mucoceles.
CN104718529B (zh) 表示没有外部引用的引用属性注释
US20180131470A1 (en) Advanced retry mechanism for transmitting large datasets
Klainer Clindamycin.
CN109145053A (zh) 数据处理方法和装置、客户端、服务器
US9021491B2 (en) Dual mode reader writer lock
CN110059091A (zh) 索引构建的方法、装置、客户端、服务器及系统
US20160366225A1 (en) Shuffle embedded distributed storage system supporting virtual merge and method thereof
CN111190963A (zh) 一种区块链应用后端系统
CN107622059A (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