CN105871780A - 会话日志发送方法及装置 - Google Patents
会话日志发送方法及装置 Download PDFInfo
- Publication number
- CN105871780A CN105871780A CN201510029951.6A CN201510029951A CN105871780A CN 105871780 A CN105871780 A CN 105871780A CN 201510029951 A CN201510029951 A CN 201510029951A CN 105871780 A CN105871780 A CN 105871780A
- Authority
- CN
- China
- Prior art keywords
- skb
- session log
- session
- queue
- log
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种会话日志发送方法及装置,该方法可以包括将会话日志队列中的会话日志写入当前skb中,当前skb为从预先申请的套接字缓存skb池中取出的skb;发送当前skb中的会话日志。本发明通过将会话日志存储至会话日志队列中,并将会话日志队列中的各个会话日志依次写入从预先申请的skb池中取出的skb中进行发送,可以避免出现会话日志大量丢包的情况,从而可以降低会话日志的丢包率。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种会话日志发送方法及装置。
背景技术
在网络安全领域,准确地识别出恶意攻击和网络病毒对网络设备的安全运行有着至关重要的意义。现有技术中,网络设备对其接收的数据流进行监测,并形成用于存储数据流相关信息(诸如数据流的五元组、流量大小、会话建立时间和结束时间等)的会话日志。在会话日志形成后,网络设备通过将会话日志实时并行发送给识别主机,以使识别主机根据该会话日志识别出恶意攻击和网络病毒。在该识别方法中,并行发送的各个会话日志在发送之前均需要分别申请一个skb(socket buffer,套接字缓存),并且在发送完成之后需要通过释放申请的各个skb来实现skb的回收。
然而,由于受到网络设备内存资源的限制,可申请回收使用的skb数量有限,因此当会话日志的并发数过大时,某些会话日志有可能无法申请到skb,从而可能出现会话日志大量丢包的现象。
发明内容
有鉴于此,本发明提供一种日志发送方法及装置,以解决发送会话日志时丢包率较高的问题。
根据本发明实施例的第一方面,本发明提供一种会话日志发送方法,包括:将会话日志队列中的会话日志写入当前套接字缓存skb中,所述当前skb为从预先申请的skb池中取出的skb;
发送所述当前skb中的会话日志。
根据本发明实施例的第二方面,本发明提供一种会话日志发送装置,包括:写入单元,用于将会话日志队列中的会话日志写入当前skb中,所述当前skb为从预先申请的skb池中取出的skb;
发送单元,用于发送所述当前skb中的会话日志。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明实施例中,本发明通过将会话日志存储至会话日志队列中,并将会话日志队列中的各个会话日志依次写入从预先申请的skb池中取出的skb中进行发送,可以避免出现会话日志大量丢包的情况,从而可以降低会话日志的丢包率。
附图说明
图1是本发明会话日志发送方法的一个实施例流程图;
图2是本发明会话日志发送方法的另一个实施例流程图;
图3是本发明会话日志发送装置所在设备的一种硬件结构图;
图4是本发明会话日志发送装置的一个实施例框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
参见图1,为本发明会话日志发送方法的一个实施例的流程图,该方法可以包括以下步骤:
步骤101、将会话日志队列中的会话日志写入当前skb中,该当前skb为从预先申请的skb池中取出的skb。
在本发明的优选实施例中,网络设备可以首先在会话日志加载模块中预先申请多个skb作为skb池,并在会话日志加载模块中建立用于存储会话日志的会话日志队列;然后通过启动会话日志加载模块,对该skb池进行初始化并确定该skb池可循环回收利用。该skb池在初始化完成后,网络设备可以调用会话日志进程来判断会话日志队列中是否存在会话日志。当会话日志队列中存在会话日志时,会话日志进程从预先申请的skb池中取出skb作为当前skb,由于skb池在初始化完成后,skb池中的各个skb中的数据均被清除,各个skb具有足够的存储空间来存放会话日志,因而此时会话日志进程可以将该会话日志队列中的会话日志写入当前skb中。
在将会话日志队列中的会话日志写入当前skb之后,会话日志进程可以将写入当前skb的会话日志从会话日志队列中清除,从而可以避免会话日志被重复写入skb中,由此可以提高会话日志的发送效率。其中,会话日志线程可以至少采用以下两种方式来清除会话日志:第一种是将写入当前skb中的会话日志直接从会话日志队列中删除;第二种是使写入当前skb中的会话日志被新存储至会话日志队列中的会话日志所覆盖。
在将写入当前skb的会话日志从会话日志队列中清除之后,会话日志进程可以首先判断当前skb中是否还具有用于存放会话日志的存储空间。在当前skb中还具有用于存放会话日志的存储空间时,会话日志进程判断会话日志队列中是否还存在会话日志,若会话日志队列中存在会话日志,则将该会话日志队列中的下一个会话日志写入当前skb中;若会话日志队列中不存在会话日志,则进一步判断当前skb中是否存放有会话日志,若当前skb中存放有会话日志,则执行步骤102。在当前skb中不具有用于存放会话日志的存储空间时,会话日志进程执行步骤102。
相比于现有技术中一个skb只会写入一个会话日志,本发明通过在skb还具有用于存放会话日志的存储空间时,继续将会话日志队列中的会话日志写入skb中,可以实现一个skb中写入多个会话日志,从而可以降低发送会话日志所花费的资源开销(诸如内存或CPU占用率)。
步骤102、发送当前skb中的会话日志。
在本发明的优选实施例中,会话日志进程可以对当前skb的会话日志进行封装,向当前skb中填充识别主机的IP地址等信息,并调用驱动发包函数hard_start_xmit发送当前skb中封装后的会话日志,该驱动发包函数hard_start_xmit为struct net_device结构中的函数指针。
在当前skb中的会话日志发送完成后,会话日志进程可以至少采用以下两种方式来回收当前skb:第一种是直接删除当前skb中的数据;第二种是使当前skb中原先写入的会话日志被新写入的会话日志所覆盖。
由上述实施例可见,相比于并行发送会话日志,本发明通过将会话日志存储至会话日志队列中,并将会话日志队列中的各个会话日志依次写入从预先申请的skb池中取出的skb中进行发送,可以避免出现会话日志大量丢包的情况,从而可以降低会话日志的丢包率。另外,相比于在并行发送会话日志时需要申请大量的skb,本发明通过预先申请由多个skb组成的skb池,并在会话日志发送完成后回收skb池中的skb,可以实现预先申请的skb池的重复利用,避免申请大量的skb,从而可以降低发送会话日志的资源开销。
参见图2,为本发明会话日志发送方法的另一个实施例的流程图,该实施例详细描述了会话日志发送的过程,该方法可以包括以下步骤:
步骤201、网络设备在会话日志加载模块中预先申请由1024个skb组成的skb池,并在会话日志加载模块中建立用于存储会话日志的会话日志队列。
步骤202、网络设备启动会话日志加载模块,对skb池进行初始化,以清除skb池中各个skb中的数据;并且为skb池打上可循环利用的标签FLAG_PERMANENT_SKBUFF。
步骤203、网络设备启动会话日志线程。
步骤204、会话日志线程检测会话日志队列中是否存在会话日志,若存在,则执行步骤205;否则,执行步骤204。
步骤205、会话日志线程从预先申请的skb池中取出skb作为当前skb。
步骤206、会话日志线程将会话日志队列中的会话日志写入当前skb中。
步骤207、会话日志线程将写入当前skb中的会话日志从会话日志队列中清除。
步骤208、会话日志线程判断当前skb中是否还具有用于存放会话日志的存储空间,若具有,则执行步骤209;否则,执行步骤211。
步骤209、会话日志线程判断会话日志队列中是否还存在会话日志,若存在,则返回执行步骤206;否则,执行步骤210。
步骤210、判断当前skb中是否存放有会话日志,若是,则执行步骤211,否则,执行步骤204。
步骤211、发送当前skb中的会话日志。
步骤212、回收当前skb,执行步骤204。
由上述实施例可见,相比于并行发送会话日志,本发明通过将会话日志存储至会话日志队列中,并将会话日志队列中的各个会话日志依次写入从预先申请的skb池中取出的skb中进行发送,可以避免出现会话日志大量丢包的情况,从而可以降低会话日志的丢包率。另外,相比于在并行发送会话日志时需要申请大量的skb,本发明通过预先申请由多个skb组成的skb池,并在会话日志发送完成后回收skb池中的skb,可以实现预先申请的skb池的重复利用,避免申请大量的skb,从而可以降低发送会话日志的资源开销。
与前述会话日志发送方法实施例相对应,本发明还提供了会话日志发送装置的实施例。
本发明会话日志发送装置实施例可以通过软件实现,也可以通过硬件或软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明会话日志发送装置所在设备的一种硬件结构图,除了图3所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
参见图4,为本发明会话日志发送装置的一个实施例框图,该装置可以包括:
写入单元410,用于将会话日志队列中的会话日志写入当前skb中,所述当前skb为从预先申请的skb池中取出的skb;
发送单元420,用于发送所述当前skb中的会话日志;
在一个可选的实现方式中,所述装置还可以包括:
当前skb确定单元430,用于在将会话日志队列中的会话日志写入当前skb中之前,预先申请由多个skb组成的skb池;判断所述会话日志队列中是否存在会话日志;若存在,则从所述预先申请的skb池中取出skb作为当前skb。
在另一个可选的实现方式中,
清除单元440,用于将写入所述当前skb的会话日志从所述会话日志队列中清除;
判断单元450,用于判断所述当前skb中是否还具有用于存放会话日志的存储空间;
所述判断单元450,还用于当所述当前skb中还具有用于存放会话日志的存储空间时,判断所述会话日志队列中是否还存在会话日志;
所述写入单元410,还用于若所述会话日志队列中还存在会话日志,则将所述会话日志队列中的下一个会话日志写入所述当前skb中。
在另一个可选的实现方式中,
所述发送单元420,具体用于当所述当前skb中不具有用于存放会话日志的存储空间时,发送所述当前skb中的会话日志;或者当所述当前skb中还具有用于存放会话日志的存储空间,且所述会话日志队列中不存在会话日志时,判断所述当前skb中是否存放有会话日志;若所述当前skb中存放有会话日志,则发送所述当前skb中的会话日志。
在另一个可选的实现方式中,所述装置还可以包括:
回收单元460,用于回收所述当前skb。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,相比于并行发送会话日志,本发明通过将会话日志存储至会话日志队列中,并将会话日志队列中的各个会话日志依次写入从预先申请的skb池中取出的skb中进行发送,可以避免出现会话日志大量丢包的情况,从而可以降低会话日志的丢包率。另外,相比于在并行发送会话日志时需要申请大量的skb,本发明通过预先申请由多个skb组成的skb池,并在会话日志发送完成后回收skb池中的skb,可以实现预先申请的skb池的重复利用,避免申请大量的skb,从而可以降低发送会话日志的资源开销。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种会话日志发送方法,其特征在于,包括:
将会话日志队列中的会话日志写入当前套接字缓存skb中,所述当前skb为从预先申请的skb池中取出的skb;
发送所述当前skb中的会话日志。
2.根据权利要求1所述的方法,其特征在于,在将会话日志队列中的会话日志写入当前skb中之前,所述方法还包括:
预先申请由多个skb组成的skb池;
判断所述会话日志队列中是否存在会话日志;
若存在,则从所述预先申请的skb池中取出skb作为当前skb。
3.根据权利要求1所述的方法,其特征在于,在将会话日志队列中的会话日志写入当前skb中之后,所述方法还包括:
将写入所述当前skb的会话日志从所述会话日志队列中清除;
判断所述当前skb中是否还具有用于存放会话日志的存储空间;
当所述当前skb中还具有用于存放会话日志的存储空间时,判断所述会话日志队列中是否还存在会话日志;
若所述会话日志队列中还存在会话日志,则将所述会话日志队列中的下一个会话日志写入所述当前skb中。
4.根据权利要求3所述的方法,其特征在于,所述发送所述当前skb中的会话日志,包括:
当所述当前skb中不具有用于存放会话日志的存储空间时,发送所述当前skb中的会话日志;或者
当所述当前skb中还具有用于存放会话日志的存储空间,且所述会话日志队列中不存在会话日志时,判断所述当前skb中是否存放有会话日志;
若所述当前skb中存放有会话日志,则发送所述当前skb中的会话日志。
5.根据权利要求1所述的方法,其特征在于,在发送所述当前skb中的会话日志之后,所述方法还包括:回收所述当前skb。
6.一种会话日志发送装置,其特征在于,包括:
写入单元,用于将会话日志队列中的会话日志写入当前skb中,所述当前skb为从预先申请的skb池中取出的skb;
发送单元,用于发送所述当前skb中的会话日志。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
当前skb确定单元,用于在将会话日志队列中的会话日志写入当前skb中之前,预先申请由多个skb组成的skb池;判断所述会话日志队列中是否存在会话日志;若存在,则从所述预先申请的skb池中取出skb作为当前skb。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
清除单元,用于将写入所述当前skb的会话日志从所述会话日志队列中清除;
判断单元,用于判断所述当前skb中是否还具有用于存放会话日志的存储空间;
所述判断单元,还用于当所述当前skb中还具有用于存放会话日志的存储空间时,判断所述会话日志队列中是否还存在会话日志;
所述写入单元,还用于若所述会话日志队列中还存在会话日志,则将所述会话日志队列中的下一个会话日志写入所述当前skb中。
9.根据权利要求8所述的装置,其特征在于,所述发送单元,具体用于当所述当前skb中不具有用于存放会话日志的存储空间时,发送所述当前skb中的会话日志;或者当所述当前skb中还具有用于存放会话日志的存储空间,且所述会话日志队列中不存在会话日志时,判断所述当前skb中是否存放有会话日志;若所述当前skb中存放有会话日志,则发送所述当前skb中的会话日志。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
回收单元,用于回收所述当前skb。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510029951.6A CN105871780B (zh) | 2015-01-21 | 2015-01-21 | 会话日志发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510029951.6A CN105871780B (zh) | 2015-01-21 | 2015-01-21 | 会话日志发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105871780A true CN105871780A (zh) | 2016-08-17 |
CN105871780B CN105871780B (zh) | 2020-01-03 |
Family
ID=56623050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510029951.6A Active CN105871780B (zh) | 2015-01-21 | 2015-01-21 | 会话日志发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105871780B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953568A (zh) * | 2020-08-19 | 2020-11-17 | 杭州迪普科技股份有限公司 | 丢包信息管理方法与装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060187830A1 (en) * | 2005-02-19 | 2006-08-24 | Samsung Electronics Co., Ltd. | Adaptive queue mechanism for efficient realtime packet transfer and adaptive queue establishment system thereof |
CN103095608A (zh) * | 2013-01-07 | 2013-05-08 | 深圳市共进电子股份有限公司 | 一种dns数据包的代理转发方法 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
CN104104619A (zh) * | 2013-04-01 | 2014-10-15 | 深圳维盟科技有限公司 | QoS数据处理方法 |
CN104252405A (zh) * | 2013-06-26 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 日志信息的输出方法及装置 |
-
2015
- 2015-01-21 CN CN201510029951.6A patent/CN105871780B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060187830A1 (en) * | 2005-02-19 | 2006-08-24 | Samsung Electronics Co., Ltd. | Adaptive queue mechanism for efficient realtime packet transfer and adaptive queue establishment system thereof |
CN103095608A (zh) * | 2013-01-07 | 2013-05-08 | 深圳市共进电子股份有限公司 | 一种dns数据包的代理转发方法 |
CN104104619A (zh) * | 2013-04-01 | 2014-10-15 | 深圳维盟科技有限公司 | QoS数据处理方法 |
CN104252405A (zh) * | 2013-06-26 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 日志信息的输出方法及装置 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953568A (zh) * | 2020-08-19 | 2020-11-17 | 杭州迪普科技股份有限公司 | 丢包信息管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105871780B (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597818A (zh) | 数据更新方法、装置、存储介质和设备 | |
CN109309626B (zh) | 一种基于dpdk的高速网络数据包捕获分流及缓存方法 | |
US10873534B1 (en) | Data plane with flow learning circuit | |
CN104063293B (zh) | 一种数据备份方法及流计算系统 | |
CN103927305B (zh) | 一种对内存溢出进行控制的方法和设备 | |
CN109309631A (zh) | 一种基于通用网络文件系统写入数据的方法及装置 | |
CN104571958B (zh) | 一种任务执行方法和装置 | |
CN106027595A (zh) | 用于cdn节点的访问日志处理方法及系统 | |
CN106961450A (zh) | 安全防御方法、终端、云端服务器以及安全防御系统 | |
CN103488717B (zh) | 一种无锁数据汇聚方法及装置 | |
CN107241305A (zh) | 一种基于多核处理器的网络协议分析系统及其分析方法 | |
CN109992427A (zh) | Dpi关联规则回填处理方法、装置、设备及介质 | |
CN106330788B (zh) | 报文分片传输方法和装置 | |
CN110019873A (zh) | 人脸数据处理方法、装置及设备 | |
CN103235754B (zh) | 分布式文件系统中请求的处理方法和装置 | |
CN105939293B (zh) | 一种skb回收方法及装置 | |
CN110069217A (zh) | 一种数据存储方法及装置 | |
CN105871780A (zh) | 会话日志发送方法及装置 | |
CN105975521A (zh) | 一种流式数据上传方法及装置 | |
CN106557535B (zh) | 一种大数据级Pcap文件的处理方法及系统 | |
CN106406771A (zh) | 日志记录方法及日志记录器 | |
US20140245082A1 (en) | Implementing client based throttled error logging | |
CN110011909A (zh) | 存储网关及存储网关数据发送、接收方法和装置 | |
CN102495764A (zh) | 数据分流的实现方法和装置 | |
CN106919854B (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 | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |