CN103401877A - 获取驱动层数据包控制信息的方法及系统 - Google Patents
获取驱动层数据包控制信息的方法及系统 Download PDFInfo
- Publication number
- CN103401877A CN103401877A CN2013103467694A CN201310346769A CN103401877A CN 103401877 A CN103401877 A CN 103401877A CN 2013103467694 A CN2013103467694 A CN 2013103467694A CN 201310346769 A CN201310346769 A CN 201310346769A CN 103401877 A CN103401877 A CN 103401877A
- Authority
- CN
- China
- Prior art keywords
- packet
- control information
- layer
- protocol
- android
- 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
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种获取驱动层数据包控制信息的方法及系统,所述方法是把包含特殊控制信息的数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec结构体中所带的数据包信息,而在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该Msghdr结构体存储一些自带的控制信息,最后通系统调用函数把Msghdr中的数据包传输到上层应用。本发明在达到分析Android设备的上网性能时也可以像分析电脑的各项性能指标一样简单明了,数据实时有效,而且能彻底解放驱动对于数据包的内容检查判断。
Description
技术领域
本发明涉及分组交换通信技术领域,特别是涉及Android系统的通信技术领域,具体为一种获取驱动层数据包控制信息的方法及系统。
背景技术
随着Android系统应用越来越广泛,特别是基于Android智能手机大行其道。加上运营商对手机上网网络建设的快速发展,用户使用Android设备越来越多,如何分析和测试我们Android设备的上网性能成为一个迫切的问题。一般情况下,测试Android手机只能通过Android SDK提供的调试接口分析问题,不能直接通过应用层获取下层数据的特殊控制信息。
而一些上层网络协议并不满足于单单获取原始的数据包内容,而是需要获取更多的数据包控制信息,比如手机连接网络中的物理端口号,VLAN ID号,或者其他一些特殊控制信息。
首先介绍一下现有处理方式,以Android智能终端为例。
一般Android手机主板所带数据包信息会额外添加该modem芯片特有的标签信息,即所包含的该数据包来源的MAC芯片物理端口号,来源VLAN Id号,modem Id,RAT:接入技术参数,可以是GPRS/EDGE,WCDMA/HSDPA/LTE等,来源的QoS队列号等。
而一般所添加的位置为原始数据包的源MAC之后,协议号之前。格式一般为标签号加信息,长度也为固定长度。而作为上层协议栈对于原始数据包中的这些额外标签信息并不识别,所以驱动一般会对数据包做些特殊处理,即通过识别不同的协议包进行去除标签信息和保留标签信息操作。当然上层协议应用对于这些标签信息也需要做一些特殊的处理才能识别相应的控制信息。
随着应用于Android手机上层协议越来越多,越来越复杂,驱动需要去识别的协议也越来越多,这势必会影响到驱动效率,而且这种处理方式本身也有悖与Android系统架构,驱动只需要关心底层数据包合法性和完整性即可,完全不需要关心数据包的具体内容。
从以上解决技术方案来看,原有的Android系统上层网络应用使用标准的网络编程是无法获取数据包的这一部分控制信息,协议栈也并没有支持这种特殊需求,这就需要设计一种额外的机制去实现这种应用。而真正的难度在于如何兼容现有的协议栈,特别是兼容现有的Android标准网络编程。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种获取驱动层数据包控制信息的方法及系统,用于解决现有技术中Android上层应用无法实现获取驱动层数据包控制信息的问题。
为实现上述目的及其他相关目的,本发明在一方面提供一种获取驱动层数据包控制信息的方法,应用于Android系统中,Android系统接受和发送数据包中源MAC地址和协议号之间增加有固定的一段特殊控制信息,所述方法包括:步骤S1,驱动层识别获取包含所述特殊控制信息的数据包,并将该数据包存储在标准的AndroidControlRec结构体中;步骤S2,Android系统通过调用API将驱动层中存储在标准的AndroidControlRec结构体中的所述数据包上传至协议栈;步骤S3,通过协议栈,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中;步骤S4,调用协议栈中用以处理Msghdr结构体中的所述数据包的AndroidApp系统函数;步骤S5,Android上层应用调用Msghdr结构体中的所述数据包并显示给用户。
作为本发明的一种优选方案,在步骤S1中,所述特殊控制信息为10个字节。
作为本发明的一种优选方案,在步骤S1中,所述特殊控制信息包含识别标签,队列号,物理端口号,Vlan标签,Vlan号,RAT标签,RAT信息。
作为本发明的一种优选方案,在步骤S1中,若Android系统采用GPRS通信,所述特殊控制信息还包含modem相关接入层特殊控制信息。
作为本发明的一种优选方案,在步骤S2中,协议栈包括WAP协议,ARP协议,IP协议以及TCP协议。
作为本发明的一种优选方案,所述数据包上传至协议栈,所述协议栈首先处理是否为ARP协议,若是,先对ARP协议做地址解析,然后依次通过IP协议,TCP协议将所述数据包上传至Android上层应用层;若否,直接通过IP协议,TCP协议将所述数据包上传至Android上层应用层。
作为本发明的一种优选方案,在协议栈中至少包含驱动上调函数DriverKernel_rx,IP层收包处理函数ip_recv,应用层收包处理函数AndroidApp_recvmsg。
作为本发明的一种优选方案,AndroidApp系统函数支持Android系统现有的网络接口。
本发明在另外一方面提供一种获取驱动层数据包控制信息的系统,应用于Android系统中,Android系统接受和发送数据包中源MAC地址和协议号之间增加有固定的一段特殊控制信息,所述系统包括:数据包识别模块,用于驱动层识别获取包含所述特殊控制信息的数据包;数据包存储模块,用于将该数据包存储在标准的AndroidControlRec结构体中;数据包上传模块,通过Android系统调用API将驱动层中AndroidControlRec结构体中的所述数据包上传至协议栈模块;数据包传递模块,通过协议栈模块,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中;AndroidApp系统函数调用模块,用于调用协议栈中用以处理Msghdr结构体中的所述数据包;上层应用获取模块,用于调用Msghdr结构体中的所述数据包并显示给用户。
作为本发明的一种优选方案,所述协议栈模块包括WAP协议模块,ARP协议模块,IP协议模块以及TCP协议模块。
如上所述,本发明的一种获取驱动层数据包控制信息的方法及系统,具有以下有益效果:
1、本发明把包含特殊控制信息的数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec结构体中所带的数据包信息,而在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该Msghdr结构体存储一些自带的控制信息,最后通系统调用函数把Msghdr中的数据包传输到上层应用。所以本发明能彻底解放驱动对于这些数据包的内容检查判断,而且本发明也不会增加驱动的负担。
2、在本发明避免了对现有的Android架构和协议栈做大的改动,没有影响到其他正常的通信功能。
3、在本发明达到分析Android设备的上网性能时也可以像分析电脑的各项性能指标一样简单明了,数据实时有效。
附图说明
图1显示为本发明的一种获取驱动层数据包控制信息的方法的流程示意图。
图2显示为本发明的一种获取驱动层数据包控制信息的方法中实现传送数据包特殊控制信息的流程示意图。
图3显示为本发明的一种获取驱动层数据包控制信息的方法中数据包格式及Msghdr结构体示意图。
图4显示为本发明的一种获取驱动层数据包控制信息的方法中AndroidApp系统函数(通信函数)列表。
图5显示为本发明的一种获取驱动层数据包控制信息的系统的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明涉及手机基于GPRS/WIFI等分组交换通信领域,本发明应用在Android系统中,实现应用层获取数据包特殊控制信息实现,像浏览器或者Email程序可以通过访问特殊提取函数提取控制信息。达到分析我们的Android设备的上网性能时,可以像分析电脑的各项性能指标一样简单明了,数据适时有效。所以我们需要设计的机制是能彻底解放驱动对于这些数据包的内容检查判断,按照特定结构存放到协议栈中,当有上层协议应用需要这些信息时,可通过特定调用去获取这些信息。所以本发明也不会增加驱动的负担。而这些调用方式或者说机制就是本发明需要去设计并保护的内容。
同时我们需要做到的是避免对现有的Android架构和协议栈做大的改动,从而影响到其他正常的通信功能。
本发明的目的在于提供一种获取驱动层数据包控制信息的方法及系统,用于解决现有技术中Android上层应用无法实现获取驱动层数据包控制信息的问题。以下将详细阐述本发明的一种获取驱动层数据包控制信息的方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种获取驱动层数据包控制信息的方法及系统。
请参阅图1,显示为本发明的一种获取驱动层数据包控制信息的方法的流程示意图。如图1所示,本发明在一方面提供一种获取驱动层数据包控制信息的方法,
步骤S1,驱动层识别获取包含所述特殊控制信息的数据包,并将该数据包存储在标准的AndroidControlRec结构体中。
步骤S2,Android系统通过调用API将驱动层中存储在标准的AndroidControlRec结构体中的所述数据包上传至协议栈。
步骤S3,通过协议栈,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中。
步骤S4,调用协议栈中用以处理Msghdr结构体中的所述数据包的AndroidApp系统函数。
步骤S5,Android上层应用调用Msghdr结构体中的所述数据包并显示给用户。
在对上述各步骤进行详细说明以前,请参阅图2。通过图2可以对本发明的方法有一个总体初步的认识。
首先根据附图对本发明的技术方案有个初步的认识。
如附图2中Android系统通过GPRS/WLAN网络收发网络数据,并将收发网络数据通过GPRS/WLAN承载业务层进入系统,系统的MODEN/WIFE驱动接受来自分组域或WIFI使用数据包,以MODEN为例一般会在数据包中自动插入一些特殊信息。例如附图3中显示的,会在Android系统接受和发送数据包的源MAC地址和协议号之间新增固定的一段特殊控制信息,一般为10个字节,分别为识别标签,队列号,物理端口号,Vlan标签,Vlan号,RAT标签,RAT信息。若是通过GPRS网络收发数据,也会标识MODEN相关接入层特殊控制信息。
系统调用API接收来自驱动的数据包,并通过WAP协议模块传送数据包到TCP/IP协议栈,TCP/IP协议栈首先处理是否为ARP协议,(这里ARP做地址解析,对GPRS上网的接入点等相关信息也做解析)若是,进入APR协议模块,然后从APR协议模块传送到IP协议模块,TCP/IP协议栈首先处理是否为ARP协议时,若不是,则直接传输至IP协议模块,之后传输至TCP协议模块,最后上传至上层应用程序。
如附图4中表示协议栈中通信函数列表,其中主要函数有DriverKernel_rx,驱动上调函数;ip_recv,IP层收包处理函数;AndroidApp_recvmsg,应用层收包处理函数。
通过简单了解了整个数据包流程后,那么如何实现通过这些函数从驱动层传输特殊信息到上层应用?本发明采用的方法是,把数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec中所带的数据包信息。而在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该结构体存储一些自带的控制信息。最后本发明设计一套系统调用函数用以把Msghdr中数据包信息带给上层应用,同时该系统调用也需要支持原有的网络接口。
以下对上述各步骤进行详细说明。
首先执行步骤S1,驱动层识别获取包含所述特殊控制信息的数据包,并将该数据包存储在标准的AndroidControlRec结构体中。本发明把包含特殊控制信息的数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec结构体中所带的数据包信息。
AndroidControlRec结构体为实现本发明所描述的功能添加的核心私有类,其功能是为获取的特殊资源做整合,提供程序输入输出便于实现相关功能和管理实现,并解析相关特殊标签或信息。
具体地,在步骤S1中,所述特殊控制信息一般为10个字节,可根据需要调节,可为8~15个字节。
同时,在步骤S1中,所述特殊控制信息包含识别标签,队列号,物理端口号,Vlan标签,Vlan号,RAT标签,RAT信息。需要注意的是,若Android系统采用GPRS通信,所述特殊控制信息还包含modem相关接入层特殊控制信息,例如modem ID号等信息。接着执行步骤S2。
在步骤S2中,Android系统通过调用API将驱动层中存储在标准的AndroidControlRec结构体中的所述数据包上传至协议栈。
具体地,在步骤S2中,协议栈包括WAP协议,ARP协议,IP协议以及TCP协议。
同时在本实施例中,所述数据包上传至协议栈,所述协议栈首先处理是否为ARP协议,若是先对ARP协议做地址解析,然后继续执行步骤S3,然后依次通过IP协议,TCP协议将所述数据包上传至Android上层应用层;若否,直接通过IP协议,TCP协议将所述数据包上传至Android上层应用层。
在步骤S3中,通过协议栈,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中。Msghdr结构体如图3所示。在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该Msghdr结构体存储一些自带的控制信息,最后通系统调用函数把Msghdr中的数据包传输到上层应用。
在步骤S4中,调用协议栈中用以处理Msghdr结构体中的所述数据包的AndroidApp系统函数。在协议栈中包含若干通信函数,至少包含驱动上调函数DriverKernel_rx,IP层收包处理函数ip_recv,应用层收包处理函数AndroidApp_recvmsg等上调函数。
具体地,包含的函数如图4中所示的列表,具体包括:通信函数sock_read,sock_recmsg,sys-read,inet_recvmsg;应用层收包处理函数AndroidApp_recvmsg,AndoidControl_recv_data,sock_queue_rcv_skb,AndroidApp_queue_rcv_skb,AndroidApp_rcv;ip_local_deliver_finish,ip_local_deliver,IP层收包处理函数ip_recv,net_rc_action,驱动上调函数DriverKernel_rx。
下面都是TCP/IP协议的公知函数,均为本领域技术人员所熟知。这里只做简单描述,sock_read:套接字读取;sock_recmsg:套接字消息结构;sys-read:系统内核调用;inet_recvmsg:因特网接收;ip_local_deliver_finish:ip发送确认;ip_local_deliver:ip发送;ip_recv:IP层收包处理函数;DriverKernel_rx:驱动上调函数。
Android应用层收包处理函数AndroidApp_recvmsg,AndoidControl_recv_data,sock_queue_rcv_skb,AndroidApp_queue_rcv_skb,AndroidApp_rcv。
这里AndroidApp_rcv用于接收获取下层特殊的控制信息,AndroidApp_queue_rcv_skb负责将获取的控制信息排队等候处理,sock_queue_rcv_skb负责将AndroidApp_queue_rcv_skb信息管理成TCP/IP套接字可接收的队列信息,AndoidControl_recv_data负责解析获取的控制信息,并提供可支持TCP/IP原有的网络接口的API,这样保证公知的套接字接口也可调用。AndroidApp_recvmsg负责提供Android系统可以调用显示的API,Android应用程序可以通过此接口生成用户可以见的Android activity。
此外,需要注意的是,AndroidApp系统函数都应该支持Android系统现有的网络接口。
步骤S5,Android上层应用调用Msghdr结构体中的所述数据包并显示给用户。这样,通过本发明的方法Android上层应用便获取了驱动层数据包的控制信息。可见,在本发明的方法达到分析Android设备的上网性能时也可以像分析电脑的各项性能指标一样简单明了,数据实时有效。
为实现上述方法,如图5所示,本发明在另外一方面提供一种获取驱动层数据包控制信息的系统,应用于Android系统中,Android系统接受和发送数据包中源MAC地址和协议号之间增加有固定的一段特殊控制信息,具体地,所述系统1包括:数据包识别模块11、数据包存储模块12、数据包上传模块13、数据包传递模块14、AndroidApp系统函数调用模块15和上层应用获取模块16。
所述数据包识别模块11用于驱动层识别获取包含所述特殊控制信息的数据包。所述特殊控制信息一般为10个字节,可根据需要调节,可为8~15个字节。所述特殊控制信息包含识别标签,队列号,物理端口号,Vlan标签,Vlan号,RAT标签,RAT信息。需要注意的是,若Android系统采用GPRS通信,所述特殊控制信息还包含modem相关接入层特殊控制信息,例如modem ID号等信息。
所述数据包存储模块12用于将该数据包存储在标准的AndroidControlRec结构体中。本发明把包含特殊控制信息的数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec结构体中所带的数据包信息。
AndroidControlRec结构体为实现本发明所描述的功能添加的核心私有类,其功能是为获取的特殊资源做整合,提供程序输入输出便于实现相关功能和管理实现,并解析相关特殊标签或信息。
所述数据包上传模块13通过Android系统调用API将驱动层中AndroidControlRec结构体中的所述数据包上传至协议栈模块17。具体地,在本实施例中,所述协议栈模块17包括WAP协议模块,ARP协议模块,IP协议模块以及TCP协议模块。
同时在本实施例中,所述数据包上传至协议栈模块17,协议栈模块17首先处理是否为ARP协议,若是通过ARP协议模块先对ARP协议做地址解析,然后再依次通过IP协议模块,TCP协议模块将所述数据包上传至Android上层应用层;若协议栈模块17首先处理不是ARP协议,直接通过IP协议模块,TCP协议模块将所述数据包上传至Android上层应用层。
所述数据包传递模块14通过协议栈模块17,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中。Msghdr结构体如图3所示。在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该Msghdr结构体存储一些自带的控制信息,最后通系统调用函数把Msghdr中的数据包传输到上层应用。
所述AndroidApp系统函数调用模块15用于调用协议栈中用以处理Msghdr结构体中的所述数据包。调用协议栈中用以处理Msghdr结构体中的所述数据包的AndroidApp系统函数。在协议栈中包含若干通信函数,至少包含驱动上调函数DriverKernel_rx,IP层收包处理函数ip_recv,应用层收包处理函数AndroidApp_recvmsg等上调函数。
具体地,包含的函数如图4中所示的列表,具体包括:通信函数sock_read,sock_recmsg,sys-read,inet_recvmsg;应用层收包处理函数AndroidApp_recvmsg,AndoidControl_recv_data,sock_queue_rcv_skb,AndroidApp_queue_rcv_skb,AndroidApp_rcv;ip_local_deliver_finish,ip_local_deliver,IP层收包处理函数ip_recv,net_rc_action,驱动上调函数DriverKernel_rx。
下面都是TCP/IP协议的公知函数,均为本领域技术人员所熟知。这里只做简单描述,sock_read:套接字读取;sock_recmsg:套接字消息结构;sys-read:系统内核调用;inet_recvmsg:因特网接收;ip_local_deliver_finish:ip发送确认;ip_local_deliver:ip发送;ip_recv:IP层收包处理函数;DriverKernel_rx:驱动上调函数。
Android应用层收包处理函数AndroidApp_recvmsg,AndoidControl_recv_data,sock_queue_rcv_skb,AndroidApp_queue_rcv_skb,AndroidApp_rcv。
这里AndroidApp_rcv用于接收获取下层特殊的控制信息,AndroidApp_queue_rcv_skb负责将获取的控制信息排队等候处理,sock_queue_rcv_skb负责将AndroidApp_queue_rcv_skb信息管理成TCP/IP套接字可接收的队列信息,AndoidControl_recv_data负责解析获取的控制信息,并提供可支持TCP/IP原有的网络接口的API,这样保证公知的套接字接口也可调用。AndroidApp_recvmsg负责提供Android系统可以调用显示的API,Android应用程序可以通过此接口生成用户可以见的Android activity。
此外,需要注意的是,AndroidApp系统函数都应该支持Android系统现有的网络接口。
所述上层应用获取模块16用于调用Msghdr结构体中的所述数据包并显示给用户。这样,通过本发明的方法Android上层应用便获取了驱动层数据包的控制信息。可见,在本发明的方法达到分析Android设备的上网性能时也可以像分析电脑的各项性能指标一样简单明了,数据实时有效。
综上所述,本发明的一种获取驱动层数据包控制信息的方法及系统,达到了以下有益效果:
1、本发明把包含特殊控制信息的数据包带入AndroidControlRec这个结构体中,因为整个协议栈都可以处理AndroidControlRec结构体中所带的数据包信息,而在上层传输过程中,可以使用Msghdr这个结构体,不同协议收包都有确认使用该Msghdr结构体存储一些自带的控制信息,最后通系统调用函数把Msghdr中的数据包传输到上层应用。所以本发明能彻底解放驱动对于这些数据包的内容检查判断,而且本发明也不会增加驱动的负担。
2、在本发明避免了对现有的Android架构和协议栈做大的改动,没有影响到其他正常的通信功能。
3、在本发明达到分析Android设备的上网性能时也可以像分析电脑的各项性能指标一样简单明了,数据实时有效。
所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种获取驱动层数据包控制信息的方法,应用于Android系统中,Android系统接受和发送数据包中源MAC地址和协议号之间增加有固定的一段特殊控制信息,其特征在于,所述方法包括:
步骤S1,驱动层识别获取包含所述特殊控制信息的数据包,并将该数据包存储在标准的AndroidControlRec结构体中;
步骤S2,Android系统通过调用API将驱动层中存储在标准的AndroidControlRec结构体中的所述数据包上传至协议栈;
步骤S3,通过协议栈,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中;
步骤S4,调用协议栈中用以处理Msghdr结构体中的所述数据包的AndroidApp系统函数;
步骤S5,Android上层应用调用Msghdr结构体中的所述数据包并显示给用户。
2.根据权利要求1所述的获取驱动层数据包控制信息的方法,其特征在于,在步骤S1中,所述特殊控制信息为10个字节。
3.根据权利要求1或2所述的获取驱动层数据包控制信息的方法,其特征在于,在步骤S1中,所述特殊控制信息包含识别标签,队列号,物理端口号,Vlan标签,Vlan号,RAT标签,RAT信息。
4.根据权利要求3所述的获取驱动层数据包控制信息的方法,其特征在于,在步骤S1中,若Android系统采用GPRS通信,所述特殊控制信息还包含modem相关接入层特殊控制信息。
5.根据权利要求1所述的获取驱动层数据包控制信息的方法,其特征在于,在步骤S2中,协议栈包括WAP协议,ARP协议,IP协议以及TCP协议。
6.根据权利要求5所述的获取驱动层数据包控制信息的方法,其特征在于,所述数据包上传至协议栈,所述协议栈首先处理是否为ARP协议,若是,先对ARP协议做地址解析,然后依次通过IP协议,TCP协议将所述数据包上传至Android上层应用层;若否,直接通过IP协议,TCP协议将所述数据包上传至Android上层应用层。
7.根据权利要求1所述的获取驱动层数据包控制信息的方法,其特征在于,在协议栈中至少包含驱动上调函数DriverKernel_rx,IP层收包处理函数ip_recv,应用层收包处理函数AndroidApp_recvmsg。
8.根据权利要求1或7所述的获取驱动层数据包控制信息的方法,其特征在于,AndroidApp系统函数支持Android系统现有的网络接口。
9.一种获取驱动层数据包控制信息的系统,应用于Android系统中,Android系统接受和发送数据包中源MAC地址和协议号之间增加有固定的一段特殊控制信息,其特征在于,所述系统包括:
数据包识别模块,用于驱动层识别获取包含所述特殊控制信息的数据包;
数据包存储模块,用于将该数据包存储在标准的AndroidControlRec结构体中;
数据包上传模块,通过Android系统调用API将驱动层中AndroidControlRec结构体中的所述数据包上传至协议栈模块;
数据包传递模块,通过协议栈模块,在不同的Android应用协议收发包中,接受AndroidControlRec结构体中的所述数据包,并最终将所述数据包传递到Msghdr结构体中;
AndroidApp系统函数调用模块,用于调用协议栈中用以处理Msghdr结构体中的所述数据包;
上层应用获取模块,用于调用Msghdr结构体中的所述数据包并显示给用户。
10.根据权利要求9所述的获取驱动层数据包控制信息的系统,其特征在于,所述协议栈模块包括WAP协议模块,ARP协议模块,IP协议模块以及TCP协议模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103467694A CN103401877A (zh) | 2013-08-09 | 2013-08-09 | 获取驱动层数据包控制信息的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103467694A CN103401877A (zh) | 2013-08-09 | 2013-08-09 | 获取驱动层数据包控制信息的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103401877A true CN103401877A (zh) | 2013-11-20 |
Family
ID=49565402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103467694A Pending CN103401877A (zh) | 2013-08-09 | 2013-08-09 | 获取驱动层数据包控制信息的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103401877A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915528A (zh) * | 2016-05-18 | 2016-08-31 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
CN108200617A (zh) * | 2018-01-26 | 2018-06-22 | 上海康斐信息技术有限公司 | 一种双频中继的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005008992A1 (fr) * | 2003-07-11 | 2005-01-27 | Alcatel | Description de contenu de paquets dans un reseau de communication par paquets |
CN102790717A (zh) * | 2012-06-01 | 2012-11-21 | 上海斐讯数据通信技术有限公司 | 以太网数据包中控制信息的获取方法及系统 |
-
2013
- 2013-08-09 CN CN2013103467694A patent/CN103401877A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005008992A1 (fr) * | 2003-07-11 | 2005-01-27 | Alcatel | Description de contenu de paquets dans un reseau de communication par paquets |
CN102790717A (zh) * | 2012-06-01 | 2012-11-21 | 上海斐讯数据通信技术有限公司 | 以太网数据包中控制信息的获取方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915528A (zh) * | 2016-05-18 | 2016-08-31 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
CN105915528B (zh) * | 2016-05-18 | 2019-01-11 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
CN108200617A (zh) * | 2018-01-26 | 2018-06-22 | 上海康斐信息技术有限公司 | 一种双频中继的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109845303B (zh) | 网络切片的管理方法及管理单元 | |
CN102907049B (zh) | 基于虚拟站接口发现和配置协议响应来指定优先级 | |
CN101977382B (zh) | 音视频集成控制电路及其接入接入点的方法 | |
CN107222324B (zh) | 网络服务的业务配置方法和装置 | |
CN103139157B (zh) | 一种基于socket的网络通信方法、装置及系统 | |
CN111901387B (zh) | 一种云专线的连接方法及装置 | |
CN107133109B (zh) | 一种模块间通信的方法、装置及计算设备 | |
CN104468219A (zh) | 虚拟组网网络拓扑发现方法和设备 | |
CN103281797A (zh) | 一种移动终端及其传输业务数据的方法 | |
CN104836800A (zh) | 一种服务质量控制的方法、设备及系统 | |
CN110493337A (zh) | 数据访问方法、网关设备、系统、存储介质及装置 | |
CN111294235A (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN105933992A (zh) | 一种传感器无线数据网关应用系统 | |
CN104883277B (zh) | 一种基于bmc的信息交互方法和系统 | |
CN107968848A (zh) | 一种获取ip地址的方法、终端设备及存储介质 | |
CN103888364A (zh) | 报文分流方法及设备 | |
CN107368334A (zh) | 一种业务插件交互系统及方法 | |
CN103401877A (zh) | 获取驱动层数据包控制信息的方法及系统 | |
CN103796191A (zh) | 向用户终端发送数据的方法、装置及终端 | |
CN109168185B (zh) | 一种基于网络命名空间的网络扫描方法及装置 | |
CN109873716A (zh) | 数据的处理方法、装置和存储介质 | |
CN112462647B (zh) | 一种电台网络控制系统及方法 | |
CN109413180A (zh) | 一种数据采集方法、系统及设备和存储介质 | |
CN114827924A (zh) | 一种服务信息获取方法、装置及存储介质 | |
CN107360079A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131120 |