- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下虚拟多网卡测试平台的实现 摘要:研究了Linux网络协议实现和网卡驱动的工作机制,通过重构系统网络通信模型,在链路层加入多个逻辑网卡,成功搭建了基于Linux的虚拟多网卡测试平台。 关键词:Linux通信;TCP/IP协议;虚拟技术;性能测试;驱动编程 中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)25-7284-03 Realization of the Virtual Multi- network Card Test Platform under Linux ZOU Fang-qiang, TAO Jun-cai (Data Processing Center of Nanchang University, Nanchang 330031, China) Abstract: Studied the Linux network protocol and the working mechanism of network card, build a Linux-based virtual multi- network card test platform by restructuring system network traffic model and joined many logical network cards in the link level. Key words: Linux communication; TCP / IP protocol; virtual technology; performance Testing; driver programming 随着虚拟和网络技术的不断发展,虚拟网卡技术被广泛应用。虚拟网卡能够很好地解决报文截获技术中存在的被绕开和软件冲突的问题[1];虚拟机软件中也要使用虚拟网卡技术实现虚拟机内系统和互联网通信;虚拟专用网的实现,通常也是使用虚拟网卡来让同一台主机注册多个子网的IP;软件开发过程中,虚拟网卡也被用做网络数据源,测试软件网络数据处理性能。目前出现的虚拟网卡软件要么灵活性差、使用不方便,要么满足不了数量上的要求,凭借Linux系统优良的网络性能和内核的易扩展性,本文实现一个简洁、易于使用和部署的虚拟多网卡平台。 1 Linux协议分析 Linux提供了对于当前的TCP/IP协议的完整支持,Linux包括了IP防火墙代码、IP防伪、IP服务质量控制及许多安全特性,这些特性使得Linux被广泛应用于网络服务器。开源特性使Linux在网络性能能够始终处在前列,良好的框架和统一的风格,也让他对新的通信协议的支持变得容易。协议结构上,Linux基本采用了TCP/IP的四层逻辑结构,但并没有拘泥于TCP/IP协议,如为了便于体现程序调用逻辑,内核将ICPM、IGMP模块与TCP、UDP放在同一个层次对待。Linux系统在网络方面的优秀表现,也是本文最终在Linux上实现的主要原因,为了后面能清晰地说明问题,下面简要介绍虚拟网卡实现中涉及到的Linux内核网络相关概念。 1.1 协议实现中的关键数据结构 在网络协议的实现中有几个关键的数据结构,它们贯穿了整个协议的实现,其中之一是对接收和发送的报文进行统一管理的缓冲区数据结构――sk_buff。一个个单独的sk_buff被组织成双向链表的形式。sk_buff的强大功能在于它提供了众多指针,可以快速地定位协议头位置;它也同时保留了许多报文信息(如使用的网络设备等),以便协议层根据需要灵活应用。其中:Union h是传输层协议头(tcp);Union nh是网络层协议头(ip);Union mac是链路层协议头。 从应用层到链路层,报文的生成始终离不开sk_buff,对报文的每次封装其实就是在对sk_buff指向的缓冲区的操作,以下简要介绍sk_buff的生命周期,当一个数据包被网卡接收到后,网卡驱动就会申请一个sk_buff结构,然后将数据部分拷贝到sk_buff结构里,并且将与链路层相关的信息设置好,交给网络层处理。网络层、传输层根据sk_buff的信息实现相应协议。一般地,当数据包被传输层的协议接收到后,Socket接口将sk_buff中的数据拷贝到应用层的数据缓存区,这时候sk_buff的生命就结束了,被释放掉。当应用层发送数据时,也是在网络协议族提供的接口函数里,申请一个sk_buff结构,将数据拷贝到这个结构里。当sk_buff结构达到网卡驱动程序时,里面包含足够二层路由信息,数据部分也是一个完整的数据包。 另一个关键数据结构是用来描述逻辑网络设备的net_device,该结构主要描述了以下信息:
有哪些信誉好的足球投注网站
文档评论(0)