CN102447627A - 报文封装和解封装的装置及方法 - Google Patents

报文封装和解封装的装置及方法 Download PDF

Info

Publication number
CN102447627A
CN102447627A CN2011103975052A CN201110397505A CN102447627A CN 102447627 A CN102447627 A CN 102447627A CN 2011103975052 A CN2011103975052 A CN 2011103975052A CN 201110397505 A CN201110397505 A CN 201110397505A CN 102447627 A CN102447627 A CN 102447627A
Authority
CN
China
Prior art keywords
module
message
protocol
decapsulation
chain
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
CN2011103975052A
Other languages
English (en)
Other versions
CN102447627B (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 DINGZU COMMUNICATION TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI DINGZU 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 DINGZU COMMUNICATION TECHNOLOGY Co Ltd filed Critical SHANGHAI DINGZU COMMUNICATION TECHNOLOGY Co Ltd
Priority to CN201110397505.2A priority Critical patent/CN102447627B/zh
Publication of CN102447627A publication Critical patent/CN102447627A/zh
Application granted granted Critical
Publication of CN102447627B publication Critical patent/CN102447627B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

一种报文封装和解封装的装置,包括网络会话应用模块、上层应用协议模块、IP层模块、控制面处理程序模块和设备驱动模块,进一步包括一私有协议封装模块、一私有协议解封装模块和一收发包模块,所述私有协议封装模块和所述私有协议解封装模块均设置在所述上层应用协议模块和所述IP层模块之间,所述私有协议封装模块用于私有协议报文的封装处理;所述私有协议解封装模块用于私有协议报文的解封装处理;所述收发包模块设置在所述控制面处理程序模块和所述设备驱动模块之间,用于滤出网络会话过程中数据报文中的控制面报文,以及将控制面处理程序模块封装好的控制面报文经设备驱动模块发送出去。

Description

报文封装和解封装的装置及方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种报文封装和解封装的装置及方法。
背景技术
以太网(Ethernet)技术作为当前常用的局域网组网方式,目前广泛应用在有限数据通信、无线数据通信、网络监控等各个领域。由于以太网本身的传输距离有限,当以太网报文需要长距离传输时,需要对以太网报文进行封装后再传输。Linux是一种自由的Unix类多用户、多任务的操作系统,具有内核小、效率高、源代码开放等优点,还内含了TCP/IP网络协议,很适合在服务器领域使用,而服务器主要用途之一就是进行网络通信。
参考附图1,现有linux常用IP协议栈的IP报文的封装和解封装流程示意图。在建立网络会话的过程中,对控制面和用户面的报文都可能需要进行重新的封装和解封装。在采用linux系统的 PC上,实现IP报文的封装和解封装,既可以在用户态实现,也可以在内核态实现。对于采用了linux内核的Android终端,考虑到其系统资源相对于PC来说非常有限,需要避免频繁在用户态和内核态之间拷贝数据,所以应尽量在内核态来实现。为了充分利用现有的协议栈,避免直接修改Android内核的代码,需要对现有的linux系统的IP报文的封装和解封装方法进行改进。
发明内容
本发明所要解决的技术问题是,提供一种报文封装和解封装的装置及方法,解决现有网络会话的过程中,控制面和用户面的报文都可能需要进行重新的封装和解封装,需要频繁在用户态和内核态之间拷贝数据,造成系统资源浪费的问题。
为了解决上述问题,本发明提供了一种报文封装和解封装的装置,包括网络会话应用模块、上层应用协议模块、IP层模块、控制面处理程序模块和设备驱动模块,所述网络会话应用模块用于产生数据报文和处理解封装后的数据报文,其特征在于:进一步包括一私有协议封装模块、一私有协议解封装模块和一收发包模块,所述私有协议封装模块和所述私有协议解封装模块均设置在所述上层应用协议模块和所述IP层模块之间,所述私有协议封装模块用于私有协议报文的封装处理;所述私有协议解封装模块用于私有协议报文的解封装处理;所述收发包模块设置在所述控制面处理程序模块和所述设备驱动模块之间,用于滤出网络会话过程中数据报文中的控制面报文,以及将控制面处理程序模块封装好的控制面报文经设备驱动模块发送出去。
可选的,所述上层应用协议模块进一步包含传输控制协议模块、用户数据包协议模块、互连网控制报文协议模块、原始报文数据处理模块、套接字层模块和JAVA层模块。
可选的,所述收发包模块通过抓包库程序实现;所述私有协议封装模块和所述私有协议解封装模块均通过Netfilter定义的函数实现。
为了解决上述问题,本发明还提供了一种采用本发明所述装置进行报文封装的方法,包括如下步骤:
(a)所述控制面报文由所述控制面处理程序模块在用户态进行逐级封装处理后,通过所述收发包模块发送出去;
(b)所述用户面报文在所述内核态由所述上层应用协议模块、所述私有协议封装模块和所述IP层模块完成报文的逐级封装处理。
可选的,所述用户面进一步包括一私有协议,所述私有协议封装模块完成所述私有协议的报文封装处理的步骤进一步包括:在IP层模块向上层应用协议模块传递报文之前,利用所述私有协议封装模块对所述用户面报文加上所述私有协议规定的字段完成报文封装。
可选的,所述收发包模块通过抓包库程序实现;所述私有协议封装模块中包括通过Netfilter定义的函数。
为了解决上述问题,本发明还提供了一种采用本发明所述装置进行报文解封装的方法,包括如下步骤:
(1)在所述收发包模块中设置过滤规则,过滤出所述控制面报文;
(2)所述控制面处理程序模块在用户态对所述控制面报文进行逐级解封装处理;
(3)所述用户面报文在内核态由所述IP层模块、所述私有协议封装模块和所述上层应用协议模块完成报文的逐级解封装处理后传送到所述网络会话应用模块。
可选的,所述过滤出所述控制面报文的步骤进一步包括:在所述设备驱动模块收到数据报文后,所述收发包模块根据控制面的会话控制协议的指定端口以及所述控制面的IP地址,从所述数据报文中过滤出所述控制面报文,并传送给所述控制面处理程序模块进行处理。
可选的,所述用户面进一步包括一私有协议,所述私有协议解封装模块完成所述私有协议的报文解封装处理的步骤进一步包括:在IP层模块向上层应用协议模块传递报文之前,利用所述私有协议解封装模块把所述私有协议规定的字段解封装。
可选的,所述收发包模块通过抓包库程序实现;所述私有协议解封装模块中包括通过Netfilter定义的函数。
本发明的积极效果在于,在收发包模块中设置过滤规则,把控制面的报文过滤出来,使进入内核协议栈的报文不再包含控制面报文。从而使数据流量较大的用户面数据报文直接在内核态完成封装和解封装,避免了在用户态和内核态之间的切换,进而避免了增加额外的大量系统开销。对于数据流量比较小的控制面报文,则直接通过抓包库抓取到用户态的程序进行处理,以完成网络会话协议的各流程要求。
本发明尤其适用于Android系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,包括手机、平板电脑和其它行业或工业应用终端,应用越来越普及。本发明充分利用现有的Netfilter架构和开源代码Libpcap,完成报文的封装和解封装,同时对不同的使用场合(控制面或用户面),保留了充分的灵活性,并且避免了对底层驱动的修改,与Android原有的内核IP协议栈完全兼容,不需修改源码,这样对于不同的Android终端,其可移植性也得到了保证,最大限度的避免了过多地增加Android终端设备的系统开销。
附图说明
图1,现有linux常用IP协议栈的IP报文的封装和解封装流程示意图;
图2,本发明所述报文封装和解封装的装置结构示意图;
图3A,本发明所述报文封装方法流程图;
图3B,本发明所述报文封装方法的数据报文流向图;
图4A,本发明所述报文解封装方法流程图;
图4B,本发明所述报文解封装方法的数据报文流向图;
图5,本发明所述报文封装和解封装方法的一实施例的流程示意图。
具体实施方式
下面结合附图对本发明提供的报文封装和解封装方法的具体实施方式做详细说明。
在建立网络会话的过程中,控制面走信令流程,数据流量比较小,内部通过以太网互连,用于内部控制、信令流互连;用户面走用户数据流,用于媒体流互连,用户面数据流包括G.711等语音流、ATM语音数据、IP语音数据等,数据流量比较大。
参考附图2,本发明所述报文封装和解封装的装置结构示意图,包括网络会话应用模块M21、上层应用协议模块M22、私有协议封装模块M23、私有协议解封装模块M24、IP层模块M25、控制面处理程序模块M26、收发包模块M27和设备驱动模块M28。
对于数据流量比较小的控制面报文直接在用户态由控制面处理程序模块M26直接通过收发包模块M27完成。
收发包模块M27的通过Libpcap(Packet Capture Library,抓包库)程序实现。在Libpcap中设置过滤规则,在设备驱动模块M28收到报文后,第一时间根据会话控制协议的指定端口以及控制面IP地址,把控制面的报文过滤出来,这样,进入内核协议栈的报文,就不再包含控制面报文了。
Libpcap是unix/linux平台下的网络数据包捕获函数包,提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性,所有网络上的数据包,甚至是那些发送给其他主机的,通过这种机制,都可以捕获。它也支持把捕获的数据包保存为本地文件和从本地文件读取信息。
控制面处理程序模块M26收到过滤出来的控制面报文,根据以太网协议,IP(互联网)协议,UDP协议(User Datagram Protocol,用户数据包协议),会话控制协议,逐级进行解封装处理;当需要发送报文或回复响应时,再反向的逐级进行封装处理,然后通过收发包模块M27,直接从设备驱动模块M28发出去。
网络会话应用模块M21的用于产生数据报文和处理解封装后的数据报文。 
对于数据流量比较大的用户面报文则直接在内核态由上层应用协议模块M22、私有协议封装模块M23、私有协议解封装模块M24和IP层模块M25来完成报文封装和解封装。
上层应用协议模块M22包含TCP协议(Transmission Control Protocol 传输控制协议)模块、UDP协议模块、ICMP协议(Internet Control Message Protocol,互连网控制报文协议)模块、原始报文数据处理模块、套接字层模块和JAVA层模块。
原始报文数据处理模块包括一RAW,所述RAW表示原始数据,并不是指一种协议。比如一个数据报文有14(MAC头)+20(IP头)+8(UDP头)+100(具体的UDP数据);UDP的数据就是100;RAW的数据是20+8+100。在处理报文时,如果需要对底层协议进行处理,就会用到RAW。
若用户面在IP层模块M25之上使用特殊的私有协议,该私有协议不存在于linux的协议栈中,则linux自有的协议栈无法解析这个私有协议规定的字段。
接收数据报文时,在IP层模块M25向上层应用协议模块M22继续传递报文之前,先根据用户面IP地址,判断出该数据报文是发给本机的用户面报文,再利用私有协议解封装模块M24对数据报文进行解封装处理,即把私有协议规定的字段解封装,把数据报文修改成linux原有的协议栈可以解析的格式,再交给上层应用协议模块M22处理。
发送数据报文时,在协议栈进行IP层模块M25的处理之前,利用私有协议封装模块M23对数据报文进行封装处理,即对数据报文加上私有协议规定的字段进行报文封装,然后再传送给IP层模块M25进行封装后通过设备驱动模块M28发出去。
其中私有协议封装模块M23通过Netfilter(简称NF)定义的NF_IP_LOCAL_OUT函数实现;私有协议解封装模块M24通过Netfilter定义的NF_IP_LOCAL_IN函数实现。
Netfilters是新一代的Linux防火墙机制,采用模块化设计,具有良好的可扩充性,并允许使用者对数据报文进行过滤、地址转换、处理等操作。Netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。Netfilter的通用框架不依赖于具体的协议,而是为每种网络协议定义一套HOOK函数。HOOK函数包含NF_IP_ LOCAL_OUT、NF_IP_ LOCAL_IN等。这些HOOK函数在数据报经过协议栈的几个关键点时被调用,在这几个点中,协议栈将数据报及HOOK函数标号作为参数,传递给Netfilter框架。对于在网络堆栈中增加的这些HOOK,内核的任何模块可以对每种协议的一个或多个HOOK进行注册,实现挂接。这样当某个数据报被传递给Netfilter框架时,内核能检测到是否有任何模块对该协议和HOOK函数进行了注册。若注册了,则调用该模块的注册时使用的回调函数,这样这些模块就有机会检查、修改、丢弃该数据报及指示Netfilter将该数据报传入用户空间的队列。这样,HOOK提供了一种方便的机制:在数据报通过Linux内核的不同位置上截获和操作处理数据报。
本发明的积极效果在于,在建立网络会话的过程中,控制面和用户面的报文实现了在协议栈中的完全分离,避免了在用户态和内核态之间的切换,从而避免了增加额外的大量系统开销。本发明尤其适用于Android系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,包括手机、平板电脑和其它行业或工业应用终端,应用越来越普及。本发明针对不同的情形(用户面/控制面),在系统的不同位置(内核态/用户态)完成报文的处理,保证对原有的内核协议栈的完全兼容,同时对Android终端的系统开销影响降到最低。
参考附图3A,本发明所述报文封装方法流程图,在建立网络会话的过程中,控制面和用户面的报文在IP协议栈中完全分离,分别在用户态、内核态完成封装。
网络会话过程中数据报文的封装过程包括如下步骤:
S31:在常用IP协议栈中增加私有协议封装模块和收发包模块。
私有协议封装模块设置在上层应用协议模块和IP层模块之间,用于私有协议报文的封装处理;收发包模块设置在控制面处理程序模块和设备驱动模块之间,用于控制面报文的处理与收发。
其中私有协议封装模块通过Netfilter(简称NF)定义的NF_IP_LOCAL_OUT函数实现;收发包模块通过开源代码Libpcap程序实现。
S32:控制面报文由控制面处理程序模块在用户态进行逐级封装处理后,通过收发包模块发送出去。
对于数据流量较小的控制面报文,采用控制面处理程序模块,在用户态根据会话控制协议、UDP协议、IP协议以及以太网协议逐级进行封装处理,然后通过收发包模块的Libpcap经设备驱动模块发送出去。
S33:用户面报文在内核态由IP协议栈和私有协议封装模块完成报文的逐级封装处理。
IP协议栈包括上层应用协议模块和IP层模块,其中上层应用协议模块进一步包含TCP协议模块、UDP协议模块、ICMP协议模块、原始报文数据处理模块、套接字层模块和JAVA层模块。
若用户面在IP层模块之上使用特殊的私有协议,该私有协议不存在于linux的IP协议栈中,则Linux自有的IP协议栈无法解析这个私有协议规定的字段。因此发送数据报文时,在IP协议栈进行IP层模块的处理之前,利用私有协议封装模块中Netfilter定义的NF_IP_ LOCAL_OUT对应的OUTPUT规则链表来对数据报文进行规则匹配的筛选处理,即对数据报文加上私有协议规定的字段完成报文封装,然后再传送给IP层模块进行封装处理后经设备驱动模块发送出去。
参考附图3B,本发明所述报文封装方法的数据报文流向图,是根据图3A所示方法进行数据报文封装时数据报文的流向图。对于控制面的报文,在控制面处理程序根据会话控制协议、UDP协议、IP协议、以太网协议逐级进行逐级封装处理。封装完成后通过Libpcap,直接经Device driver(设备驱动)发送出去。
对于用户面的报文,依次经JAVA层、套接字层、RAW、TCP/UDP协议、ICMP协议进行封装处理后,在进行IP层的处理之前,利用Netfilter定义的NF_IP_ LOCAL_OUT对应的OUTPUT规则链表来对报文进行规则匹配的筛选处理,即对报文加入私有协议规定的字段进行报文封装后,再传送给IP层进行处理后经Device driver发送出去。
参考附图4A,本发明所述报文解封装方法流程图,在建立网络会话的过程中,控制面和用户面的报文在IP协议栈中完全分离,分别在用户态、内核态完成解封装。
网络会话过程中数据报文的解封装过程包括如下步骤:
S41:在常用IP协议栈中增加私有协议解封装模块和收发包模块。
私有协议解封装模块设置在上层应用协议模块和IP层模块之间,用于私有协议报文的解封装处理;收发包模块设置在控制面处理程序模块和设备驱动模块之间,用于控制面报文的收发处理。
其中私有协议解封装模块通过Netfilter定义的NF_IP_LOCAL_IN函数实现;收发包模块通过开源代码Libpcap程序实现。
S42:在收发包模块中设置过滤规则,过滤出控制面报文。
在收发包模块中通过Libpcap设置过滤规则,过滤出数据报文的控制面报文。过滤规则为根据会话控制协议的指定端口以及控制面IP地址,把控制面的报文过滤出来,这样,进入内核协议栈的报文,就不再包含控制面报文了。
在网络会话过程中,设备驱动模块收到数据报文后,先根据过滤规则把控制面的报文过滤出来,然后直接送交用户态的控制面处理程序模块进行处理。
S43:控制面处理程序模块在用户态对控制面报文进行逐级解封装处理。
对于接收到的数据流量较小的控制面报文,采用控制面处理程序模块,在用户态根据太网协议,IP协议,UDP协议和会话控制协议逐级进行解封装处理。
S44:用户面报文由IP协议栈和私有协议解封装模块在内核态完成报文的逐级解封装处理。
IP协议栈包括上层应用协议模块和IP层模块,其中上层应用协议模块进一步包含TCP协议模块、UDP协议模块、ICMP协议模块、原始报文数据处理模块、套接字层模块和JAVA层模块。
若用户面在IP层模块之上使用了不存在于linux的协议栈中私有协议,则linux自有的协议栈无法解析这个私有协议规定的字段。接收数据报文时,在IP层模块向上层应用协议模块继续传递报文之前,先根据用户面IP地址,判断出该数据报文是发给本机的用户面报文,再利用私有协议解封装模块中Netfilter定义的NF_IP_LOCAL_IN对应的INPUT规则链表来对数据报文进行规则匹配的筛选处理,即把私有协议规定的字段解封装,把报文修改成linux原有的协议栈可以解析的格式,再传送给上层应用协议模块处理。
参考附图4B,本发明所述报文解封装方法的数据报文流向图,是根据图4A所示方法进行数据报文解封装时数据报文的流向图。在网络会话过程中,Device driver收到数据报文后,先根据Libpcap中设定的过滤规则把控制面的报文过滤出来,送交用户态的控制面处理程序进行处理,进入内核协议栈的报文,就不再包含控制面报文了。
对于控制面的报文,在控制面处理程序根据、UDP协议、IP协议、以太网协议逐级进行逐级解封装处理。
对于用户面的报文,由于存在私有协议,这些私有协议报文如果不进行解封装处理,linux的协议栈是解析不了的。因此数据报文通过IP层解封装后,在向上层应用协议的协议栈继续传递之前,先根据用户面IP地址,判断出这是用户面的报文,再利用Netfilter定义的NF_IP_LOCAL_IN对应的INPUT规则链表来对报文进行规则匹配的筛选处理,把私有协议的特殊字段解封装,把报文修改成Linux原有的协议栈可以解析的格式后,再依次经RAW、TCP/UDP协议、ICMP协议、套接字层和JAVA层进行逐级解封装处理后传送到网络会话应用模块。
请继续参考附图5,本发明所述报文封装和解封装方法的一实施例的流程示意图,本实施例为SIP会话中控制面和用户面报文的流向和封装和解封装的流程。
以电信的C+W项目为例,控制面的协议是SIP协议(Session Initiation Protocol,会话启动协议),用户面在IP层之上电信规范的隧道协议,该协议相当于是电信的私有协议,不存在于Linux的协议栈中。
对于控制面的报文,我们在Libpcap中设置过滤规则,因为是SIP协议,所以可以根据SIP协议的指定端口(5060),以及电信服务器的控制面IP地址,在设备驱动收到报文后,第一时间根据这些特点把控制面的报文过滤出来,然后直接送交用户态的控制面处理程序进行处理。这样,进入内核协议栈的报文,就不再包含控制面报文了。用户态的控制面处理程序收到过滤出来的SIP报文,根据以太网协议,IP协议,UDP协议,SIP协议,逐级进行解封装处理;当需要发送报文或回复响应时,再反向的进行逐级的封装,然后通过Libpcap,直接经Device driver(设备驱动)发送到server(服务器)。
对于用户面的报文,由于有电信的隧道协议,这些报文如果不进行解封装处理,linux的协议栈是解析不了的,因为这些报文相当于比正常的IP报文都多了一个字段,linux自有的协议栈无法解析这个电信规定的字段。
接收报文时,在IP层向上层应用协议的协议栈继续传递报文之前,先根据电信服务器的用户面IP地址,判断出这是用户面的报文,再利用Netfilter定义的NF_IP_LOCAL_IN对应的INPUT规则链表来对报文进行规则匹配的筛选处理,把电信的特殊字段解封装,把报文修改成Linux原有的协议栈可以解析的格式后,再传送到上层应用协议的协议栈进行处理后传送到网络会话应用。上层应用协议的协议栈包含TCP协议、UDP协议层ICMP协议、RAW、套接字层和JAVA层。
发送报文时,在IP协议栈进行IP层的处理之前,利用Netfilter定义的NF_IP_ LOCAL_OUT对应的OUTPUT规则链表来对报文进行规则匹配的筛选处理,即对报文加入电信的隧道协议规定的字段进行报文封装,然后再传送给IP层协议栈进行处理后经Device driver和server发送到User Agent(用户代理)。
本发明的积极效果在于,在Libpcap中设置过滤规则,可以在设备驱动收到报文后,第一时间把控制面的报文过滤出来,使进入内核协议栈的报文不再包含控制面报文。从而使数据流量较大的用户面数据报文直接在内核态完成封装和解封装,避免了在用户态和内核态之间的切换,进而避免了增加额外的大量系统开销。对于数据流量比较小的控制面报文,则直接通过Libpcap抓取到用户态的程序进行处理,以完成SIP会话协议的各流程要求。本发明尤其适用于Android系统,本发明充分利用现有的Netfilter架构和开源代码Libpcap,完成报文的封装和解封装,同时对不同的使用场合(控制面或用户面),保留了充分的灵活性,并且避免了对底层驱动的修改,与Android原有的内核IP协议栈完全兼容,不需修改源码,这样对于不同的Android终端,其可移植性也得到了保证,最大限度的避免了过多地增加Android终端设备的系统开销。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种报文封装和解封装的装置,包括网络会话应用模块、上层应用协议模块、IP层模块、控制面处理程序模块和设备驱动模块,所述网络会话应用模块用于产生数据报文和处理解封装后的数据报文,其特征在于:进一步包括一私有协议封装模块、一私有协议解封装模块和一收发包模块,所述私有协议封装模块和所述私有协议解封装模块均设置在所述上层应用协议模块和所述IP层模块之间,所述私有协议封装模块用于私有协议报文的封装处理;所述私有协议解封装模块用于私有协议报文的解封装处理;所述收发包模块设置在所述控制面处理程序模块和所述设备驱动模块之间,用于滤出网络会话过程中数据报文中的控制面报文,以及将控制面处理程序模块封装好的控制面报文经设备驱动模块发送出去。
2.根据权利要求1所述报文封装和解封装的装置,其特征在于:所述上层应用协议模块进一步包含传输控制协议模块、用户数据包协议模块、互连网控制报文协议模块、原始报文数据处理模块、套接字层模块和JAVA层模块。
3.根据权利要求1所述报文封装和解封装的装置,其特征在于:所述收发包模块通过抓包库程序实现;所述私有协议封装模块和所述私有协议解封装模块均通过Netfilter定义的函数实现。
4.一种采用权利要求1所述装置进行报文封装的方法,其特征在于,包括如下步骤:
(a)所述控制面报文由所述控制面处理程序模块在用户态进行逐级封装处理后,通过所述收发包模块发送出去;
(b)所述用户面报文在所述内核态由所述上层应用协议模块、所述私有协议封装模块和所述IP层模块完成报文的逐级封装处理。
5.根据权利要求4所述报文封装的方法,其特征在于:所述用户面进一步包括一私有协议,所述私有协议封装模块完成所述私有协议的报文封装处理的步骤进一步包括:
在所述IP层模块向所述上层应用协议模块传递报文之前,利用所述私有协议封装模块对所述用户面报文加上所述私有协议规定的字段完成报文封装。
6.根据权利要求4或5所述报文封装方法,其特征在于:所述收发包模块通过抓包库程序实现;所述私有协议封装模块中包括通过Netfilter定义的函数。
7.一种采用权利要求1所述装置进行报文解封装的方法,其特征在于,包括如下步骤:
(1)在所述收发包模块中设置过滤规则,过滤出所述控制面报文;
(2)所述控制面处理程序模块在用户态对所述控制面报文进行逐级解封装处理;
(3)所述用户面报文在内核态由所述IP层模块、所述私有协议封装模块和所述上层应用协议模块完成报文的逐级解封装处理后传送到所述网络会话应用模块。
8.根据权利要求7所述报文解封装的方法,其特征在于:所述过滤出所述控制面报文的步骤进一步包括:
在所述设备驱动模块收到数据报文后,所述收发包模块根据控制面的会话控制协议的指定端口以及所述控制面的IP地址,从所述数据报文中过滤出所述控制面报文,并传送给所述控制面处理程序模块进行处理。
9.根据权利要求7所述报文解封装的方法,其特征在于:所述用户面进一步包括一私有协议,所述私有协议解封装模块完成所述私有协议的报文解封装处理的步骤进一步包括:在IP层模块向上层应用协议模块传递报文之前,利用所述私有协议解封装模块把所述私有协议规定的字段解封装。
10.根据权利要求7、8或9所述报文解封装的方法,其特征在于:所述收发包模块通过抓包库程序实现;所述私有协议解封装模块中包括通过Netfilter定义的函数。
CN201110397505.2A 2011-12-05 2011-12-05 报文封装和解封装的装置及方法 Expired - Fee Related CN102447627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110397505.2A CN102447627B (zh) 2011-12-05 2011-12-05 报文封装和解封装的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110397505.2A CN102447627B (zh) 2011-12-05 2011-12-05 报文封装和解封装的装置及方法

Publications (2)

Publication Number Publication Date
CN102447627A true CN102447627A (zh) 2012-05-09
CN102447627B CN102447627B (zh) 2014-04-23

Family

ID=46009728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110397505.2A Expired - Fee Related CN102447627B (zh) 2011-12-05 2011-12-05 报文封装和解封装的装置及方法

Country Status (1)

Country Link
CN (1) CN102447627B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618309A (zh) * 2013-11-04 2015-05-13 联想(北京)有限公司 一种信息处理的方法及电子设备
CN105656808A (zh) * 2015-12-29 2016-06-08 京信通信技术(广州)有限公司 报文处理方法及其系统
CN105827588A (zh) * 2015-12-23 2016-08-03 广东亿迅科技有限公司 一种基于网络驱动层的流媒体数据分发系统
CN105939304A (zh) * 2015-06-11 2016-09-14 杭州迪普科技有限公司 一种隧道报文解析方法及装置
CN106341404A (zh) * 2016-09-09 2017-01-18 西安工程大学 基于众核处理器的IPSec VPN系统及加解密处理方法
CN109120595A (zh) * 2018-07-18 2019-01-01 郑州云海信息技术有限公司 一种实现kvm功能的usb设备通信方法与装置
CN110620716A (zh) * 2018-06-19 2019-12-27 华为技术有限公司 数据传输方法、相关装置及系统
CN113079180A (zh) * 2021-04-20 2021-07-06 成都安恒信息技术有限公司 一种基于执行上下文的防火墙细粒度访问控制方法及系统
CN113438633A (zh) * 2021-06-18 2021-09-24 深圳松诺技术有限公司 通信数据处理方法、终端和计算机可读存储介质
CN115086329A (zh) * 2022-06-06 2022-09-20 上海弘积信息科技有限公司 一种应用于负载均衡系统的报文转发处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043387A (zh) * 2007-03-22 2007-09-26 杭州华三通信技术有限公司 远程镜像实现方法、远程监控设备及实现远程镜像的系统
CN101216800A (zh) * 2008-01-02 2008-07-09 中兴通讯股份有限公司 一种linux日志的管理装置及方法
CN101364893A (zh) * 2007-08-08 2009-02-11 华为技术有限公司 控制装置、执行装置、生成过滤规则的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043387A (zh) * 2007-03-22 2007-09-26 杭州华三通信技术有限公司 远程镜像实现方法、远程监控设备及实现远程镜像的系统
CN101364893A (zh) * 2007-08-08 2009-02-11 华为技术有限公司 控制装置、执行装置、生成过滤规则的方法及系统
CN101216800A (zh) * 2008-01-02 2008-07-09 中兴通讯股份有限公司 一种linux日志的管理装置及方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618309A (zh) * 2013-11-04 2015-05-13 联想(北京)有限公司 一种信息处理的方法及电子设备
CN104618309B (zh) * 2013-11-04 2019-01-15 联想(北京)有限公司 一种信息处理的方法及电子设备
CN105939304A (zh) * 2015-06-11 2016-09-14 杭州迪普科技有限公司 一种隧道报文解析方法及装置
CN105827588A (zh) * 2015-12-23 2016-08-03 广东亿迅科技有限公司 一种基于网络驱动层的流媒体数据分发系统
CN105827588B (zh) * 2015-12-23 2019-03-15 广东亿迅科技有限公司 一种基于网络驱动层的流媒体数据分发系统
CN105656808A (zh) * 2015-12-29 2016-06-08 京信通信技术(广州)有限公司 报文处理方法及其系统
CN105656808B (zh) * 2015-12-29 2019-02-12 京信通信系统(中国)有限公司 报文处理方法及其系统
CN106341404A (zh) * 2016-09-09 2017-01-18 西安工程大学 基于众核处理器的IPSec VPN系统及加解密处理方法
CN110620716A (zh) * 2018-06-19 2019-12-27 华为技术有限公司 数据传输方法、相关装置及系统
CN110620716B (zh) * 2018-06-19 2021-10-01 华为技术有限公司 数据传输方法、相关装置及系统
CN109120595A (zh) * 2018-07-18 2019-01-01 郑州云海信息技术有限公司 一种实现kvm功能的usb设备通信方法与装置
CN113079180A (zh) * 2021-04-20 2021-07-06 成都安恒信息技术有限公司 一种基于执行上下文的防火墙细粒度访问控制方法及系统
CN113079180B (zh) * 2021-04-20 2023-03-10 成都安恒信息技术有限公司 一种基于执行上下文的防火墙细粒度访问控制方法及系统
CN113438633A (zh) * 2021-06-18 2021-09-24 深圳松诺技术有限公司 通信数据处理方法、终端和计算机可读存储介质
CN115086329A (zh) * 2022-06-06 2022-09-20 上海弘积信息科技有限公司 一种应用于负载均衡系统的报文转发处理方法

Also Published As

Publication number Publication date
CN102447627B (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN102447627B (zh) 报文封装和解封装的装置及方法
CN102377814B (zh) 针对嵌入式操作系统的远程协助服务方法
CN102340447B (zh) 一种远程端口镜像实现系统及方法
WO2015074324A1 (zh) 一种数据包快速转发方法及装置
WO2006118750A3 (en) System and method for configuring and operating a network based telephone system
CN103441996A (zh) 并发传输文件的方法及系统
CN102025483A (zh) 无线路由器及利用该无线路由器预防恶意扫描的方法
WO2014166190A1 (zh) 一种网络设备数据转发方法及装置
WO2012010002A1 (zh) 一种物联网终端java应用的业务调试装置和方法
CN108616855A (zh) 蓝牙设备远程控制系统及方法
CN101119374A (zh) iSCSI通信方法以及相应的发起设备和目标设备
CN102685243B (zh) 一种轻量级tcp/ip协议栈的实现方法
CN103297384A (zh) 协议转换的通信方法及系统
EP2445160A1 (en) Method for automatically negotiating type of service and aggregation apparatus therefor
CN1567919A (zh) 一种主备用双机进行tcp连接倒换的方法
CN110958590B (zh) 一种基于多协议边缘计算网关的异构设备集成系统
CN105847136B (zh) 一种支持多协议的无线传感网通信方法及IPv6网关
CN101453741B (zh) 调试移动终端数据业务的方法和系统
CN105162751B (zh) 一种基于lwIP协议栈多网口多连接的通讯系统
CN109714135A (zh) 一种数据包传输方法及装置
CN103812711A (zh) 路由器接收、发送、收发报文抓包方法和路由器
CN1564546A (zh) 一种短信拦截转发的方法
CN103905302A (zh) 一种在使用虚拟网卡的Windows主机上绑定源IP的方法
CN1705266A (zh) 远程获取特定报文的方法及其应用及其系统
CN102065028B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140423

Termination date: 20211205

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