CN110519169B - 一种应用层复用网络报文头部的方法 - Google Patents

一种应用层复用网络报文头部的方法 Download PDF

Info

Publication number
CN110519169B
CN110519169B CN201910817557.7A CN201910817557A CN110519169B CN 110519169 B CN110519169 B CN 110519169B CN 201910817557 A CN201910817557 A CN 201910817557A CN 110519169 B CN110519169 B CN 110519169B
Authority
CN
China
Prior art keywords
label
mapping
network
message
application
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
CN201910817557.7A
Other languages
English (en)
Other versions
CN110519169A (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.)
Chengdu DBAPPSecurity Co Ltd
Original Assignee
Chengdu DBAPPSecurity 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 Chengdu DBAPPSecurity Co Ltd filed Critical Chengdu DBAPPSecurity Co Ltd
Priority to CN201910817557.7A priority Critical patent/CN110519169B/zh
Publication of CN110519169A publication Critical patent/CN110519169A/zh
Application granted granted Critical
Publication of CN110519169B publication Critical patent/CN110519169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • H04L12/465Details on frame tagging wherein a single frame includes a plurality of VLAN tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种应用层复用网络报文头部的方法,对IP网络的各层头部字段进行自定义映射,转换为应用层标签,将转换后的标签通过协议栈上送到应用层,应用层直接利用上送的标签作为会话ID对数据进行处理,应用层对网络底层头部标签进行映射复用。本发明降低了冗余,提升了整个网络的数据处理性能。同时,标签的统一可以降低网络问题诊断的难度。

Description

