论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf

所需积分/C币:9 2019-08-14 16:25:05 1.09MB .PDF
20
收藏 收藏
举报

TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现,蔡佳翌,李绍胜,极限场景下的通信是工程师们最容易忽略,而关键时刻却又至关重要的研究重点之一。因自然灾害或战争形成的重灾区,基础通信设施往
国武技论文在线 SEED-DIM138A 6V电源模块 TI OMAP-L138 UART0串口 DSP核心 (Tc6748) UART1串口 NandFlash(8G) RS232串口 ARM核心 (ARM926EJ-S) 「R45以太网口 图 开发板主要模块构成 956 mSEED-DIM GBn () 图 开发板实物图 的主要模块功能如下: 中的核心主要负责 系统运行,包括网络支持、系统任务及 上层应用管理等。 中的核心主要完成数据链路层的工作,并通过 侧用户程序进行数据交换。 串∏用于模拟空∏收发,测试 组网功能 用于存放操作系统的内核镜像、文件系统等,容量为 以太网接口用于程序调试、连接本地路由器以进行终端扩充。 串口用于用户终端显示、程序调试。 组网化 虚拟网卡 化的重要性 在现代化网络中,化是各种分组业务的基础,而分组交换功能又为各和多元化的互 联网业务提供∫实现基础,例如实时语音对讲、视频通信、地理位置服务等等,这些多娸体 业务将在极限地区的工作中起到关键作用,因此化网络是构建现代通信系统的关键要素 对于本课题所属通信系统而言,不支持通用接入将会面临很多问题。在极限地区, 国武技论文在线 对专用设备的要求越高,空中网的实用性就越低,非标准通信协议将会在系统推广方面受阻, 开发效率也会被影响。而一旦实现全网化,届时上层应用和协议几乎不需要经过修改就 可以直接使用。 因此,需要一种类似以太网卡的通信实体来支持数据包的接收、处理与转发。在前 文提到的的基础上,本误题提出了创新型的解决方案将 虚拟网络设各 引入到专用自组网中,以在物理层及数据链路层不兼容现有的网终架构和协议的情况下,为 网络提供完善的协议支持及路由功能。 虚拟网卡 是一种虚拟网卡设备,是 平台上的一个开源项目,它是一种以软件代 码形式实现的虚拟硬件,能够像物理网卡·样完成报文的处理和转发功能。其中表 示⊥作在链路层的点对点设备,处坦对象是帧,表示上作在网络层的以太网设各,处 理对象是数据包。 使用 虚拟网络设备的主要优点是组网节点不再受限于常见制造商的网卡 设备。 可以隔离底层实现,课题可以在物坦层和链路层实现更自由的功率控制 天线设计、业务支持和优化等等,也避免了对网络层以上协议栈的重新构建等重复工作 驱动程序工作原理 设备分为字符设备、块设备及网络设备。从结构上来说, 驱动由字符 驱动和K络设备驱动两部分构成,并通过字符设备部分连接用户空间及网络驱动。 从网络协议栈的角度出发, 的网卡驱动部分和常见的物理网卡并无区 别。它同样存在报文接收入冂,并将其推送入网络协议栈进行接收、处理或转发 从驱动程序的角度岀发,它由网络设备驱动和字符设备驱动组成,它的接收数据米自用户区, 通过字符设备驱动的 操作将报文数据传送至网络设备部分,而发送数据的过程相反, 用户区程序通过操作读取 的字符设备,获得待发报文,在通过其他软硬 件设备进行发送,如本文用到的 数据处理进程 (Vtun, Open\PN 使用 TUN/TAP驱动的进程 使用物理网卡驱列的进程户 字符驱动 TCP/P协议栈 以太网P包 Virtua Inic TUN/TAP Real NIC 物理链路 图 工作原理 路由协议 在 网络中,由于其动态拓扑的特性,按照常规固定网络中路由协议进行周期性 丿播并更新路由信息将会造成较大的网络开销,对网络性能起到较大影响。目前, 路由协议基本可以分为三类:表驱动路由,按需驱动路由以及混合路由。以下简单介绍 国武技论文在线 卜主流的表驱动和按需路由。 表驱动路由又称为先应式路由,网络中的每个节点都维扩一个或多个路由表,这些路由 表保存着最新的相对稳定旳路由信息,芍点之间通过厝期性广播的方法向相邻节点更新路由 信息。该类型路由的主要特点是:即时寻找路由的时间较快,平时维护路由表的网络开销较 大。其中具有代表性的包括 (目的节点序列距离矢量协议), (优化链路状 态协议)等。 按需路由又称为反应式路由,它只在发送数据时才进行路由查找,路由的发现与维护过 程存在于每个节点中,当一个子节点发起数据传输时,它就向网络发起路由发现过程。路由 建立后,会有一个路由维护程序对已经建立的路由进行维护,直到目的节点不再需要这条路 由或不可达。它的特点是:即时寻找路由的时间较慢,对实吋性要求较高的业务支持交差, 但对网络带宽和能量的消耗有所降低。其中有代衣性的包括:(动态源路由协议)、 按需平面距离欠量路由协议)等。 协议是 网络中按需路由的典型协议。当一个节点需要给网终中的其他节 点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出 (路由请 求)报文。 报文中记录着发起节点和目标节点的网络层地址,邻近节点收到 首先判断日标节点是否为自己。如果是,则向发起节点发送(路由回应):如果不是 则首先在路由表中查找是否有到达日标节点的路由,如果有,则向源节点单播 否则 继续转发进行查找。综合可实现性、系统应用场景与物理层数据链路层的性能考虑, 选择 为木课题路由协议,以 开源路由协议栈为基础进行实现 软件设计与实现 开发环境准备 )使用 虚拟机安装桌面开发环境 操作系统 )在官方网站上下载并安装 。其中包括交叉编详工只 )、适用于 的核源码、 模块源码 源码等。 )安装服务器。设置完毕以后,就可以将上的指定目录挂载到开发板上,提升 开发效率。 )安装工具。主要用于刷入系统内核镜像、文件系统等。 在 系统环境中,安装并运行 版,升级丁具到 版本, 寻入开发板的文件。安装仿真器驱动程序,连接 开发板与。 安装串口调试程序 ,设置波特率为 ,将开发板通过 串口连接到 嵌入式 移植及协议验证 图是 开发板的启动流程图。在烧写 内核之前,需要做好一些 前期准备。 国武技论文在线 Linux kernel (U-Boot Boot Loader (ARM ROM Boot Loader) (DSP ROM Boot Loader Power On 图 开发板启动流程 )使用 程序依次烧写 及 )使用串口数据线连接开发板,打廾 串口调试工具,启动廾发板,进入 命令行,设置网口的地址、 地址等环境变量,保存并重启开发板,再次进入到 命令行; 在 环境下,在官方 源码的基础上修改,使其支持 开发板,编译出 ,与文件系统 一起拷贝到目录下。 将开发板与连接到同一台交换机上,设置虚拟机的网终连接方式为 准备烧写 )烧写 系统镜像 及文件系统 )重启开发板,以用户脊录 操作系统准备就绪,如图 cit Setup Ccntrol Window Help ★十★ ★★★女女 ★★★★★ Seedhttp://www.aeeddap.comseedttys1 SEED 2010.04 seed ttys1 ced login: root (automatic login) 图 操作系统就绪 )验证协议。使用命令尝试与取得联系,经验让可以通信,证明协议 栈工作正常。 什么是 是一个 架构的 双核嵌入式处理器, 核心为了 能够从核心接收数据,要求与之闾能够进行处理器核通信,而 是实现这个功能的关键模块。 国武技论文在线 ,用于处理器中端与端进行数据交换, 提供了一套通用的,从应用层抽象出与的物理连接特性,从而降低用户开发 程序的复杂度。图是 模块的原理图。 DSPIBIOS TM LINK API PROCESSOR MANAGER DSPIBIOS GPP LINK LINK OTHER Os ADAPTATION DRIVER DRIVER DRIVERS LAYER GPP DSP 图 基本原理及架构图 它提供的包括 )基本的处理器控制,包括唤醮停止休眠,加载启动程序二进制代码等 )基于逻辑通道、共享内存的数据传翰 )基于 的 模块的消息传递机制。 移植 模块 )使用 源码编译生成 模块,注意编译选项: 的目标系统 版本号应与 上运行的内核版本号一致,且交叉编译工具要选择与该内核相 同的版本,否则会造成无法运行等问题。 )在 下编泽出端的 示例程序,在 环境下编译出端 的示例程序,将牛成的 及示例程序下载到开发板的 中,并升级系统库 文件配置。 )用示例程序验证 是否能正常工作。图是其中的 示例成功运 行的结果,其中表小通用处理器,及侧。 「con1ua-a7mV p1 e Application RTNG TO ========== cars Data butter size :204 Entered RING_TO_Create Leaving RING_IO_Create ( Entered RIl Readerclient ( EnLered RING IO WriLerclienL ( GEP-->DSP: Ser.t Data Transfer start Attribute FP-->DSP: sert Data transfer start notification RingIO setAttribute succeeded to set the RINGIO DATA END. Status =L0x81001 GPP--D5P: Sert Data Transfer End Attribute GEP-->DSP: Ser.t Data Transfer End Notification Leaving RING IO Nriterclient ( GEP<--DSP: Received Data Transferstart Attribute GEP<--D3P: Received Data TransferEnd Attribute GEP<--DSP: Bytes Received 128 GEP<--DSP: Received DaLa Transfer End NoLificaLion Readerclient ( Entered RING Io Delete ( aviag rINg Io delete ( note seed: /mrt/nfs/usr/share/ti/ti-dsplink-examples# 图 示例运行成功 国武技论文在线 添加 虚拟网卡支持 )添力 支持 执行 命令,勾选如下的编译选项 重新编详后生成的 中即包含 驱动。 与上层应用开发 使用 及其,以示例代码为基础,创建新的 设备。同时廾发 侧程序与侧用户态程序 侧用户态程序与 驱动程序之间数据交换的功 能模块,实现虚拟网卡在专网空口的数据包收发。设计原理如图所示 Linux内核路由表 TUN/TAP虚拟网卡设备 网络驱动(网络层) 「 TUN/TAP虚拟网卡设备 字符驱动 read(发出)/ write(接收) 通用IP数据包 ARM侧用户态应用程序 收发预处理 专网数据包本地直接接收 并处理 DSPLink模块/CHNL机制 通用IP数据包/专网数据包 DSP侧执行程序 UAR,BI流一 模拟空口) (数据链路层) dspsideout MCASP接囗 BIT流 FPGA(物理层) 虚拟网卡与物理层数捱链路层的交互原理 开源路由协议栈移植 是由瑞典乌普萨拉大学与爱立信公司基于联合发布的一种 路由协 议,是能够在运行的协议栈代码,主要由瑞典人 编写和维护。其 中用户空间模块主要负责在内核路由表并不包含目标节氐时进行路由搜索,而内核空间模块 主要负责在內核路由表含有目标节点地址时进行路由决策。 )内核态部分 将 源吗中的文件夹移动到内核目录 下,在同目录 中 添加 在同目录 文件末尾确定编详目录: )用户态部分 国武技论文在线 修改编译选项,统·目标内核版本及交叉编译工具,之后编译: 即会生成用户态可执行程序。 )重构内核 执行 命令打丌编译选项,添加以下两个模块: 执行 命令后,将会生成 模块。重新编译并烧写 )验证 将刚生成的 的两个模块复制到开发板相关目录下,使用 命令装载 内核态模块。执行卜列命令以打廾转发功能: 验证是否可以成功运行: 图中, 已开始发送 报文,验证了 已可正常工作 root@seed: /mnt/nfs/home/root/aodv-protocol#. /aodv -i etho-l-r3 00: 06: 03. 149 aodv socket init: RAW send socket buffer size set to 217088 00: 06: 03. 152 aodv socket init: Receive buffer size set to 217088 00: 06: 03. 153 main In wait on reboot for 15000 mi ll i seconds. Disable with"-D 00: 06: 03. 154 hello_start: Starting to send HELLOs! 图 运行成功 使用 模拟空口进行测试 为了在射频、数模转换等模块未就绪的情况下测试 协议栈是否正常运行,需要 重定向底层数据通道,在此暂使用 作为模拟数据通道,通过核心控制。 )在侧的程序中添加 初始化及收发支持,使用串口转口模块及 验证该功能是否正常 )使用 和 分别作为接收和发送串口,连接两块开发板,使用图的 连接方式进行测试 UARTo UART1 UART1 UARTO 连宴方式 系统运行及验证测试 运行原理 图是 虚拟网卡在空中自组网中的运行原理。所有节点在跳频空口都以 为通信实体来通信,并维护自己的内核路由表。它很好地屏蔽∫数据链路层及物 理层的只体实现,实现∫对于非通用底层标准通信网络的组网。在 加持的情况 国武技论文在线 卜,实现了空中自组网的烙由功能,使实用性能得到进·步提升。而地面节点在配各无线路 由的条件下,可以作为一个网关。 无线信道/Ad-hoc跳频通信网络 TUN/TAP TUN/TAP TUN/TAP TUN/TAP 10.102.10.178 10.102.10.179 10.102.10.180 10.102.10.181 Linux Kernel Linux kernel Linux kernel Linux kernel /Route table /Route table /Route table /Route table RJ45以太网口 RJ45以太网口 RJ45以太网口 10.102.10.168 10.102.10.171 本地AP 本地AP 在本系统中的运行小意图 软件设计与实现 图是软件运行分层示意图。图中展示了空口数据从模块接收之后,经过 核心的处理,通过 传送侧用户态程序,最后写入 虚拟网卡。交由 内核路由模块( )进行路由选择和转发,对于本地路由表未具备的目的地址,通过 用户态的 进行路由查找。 ARM端用户态应用程序 用户 空间 通用P包 是否有路由 内核 B>+ aodv ko 是 是否本上数 据包 TUN/TAP dsplinkk ko+3。0bpk RJ45 DSP核心 SEED-DIM138A 以太网口 ARM核心 本地AP FPGA模块 图软件设计原理及流程图 消息接收处理流程 )从系统设计出发,首先应该是模块从数模、天调模块接收数据流,经过处埋 传送给但从工程实现角度出发,因为该部分模块还未就绪,因此从 模块 接收数据并处理成包,通过 发至侧 )若用户态程序识别到这是一个标准报文,则直接将其写入虚拟网卡,进入 网络协议栈并进行相应的路由转发。如果不是,则认为是一个专网控制包,直接进行相应的

...展开详情
试读 13P 论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf 9积分/C币 立即下载
1/13
论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf第1页
论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf第2页
论文研究-TUN/TAP虚拟网卡设备在Ad-hoc组网中的应用与实现 .pdf第3页

试读结束, 可继续读1页

9积分/C币 立即下载 >