CN107872431B - 一种数据收发方法、装置及基站 - Google Patents
一种数据收发方法、装置及基站 Download PDFInfo
- Publication number
- CN107872431B CN107872431B CN201610852679.6A CN201610852679A CN107872431B CN 107872431 B CN107872431 B CN 107872431B CN 201610852679 A CN201610852679 A CN 201610852679A CN 107872431 B CN107872431 B CN 107872431B
- Authority
- CN
- China
- Prior art keywords
- data
- protocol stack
- module
- network card
- socket 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供的一种数据收发方法、装置及基站,用于使用基站标准socket接口的socket应用的数据收发,该数据收发方法包括配置用户协议栈与系统协议栈之间的数据转发模块;通过数据转发模块,将用户协议栈接收的socket应用数据发送至系统协议栈,和将来自系统协议栈的socket应用数据发送至用户协议栈;采用上述方案,用户协议栈使用socket应用不必重新开发,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据收发方法、装置及基站。
背景技术
系统协议栈通常作为核心驻留在操作系统中,由此保证系统协议栈的稳定性以及简化用户的网络相关应用的开发工作。在一些通信设备尤其是在无线基站设备中,基于效率及定制化需求的考虑,并不采用操作系统中的系统协议栈与外界进行通信,而是通过用户协议栈与外界进行通信。但是在基站系统中除了需要运行基于用户协议栈开发的应用外,还需要运行一些常用socket(套接字)应用,如使用FTP(File Transfer Protocol,文件传输协议)工具下载版本、使用telnet(远程终端协议)或者SSH(Secure Shell Protocol,安全外壳协议)工具登录基站等,由于这些socket应用大部分是基于标准socket接口进行开发的,所以这些socket应用并不能直接运行在用户协议栈上,而为了能够运行在用户协议栈上,对这些socket应用进行重新开发则会投入大量的人力物力。
针对上述问题,提出一种用户协议栈使用socket应用不必重新开发的方法,是本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例主要解决的技术问题是,提供一种数据收发方法、装置及基站,解决现有技术中,用户协议栈使用socket应用需重新开发的问题。
为解决上述技术问题,本发明实施例提供一种数据收发方法,用于使用基站标准套接字接口的套接字应用的数据收发,数据收发方法包括:
配置用户协议栈与系统协议栈之间的数据转发模块;
通过数据转发模块,将用户协议栈接收的套接字应用数据发送至系统协议栈,和将来自系统协议栈的套接字应用数据发送至用户协议栈。
为解决上述技术问题,本发明实施例提供一种数据收发装置,用于使用基站标准套接字接口的套接字应用的数据收发,数据收发装置包括:转发配置模块及数据转发模块,其中,
转发配置模块用于配置用户协议栈与系统协议栈之间的数据转发模块;
数据转发模块用于将用户协议栈接收的套接字应用数据发送至系统协议栈,和将来自系统协议栈的套接字应用数据发送至用户协议栈。
为解决上述技术问题,本发明实施例提供一种基站,包括:操作系统,运行于操作系统内的系统协议栈,运行于操作系统外的用户协议栈,以及上述的数据收发装置。
为解决上述技术问题,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述的数据收发方法。
本发明的有益效果是:
根据本发明实施例提供的一种数据收发方法、装置及基站,用于使用基站标准socket接口的socket应用的数据收发,该数据收发方法包括配置用户协议栈与系统协议栈之间的数据转发模块;通过数据转发模块,将用户协议栈接收的socket应用数据发送至系统协议栈,和将来自系统协议栈的socket应用数据发送至用户协议栈;采用上述方案,用户协议栈使用socket应用不必重新开发,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
附图说明
图1为本发明实施例一提供的一种数据收发方法的流程图;
图2为本发明实施例一、二提供的一种基站的示意图;
图3为本发明实施例一、二提供的另一种基站的示意图;
图4为本发明实施例二提供的一种数据收发装置的示意图;
图5为本发明实施例二提供的另一种基站的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一
本实施例提供一种数据收发方法,用于使用基站标准socket接口的socket应用的数据收发,请参见图1,该数据收发方法包括以下步骤:
S101:配置用户协议栈与系统协议栈之间的数据转发模块。
其中,socket应用可以包括使用FTP工具下载版本、使用telnet或者SSH工具登录基站等。
系统协议栈包括linux系统协议栈、windows系统协议栈等。
其中,数据转发模块包括内部通信网卡;S101中配置数据转发模块的方式包括:获取用户协议栈的IP地址;将内部通信网卡的IP地址设置为用户协议栈的IP地址,也即,将用户协议栈的IP地址配置到内部通信网卡上。
其中,将内部通信网卡的IP地址设置为用户协议栈的IP地址的方式包括:
内部通信网卡为虚拟网卡,在系统协议栈中设置虚拟网卡,在用户协议栈中设置虚拟网卡收发模块,将虚拟网卡的IP地址设置为用户协议栈的IP地址。即内部通信网卡由系统协议栈中的虚拟网卡和用户协议栈中的虚拟网卡收发模块组成。
其中,还包括:虚拟网卡收发模块以轮询方式,轮询虚拟网卡转发的来自系统协议栈的数据。
S102:通过数据转发模块,将用户协议栈接收的socket应用数据发送至系统协议栈,和将来自系统协议栈的socket应用数据发送至用户协议栈。
在将用户协议栈接收的socket应用数据发送至系统协议栈之前,还包括:获取用户协议栈接收的待处理数据;根据分拣配置参数对待处理数据进行分拣,将待处理数据中的socket应用数据,通过数据转发模块发送至系统协议栈。
具体的,参见图2,当实现使用基站标准socket接口的socket应用数据的接收时,数据转发模块为在系统协议栈中设置的虚拟网卡4021和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,可以采用以下方式进行:
系统协议栈包括linux系统协议栈、windows系统协议栈等。首先系统初始化,包括:获取用户协议栈的IP地址,将虚拟网卡4021的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到虚拟网卡4021上是为了在虚拟网卡收发模块4022收到待处理数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP(Transfer Control Protocol,传输控制协议)协议;用户协议栈可以通过物理网卡接收外部发送来的待处理数据,由物理网卡收发模块405建立轮询任务,以轮询方式,轮询该物理网卡转发的来自外部的数据。
然后,物理网卡收发模块405在接收到外部发送来的待处理数据之后,将该待处理数据发送给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到待处理数据之后,将待处理数据进行前期处理并传输到分拣模块403。分拣模块403根据分拣配置参数对待处理数据进行分拣,分拣出socket应用数据和非socket应用数据。若接收到的待处理数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为非socket应用数据。若分拣出了socket应用数据,则将socket应用数据传递给虚拟网卡收发模块4022,由虚拟网卡收发模块4022发送至虚拟网卡4021,由虚拟网卡4021发送至系统协议栈,然后由系统协议栈根据socket信息将socket应用数据传递给socket应用。对于分拣出的非socket应用数据,则可以将该非socket应用数据传回给协议模块406,由协议模块406转发到对应的用户协议栈应用,用户协议栈应用可以包括LTE(Long Term Evolution,长期演进)业务、CDMA(Code Division Multiple Access,码分多址)等。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
具体的,参见图3,当实现使用基站标准socket接口的socket应用数据的接收时,以虚拟网卡4021为tap虚拟网卡40211为例,即数据转发模块402为在linux系统协议栈中设置的tap虚拟网卡40211和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,可以采用以下方式进行:
其中,系统协议栈以linux系统协议栈、linux系统协议栈运行在linux2.6内核版本上为例;虚拟网卡tun/tap驱动是linux中的一个开源项目,tun表示虚拟的三层设备,能够处理三层即IP包。tap表示虚拟的二层设备,能够处理数据链路层网络包,如以太网报文。这两种设备针对网络包实施不同的封装。tun/tap驱动以内核的形式存在,在linux2.4内核版本及以后版本中,tun/tap驱动是作为系统默认预先编译进内核中的。本示例采用linux操作系统,linux2.6内核版本、tap类型的虚拟网卡来为例。
首先系统初始化,包括:获取用户协议栈的IP地址,将tap虚拟网卡40211的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到tap虚拟网卡40211上是为了在虚拟网卡收发模块4022收到待处理数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议;用户协议栈可以通过物理网卡接收外部发送来的待处理数据,由物理网卡收发模块405建立轮询任务,以轮询方式,轮询该物理网卡转发的来自外部的数据。
然后,物理网卡收发模块405在接收到外部发送来的待处理数据之后,将该待处理数据发送给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到待处理数据之后,将待处理数据进行前期处理并传输到分拣模块403。分拣模块403根据分拣配置参数对待处理数据进行分拣,分拣出socket应用数据和非socket应用数据。若接收到的待处理数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为非socket应用数据。若分拣出了socket应用数据,则将socket应用数据传递给虚拟网卡收发模块4022,由虚拟网卡收发模块4022发送给tap虚拟网卡40211,然后linux系统协议栈根据socket信息将将接收到的全部socket应用数据传递给socket应用。
对于分拣模块403分拣出的非socket应用数据,则可以将该非socket应用数据传回给协议模块406,由协议模块406转发到对应的用户协议栈应用,用户协议栈应用可以包括LTE业务、CDMA等。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
在将来自系统协议栈的socket应用数据发送至用户协议栈之前,还包括:获取数据转发模块上传的来自系统协议栈的待发送数据;根据分拣配置参数对待发送数据进行垃圾报文的滤除,将待发送数据中的socket应用数据,通过发送至用户协议栈进行发送。
具体的,参见图2,当实现使用基站标准socket接口的socket应用数据的发送时,数据转发模块为在系统协议栈中设置的虚拟网卡4021和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,采用以下方式进行:
系统协议栈包括linux系统协议栈、windows系统协议栈等。首先系统初始化,包括:获取用户协议栈的IP地址,将虚拟网卡4021的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到虚拟网卡4021上是为了在虚拟网卡收发模块4022收到待发送数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议。
然后系统协议栈接收到待发送数据,待发送数据中包括由socket应用发来的数据、系统产生的垃圾报文等。然后获取虚拟网卡4021上传的来自系统协议栈的待发送数据;分拣模块403根据分拣配置参数对待发送数据进行分拣,分拣出socket应用数据和垃圾报文,若接收到的待发送数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为垃圾报文。若分拣出了垃圾报文,则将垃圾报文滤除,若分拣出了socket应用数据,则将socket应用数据传递给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到socket应用数据之后,将socket应用数据传输到物理网卡收发模块405,然后通过物理网卡外发。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
具体的,参见图3,当实现使用基站标准socket接口的socket应用数据的发送时,以虚拟网卡4021为tap虚拟网卡40211为例,即数据转发模块402为在linux系统协议栈中设置的tap虚拟网卡40211和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,采用以下方式进行:
其中,系统协议栈以linux系统协议栈、linux系统协议栈运行在linux2.6内核版本上为例;虚拟网卡tun/tap驱动是linux中的一个开源项目,tun表示虚拟的三层设备,能够处理三层即IP包。tap表示虚拟的二层设备,能够处理数据链路层网络包,如以太网报文。这两种设备针对网络包实施不同的封装。tun/tap驱动以内核的形式存在,在linux2.4内核版本及以后版本中,tun/tap驱动是作为系统默认预先编译进内核中的。本示例采用linux操作系统,linux2.6内核版本、tap类型的虚拟网卡来为例。
首先系统初始化,包括:获取用户协议栈的IP地址,将tap虚拟网卡40211的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到tap虚拟网卡40211上是为了在虚拟网卡收发模块4022收到待发送数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议。
然后linux系统协议栈接收到待发送数据,待发送数据中包括由socket应用发来的数据、系统产生的垃圾报文等。linux系统协议栈将待发送数据传递给tap虚拟网卡40211,tap虚拟网卡40211将待发送数据传递给用户协议栈中的虚拟网卡收发模块4022,虚拟网卡收发模块4022将待发送数据传递给分拣模块403,分拣模块403根据分拣配置参数对待发送数据进行分拣,分拣出socket应用数据和垃圾报文,若接收到的待发送数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为垃圾报文。若分拣出了垃圾报文,则将垃圾报文滤除,若分拣出了socket应用数据,则将socket应用数据传递给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到socket应用数据之后,将socket应用数据传输到物理网卡收发模块405,然后通过物理网卡外发。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。分拣配置参数的获取方式包括以下三种:
方式一:通过命令方式,获取分拣配置参数;即采用CLI(Command LineInterface,命令行接口)方式,通过命令的方式进行分拣配置参数下发,例如在XML(Extensible Markup Language,可扩展标记语言)文件中写入分拣配置参数。
方式二:通过读取配置文件中配置数据的方式,获取分拣配置参数。
方式三:通过读取数据库来获取配置数据的方式,获取分拣配置参数。
根据本实施例提供的一种数据收发方法,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
实施例二
本实施例提供一种数据收发装置,用于使用基站标准socket接口的socket应用的数据收发,请参见图4,该数据收发装置包括:转发配置模块401及数据转发模块402,其中,
转发配置模块401用于配置用户协议栈与系统协议栈之间的数据转发模块402;
数据转发模块402用于将用户协议栈接收的socket应用数据发送至系统协议栈,和将来自系统协议栈的socket应用数据发送至用户协议栈。
其中,系统协议栈包括linux系统协议栈、windows系统协议栈等。
socket应用可以包括使用FTP工具下载版本、使用telnet或者SSH工具登录基站等。
数据转发模块402使用虚拟网卡,转发配置模块401用于在系统协议栈中设置虚拟网卡4021,在用户协议栈中设置虚拟网卡收发模块4022,将虚拟网卡4021的IP地址设置为用户协议栈的IP地址。即数据转发模块402由系统协议栈中的虚拟网卡4021和用户协议栈中的虚拟网卡收发模块4022组成。
虚拟网卡收发模块4022以轮询方式,轮询虚拟网卡4021转发的来自系统协议栈的数据。
该数据收发装置还包括分拣模块403及分拣配置模块404,分拣配置模块404用于获取分拣配置参数,并写入分拣模块403;分拣配置参数包括端口号、协议类型等,例如端口号可以设置为100、协议类型为TCP协议。
分拣模块403用于获取用户协议栈接收的待处理数据,根据分拣配置参数对待处理数据进行分拣,将待处理数据中的socket应用数据,通过数据转发模块402发送至系统协议栈;和获取数据转发模块402上传的来自系统协议栈的待发送数据,根据分拣配置参数对待发送数据进行垃圾报文的滤除,将待发送数据中的socket应用数据,通过发送至用户协议栈进行发送。
分拣配置模块404获取分拣配置参数的方式包括以下三种:
方式一:通过命令方式,获取分拣配置参数;即采用CLI(Command LineInterface,命令行接口)方式,通过命令的方式进行分拣配置参数下发,例如在XML文件中写入分拣配置参数。
方式二:通过读取配置文件中配置数据的方式,获取分拣配置参数;
方式三:通过读取数据库来获取配置数据的方式,获取分拣配置参数。
具体的,参见图2,当实现使用基站标准socket接口的socket应用数据的接收时,数据转发模块为在系统协议栈中设置的虚拟网卡4021和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,可以采用以下方式进行:
系统协议栈包括linux系统协议栈、windows系统协议栈等。首先系统初始化,包括:转发配置模块401获取用户协议栈的IP地址,将虚拟网卡4021的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到虚拟网卡4021上是为了在虚拟网卡收发模块4022收到待处理数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP(Transfer Control Protocol,传输控制协议)协议;用户协议栈可以通过物理网卡接收外部发送来的待处理数据,由物理网卡收发模块405建立轮询任务,以轮询方式,轮询该物理网卡转发的来自外部的数据。
然后,物理网卡收发模块405在接收到外部发送来的待处理数据之后,将该待处理数据发送给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到待处理数据之后,将待处理数据进行前期处理并传输到分拣模块403。分拣模块403根据分拣配置参数对待处理数据进行分拣,分拣出socket应用数据和非socket应用数据。若接收到的待处理数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为非socket应用数据。若分拣出了socket应用数据,则将socket应用数据传递给虚拟网卡收发模块4022,由虚拟网卡收发模块4022发送至虚拟网卡4021,由虚拟网卡4021发送至系统协议栈,然后由系统协议栈根据socket信息将socket应用数据传递给socket应用。对于分拣出的非socket应用数据,则可以将该非socket应用数据传回给协议模块406,由协议模块406转发到对应的用户协议栈应用,用户协议栈应用可以包括LTE(Long Term Evolution,长期演进)业务、CDMA(Code Division Multiple Access,码分多址)等。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
具体的,参见图3,当实现使用基站标准socket接口的socket应用数据的接收时,以虚拟网卡4021为tap虚拟网卡40211为例,即数据转发模块402为在linux系统协议栈中设置的tap虚拟网卡40211和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,可以采用以下方式进行:
其中,系统协议栈以linux系统协议栈、linux系统协议栈运行在linux2.6内核版本上为例;虚拟网卡tun/tap驱动是linux中的一个开源项目,tun表示虚拟的三层设备,能够处理三层即IP包。tap表示虚拟的二层设备,能够处理数据链路层网络包,如以太网报文。这两种设备针对网络包实施不同的封装。tun/tap驱动以内核的形式存在,在linux2.4内核版本及以后版本中,tun/tap驱动是作为系统默认预先编译进内核中的。本示例采用linux操作系统,linux2.6内核版本、tap类型的虚拟网卡来为例。
首先系统初始化,包括:转发配置模块401获取用户协议栈的IP地址,将tap虚拟网卡40211的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到tap虚拟网卡40211上是为了在虚拟网卡收发模块4022收到待处理数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议;用户协议栈可以通过物理网卡接收外部发送来的待处理数据,由物理网卡收发模块405建立轮询任务,以轮询方式,轮询该物理网卡转发的来自外部的数据。
然后,物理网卡收发模块405在接收到外部发送来的待处理数据之后,将该待处理数据发送给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到待处理数据之后,将待处理数据进行前期处理并传输到分拣模块403。分拣模块403根据分拣配置参数对待处理数据进行分拣,分拣出socket应用数据和非socket应用数据。若接收到的待处理数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为非socket应用数据。若分拣出了socket应用数据,则将socket应用数据传递给虚拟网卡收发模块4022,由虚拟网卡收发模块4022发送给tap虚拟网卡40211,然后linux系统协议栈根据socket信息将接收到的全部socket应用数据传递给socket应用。
对于分拣模块403分拣出的非socket应用数据,则可以将该非socket应用数据传回给协议模块406,由协议模块406转发到对应的用户协议栈应用,用户协议栈应用可以包括LTE业务、CDMA等。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
具体的,参见图2,当实现使用基站标准socket接口的socket应用数据的发送时,数据转发模块为在系统协议栈中设置的虚拟网卡4021和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,采用以下方式进行:
系统协议栈包括linux系统协议栈、windows系统协议栈等。首先系统初始化,包括:转发配置模块401获取用户协议栈的IP地址,将虚拟网卡4021的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到虚拟网卡4021上是为了在虚拟网卡收发模块4022收到待发送数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议。
然后系统协议栈接收到待发送数据,待发送数据中包括由socket应用发来的数据、系统产生的垃圾报文等。然后获取虚拟网卡4021上传的来自系统协议栈的待发送数据;分拣模块403根据分拣配置参数对待发送数据进行分拣,分拣出socket应用数据和垃圾报文,若接收到的待发送数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为垃圾报文。若分拣出了垃圾报文,则将垃圾报文滤除,若分拣出了socket应用数据,则将socket应用数据传递给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到socket应用数据之后,将socket应用数据传输到物理网卡收发模块405,然后通过物理网卡外发。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
具体的,参见图3,当实现使用基站标准socket接口的socket应用数据的发送时,以虚拟网卡4021为tap虚拟网卡40211为例,即数据转发模块402为在linux系统协议栈中设置的tap虚拟网卡40211和在用户协议栈中设置的虚拟网卡收发模块4022组成为例,采用以下方式进行:
其中,系统协议栈以linux系统协议栈、linux系统协议栈运行在linux2.6内核版本上为例;虚拟网卡tun/tap驱动是linux中的一个开源项目,tun表示虚拟的三层设备,能够处理三层即IP包。tap表示虚拟的二层设备,能够处理数据链路层网络包,如以太网报文。这两种设备针对网络包实施不同的封装。tun/tap驱动以内核的形式存在,在linux2.4内核版本及以后版本中,tun/tap驱动是作为系统默认预先编译进内核中的。本示例采用linux操作系统,linux2.6内核版本、tap类型的虚拟网卡来为例。
首先系统初始化,包括:转发配置模块401获取用户协议栈的IP地址,将tap虚拟网卡40211的IP地址设置为用户协议栈的IP地址,将用户协议栈的IP地址配置到tap虚拟网卡40211上是为了在虚拟网卡收发模块4022收到待发送数据的报文之后,不需要再将报文的源IP地址替换成用户协议栈的IP地址,省去了在用户协议栈针对此报文替换源IP地址的工作;虚拟网卡收发模块4022建立轮询任务,以轮询方式,轮询发送到该虚拟网卡收发模块4022的数据;分拣配置模块404获取分拣配置参数并写入分拣模块403;其中,分拣配置参数包括端口号、协议类型等,例如预先配置socket应用数据对应的端口号为100、协议类型为TCP协议。
然后linux系统协议栈接收到待发送数据,待发送数据中包括由socket应用发来的数据、系统产生的垃圾报文等。linux系统协议栈将待发送数据传递给tap虚拟网卡40211,tap虚拟网卡40211将待发送数据传递给用户协议栈中的虚拟网卡收发模块4022,虚拟网卡收发模块4022将待发送数据传递给分拣模块403,分拣模块403根据分拣配置参数对待发送数据进行分拣,分拣出socket应用数据和垃圾报文,若接收到的待发送数据中包括端口号为100、协议类型为TCP协议的一个数据,还包括端口号为200、协议类型为TCP协议的一个数据,则分拣出的端口号为100、协议类型为TCP协议的数据为socket应用数据,端口号为200、协议类型为TCP协议的数据为垃圾报文。若分拣出了垃圾报文,则将垃圾报文滤除,若分拣出了socket应用数据,则将socket应用数据传递给协议模块406,协议模块406可以包括七层模型,七层模型包括传输层、数据链路层等,协议模块406接收到socket应用数据之后,将socket应用数据传输到物理网卡收发模块405,然后通过物理网卡外发。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
根据本实施例提供的一种数据收发装置,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
在本实施例中还提供一种基站,用于使用基站标准socket接口的socket应用的数据收发,参见图5,该基站包括:操作系统,操作系统包括运行在其内部的系统协议栈,运行于操作系统外的用户协议栈,以及上述的数据收发装置;数据收发装置包括:转发配置模块及数据转发模块,其中,转发配置模块用于配置用户协议栈与系统协议栈之间的数据转发模块;数据转发模块用于将用户协议栈接收的socket应用数据发送至系统协议栈,和将来自系统协议栈的socket应用数据发送至用户协议栈。
系统协议栈包括linux系统协议栈、windows系统协议栈等。
采用上述方案,用户协议栈使用socket应用不必重新开发,并且保证了使用标准socket接口的socket应用能直接运行在用户协议栈上,使得socket应用通过用户协议栈成功与外界通信,大大提高了通信系统中软件开发效率。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (11)
1.一种数据收发方法,用于使用基站标准套接字接口的套接字应用的数据收发,所述数据收发方法包括:
配置用户协议栈与系统协议栈之间的数据转发模块;
通过所述数据转发模块,将所述用户协议栈接收的套接字应用数据发送至所述系统协议栈,和将来自所述系统协议栈的套接字应用数据发送至所述用户协议栈。
2.如权利要求1所述的数据收发方法,其特征在于,所述数据转发模块包括内部通信网卡;所述配置所述数据转发模块包括:
获取所述用户协议栈的IP地址;
将所述内部通信网卡的IP地址设置为所述用户协议栈的IP地址。
3.如权利要求2所述的数据收发方法,其特征在于,所述将所述内部通信网卡的IP地址设置为所述用户协议栈的IP地址包括:
所述内部通信网卡为虚拟网卡,在所述系统协议栈中设置虚拟网卡,在所述用户协议栈中设置虚拟网卡收发模块,将所述虚拟网卡的IP地址设置为所述用户协议栈的IP地址。
4.如权利要求3所述的数据收发方法,其特征在于,还包括:所述虚拟网卡收发模块以轮询方式,轮询所述虚拟网卡转发的来自所述系统协议栈的数据。
5.如权利要求1至4任一项所述的数据收发方法,其特征在于,在将所述用户协议栈接收的套接字应用数据发送至所述系统协议栈之前,还包括:
获取所述用户协议栈接收的待处理数据;
根据分拣配置参数对所述待处理数据进行分拣,将所述待处理数据中的套接字应用数据,通过所述数据转发模块发送至所述系统协议栈。
6.如权利要求5所述的数据收发方法,其特征在于,在将来自所述系统协议栈的套接字应用数据发送至所述用户协议栈之前,还包括:
获取所述数据转发模块上传的来自所述系统协议栈的待发送数据;
根据所述分拣配置参数对所述待发送数据进行垃圾报文的滤除,将所述待发送数据中的套接字应用数据,通过发送至所述用户协议栈进行发送。
7.如权利要求5所述的数据收发方法,其特征在于,还包括:
通过命令方式,获取所述分拣配置参数;
通过读取配置文件中配置数据的方式,获取所述分拣配置参数;
通过读取数据库来获取配置数据的方式,获取所述分拣配置参数。
8.一种数据收发装置,用于使用基站标准套接字接口的套接字应用的数据收发,所述数据收发装置包括:转发配置模块及数据转发模块,其中,
所述转发配置模块用于配置用户协议栈与系统协议栈之间的数据转发模块;
所述数据转发模块用于将所述用户协议栈接收的套接字应用数据发送至所述系统协议栈,和将来自所述系统协议栈的套接字应用数据发送至所述用户协议栈。
9.如权利要求8所述的数据收发装置,其特征在于,所述数据转发模块包括虚拟网卡,所述转发配置模块用于在所述系统协议栈中设置虚拟网卡,在所述用户协议栈中设置虚拟网卡收发模块,将所述虚拟网卡的IP地址设置为所述用户协议栈的IP地址。
10.如权利要求8或9所述的数据收发装置,其特征在于,还包括分拣模块及分拣配置模块,
所述分拣配置模块用于获取分拣配置参数,并写入所述分拣模块;
所述分拣模块用于获取所述用户协议栈接收的待处理数据,根据所述分拣配置参数对所述待处理数据进行分拣,将所述待处理数据中的套接字应用数据,通过所述数据转发模块发送至所述系统协议栈;和获取所述数据转发模块上传的来自所述系统协议栈的待发送数据,根据所述分拣配置参数对所述待发送数据进行垃圾报文的滤除,将所述待发送数据中的套接字应用数据,通过发送至所述用户协议栈进行发送。
11.一种基站,用于使用基站标准套接字接口的套接字应用的数据收发,包括:操作系统,所述操作系统包括运行在其内部的系统协议栈,运行于所述操作系统外的用户协议栈,以及如权利要求8至10任一项所述的数据收发装置;所述数据收发装置包括:转发配置模块及数据转发模块,其中,
所述转发配置模块用于配置用户协议栈与系统协议栈之间的数据转发模块;
所述数据转发模块用于将所述用户协议栈接收的套接字应用数据发送至所述系统协议栈,和将来自所述系统协议栈的套接字应用数据发送至所述用户协议栈。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852679.6A CN107872431B (zh) | 2016-09-27 | 2016-09-27 | 一种数据收发方法、装置及基站 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852679.6A CN107872431B (zh) | 2016-09-27 | 2016-09-27 | 一种数据收发方法、装置及基站 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107872431A CN107872431A (zh) | 2018-04-03 |
CN107872431B true CN107872431B (zh) | 2021-11-12 |
Family
ID=61751951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610852679.6A Active CN107872431B (zh) | 2016-09-27 | 2016-09-27 | 一种数据收发方法、装置及基站 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107872431B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750469A (zh) * | 2018-07-23 | 2020-02-04 | 大唐移动通信设备有限公司 | 一种应用数据的处理方法及装置 |
CN112769794B (zh) * | 2020-12-30 | 2022-06-21 | 神州绿盟成都科技有限公司 | 一种数据转换方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217464A (zh) * | 2007-12-28 | 2008-07-09 | 北京大学 | 一种udp数据包的传输方法 |
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN105162858A (zh) * | 2015-08-20 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 针对corba中间件的通用传输协议框架、通信系统及方法 |
CN105357266A (zh) * | 2015-09-30 | 2016-02-24 | 山东乾云启创信息科技股份有限公司 | 适合多种场景的socket通信与进程管理通用平台及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2789191A1 (en) * | 2011-12-07 | 2014-10-15 | Nokia Solutions and Networks Oy | Link model for multi-prefix packet system bearer |
-
2016
- 2016-09-27 CN CN201610852679.6A patent/CN107872431B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217464A (zh) * | 2007-12-28 | 2008-07-09 | 北京大学 | 一种udp数据包的传输方法 |
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN105162858A (zh) * | 2015-08-20 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 针对corba中间件的通用传输协议框架、通信系统及方法 |
CN105357266A (zh) * | 2015-09-30 | 2016-02-24 | 山东乾云启创信息科技股份有限公司 | 适合多种场景的socket通信与进程管理通用平台及方法 |
Non-Patent Citations (1)
Title |
---|
用户态并行协议栈关键技术的研究与实现;章巍巍;《中国优秀硕士学位论文全文数据库 (工程科技辑)》;20120615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107872431A (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102790776B (zh) | 心跳连接归一处理方法、终端、服务器及通信系统 | |
US20170201582A1 (en) | Cross-protocol distributed cloud storage system and data management method based on operation control unit | |
EP2861035A1 (en) | Method and system for managing multiple applications in near field communication | |
CN109981668A (zh) | 基于mqtt泛化协议的通用设备物联网通信方法 | |
CN109525566B (zh) | 一种基于增强型MQTT消息机制的LoRaWan数据交换方法 | |
CN102855143B (zh) | 一种scada系统中通用通信框架 | |
CN103547342A (zh) | 消息发送方法、消息阅读通知方法、消息接收方法及装置 | |
US20210409923A1 (en) | Gap and gatt adaptation protocol over internet protocol | |
US20220360650A1 (en) | Apparatus and method for descriptor handling and computer-readable medium | |
CN103618667A (zh) | 信息传送方法、接入网关和系统 | |
CN110233851A (zh) | 一种数据传输方法和装置 | |
CN107872431B (zh) | 一种数据收发方法、装置及基站 | |
CN101902457B (zh) | 配置外部通信协议的系统及其方法 | |
CN104205729A (zh) | 网络中的设备配置方法、设备和系统 | |
CN101309169A (zh) | 一种网络管理方法及网络管理系统、网络设备 | |
CN103297384A (zh) | 协议转换的通信方法及系统 | |
CN110247926A (zh) | 一种交互方法和系统 | |
CN101997772A (zh) | 流量控制方法、装置、系统及网络设备 | |
CN103796191A (zh) | 向用户终端发送数据的方法、装置及终端 | |
CN103227979A (zh) | 一种批量管理移动设备的方法及其系统 | |
Kodali | An implementation of MQTT using CC3200 | |
CN108616289A (zh) | 通信装置、通信方法以及记录介质 | |
CN106921425A (zh) | 一种数据转发方法、装置及设备 | |
CN103746887A (zh) | 一种用于机动通信接入网络开通的方法 | |
CN103346919A (zh) | 统一管理无线终端接入设备cpe的方法和系统 |
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 |