CN110602225A - 一种适用于工控环境的linux系统高效收发包方法 - Google Patents
一种适用于工控环境的linux系统高效收发包方法 Download PDFInfo
- Publication number
- CN110602225A CN110602225A CN201910885431.3A CN201910885431A CN110602225A CN 110602225 A CN110602225 A CN 110602225A CN 201910885431 A CN201910885431 A CN 201910885431A CN 110602225 A CN110602225 A CN 110602225A
- Authority
- CN
- China
- Prior art keywords
- packet
- sending
- linux system
- industrial control
- kernel
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种适用于工控环境的linux系统高效收发包方法,包括以下步骤:S1、linux系统在进行收包操作时,对原始数据包进行缓存;S2、通过AF_PACKET套接字把报文收到用户态;S3、将内核态与用户态共享ring buffer,完成收包操作;S4、linux系统在进行发包操作时,直接发送原始数据报文,S5、通过内核协议栈发送数据报文,完成发包操作。本发明结合了AF_PACKET收包方案的优点与NFQUEUE发包方案的优点,能够高效的进行收发包。并且其充分利用了内核包转发功能,在内核的数据包转发点进行发包处理,有效降低了网络数据包的处理时延,满足了工业控制系统的实时性要求。
Description
技术领域
本发明涉及计算机网络领域,尤其涉及一种适用于工控环境的linux系统高效收发包方法。
背景技术
随着信息技术的发展,工业控制系统逐步走向联网化。很多工业控制协议逐渐运行于工业以太网上,针对工业控制系统的攻击也更加普遍。
随着国家对安全的重视,各种安全产品在工控环境中得到了广泛应用,如工业防火墙,工业审计产品等。工业控制环境中网络流量不是很大,但对时延要求较高。目前大多数安全产品基于Linux或BSD进行开发,因此研究基于linux系统高效收发包技术能够有效降低网络包的处理时延。
现有技术中常用的收发包技术方案有基于Linux系统的AFP收发包方案和基于Linux系统的NFQUEUE收发包方案,其中,AFP收发包方案的发包过程需要在用户态与内核之间进行数据拷贝,发包效率低下,并且需要指定发包的网络接口,无法很好地进行应用;而NFQUEUE收发包方案进行收包操作时必须在内核与用户态之间进行报文拷贝,收包效率低,时延大,并且其运行在透明模式时,必须通过三层解析才能发送到用户态,工控防护类产品目前多运行于透明模式,增大了处理时延,无法满足人们的使用需求。
发明内容
本发明目的是针对上述问题,提供一种有效降低网络包处理时延且适用于工控环境的linux系统高效收发包方法。
为了实现上述目的,本发明的技术方案是:
一种适用于工控环境的linux系统高效收发包方法,包括以下步骤:
S1、linux系统在进行收包操作时,对原始数据包进行缓存;
S2、通过AF_PACKET套接字把报文收到用户态;
S3、将内核态与用户态共享ring buffer,完成收包操作;
S4、linux系统在进行发包操作时,直接发送原始数据报文,
S5、通过内核协议栈发送数据报文,完成发包操作。
进一步的,所述适用于工控环境的linux系统高效收发包方法用于工业控制环境。
与现有技术相比,本发明具有的优点和积极效果是:
本发明结合了AF_PACKET收包方案的优点与NFQUEUE发包方案的优点,能够高效的进行收发包。收包时,缓存原始数据包,通过内核态与用户态共享ring buffer的方式收包,减少两者之间的数据拷贝;发包时,直接发送原始数据报文,利用内核协议栈发送数据报文,降低报文处理开销;其充分利用了内核包转发功能,在内核的数据包转发点进行发包处理,有效降低了网络数据包的处理时延,满足了工业控制系统的实时性要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的框架流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明提出一种基于Linux系统的高效收发包技术,以满足工业控制系统的实时性要求。
Linux操作系统在对网络数据包进行处理前,可以通过AF_PACKET套接字把报文收到用户态,内核通过与用户态共享ring buffer,收包效率较高。
Linux在处理网络数据包的过程中,通过netfilter框架把报文内容发送到用户态,同时在内核缓存原始的报文。发包时,可以直接发送原始报文,不需要在用户态和内核态进行数据包拷贝,发包效率较高。
本发明结合AF_PACKET收包方案的优点与NFQUEUE发包方案的优点,能够高效的进行收发包。收包时,缓存原始数据包,通过内核态与用户态共享ring buffer的方式收包,减少两者之间的数据拷贝。发包时,直接发送原始数据报文,利用内核协议栈发送数据报文,降低报文处理开销。处理流程如图1所示:
图1中,数据包在处理过程中,经过IPTABLE/EBTABLE的forward点时,进行packetprocess处理。当上层的业务软件(dpi)处理完数据包,下发配置(DROP/ACEPT/CONTINUE)到packet process点进行后续处理。
本发明充分利用了内核包转发功能,在内核的数据包转发点进行发包处理,有效降低了网络数据包的处理时延,满足了工业控制系统的实时性要求。
Claims (2)
1.一种适用于工控环境的linux系统高效收发包方法,其特征在于:包括以下步骤:
S1、linux系统在进行收包操作时,对原始数据包进行缓存;
S2、通过AF_PACKET套接字把报文收到用户态;
S3、将内核态与用户态共享ring buffer,完成收包操作;
S4、linux系统在进行发包操作时,直接发送原始数据报文,
S5、通过内核协议栈发送数据报文,完成发包操作。
2.如权利要求1所述的适用于工控环境的linux系统高效收发包方法,其特征在于:所述适用于工控环境的linux系统高效收发包方法用于工业控制环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885431.3A CN110602225A (zh) | 2019-09-19 | 2019-09-19 | 一种适用于工控环境的linux系统高效收发包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885431.3A CN110602225A (zh) | 2019-09-19 | 2019-09-19 | 一种适用于工控环境的linux系统高效收发包方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110602225A true CN110602225A (zh) | 2019-12-20 |
Family
ID=68861322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910885431.3A Pending CN110602225A (zh) | 2019-09-19 | 2019-09-19 | 一种适用于工控环境的linux系统高效收发包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602225A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334156A (zh) * | 2021-04-26 | 2022-11-11 | 深信服科技股份有限公司 | 报文的处理方法、装置、设备、存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465863A (zh) * | 2009-01-14 | 2009-06-24 | 北京航空航天大学 | 一种内核虚拟机环境下高效网络i/o的实现方法 |
US20120084517A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Shared Memory Between Child and Parent Partitions |
US20120331480A1 (en) * | 2011-06-23 | 2012-12-27 | Microsoft Corporation | Programming interface for data communications |
US20130132627A1 (en) * | 2011-11-22 | 2013-05-23 | Futurewei Technologies, Inc. | System and Method for Implementing Locks Shared Between Kernel and User Space |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux系统的基站用户面数据处理优化方法 |
CN103731364A (zh) * | 2014-01-16 | 2014-04-16 | 赛特斯信息科技股份有限公司 | 基于x86平台实现万兆大流量快速收包的方法 |
CN103945456A (zh) * | 2014-05-12 | 2014-07-23 | 武汉邮电科学研究院 | 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法 |
EP2975519A1 (en) * | 2013-03-15 | 2016-01-20 | ZTE Corporation | Method and apparatus for message interactive processing |
CN108650295A (zh) * | 2018-03-30 | 2018-10-12 | 深圳市风云实业有限公司 | 协议报文跨层通信方法装置及电子设备 |
EP3402172A1 (en) * | 2017-05-12 | 2018-11-14 | Solarflare Communications Inc | A data processing system |
CN109766187A (zh) * | 2019-01-10 | 2019-05-17 | 烽火通信科技股份有限公司 | 网络数据包高速处理转发方法及系统 |
-
2019
- 2019-09-19 CN CN201910885431.3A patent/CN110602225A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465863A (zh) * | 2009-01-14 | 2009-06-24 | 北京航空航天大学 | 一种内核虚拟机环境下高效网络i/o的实现方法 |
US20120084517A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Shared Memory Between Child and Parent Partitions |
US20120331480A1 (en) * | 2011-06-23 | 2012-12-27 | Microsoft Corporation | Programming interface for data communications |
US20130132627A1 (en) * | 2011-11-22 | 2013-05-23 | Futurewei Technologies, Inc. | System and Method for Implementing Locks Shared Between Kernel and User Space |
EP2975519A1 (en) * | 2013-03-15 | 2016-01-20 | ZTE Corporation | Method and apparatus for message interactive processing |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux系统的基站用户面数据处理优化方法 |
CN103731364A (zh) * | 2014-01-16 | 2014-04-16 | 赛特斯信息科技股份有限公司 | 基于x86平台实现万兆大流量快速收包的方法 |
CN103945456A (zh) * | 2014-05-12 | 2014-07-23 | 武汉邮电科学研究院 | 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法 |
EP3402172A1 (en) * | 2017-05-12 | 2018-11-14 | Solarflare Communications Inc | A data processing system |
CN108650295A (zh) * | 2018-03-30 | 2018-10-12 | 深圳市风云实业有限公司 | 协议报文跨层通信方法装置及电子设备 |
CN109766187A (zh) * | 2019-01-10 | 2019-05-17 | 烽火通信科技股份有限公司 | 网络数据包高速处理转发方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334156A (zh) * | 2021-04-26 | 2022-11-11 | 深信服科技股份有限公司 | 报文的处理方法、装置、设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7639700B1 (en) | Architecture for efficient utilization and optimum performance of a network | |
US6321269B1 (en) | Optimized performance for transaction-oriented communications using stream-based network protocols | |
US7685287B2 (en) | Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports | |
CN101217464B (zh) | 一种udp数据包的传输方法 | |
US20080267067A1 (en) | Controlling the flow of data updates between a receiving station and a sending station | |
CN101547210A (zh) | 一种tcp连接的处理方法和装置 | |
CN106330742B (zh) | 一种流量控制的方法及网络控制器 | |
WO2021128602A1 (zh) | 一种数据传输的方法和装置 | |
CN102546658A (zh) | 一种防止网关arp欺骗的方法和系统 | |
CN104168257A (zh) | 基于非网络方式的数据隔离装置及其方法与系统 | |
CN101296223B (zh) | 一种实现防火墙芯片参与syn代理的方法 | |
CN106464596A (zh) | 开放流通信方法、系统、控制器和业务网关 | |
CN106685827A (zh) | 一种下行报文的转发方法及ap设备 | |
WO2015106453A1 (zh) | 处理业务的方法和网络设备 | |
US20070291782A1 (en) | Acknowledgement filtering | |
CN105991755B (zh) | 业务报文分发方法及装置 | |
WO2018130161A1 (zh) | 基于云计算服务的高效传输方法和装置 | |
CN1276635C (zh) | 提供用于传送数据分组的串行总线通信协议的方法 | |
CN110602225A (zh) | 一种适用于工控环境的linux系统高效收发包方法 | |
CN107483369B (zh) | 一种报文处理方法及虚拟交换机 | |
WO2023186109A1 (zh) | 节点访问方法以及数据传输系统 | |
CN1761241B (zh) | 利用加密在分组通信网络中处理语音数据 | |
CN108040132B (zh) | RapidIO转万兆网关协议实现的系统 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191220 |