一种应用层复用网络报文头部的方法
技术领域
本发明属于通信技术领域,具体涉及一种应用层复用网络报文头部的方法。
背景技术
对于网络报文的处理,存在多种设备和软件,这些设备和软件所处的层次可以分为网络层和应用层,两者各司其职。网络层设备和软件依据报文的头部对报文进行处理和转发,应用层设备和软件依据报文内容对数据进行处理和应答。
网络层采用分层结构,数据包在各个层次都有不同的头部字段(即标签),不同的标签适用于不同的网络场景。例如Mac标签用于二层转发,IP标签用于三层转发,Vlan标签用于Vlan隔离。
应用层的会话标签通常由应用程序单独生成、管理和使用,与网络协议栈各层的标签没有关系。比如,Linux系统上应用层的一条TCP连接会有独立的会话标签(文件描述符),而这个标签并不是根据底层的某个数据包头部映射来的。再如,一次WEB页面浏览产生的HTTP会话,通常这个HTTP会话标签由WEB应用的编写者自己生成,与底层头部无关。目前并没有一种通用的技术方案,可以将底层网络头部信息映射为应用层的会话标签。
对于很多网络应用来说,底层网络数据包头部可以用来标识用户和会话,应用层与网络层标签的分离是没有必要的,分离反而降低了数据处理的效率。比如,在一个以Mac地址标识用户的私有网络中,对数据进行处理的应用程序,可以将Mac地址映射为会话的标签,而不用再重新生成。
现在的应用程序却都没有这样复用,而是重新独立生成会话标签。综上所述,目前存在如下问题:
1.应用层独立生成会话标签
这种做法是目前网络应用程序中的最常规做法,应用层与底层网络完全解耦,其缺点前文已经有所描述,主要是冗余,降低数据处理效率,网络问题追踪诊断困难。
2.应用层使用网络层IP地址标作为会话标签
目前主流网络协议栈的实现,都可以通过SOCKET接口获取到IP地址信息,因此很多网络应用使用IP源地址作为会话标识。但是IP地址很多时候不能代表一台主机或者一个用户。比如在不同的VLAN和VXLAN域中,相同IP地址的报文可能来自于不同的主机,还需要进一步依据VLAN或VXLAN头部信息进行用户区分和标识。缺点主要是不够用。
3.Linux防火墙报文标记
Linux内核提供了基本的网络防火墙功能即Netfilter/Iptables,防火墙可以比较灵活的依据规则对报文打上标记,但遗憾的是该标记不能被应用层获取到,只能被Linux内核协议栈使用。
本发明的目的是为应用程序提供一种标签复用方案,以降低冗余,提升整个网络的数据处理性能。同时,标签的统一可以降低网络问题诊断的难度。
发明内容
本发明公开了一种应用层复用网络报文头部的方法,本发明通过应用层对网络底层头部标签进行映射复用,以降低冗余,提升整个网络的数据处理性能。
本发明主要通过以下技术方案实现:一种应用层复用网络报文头部的方法,对IP网络的各层头部字段进行自定义映射,转换为应用层标签,将转换后的标签通过协议栈上送到应用层,应用层直接利用上送的标签作为会话ID对数据进行处理,应用层对网络底层头部标签进行映射复用。
为了更好的实现本发明,进一步的,输入的报文依次经过标签映射、网络协议栈、标签提取处理后进入应用程序;输入方向的报文处理步骤如下:
步骤S1:提取映射字段;
步骤S2:根据映射算法进行映射,得到应用标签值;
步骤S3:将步骤S2中映射得到的标签写入协议栈中的报文控制结构;
步骤S4:应用程序从协议栈获取标签值。
为了更好的实现本发明,进一步的,所述步骤S1中提取的字段包括Mac地址、以太协议号、VLAN Tag、VXLAN ID、IP地址、IP协议号、IP端口号中的任意一种或者多种字段。
为了更好的实现本发明,进一步的,所述步骤S2中映射算法采用一一映射或者根据多个字段组合进行哈希散列计算,哈希算法为CRC16或CRC32或MD5;所述一一映射直接使用报文字段作为应用标签,哈希映射则使用散列结果作为应用标签。
为了更好的实现本发明,进一步的,若存在哈希冲突,则将冲突链的序列号同时上送应用程序;对于同时上送了冲突序列号的hash值,应用程序需要使用(标签,序列号)二元组作为标签值。
为了更好的实现本发明,进一步的,输出的报文依次经过应用程序、标签写入、网络协议栈、标签反向映射处理后输出;输出方向的报文处理步骤如下:
步骤L1:应用程序将标签写入协议栈报文控制字段;
步骤L2:将标签写入报文。
为了更好的实现本发明,进一步的,所述步骤L1中复用报文控制结构中已有字段或者新添加一个字段。
为了更好的实现本发明,进一步的,报文输出方向的标签反向映射不支持哈希映射。
本发明中将网络报文头部映射转化为应用层会话标签。使用哈希算法对多个字段进行散列映射得到会话标签。允许将会话标签反向映射回数据报文头部的某一字段。
本发明的有益效果:
(1)本发明通过应用层对网络底层头部标签进行映射复用,以降低冗余,提升整个网络的数据处理性能。
(2)应用层复用网络层的头部字段,降低了重新生成会话标签的冗余开销,提升了网络处理系统的性能。同时,网络层与应用层会话ID的统一,使得数据流追踪变得更容易,降低了网络处理系统问题的诊断难度。
附图说明
图1为本发明的原理框图;
图2为输入报文的处理流程图;
图3位输出报文的处理流程图。
具体实施方式
实施例1:
一种应用层复用网络报文头部的方法,对IP网络的各层头部字段进行自定义映射,转换为应用层标签,将转换后的标签通过协议栈上送到应用层,应用层直接利用上送的标签作为会话ID对数据进行处理,而不是自行生成一套会话标签。关键点是应用层对网络底层头部标签进行映射复用,以降低冗余,提升整个网络的数据处理性能。同时,标签的统一可以降低网络问题诊断的难度。
如图1所示,输入方向:报文依次经过“标签映射->网络协议栈->标签提取->应用程序”几个数据处理模块。输出方向:报文依次经过“应用程序->标签写入->网络协议栈->标签反向映射”几个数据处理模块。
实施例2:
本实施例是在实施例1的基础上进行优化,如图2所示,输入方向的报文,依次经过如下处理步骤:
1.提取映射源字段。提取依据是应用程序设定的,可选的字段包括Mac地址、以太协议号、VLAN Tag、VXLAN ID、IP地址、IP协议号、IP端口号等。可以是单个字段,也可以是多个字段的组合。
2.根据映射算法进行映射,得到应用标签值。映射算法由应用进行设定,可以是简单的一一映射,也可以是根据多个字段组合进行哈希散列计算,可选的计算哈希算法包括CRC16, CRC32,MD5等。一一映射即直接使用某个报文字段比如Mac地址作为应用标签,哈希映射则使用散列结果作为应用标签。
如果存在哈希冲突,则将冲突链的序列号同时上送应用程序。
3.映射得到的标签写入协议栈中的报文控制结构。对于不同的协议栈,该步骤实现方式可能略有差异,有的可以复用报文控制结构中已有字段,比如Linux协议栈可以复用SO_MARK字段,有的则需要在报文控制结构中新添加一个标签字段。
4.应用从协议栈获取标签值。对于在操作系统内核实现的协议栈,通常是调用一个系统API,比如Linux协议栈的getsockopt系统调用。
5.对于同时上送了冲突序列号的hash值,应用程序需要使用(标签,序列号)二元组作为标签值。
6.应用程序根据用户标签对数据报文进行处理。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例3:
本实施例是在实施例1或2的基础上进行优化,如图2所示,输出方向的报文依次经过如下步骤:
1.应用将标签写入协议栈报文控制字段。类似输入方向,对于不同的协议栈实现,该步骤实现方式可能略有差异,有的可以复用报文控制结构中已有字段,有的则需要新添加一个字段。
2.将标签写入报文。与报文输入方向不同,输出方向的标签反向映射不支持哈希映射。原因是,由于传统网络设备的限制,网络层报文头部不能被任意修改。但有的场景网络层还是允许修改头部的,比如网络层使用的是用户自定义的SDN网络。本方案中依然允许应用程序指定标签写入的报文头部字段,可以是Mac地址、以太协议号、VALN Tag、VXLANID、IP地址、IP协议号、IP端口号等中的任意一个。
本实施例的其他部分与上述实施例1或2相同,故不再赘述。
实施例4:
一种应用层复用网络报文头部的方法,使用MAC地址映射标识DHCP服务器应用中请求主机:
1)提取请求报文中的源MAC字段;
2)根据CRC16算法对源MAC地址的6个字节进行计算,得到一个2字节长度的HASH值。
控制冲突链的长度在256个以内,即可以用1字节表示。
3)将Hash计算的结果写入到Linux协议栈SKB控制结构中的SO_MARK字段;
4)DHCP服务器通过GETSOCKOPT接口获取读取SO_MARK作为请求主机的身份标识;
5)DHCP服务器根据主机身份为用户分配IP地址;
该实施例中DHCP协议不用更改,但是服务器实现内部的客户端标识使用标签映射。映射地址长度只有2字节,加上冲突链只有3字节。满足客户端主机小于65536台的场景。节省了服务器分配和存储ID的CPU与内存资源。
更进一步,不采用现有的DHCP协议,可以设计一种新协议实现IP地址的分配。依据MAC和应用层标签的映射,可以在地址请求和回复报文中不传递客户端的网卡地址,优化网络传输效率。
实施例5:
一种应用层复用网络报文头部的方法,使用VXLAN ID进行应用资源限制:
1)提取请求报文中的源VXLAN ID字段;
2)对VXLAN ID进行一一映射,转化为用户标签,即VXLAN ID直接作为用户标签;
3)将Hash计算的结果写入到Linux协议栈SKB控制结构中的SO_MARK字段;
4)私有云中的应用程序通过GETSOCKOPT接口获取读取SO_MARK作为用户的身份标识;
5)应用程序根据用户标签查询并检查用户所占有的资源;
6)根据资源占有情况对用户请求报文进行应答,如果访问的资源非法则拒绝访问;
该实例中复用了网络层的VXLAN ID作为应用程序中的应用标签,进行资源管理和检查。本发明降低了冗余,提升了整个网络的数据处理性能。同时,标签的统一可以降低网络问题诊断的难度。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (6)

