本发明专利技术提出了一种基于可拼装通信协议栈的通信方法,所述方法包含:构造协议形成协议模块,将协议模块放入协议模块库;从协议模块库中抽取所需协议模块,再将抽取的协议模块拼装,形成通信协议栈;将拼装得到的通信协议栈安装至协议栈运行设备;协议栈运行设备上的应用采用安装的协议栈完成数据通信。构造协议模块具体过程为:构造与操作系统对应的协议的执行代码,形成协议模块;定义PDU,即定义每个协议模块与协议模块库中的其它协议模块互为输入输出关系时对应的数据的长度及数据结构。依据协议模块的兼容性,采用可视化拖动或配置文件,建立待拼装的协议模块间的关系;拼装完成之后,生成协议栈配置文件和协议栈执行文件。
【技术实现步骤摘要】
本专利技术涉及网络
,特别涉及到未来网络协议栈开发。
技术介绍
在未来网络领域,美国、欧洲、日本等国以及我国的研究人员们都在进行着网络架构等方面的探索。无论多么先进的网络架构,最终都要分解成不同的功能组成,这样才能进行相应协议栈的开发。目前在未来网络技术研究方面,普遍采用SDN(软件定义网络)作为底层构件,在此基础上,进行有针对性的开发,大部分情况下,几乎是开发所有的协议栈模块。这样就带来了开发效率低的问题,从而影响了支持新协议的网络试验和后续应用的开发。无论采用什么样的网络架构,最终的实现都将落实到软件方面。在软件开发技术上,有面向过程的开发方法、面向对象的开发方法和模块式开发方法。在软件的可重用性方面,比较好的是面向对象的开发方法。在0SI七层模型或TCP/IP为基础的互联网模型,甚至在将要开发的协议栈模型中,人们可识别出许多共同的功能,如传输、安全、移动性等。而且许多这样的功能在如今的协议栈上,在多个层次可能都有实现,这就存在重复开发的问题。本专利技术针对新协议栈开发白手起家速度慢的问题以及可能在多个层次实现类似功能的问题,提供了一种可拼装通信协议栈的方法。
技术实现思路
本专利技术的目的在于,为了克服上述问题,本专利技术提供一种可拼装通信协议栈的方法,该方法解决了新协议栈开发白手起家速度慢的问题以及可能在多个层次实现类似功能的问题。为达到上述专利技术目的,本专利技术提供了一种基于可拼装通信协议栈的通信方法,所述方法包含:根据通信协议构造协议模块,将协议模块放入协议模块库;从协议模块库中抽取所需协议模块,再将抽取的协议模块拼装,形成通信协议栈;将拼装得到的通信协议栈安装至协议栈运行设备;协议栈运行设备上的应用采用安装的协议栈完成数据通信。 可选的,构造协议模块具体过程为:构造与操作系统对应的协议的执行代码,形成协议模块;定义PDU,即定义每个协议模块与协议模块库中的其它协议模块互为输入输出关系时对应的数据的长度及数据结构。进一步可选的,依据协议模块的兼容性,采用可视化拖动或配置文件,建立待拼装的协议模块间的关系;拼装完成之后,生成协议栈配置文件和协议栈执行文件。可选的,将协议栈配置文件、协议栈执行文件部署到协议栈运行设备;在协议栈运行设备上启动运行协议栈执行文件,将网络硬件或虚拟硬件得到的数据传递至协议栈,进而得到网卡驱动的名称和版本号,且针对不同的网卡驱动和版本,网络协议栈有不同的适配接口。可选的,协议栈向利用该协议栈的应用提供通信服务,具体是指协议栈提供以xml描述的API文件和API库,且各协议模块均有对外提供服务的接口 ;各应用通过API文件和API库,调用接口函数完成连接通信或加密通信。此外,本专利技术还提供一种基于可拼装通信协议栈的通信系统,所述系统包含:协议模块库,用于基于要实现的功能选取通信协议并根据选择的通信协议构造协议模块,再将构造的协议模块放入协议模块库;拼装模块,用于从协议模块库中抽取所需协议模块,再将抽取的协议模块拼装,形成通信协议栈;挂载安装模块,用于将拼装得到的通信协议栈安装至协议栈运行设备。可选的,构造模块进一步包含:执行代码生成子模块,用于构造与操作系统对应的实现所需功能的协议模块的执行代码;PDU定义子模块,用于为各协议模块定义rou,即定义每个协议模块与协议模块库中的其它协议模块互为输入输出关系时对应的数据的长度及数据结构。进一步可选的,拼装模块进一步包含:协议模块关系建立模块,用于依据协议模块的兼容性,采用可视化拖动或配置文件,建立待拼装的协议模块间的关系;协议栈配置执行文件生成子模块,用于在拼装完成之后,根据拼装关系生成协议栈配置文件和协议栈执行文件。可选的,所述挂载安装模块进一步包含:部署子模块,用于将协议栈配置文件、协议栈执行文件部署到协议栈运行设备;运行子模块,用于在协议栈运行设备上启动运行协议栈执行文件,将网络硬件或虚拟硬件得到的数据传递至协议栈,进而得到网卡驱动的名称和版本号,且针对不同的网卡驱动和版本网络协议栈设置不同的适配接口。与目前的方法相比,本专利技术具有下列优点:本专利技术解决了新协议栈开发白手起家速度慢的问题以及可能在多个层次实现类似功能的问题。【附图说明】图1可拼装通信协议栈涉及到的实体与方法关系图;图2可拼装通信协议栈方法使用流程;图3利用可拼装通信协议栈构造路由协议栈场景。【具体实施方式】下面结合附图和实施例对本专利技术所述方法进行详细说明。为了实现上述目的,本专利技术提供了一种基于可拼装通信协议栈通信的方法,包括:协议模块构造、拼装协议栈、协议栈挂载和采用挂载的协议栈提供服务,完成通信。本专利技术的方法涉及如下实体:协议模块库、协议栈运行设备和采用协议栈服务的应用。协议模块库用于存储成型协议模块的地点,可以是数据库、文件夹等;协议栈运行设备指协议栈在其中运行的设备,完成通信相关的计算、封装、验证等操作,可以是计算机主机/服务器/移动设备(手机、平板、数字助理等)、路由器/交换机;采用协议栈服务的应用指端设备上利用协议栈的通信功能完成数据传递的软件实体,可以单独存在或为某个软件实体的组成部分。上述协议模块构造指利用现有的软件工具生成完成特定功能协议模块的方法。如何编写这样的协议模块属于现有技术在此不做赘述,本专利技术提供了协议模块之间发生关系时的输入/输出关系,即本专利技术为了协议模块之间的通信定义了 rou(报文数据单元)。所述rou由不同的字段组成,每个字段均采取(data,length)的方式加以定义,整个PDU采用xml文件加以定义。与每个协议模块关联的有三个文件:可执行文件、PDU定义文件和模块说明文件。其中可执行文件是在相应操作系统下可执行的代码;输入/输出PDU定义文件分两节(sect1n):Input sect1n和output sect1n。这两部分的结构相同但用途不同,都包括指出数据的长度以及数据的结构,可采用类似C/C++中定义结构(struct)的方式;模块说明文件是供使用人员查看的。上述拼装协议栈指利用现有模块库中的模块,采用可视化拖动或配置文件,建立所需模块间的关系(如先后顺序)。其中在可视化拖动之后要检查模块的兼容性,不兼容的模块不能连结,可视化拖动的结果是配置文件;其中采用配置文件时,要有连结后处理,以便检查兼容性。配置文件是协议模块调度器执行协议的依据。在拼装完成之后,生成协议栈配置文件、协议栈执行文件(内含模块调度器和各模块)。上述协议栈挂载指将协议栈配置文件、协议栈执行文件部当前第1页1 2 本文档来自技高网...
【技术保护点】
一种基于可拼装通信协议栈的通信方法,所述方法包含:根据通信协议构造协议模块,将协议模块放入协议模块库;从协议模块库中抽取所需协议模块,再将抽取的协议模块拼装,形成通信协议栈;将拼装得到的通信协议栈安装至协议栈运行设备;协议栈运行设备上的应用采用安装的协议栈完成数据通信。
【技术特征摘要】
【专利技术属性】
技术研发人员:王玲芳,王劲林,
申请(专利权)人:中国科学院声学研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。