CN110602225A - 一种适用于工控环境的linux系统高效收发包方法 - Google Patents

一种适用于工控环境的linux系统高效收发包方法 Download PDF

Info

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
Application number
CN201910885431.3A
Other languages
English (en)
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 Tiandihexing Technology Co Ltd
Original Assignee
Beijing Tiandihexing 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 Tiandihexing Technology Co Ltd filed Critical Beijing Tiandihexing Technology Co Ltd
Priority to CN201910885431.3A priority Critical patent/CN110602225A/zh
Publication of CN110602225A publication Critical patent/CN110602225A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation 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系统高效收发包方法。
背景技术
随着信息技术的发展,工业控制系统逐步走向联网化。很多工业控制协议逐渐运行于工业以太网上,针对工业控制系统的攻击也更加普遍。
随着国家对安全的重视,各种安全产品在工控环境中得到了广泛应用,如工业防火墙,工业审计产品等。工业控制环境中网络流量不是很大,但对时延要求较高。目前大多数安全产品基于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系统高效收发包方法用于工业控制环境。
CN201910885431.3A 2019-09-19 2019-09-19 一种适用于工控环境的linux系统高效收发包方法 Pending CN110602225A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334156A (zh) * 2021-04-26 2022-11-11 深信服科技股份有限公司 报文的处理方法、装置、设备、存储介质

Citations (11)

* Cited by examiner, † Cited by third party
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 烽火通信科技股份有限公司 网络数据包高速处理转发方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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