1.一种应用层复用网络报文头部的方法,其特征在于,对IP网络的各层头部字段进行自定义映射,转换为应用层标签,将转换后的标签通过协议栈上送到应用层,应用层直接利用上送的标签作为会话ID对数据进行处理,应用层对网络底层头部标签进行映射复用;
输入的报文依次经过标签映射、网络协议栈、标签提取处理后进入应用程序;输入方向的报文处理步骤如下:
步骤S1:提取映射字段;
步骤S2:根据映射算法进行映射,得到应用标签值;
步骤S3:将步骤S2中映射得到的标签写入协议栈中的报文控制结构;
步骤S4:应用程序从协议栈获取标签值;
输出的报文依次经过应用程序、标签写入、网络协议栈、标签反向映射处理后输出;输出方向的报文处理步骤如下:
步骤L1:应用程序将标签写入协议栈报文控制字段;
步骤L2:将标签写入报文。
2.根据权利要求1所述的一种应用层复用网络报文头部的方法,其特征在于,所述步骤S1中提取的字段包括Mac地址、以太协议号、VLAN Tag、VXLAN ID、IP地址、IP协议号、IP端口号中的任意一种或者多种字段。
3.根据权利要求1所述的一种应用层复用网络报文头部的方法,其特征在于,所述步骤S2中映射算法根据多个字段组合进行哈希散列计算,哈希算法为CRC16或CRC32或MD5, 哈希映射使用散列结果作为应用标签。
4.根据权利要求3所述的一种应用层复用网络报文头部的方法,其特征在于,若存在哈希冲突,则将冲突链的序列号同时上送应用程序;对于同时上送了冲突序列号的hash值,应用程序需要使用: 标签,序列号二元组作为标签值。
5.根据权利要求1-4任一项所述的一种应用层复用网络报文头部的方法,其特征在于,所述步骤L1中复用报文控制结构中已有字段或者新添加一个字段。
6.根据权利要求1-4任一项所述的一种应用层复用网络报文头部的方法,其特征在于,报文输出方向的标签反向映射不支持哈希映射。
CN201910817557.7A 2019-08-30 2019-08-30 一种应用层复用网络报文头部的方法 Active CN110519169B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910817557.7A CN110519169B (zh) 2019-08-30 2019-08-30 一种应用层复用网络报文头部的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910817557.7A CN110519169B (zh) 2019-08-30 2019-08-30 一种应用层复用网络报文头部的方法

