CN102790717A - 以太网数据包中控制信息的获取方法及系统 - Google Patents

以太网数据包中控制信息的获取方法及系统 Download PDF

Info

Publication number
CN102790717A
CN102790717A CN2012101775357A CN201210177535A CN102790717A CN 102790717 A CN102790717 A CN 102790717A CN 2012101775357 A CN2012101775357 A CN 2012101775357A CN 201210177535 A CN201210177535 A CN 201210177535A CN 102790717 A CN102790717 A CN 102790717A
Authority
CN
China
Prior art keywords
control information
ethernet data
data bag
protocol stack
msghdr
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
Application number
CN2012101775357A
Other languages
English (en)
Other versions
CN102790717B (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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201210177535.7A priority Critical patent/CN102790717B/zh
Publication of CN102790717A publication Critical patent/CN102790717A/zh
Application granted granted Critical
Publication of CN102790717B publication Critical patent/CN102790717B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种以太网数据包中控制信息的获取方法,包括以下步骤:步骤S1、将该控制信息存储在一skb结构体中并上传至协议栈的网络层;步骤S2、将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;步骤S3、将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。本发明还公开了一种以太网数据包中控制信息的获取系统。本发明的以太网数据包中控制信息的获取方法及系统,可以在不影响正常通信、且兼容现有协议栈的情况下获取数据包中的控制信息,且不会加重驱动的负担。

Description

以太网数据包中控制信息的获取方法及系统
技术领域
本发明涉及一种以太网数据包中控制信息的获取方法及系统,特别是涉及一种在Linux(Linux是一种自由和开放源码的类Unix操作系统(UNIX操作系统,是美国AT&T公司于1971年在PDP-11上运行的操作系统。具有多用户、多任务的特点,支持多种处理器架构,最早由肯·汤普逊(KennethLane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)和Douglas McIlroy于1969年在AT&T的贝尔实验室开发))操作系统中以太网数据包中控制信息的获取方法及系统。
背景技术
随着Linux系统应用越来越广泛,特别是基于Linux的嵌入式系统在交换机,路由器,PON(Passive Optical Network,无源光纤网络)等网络设备中广泛应用。
而一些上层网络协议并不满足于单单获取原始的数据包内容,而是需要获取更多的数据包控制信息,比如交换机中的物理端口号,VLAN ID号(Virtual Local Area Network,虚拟局域网,ID,身份标识号码),Cos(classof server,服务类别)值等或者其他一些特殊控制信息。
原有的Linux系统上层网络应用使用标准的网络编程是无法获取数据包的这一部分控制信息,协议栈也并没有支持这种特殊需求。
现有技术中,倘若想要获得这些控制信息,以交换机为例:一般交换芯片所带数据包信息会额外添加该芯片特有的标签信息,即所包含的该数据包来源的MAC芯片物理端口号,来源VLAN Id号,来源的QoS队列号等。而作为上层协议栈对于原始数据包中的这些额外标签信息并不识别,所以驱动一般会对数据包做些特殊处理,即通过识别不同的协议包进行去除标签信息和保留标签信息操作。当然上层协议应用对于这些标签信息也需要做一些特殊的处理才能识别。随着上层协议越来越多,越来越复杂,驱动需要去识别的协议也越来越多,这势必会影响到驱动效率,而且这种处理方式本身也有悖于系统架构,因为驱动只需要关心底层数据包合法性和完整性即可,完全不需要关心数据包的具体内容。
由此,希望能在不影响到其他正常的通信的情况下找到一种获取这些控制信息的方法。
发明内容
本发明要解决的技术问题是为了克服现有技术中为了识别控制信息而增加驱动负担的缺陷,提供一种兼容现有的协议栈、不影响正常通信且不增加驱动负担的以太网数据包中控制信息的获取方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种以太网数据包中控制信息的获取方法,其特点在于,其包括以下步骤:
步骤S1、将该控制信息存储在一skb结构体(套接字缓冲区结构体)中并上传至协议栈的网络层;
步骤S2、将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体(消息头结构体)中;
步骤S3、将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
优选地,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
优选地,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC(Medium Access Control,介质访问控制)之后、协议号之前。格式一般为标签号加信息,长度也为固定长度。
本发明还提供一种以太网数据包中控制信息的获取系统,其特点在于,其包括:
一数据包上传装置,用于将该控制信息存储在一skb结构体中并上传至协议栈的网络层;
一数据包传输装置,用于将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;
一数据包获取装置,用于将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
优选地,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
优选地,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC之后、协议号之前。
本发明的积极进步效果在于:本发明提供了一种以太网数据包中控制信息的获取方法及系统,可以在不影响正常通信、且兼容现有协议栈的情况下获取数据包中的控制信息,且不会加重驱动的负担。
附图说明
图1为本发明一实施例的以太网数据包中控制信息的获取方法的流程图。
图2为本发明一实施例的以太网数据包中控制信息的获取系统的结构框图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
参考图1,本发明所述的以太网数据包中控制信息的获取方法,包括以下步骤:
步骤S1、将该控制信息存储在一skb结构体中并上传至协议栈的网络层;
步骤S2、将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;
步骤S3、将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
其中,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
一般来说,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC之后、协议号之前,格式一般为标签号加信息,长度也为固定长度。
参考图2,本发明所述的以太网数据包中控制信息的获取系统,包括:
一数据包上传装置1,用于将该控制信息存储在一skb结构体中并上传至协议栈的网络层;
一数据包传输装置2,用于将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;
一数据包获取装置3,用于将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
其中,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
一般来说,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC之后、协议号之前,格式一般为标签号加信息,长度也为固定长度。
下面以交换机为例进一步介绍本发明的技术方案。
首先,网卡驱动接受来自以太网的数据包,一般会在数据包中自动插入一些控制信息,例如以太网数据包中包括目的MAC地址、源MAC地址、协议号、数据内容和FCS,而该控制信息一般会在以太网数据包的源MAC地址和协议号之间,一般为10个字节。例如,该控制信息包括识别标签,队列号,物理端口号,Vlan标签,Vlan号。
接着,网卡驱动直接传送该以太网数据包到TCP/IP(Transmission ControlProtocol/Internet Protocol,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议)协议栈,协议栈首先处理该以太网数据包是否为ARP协议模块(ARP,地址解析协议模块),然后传送到IP协议模块(联网协议模块),IP模块主要再分为TCP协议和UDP协议,最后上传至上层应用程序(TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯;UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送)。
协议栈中通信函数有:sock_read、sock_recvmsg、sys_read、inet_recvmsg、udp_recvmsg、skb_recv_datagram、sock_queue_rcv_skb、udp_queue_rcv_skb、udp_rcv、ip_local deliver_finish、ip_local_deliver、ip_recv、net_rc_action和netif_rx。其中主要函数有netif_rx,驱动上调函数。ip_recv为IP层收包处理函数。udp_recvmsg为upd收包处理函数,其中,netif_rx,驱动上调函数,是协议栈提供给驱动的收包接口函数。ip_recv为IP层收包处理函数,协议栈接收处理IP层数据包的函数。udp_recvmsg为udp收包处理函数,是协议栈接收处理UDP数据包的函数。以上这些接口都是标准TCP/IP协议栈提供的各层数据包处理接口。
了解了整个以太网数据包的传输流程之后,进一步介绍如何实现通过这些函数从驱动层传输特殊信息到上层应用的。
如上所述,先把控制信息带入skb这个结构体中,因为整个协议栈都可以处理skb中所带的数据包信息。而在上层传输过程中,可以使用msghdr这个结构体,不同协议收包都有确认使用该结构体存储一些自带的控制信息。最后需要另外设计一套系统调用函数用以把msghdr中信息带给上层,同时该系统调用也需要支持原有的网络接口,通过调用基于原有的网络接口函数,例如recvfrom函数,原有参数中添加这些控制信息结构体参数,其中处理函数保持原有不变,新增传递skb架构体中带有的标签信息作为参数传送给上层应用。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (6)

1.一种以太网数据包中控制信息的获取方法,其特征在于,其包括以下步骤:
步骤S1、将该控制信息存储在一skb结构体中并上传至协议栈的网络层;
步骤S2、将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;
步骤S3、将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
2.如权利要求1所述的以太网数据包中控制信息的获取方法,其特征在于,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
3.如权利要求1所述的以太网数据包中控制信息的获取方法,其特征在于,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC之后、协议号之前。
4.一种以太网数据包中控制信息的获取系统,其特征在于,其包括:
一数据包上传装置,用于将该控制信息存储在一skb结构体中并上传至协议栈的网络层;
一数据包传输装置,用于将该skb结构体传输至协议栈的运输层,并且将该skb结构体中的该控制信息传递至一msghdr结构体中;
一数据包获取装置,用于将该msghdr结构体传输至协议栈的应用层,并采用一网络接口函数获取该msghdr结构体中的控制信息。
5.如权利要求4所述的以太网数据包中控制信息的获取系统,其特征在于,该控制信息选自:识别标签,队列号,该以太网数据包来源的MAC芯片的物理端口号,该以太网数据包来源的Vlan标签,该以太网数据包来源的Vlan号,Cos值和该以太网数据包来源的QoS队列号。
6.如权利要求4所述的以太网数据包中控制信息的获取系统,其特征在于,该控制信息在该以太网数据包中位于该以太网数据包来源的MAC之后、协议号之前。
CN201210177535.7A 2012-06-01 2012-06-01 以太网数据包中控制信息的获取方法及系统 Expired - Fee Related CN102790717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210177535.7A CN102790717B (zh) 2012-06-01 2012-06-01 以太网数据包中控制信息的获取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210177535.7A CN102790717B (zh) 2012-06-01 2012-06-01 以太网数据包中控制信息的获取方法及系统

Publications (2)

Publication Number Publication Date
CN102790717A true CN102790717A (zh) 2012-11-21
CN102790717B CN102790717B (zh) 2016-03-02

Family

ID=47156023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210177535.7A Expired - Fee Related CN102790717B (zh) 2012-06-01 2012-06-01 以太网数据包中控制信息的获取方法及系统

Country Status (1)

Country Link
CN (1) CN102790717B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401877A (zh) * 2013-08-09 2013-11-20 上海斐讯数据通信技术有限公司 获取驱动层数据包控制信息的方法及系统
CN104283892A (zh) * 2014-10-28 2015-01-14 上海斐讯数据通信技术有限公司 一种无源光纤网络协议栈的传值方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040146063A1 (en) * 2003-01-23 2004-07-29 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
US20040184456A1 (en) * 2001-06-18 2004-09-23 Carl Binding Packet-oriented data communications between mobile and fixed data networks
CN1633130A (zh) * 2005-01-14 2005-06-29 清华大学 基于硬件支持的虚拟接口结构用户层网络通信系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040184456A1 (en) * 2001-06-18 2004-09-23 Carl Binding Packet-oriented data communications between mobile and fixed data networks
US20040146063A1 (en) * 2003-01-23 2004-07-29 Cisco Technology, Inc. Methods and devices for transmitting data between storage area networks
CN1633130A (zh) * 2005-01-14 2005-06-29 清华大学 基于硬件支持的虚拟接口结构用户层网络通信系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
段辰生: "《实时Linux下网络报文捕获平台的研究与实现》", 《中国优秀硕士学位论文全文数据库》, 30 November 2009 (2009-11-30) *
胡连勇: "《基于Netfilter框架的校验字过滤防火墙的设计与实现》", 《中国优秀硕士学位论文全文数据库》, 30 April 2008 (2008-04-30) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401877A (zh) * 2013-08-09 2013-11-20 上海斐讯数据通信技术有限公司 获取驱动层数据包控制信息的方法及系统
CN104283892A (zh) * 2014-10-28 2015-01-14 上海斐讯数据通信技术有限公司 一种无源光纤网络协议栈的传值方法

Also Published As

Publication number Publication date
CN102790717B (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
CN105052081B (zh) 通信流量处理架构和方法
CN102763382B (zh) 前端系统和前端处理方法
EP2297648B1 (en) Network controller based pass-through communication mechanism between local host and management controller
CN1954574B (zh) 以太网上的统一架构
CN102907049A (zh) 基于虚拟站接口发现和配置协议响应来指定优先级
CN106464596B (zh) 开放流通信方法、系统、控制器和业务网关
CN104704778A (zh) 用于虚拟和物理网络集成的方法和系统
CN104956637A (zh) 在多个逻辑网络连接中优先化封装数据包的方法、装置以及系统
CN102769557B (zh) 一种业务数据报文的传输方法及装置
CN101616056B (zh) 突破PPPoE技术限制的分流方法、分流网关及其网络结构
CN102946347A (zh) 一种加速Linux系统本地数据包处理的方法及装置
CN108011797B (zh) 一种基于1553b协议的以太网通信系统
CN110086798B (zh) 一种基于公共虚拟接口进行通信的方法及装置
Alani et al. OSI model
CN111371666B (zh) 一种处理报文的方法、设备及系统
CN115189920A (zh) 跨网络域通信方法和相关装置
CN101909074A (zh) 一种网络接入设备及不同物理媒介间实现数据转发的方法
CN105052106B (zh) 用于接收和传输互联网协议(ip)数据包的方法和系统
CN104081740B (zh) 用以减少集中的第二层网络的无线网络包的方法和系统
CN101459532A (zh) 一种多网口设备自动组网的方法及设备
CN107733765B (zh) 映射方法、系统和相关设备
CN102790717B (zh) 以太网数据包中控制信息的获取方法及系统
CN108064441B (zh) 一种加速网络传输优化方法以及系统
EP3618407A1 (en) Method for implementing three-layer communication
CN102624613A (zh) 一种以太网网络设备及其转发FCoE数据方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Zhao Deming

Inventor before: Chen Xi

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20180313

Granted publication date: 20160302

PP01 Preservation of patent right
PD01 Discharge of preservation of patent
PD01 Discharge of preservation of patent

Date of cancellation: 20210313

Granted publication date: 20160302

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20210313

Granted publication date: 20160302

PD01 Discharge of preservation of patent
PD01 Discharge of preservation of patent

Date of cancellation: 20240313

Granted publication date: 20160302

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160302