Publications (2)

Publication Number Publication Date
CN110519169A CN110519169A (zh) 2019-11-29
CN110519169B true CN110519169B (zh) 2021-11-26

Family

ID=68628646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910817557.7A Active CN110519169B (zh) 2019-08-30 2019-08-30 一种应用层复用网络报文头部的方法

Country Status (1)

Country Link
CN (1) CN110519169B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844963B (zh) * 2022-03-31 2023-02-17 慧之安信息技术股份有限公司 基于开源协议栈eXosip的扩展头部信息提取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060472A (zh) * 2006-04-17 2007-10-24 中国科学院计算技术研究所 基于路由的会话初始化协议透明穿越网络地址转换的方法
CN101072174A (zh) * 2007-03-23 2007-11-14 南京邮电大学 基于净荷深度检测和会话关联技术的腾讯语音识别方法
CN102170386A (zh) * 2010-02-26 2011-08-31 中兴通讯股份有限公司 身份标识与位置分离的实现方法、系统及数据封装方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060472A (zh) * 2006-04-17 2007-10-24 中国科学院计算技术研究所 基于路由的会话初始化协议透明穿越网络地址转换的方法
CN101072174A (zh) * 2007-03-23 2007-11-14 南京邮电大学 基于净荷深度检测和会话关联技术的腾讯语音识别方法
CN102170386A (zh) * 2010-02-26 2011-08-31 中兴通讯股份有限公司 身份标识与位置分离的实现方法、系统及数据封装方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于身份位置分离的新协议栈设计与实现";董庆洲;《中国优秀硕士论文电子期刊网》;20120815;正文第3页-第70页 *

Also Published As

Publication number Publication date
CN110519169A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
EP3854038B1 (en) Segment routing with fast reroute for container networking
US6560630B1 (en) Receive load balancing and fail over with multiple network interface cards
EP3353997B1 (en) Technologies for offloading data object replication and service function chain management
US6799220B1 (en) Tunneling management messages over a channel architecture network
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
CN102104541B (zh) 报头处理引擎
EP3404879B1 (en) Metro ethernet network with virtual local area network information specifying a broadcast domain and including a service instance identifier
JP4053967B2 (ja) Vlanサーバ
US7924840B1 (en) Virtualizing the operation of intelligent network interface circuitry
US11907749B2 (en) RDMA with virtual address space
US7106751B2 (en) Apparatus for linking a SAN with a LAN
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
CN107770026B (zh) 租户网络数据传输方法、租户网络系统和相关设备
US20160065386A1 (en) Scalable virutal networks in sdn-based ethernet networks using vlans
JP2019527988A (ja) パケット伝送
US8539089B2 (en) System and method for vertical perimeter protection
CN104468401A (zh) 一种报文处理方法和装置
CN106713144A (zh) 一种报文出口信息的读写方法及转发引擎
CN112968919B (zh) 一种数据处理方法、装置、设备和存储介质
CN104734930B (zh) Vlan接入vf网络的实现方法及装置、fcf
CN110519169B (zh) 一种应用层复用网络报文头部的方法
CN114050998A (zh) 实现远程直接内存访问的方法、装置、电子设备及介质
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
CN109286564B (zh) 一种报文转发方法及装置
WO2024001701A1 (zh) 数据处理方法、装置及系统

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
GR01 Patent grant
GR01 Patent grant