毕业设计论文-基于无线控制器的接口管理(共85页)_第1页
毕业设计论文-基于无线控制器的接口管理(共85页)_第2页
毕业设计论文-基于无线控制器的接口管理(共85页)_第3页
毕业设计论文-基于无线控制器的接口管理(共85页)_第4页
毕业设计论文-基于无线控制器的接口管理(共85页)_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 XXX 高级工程师XX 教授 软件工程题(中、英文)目企业指导教师姓名职称学校指导教师姓名职称XX工程领域作者姓名二XXX年二月提交论文日期Based on the Wireless ControllermInterface Management基于无线控制器的接口管理 企业指导教师姓名职称摘要(zhiyo)随着无线网络的不断发展,有线网络和无线网络的融合必将成为一种趋势,新型的网络设备的产生也将成为一种必然,有线无线一体化交换机就是这种设想的实现。接口管理作为交换机设计中的重要软件组成部分,它在交换机中抽象底层的硬件驱动,定义完备(wnbi)的接口,给上层管理提供接口,是交换机软件开发的主

2、要内容,对于交换机的软硬件的管理和交换性能具有十分重要的意义。本文以某公司的AX7000有线无线一体化企业级交换机项目为背景,深入研究了Cisco、Juniper等公司的接口管理设计模式,提出了自己的设计方案。基于交换机的PORT和VLAN实现交换机的二层接口、三层接口、协议接口以及各种特性接口的定义,运用Port和VLAN之间的关系使接口之间相关联。实现虚拟(xn)网卡驱动以支持三层接口,完成交换机网关功能。添加ARP和路由信息学习管理模块,保证网络安全和数据转发的高效、畅通。最终根据定义的接口实现命令行的配置功能。关键(gunjin)词:接口管理 无线控制器 网络AbstractWith

3、the continuous development of wireless networks, the amalgamation of cable and wireless networks will definitely become a trend, and it is inevitable that a late-model network apparatus, such as the Wire and Wireless Integration Switch, will come into being. As an important software components of th

4、e Integration Switch, Interface management which abstracts the underlying hardware drive, defines the whole Interface and provides interface for the superior management, has great significance for the management of Integration Switchs software&hardware and its performance.This thesis, via a AX7000 W

5、ire and Wireless integration Enterprise-class Switch project and thoroughly studying on Ciscos, Junipers and some other companys Interface Management design pattern, puts forward my own design pattern in which I educed the definability of Ethernet Interface, Layer 3 Interface, Protocol Interface and

6、 a variety of some special interface and identified their relations via the Port and VLAN of intreface, and achieved the virtual network card driving which gives support for layer 3 interface, and fulfilled the function of interfaces gateway. And by appending ARP and Management Module of Router info

7、rmation learning, so that we can ensure networks safety and its efficiency and stabilization of data transmition and finally achieve the configurations function of command-line according to its definition of interface.Keyword:Interface Management Wireless Controller Network目录(ml) TOC o 1-3 h z u HYP

8、ERLINK l _Toc223765458 第一章 绪论(xln) 第二章 相关(xinggun)技术背景第一章 绪论(xln)1.1 项目(xingm)背景上世纪九十年代以来,网络建设突飞猛进。我国的网络建设,包括企业网和广域网络,都实现质的飞跃。无线网络同期也得到广泛应用和发展。近两年来,无线网络有越来越加快(ji kui)发展的趋势。无线网络自诞生以来,表现了其独特灵活性、便利性及高效率的特点。无线网络的初步应用,可以追溯到第二次世界大战期间,美国陆军采用无线电信号作资料传输。1971年,夏威夷大学的研究员创造了第一个被称作ALOHNET的无线电通信网络。无线局域网(WLAN,Wire

9、less Local Area Network)采用无线通信技术代替传统电缆网络。上世纪90年代初,无限局域网络设备相继出现。以900MHz、2.4MHz 和5GHz为主要頻率。1997年6月,第一个无线局域网标准IEEE802.11正试颁布实施。1999年9月802.11b技术标准正式发布,802.11带来了网络建设的一场“革命”1。为无线局域网的物理层和MAC层提供了统一的标准,为无线网络市场迅速发展奠定基础。近年来,国际无线网络市场发展迅速。据市场调查,1998年美国无线网络服务的收入为300亿美元,收入主要还是来源于移动电话的无线语音服务。到1999年美国无线网络数据服务的收入达到6亿

10、美元。预计 2003年美国无线网络数据服务的收入可以达到40亿美元。到了2005年美国的无线服务收入将达到600亿美元,其中无线数据通信的收入达到84亿美元,将增长14倍。到2006年,全球无线网络设备的市场销售额将达到103亿美元。2001年全球无线上网人口总数已达3900万人,预计到2005年底可达到7.29亿人,并且全球将有36的上网人口通过无线电子设备上网。无线网络的应用将持续高速发展。人们已经不满足原来的移动电话服务的内容,无线网络的语音服务必然向数据服务发展。特别是信息技术的广泛应用,移动办公和移动商务的要求,也必然推动无线网络应用的发展。无线网络补充延伸了有线网络,扩大了网络的覆

11、盖率和提高了网络的应用范围2。到现在为止,无线局域网一般是由连接到接入点的客户机构成,而接入点要提供安全功能、管理功能和其他控制网络无线部分所需的智能性。由此带来的问题是,管理多个接入点,对于可能涉及几百或几千个接入点的网络来说是一种无法应付的局面。在这种情况下,一种新的产品WLAN交换机应运而生。许多资深研究以太网技术及交换机技术的网络公司正投入大量研究力量从事无线交换机的研发,例如Cisco,H3C等等,这两家公司都已有自己成熟的产品,Cisco的Cisco 4400系列,H3C的WX5002系列,但这些都只停留在无线控制这一块,而没有把有线和无线完整的融合起来。无线交换所带来的,不仅是提

12、升无线网络的可管理性、安全性和部署能力,还降低了组网成本,由此成为无线局域网领域一种新的发展趋势。传统的企业级无线局域网采用的是以太网交换机企业级AP的2级模式,由AP来实现无线局域网和有线网络之间的桥接工作。整个网络的无线部分(b fen), 是以AP为中心的一片片覆盖区域组合而成的。这些区域各自独立工作,AP作为该区域的中心节点,承担着数据的接收、转发、过滤、加密,客户端的接入、断开、认证等任务。所有的管理工作,比如channel管理和安全性设置,都必须针对每一台AP单独进行。当企业的无线局域网规模较大时,这就成了网络管理员相当繁重的负担。新出现的无线交换机通过集中管理、简化AP来解决这个

13、问题。在这种构架中,无线交换机替代了原来(yunli)二层交换机的位置,轻量级AP(Light-Weight AP)(也称智能天线)取代了原有的企业级AP3。通过这种方式,就可以在整个(zhngg)企业范围内把安全性、移动性、QoS和其他特性集中起来管理。虽然无线交换机采用和普通交换机类似的方式与AP实现连接。但在802.11帧处理上与传统方式不同:它不将802.11帧转换为以太帧,而是将其封装进 802.3帧当中,然后通过专用隧道传输到无线交换机。从有线网的角度看,无线交换机加轻量级AP更像是一台伸展出很多外接天线的增强型AP。无线交换机的优势,在于三个主要方面:更高的安全性,更低的TCO,

14、更有效率的管理。在新的AP与交换机之间的通信的隧道协议和管理协议(LWAPP)标准定制以后,不同厂家的无线交换机和AP不能通信的时代已成为过去,LWAPP 在市场中得到广泛接受,减少了被迫锁定于一个厂商,即只有将接入点与同一厂商的WLAN系统设备共用,才能获得最优运行效果的现象。LWAPP还提供了一个开放标准解决方案,可在多厂商集中WLAN架构上提供安全的第二层和第三层网络服务。此外,凭借LWAPP,第三方厂商也可拥有一个用于部署应用的通用架构。无线交换机将会成为网络设备发展的主流。1.2 项目来源本文作者实习公司是业界唯一一个有线无线一体化宽带网络解决方案提供商。依托它们的产品,用户可以基于

15、单一平台部署有线网络、WLAN网络及企业统一安全策略。传统企业(qy)网络中,有线网络设备及管理系统、无线网络设备及管理系统、安全策略管理系统各自独立,分别维护,不但增加了IT人员的负担,而且大大增加了企业的 IT基础设施投资。傲天动联提供单一的有线无线一体化产品平台和管理平台,用户可以基于同一设备进行WLAN数据和有线数据的转发策略控制以及进行第七层安全策略部署,极大的简化了网络的部署和管理并大幅度节约网络基础设施投资。基于以上(yshng)的市场需求,公司率先推出了业界领先、完全自主知识产权的有线无线一体化解决方案,包括业界最高转发(zhun f)性能和最具安全性的AX7000系列高端一体

16、化安全交换机、适用于中小型企业的AX5000/3000系列一体化安全交换机、具有零配置自愈合功能的室外型无线接入点、基于开放式安全平台的AUTEWARE操作系统等,为客户提供安全、高速、统一管理、易于部署的整网多业务解决方案。而接口管理正是交换机的核心功能,同样有线无线一体化交换机也不例外。在现有的网络设备生产公司中,接口都没有十分统一的清晰定义,各有巧妙。但是从总体上说,其内容涵盖了系统中所有底层硬件驱动、上层应用,是软件层面上的一系列核心结构体,主要目的是为了高效合理的管理交换机,并且以它为核心进行软件开发,扩展功能,版本的移植。因此接口管理逻辑关系复杂,与系统软硬件功能模块紧密相关,也是

17、中高端交换机管理方式的定义。不同的设计最终呈现给用户的时候,有很大的差别,从Cisco和Juniper设备配置文档中就可见一斑。从Cisco的配置手册4上可以看出,Cisco对接口定义最广泛,因此也最混乱,接口太多。在Cisco的8540配置文档中可以看出,接口与路由有很大的关系,路由是把包从一个链路传送到另外一个链路,而为了实现这个过程,就要定义数据包从接受到发送这一过程的接口特征。接口特征包括IP地址,端口地址,数据封装方法和介质类型,这些所说的只是其中的一部分。可以看出Cisco的接口定义更像一个面向对象程序中的类,当然把它们定义成可以独立出来的模式,可以很方便的把它们组织成一个树形结构

18、,加快了包在三层交换机中的转发速度。Juniper公司的接口管理5相对要清晰一点,把接口的概念分层了,从物理层到链路层到网络层,逻辑上的可以有好几层接口,类似一个接口栈,完整的接口栈实现完整的报文从网络协议栈最底层到顶层的处理过程。例如:用户可以根据自己的需求配置T3和T1链路的物理和逻辑特征或根据中心交换机和OC3链路的物理和逻辑特点从网络的下层核心传出,这些物理和逻辑的特点就定义了一个接口。而接口的配置应该从低到高合理的配置,比如:原来的配置是IP 运行在ATM上,现在想改变原来的模式,IP 要运行在PPP上,PPP运行在ATM 上,则就要先删除IP,再配置PPP,然后重新配置IP,才能正

19、确的运行。从这些可以看出Juniper公司对接口定义比较严格。而接口的管理也更加的灵活。在作者实习公司的有线无线一体化交换机中,接口管理吸收了Cisco和Juniper的优点,提出了自己相对简单但功能全面、灵活的接口管理方案。把接口管理规划入两个主要的逻辑(lu j)结构中Port、VLAN中,用这两个数据结构去定义各个(gg)接口功能。1.3 项目其间(qjin)的主要工作本次课题开发的内容是根据作者实习公司的产品AX7000和AX5000有限线无线一体化交换机的研发而来。这两款新产品给用户提供了无线网络管理和有线网络管理的一体化解决方案,最大化的减小了用户的投资,并使用户长期受益。新产品在

20、设计研发过程中遵守IEEE的802等标准。系统采用MIPS架构,LINUX服务器平台,进行基于高速交换芯片的嵌入式开发。将优化过的一些相关理论方法应用到实际开发过程中去,保障了系统性能、特性的安全稳定。本论文的研究内容是实习公司AX7000和AX5000有线无线一体化交换机的核心功能接口管理模块,本文作者主要完成以下几个方面的工作:项目开始前期。阅读有关TCP/IP协议书籍、Socket编程书籍、线程管理和内存管理书籍,硬件芯片文档,产品设计架构文档,了解国内三层交换机框架的一些情况。阅读交换芯片的驱动源代码。对产品硬件结构进行培训,与硬件工程师一起对交换芯片的硬件转发能力进行测试验证。与交换

21、项目组的开发人员和软件架构工程师进行接口管理方面的设计。完成接口管理的基础,Linux虚拟网卡驱动的设计、编码、测试。完成RSTP和MSTP的融合,为上层管理提供相应的接口。实现ARP,路由学习的软硬件控制,以及一些特色功能接口。调试报文收发流程的性能。1.4 章节安排论文主要介绍了研究和实现基于无线控制器的接口管理。第一章:绪论本章介绍了论文研究背景、来源和组织安排。第二章:相关技术背景本章(bn zhn)介绍了交换机软件开发中与接口管理(gunl)相关关键技术。首先(shuxin)介绍了TCP/IP协议的基本信息,紧接着对Linux驱动做了总结,最后对公司使用的两个开源软件Quagga,D

22、-Bus进行简单的介绍。第三章:无线控制器体系结构本章对实习公司的产品AX7000的各个功能做了概述,并从本产品的硬件架构和逻辑功能模块详细介绍它的软件结构和设计理念。第四章:接口管理的需求分析本章论述了接口管理的概念,并分析了接口管理的需求,最终对系统和接口管理进行了功能建模。第五章:接口管理的设计实现本章详细论述了AX7000的软件总体设计以及各个模块的功能,然后对接口管理的上层应用命令行模块和协议模块和底层驱动模块的设计实现进行了详细阐述,最后具体的论述了接口管理的设计与实现,并且列出了测试结果。第六章:结束语本章主要总结了本篇论文的主要内容,介绍了AX7000投入市场后情况,展望了未来

23、的工作。第二章 相关(xinggun)技术背景2.1 TCP/IP及Linux TCP/IP协议(xiy)栈网络发展最初可以追溯到20世纪50年代(nindi),当时人们尝试把分别独立发展的通信技术和计算机技术联系起来,使得在技术上为今后的计算机网络的出现做好了准备。同时建立了一些基础的理论性的概念。1983年出现了可用于异构网络的TCP/IP协议,并作为BSD UNIX操作系统的一部分,TCP/IP协议得到了认可,逐步流行起。从此真正意义上的Internet诞生了6。1991年,internet开始用于商业用途,internet的商业化,成为internet发展的催化剂,使得它以空前的速度迅

24、速发展。Linux 正是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。1991年,芬兰大学生Linus Torvalds把自己开发了基于UNIX的开源操作系统Linux,为了不让这个羽毛未丰的操作系统矢折,Linus将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的电脑黑客、编程人员加入到开发过程中来,Linux逐渐成长起来。 现在Linux已经是一种自由的UNIX类多用户、多任务的操作系统,可运行在多种计算机平台,已成为应用广泛、可靠性高、功能强大的计算机操作系统。Linux 具有内核小、效率高、源代码开放等优点,还内含了TCP/IP网络协议,很适合在服务器

25、领域和嵌入式领域使用。而这两个领域主要用途之一就是进行网络通信。Linux支持TCP/IP,IPX,X.25,AppleTalk等协议,各种具体协议实现的源码见linux/net/目录下相应的名称7。与本文构件化相关的TCP/IP协议栈相关内容在linux/net/ipv4目录下,其中linux/net/ipv4/af_inet.c是主要的管理文件。 与OSI模型一样,Linux的TCP/IP协议栈也是典型的层次架构,如图2.1所示。网卡驱动程序提供的I/O之上是地址解析协议和反向地址解析协议(ARP/RARP),主要功能为将网卡硬件设备号(MAC地址)与分配的IP地址连接起来,在Linux

26、kernel源码中的实现文件是arp.c及rarp.c。再向上是IP协议、ICMP协议和IGMP协议,该层实际完成功能与OSI模型中的网络层相似,其中以IP协议为核心,ICMP协议及IGMP协议协助IP协议以共同完成IP寻址、路由转发及简单的错误回报、流量控制等功能,在内核源码中的实现文件包含了以ip_为前缀的一系列文件及icmp.c、igmp.c。再上是两个传输层的协议,包括面向连接的TCP协议和无连接的UDP协议,在内核源码中的实现文件是以tcp_为前缀的一系列文件及udp.c。最上层是丰富的应用层协议,内核源码中并不包含此部图 2.1 TCP/IP协议(xiy)栈分内容的具体实现文件(w

27、njin),而是由具体的应用程序根据RFC标准对其加以实现(shxin)。所以对TCP/IP协议栈按层次构件化的任务主要集中在三层上:ARP/RARP层,IP/ICMP/IGMP层,TCP/UDP层。图2.2描述了Linux对TCP/IP协议族的实现机制。 图2.2 Linux 对TCP/IP协议族实现Linux支持BSD的套接字和全部的TCP/IP协议,是通过网络协议将其视为一组相连的软件层来实现的,BSD套接字(BSD Socket)由通用的套接字管理软件支持,该软件是INET套接字层,用来管理基于IP的TCP与UDP端口到端口的互联问题8。从协议分层来看,IP是网络层协议,TCP是一个可

28、靠的端口到端口的传输层协议,它是利用IP层进行传接报文的,同时也是面向连接的,通过建立一条虚拟电路在不同的网路间传输报文,保证所传输报文的无丢失性和无重复性。用户数据报文协议(User Datagram Protocol,UDP)也是利用IP层传输报文,但它是一个非面向连接的传输层协议,利用IP层传输报文时,当目的方网际协议层收到IP报文后,必须识别出该报文所使用的上层协议(即传输层协议),因此,在IP报头上中,设有一个“协议”域(Protocol)。通过该域的值,即可判别其上层协议类型。对于TCP传输,传输节点间先要建立连接,然后通过该连接传输已排好序的报文,以保证传输的正确性,IP层中的代

29、码用于实现网际协议,这些代码将IP头增加到传输数据中,同时也把收到的IP报文正确的传送到TCP层或UDP层。TCP是一个面向连接协议,而UDP则是一个非面向连接协议,当一个UDP报文发送(f sn)出去后,Linux并不知道也不去关心它是否成功地到达了目的主机。IP层之下,是支持所有Linux网络应用的网络设备层,例如点到点协议 (Point to Point Protocol,PPP)和以太网层。网络设备并非总代表物理设备,其中有一些(yxi)(例如回送设备)则是纯粹的软件设备,网络设备与标准的Linux设备不同,它们不是(b shi)通过mknod命令创建的,必须是底层软件找到并进行了初始

30、化之后,这些设备才被创建并可用。因此只有当启动了正确设置的以太网设备驱动程序的内核后,才会有/dev/eth0文件,ARP协议位于IP层和支持地址解析的协议层之间。2.2 Linux驱动Linux设备驱动程序在 Linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加。在Linux内核的不断升级过程中,驱动程序的结构还是相对稳定。在2.4.xx到2.6.xx的变动里,驱动程序的编写做了一些改变,但是从2.4.xx的驱动到2.6.xx的移植只需做少量的工作。 Linux 系统的设备分为字符设备(char device),块设备(block device)和网络设备(ne

31、twork device)三种。字符设备是指存取时没有缓存的设备。块设备的读写都有缓存来支持,并且块设备必须能够随机存取(random access),字符设备则没有这个要求。典型的字符设备包括鼠标、键盘、串行口等。块设备主要包括硬盘软盘设备,CD-ROM等。一个文件系统要安装进入操作系统必须在块设备上9。每个设备文件都有其文件属性(c/b),表示是字符设备还是块设备。另外每个文件都有2个设备号,第一个是主设备号,标识驱动程序;第二个是从设备号,标识使用同一个设备驱动程序的、不同的硬件设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致,否则用户进程将无法访问驱动程序。系统(x

32、tng)调用时是操作系统内核(ni h)与应用程序之间的接口,设备驱动程序是操作系统内核与机器硬件之间的接口10。设备驱动程序是内核的一部分,它完成(wn chng)以下功能:对设备初始化和释放把数据从内核传送到硬件和从硬件读取数据读取应用程序传送给设备文件的数据和回送应用程序请求的数据检测和处理设备出现的错误图2.3完整地表现了Linux驱动和系统之间的关系。图 2.3 Linux 设备驱动模块图Linux的设备驱动程序可以分为3个主要组成部分11:自动配置和初始化子程序,负责监测所有驱动的硬件设备是否存在和能否正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态进行初

33、始化。这部分驱动程序仅在初始化时被调用一次。服务于I/O请求的子程序,又称为驱动程序的上半部分。调用这部分程序是由于系统调用的结果。这部分程序在执行时,系统仍认为是与进行调用的进程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程序的运行环境,因而可以在其中调用sleep()等与进程运行环境有关的函数。中断服务子程序,又称为驱动程序的下半部分。在Linux系统中,并不是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由Linux系统来接收硬件中断,再由系统调用中断服务子程序。中断可以在任何一个进程运行时产生,因而在中断服务程序被调用时,不能依赖于任何进程的状态,也就不

34、能调用任何与进程运行环境有关的函数。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序时,都带有一个或多个参数,以唯一标识请求服务的设备。在Linux中,几乎所有的内容都是文件,对设备驱动的访问(fngwn)也是以文件操作的方式实现12。无论是字符设备还是(hi shi)块设备,用户对设备的操作(cozu)都是通过虚拟文件系统(VFS)转化为设备驱动与硬件操作程序的交互。即使是访问网络设备的socket接口,也是通过VFS实现的。Linux通过VFS为用户提供了一个统一的设备访问接口,使用户能够透明地访问设备驱动程序。所有的硬件设备都可以使用和操作系统调用接口来打开、

35、关闭、读写和I/O控制,而驱动程序的主要任务就是实现这些系统调用函数。Linux系统中的所有硬件设备都使用一种特殊的设备文件来表示。每个设备文件都有两个设备号:一个是主设备号,它用来标识该设备的种类,也标识该设备使用的驱动程序;另一个是次设备号,用来标识使用同一设备驱动程序的不同硬件设备。实现一个嵌入式Linux设备驱动的大致流程如下: 定义主、次设备号,也可以动态获取。实现驱动初始化和清除函数,如果驱动程序采用模块方式,则要实现模块初始化和清除函数。设计所要实现的文件操作,定义file_operations结构。实现所需的文件操作调用,如read、write等。实现中断服务函数,并用requ

36、est_irq向内核注册。中断并不是每个设备驱动所需要。将驱动编译到内核或编译成模块,用insmod命令加载。 生成设备节点文件。file_operation结构中的成员几乎全部是函数指针,它们是系统调用函数的真正处理函数,所以实质上就是函数跳转表。每个进程对设备的操作都会根据major、minor设备号,转换成对file_operation结构的访问。常用的操作包括以下几种:lseek,移动文件指针的位置,只能用于可以随机存取的设备。read,进行读操作,参数buf为存放读取结果的缓冲区,count为所要读取的数据长度。返回值为负表示读取操作发生错误;否则,返回实际读取的字节数。对于字符型,

37、要求读取的字节数和返回的实际读取字节数都必须是inodei_blksize的倍数。write,进行写操作,与read类似。readdir,取得下一个目录入口点,只有与文件系统相关的设备程序才使用。select,进行(jnxng)选择操作。如果驱动程序没有提供select入口,select操作会认为设备已经准备好进行任何I/O操作。ioctl,进行(jnxng)读、写以外的其他操作,参数cmd为自定义的命令。mmap,用于把设备(shbi)的内容映射到地址空间,一般只有块设备驱动程序使用。open,打开设备准备进行I/O操作。返回0表示打开成功,返回负数表示失败。如果驱动程序没有提供open入口

38、,则只要/dev/driver文件存在就认为打开成功。release,即close操作。在用户自己的驱动程序中,首先要根据驱动程序的功能,完成file_operation结构中函数实现。不需要的函数接口可以直接在 file_operation结构中初始化为NULL。file_operation变量会在驱动程序初始化时注册到系统内部。当操作系统对设备操作时,会调用驱动程序注册的file_operation结构中的函数指针。对于网络设备来说在Linux里有专门的处理。Linux的网络系统主要是基于BSD unix的socket 机制。在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数

39、据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。所有的Linux网络驱动程序都遵循通用的接口。设计时采用的是面向对象的方法。一个设备就是一个对象(device结构),它内部有自己的数据和方法。每一个设备的方法被调用时的第一个参数都是这个设备对象本身。这样这个方法就可以存取自身的数据(类似面向对象程序设计时的this引用)。 一个网络设备最基本的方法有初始化、发送和接收。网络驱动的收发报文流程图如图2.4。 SHAPE * MERGEFORMAT 图 2.4 网络(wnglu)驱动收发报文流程图初始化程序完成(wn chng)硬件的初始化,完成(wn chn

40、g)device中变量的初始化和系统资源的申请。发送程序是在驱动程序的上层协议层有数据要发送时自动调用的。一般驱动程序中不对发送数据进行缓存,而是直接使用硬件的发送功能把数据发送出去。接收数据一般是通过硬件中断来通知的。在中断处理程序里,把硬件帧信息填入一个skbuff 结构中,然后调用netif_rx()传递给上层处理。2.3 Linux开源项目1998年4月7日,由Tim OReilly出面,组织并主持了一次“自由软件峰会”,讨论“自由软件”的称谓问题。最终使用“Open Source”(“开源”)这个词。2008年Gartner发表一份研究报告,认为在未来几年,几乎所有企业都将使用开源软

41、件。 Gartner集团在一份名为“The State of Open Source 2008”的研究报告中预测:到2012年,(全球)90以上的企业都将使用开源软件13。2.3.1 路由管理之QuaggaQuagga14是开源的路由软件,为Linux平台上实现了OSPF版本2,OSPF本版3,RIP版本1和版本2,RIPng以及BGP-4等路由协议。Quagga是由Kunihiro Ishiguro开发的GNU Zebra的衍生而来。Quagga树的目标是建立很多紧密联系在Quagga周围的组织,而不是像GNU Zebra现在的集中控制处理一样。Quagga体系结构包括两个功能模块,一个是V

42、tysh,一个是Zebra。Zebra15。Zebra是一种TCP/IP路由软件,它支持BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。它符合 GNU的GPL标准,可以运行在Linux和其它Unix变体系统上。Zebra是最先进的路由软件之一,最新版本可以从GUN Zebra Web站点上下载。Zebra可以利用模块法对各种协议进行管理,这种设计是独一无二的。它可以根据用户的需要激活或者停止协议。除此以外,Quagga体系结构拥有丰富的库文件来支持协议的实现和客户端守护进程的开发,明确的配置和管理。Quaaga的守护进程都是可配置的,可利用VtyshQ

43、uagga的CLI。Vtysh作为所有守护进程的终端,组织对Quagga所有的命令节点。Quagga体系结构如下(rxi)图所示16:图 2.5 Quagga结构图2.3.2 Linux逻辑(lu j)总线之D-BusD-Bus17(其中D原先(yunxin)是代表桌面“Desktop”的意思)是一个提供简单的应用程序互通讯的自由软件,它是作为项目的一部分开发的。D-Bus深深地受到了DCOP系统的影响而且将在KDE 4版本的release中取代DCOP。它已经被应用在Qt4,GNOME,WINDOWS以及Maemo等系统中。GNOME也逐渐用它来取代了大部分早期的Bonobo机制。D-Bus

44、是相对来讲比较新的进程间通信(IPC)机制。在桌面操作系统中,扮演着一个统一中间层的一个角色。有很多的项目都用了D-Bus,比如:GNOME、Hildon等。 相对于其它的IPC,D-Bus丢掉了一些不必要的、复杂的东西,也正是因为这个原因,D-Bus比较快、简单。D-Bus不和低层的IPC直接竞争,比如sockets, shared memory or message queues。D-Bus的主要目的是提供如下的一些更高层的功能:结构化的名字空间独立于架构的数据格式支持消息中的大部分通用数据元素带有异常处理的通用远程调用接口支持广播类型的通信在系统(xtng)和用户之间有明确的区分,这对于

45、处理多用户系统非常重要不局限于任何特定的编程语言,同时提供了语言绑定方法,来和一些通用的高级语言绑定,比如C, C+, Python等。D-Bus的设计得益于在桌面系统中其它IPC的长期经验总结,正是有了这些丰富的经验,才使得D-Bus的设计得以优化。同时D-Bus也不会受累于缓慢的功能(gngnng)改进(creeping featurism)。D-Bus的架构以及一些(yxi)术语18:在D-Bus中,“bus”是核心的概念,它是一个通道,不同的程序可以通过这个通道做些操作,比如方法调用、发送信号和监听特定的信号。通常情况下,只会存在一个系统通道,但是可以有不同的会话通道(每人一个桌面会话

46、)。通过D-Bus发送消息通常包含如下步骤:创建和发送消息给后台bus daemon进程,这个过程中会有两个上下文的切换,后台bus daemon进程会处理该消息,并转发给目标进程。这也会引起上下文的切换目标程序接收到消息,然后根据消息的种类做不同的响应,要么给个确认、要么应答、还有就是忽略它。最后一种情况对于“通知”类型的消息而言,前两种都会引起进一步的上下文切换。如果准备使用D-Bus在不同的进程之间传递大量的数据,D-Bus可能不是最有效的方法,最有效的方法是使用共享内存,但是对共享内存的管理也是相当复杂的。D-Bus的地址和名字是为了把消息正确的送给接收者19,IPC机制需要具有某种或

47、某些寻址能力。D-Bus所设计的寻址方案是非常灵活和高效的。每个通道(bus)都有它私人的名字空间,和别的通道区分开来。图 3.1 AX7000系统结构图如图3.1所示,AX7000功能模块主要有以下模块,硬件模块;硬件主要是指Marvell高速ASIC转发芯片和多核并行CPU。操作系统;使用Linux2.6内核。芯片驱动模块;使芯片在Linux系统上可正常运转。接口管理;管理Marvell高层驱动SDK,控制(kngzh)交换芯片,给用户交互的命令行,给应用层的协议提供接口函数。应用层;主要分为无线网络(wnglu)的协议和有线网络的桥协议和路由协议以及配置命令行。这些协议维持自己的状态机,

48、处理分流给自己的报文,命令行模块则提供给用户对交换机进行配置的功能。针对AX7000的设计,对这些功能模块的抽象可以很好理解网络报文在AX7000中的处理流程。当报文通过硬件接口进入交换机,首先它被存储在交换芯片的存储单元中,然后报文根据硬件芯片中的表项,进行转发。如果是可以二层转发,则直接被交换芯片转发出去(ch q),这个报文的处理流程结束。如果报文要进行IP转发,则报文根据自己的目的IP在路由表中查找,如果找到本身对应的路由表项,则根据路由的下一条转发,报文到此处理结束。如果报文是特殊报文比如是CAPWAP或RIP或其他特殊报文,则报文通过接口管理模块分流到相应的应用协议处理,报文到此处

49、理结束。当交换机处于不同的网络中时,给交换机配置VLAN、IP、QoS等等其他功能,则通过命令行功能来实现,而这些的设置最终都通过接口管理提供的函数,设置到硬件的相应寄存器中。3.2.2 物理体系结构模块AX7000交换机CPU采用Cavium network 公司的CN38XX,这是一款多MIPS64核、集成多I/O,硬件加速器等功能的网络处理器。该处理器特点如下25:单芯片多核:最多16 MIPS64 cores/芯片。集成高性能网络接口:最大410/100/1000 ethernet MACs(RGMII) 或者SPI4.2接口。集成64bit 133M PCI/PCI-X接口。数据加控

50、制双平面支持。最多可处理30milion 个包每秒。硬件包处理。硬件工作队列,调度,排序和同步。硬件TCP加速器,包括校验和和计数器。高带宽的L2 catch。充分连贯的内存系统。72/144bit DDR2 DRAM接口,最大800MHz。AX7000高速ASIC芯片采用Marvell公司的DX家族的275和804两块芯片。此类芯片为用户提供1G加密吞吐率和最多24GE/4SPF/2*10GE个端口,适用于部署(b sh)中型企业。除普通的交换管理功能外,该处芯片(xn pin)有特点(tdin)如下:无阻塞,全线速性能;最优的MAC地址配置空间;通过PCI或MII/RGMII管理;先进的Q

51、oS,提供4到8个优先级队列;PCL实现QoS和安全管理;动态管理片上存储单元。AX7000内存采用2-4G DDR667,使用冗余电源,支持业务板、风扇热插拔。AX7000的硬件架构图26如下:图 3.2 AX7000硬件架构图如上图所显示,AX7000的两块交换芯片引出了四个插槽。芯片作为CPU的外设,以两种方式连到CPU,一种是直接挂到PCI总线上,一种是通过MV82210芯片用SPI通道(tngdo)相连。CPU的板载网卡也提供4*GE/SPF口,这些口是通过CPU来进行转发,转发主要是通过Linux内核提供的Linux TCP/IP协议栈来进行转发。这样就可以把CPU模块抽象为一个高

52、速的与804、275级联的第三块交换芯片来看待,相应的通过一些特定的虚拟技术对CPU模块做一些性能的软件(run jin)支持,就可以为整个系统提供统一的操作,而不是同一个系统上跑两套用户交互命令结构。这就是接口管理所要做的的一部分工作。最终AX7000所成型(chngxng)的产品如下图形所示。图 3.3 AX7000实图AX7000有线无线一体化交换机具有的特点:高度集成的有线无线一体化设计;灵活,强大的混合组网能力;集中式WLAN交换和智能RF管理;Triple-play(数据/音频/视频)实时支持;高达88G的数据交换。AX7000的各个物理硬件模块从底层对以上的特点进行了有力的支撑。

53、而另一方面的主要支撑就是基于这些硬件的软件结构,接口管理就是这个架构中的核心。因此接口的定义、组织以及提供的操作函数都是这个软件设计中的重中之重。PAGE 32第四章 接口管理需求分析第四章 接口(ji ku)管理需求(xqi)分析接口管理是交换机的核心软件模块。接口管理涉及到底层驱动和上层对用户交互的作用,同时要对TCP/IP各层的功能协议(xiy)的控制提供接口。接口管理在交换机软件中与其他模块有很强的联系,所以对于接口管理的设计需要很好的包容性和稳定性。4.1 接口管理概念接口模型体现了在许多工程设计中都具有的结构化思想。接口管理即对接口的管理,它包括了接口的定义,接口的组织,接口的操作

54、等等。如第一章中所述接口管理从总体上说,其内容涵盖了系统中所有底层硬件驱动、上层应用,是软件层面上对系统的Port、VLAN两个核心结构体的操作,主要目的是为了高效合理的管理交换机,并且以它为核心进行软件开发,容易扩展功能,便于版本的移植。因此接口管理逻辑关系复杂,与系统软硬件功能模块紧密相关,也是中高端交换机管理方式的定义。在本文中接口的定义主要包括二层接口,三层接口,协议接口以及特性功能接口。接口最终从用户的角度来看,是无线控制器提供给用户的多个硬件网口,例如从转发流量上分析有GE和XG口,从介质上分就有Cooper口和Fiber口,用户通过配置这些网口上的一些硬件或逻辑信息来实现网络接入

55、和数据转发。同时要让这些网口在不同的VLAN中,有不同的转发出口,又有不同的QoS以及管理监测,则需要对这些进行设置。以下便是是AX7000部分三层VLAN接口的配置命令:interface vlan 创建一个基于vlan的三层接口no interface vlan 删除一个基于vlan的三层接口interface IFNAME进入配置接口的命令节点show interface显示接口信息从以上命令上看这是一个三层接口,接口有创建、删除、配置、显示等普通的功能。它们的输入参数则是VLAN ID,接口名称这些直观的东西。当然这只是命令行上对接口命令的一般设计标准,其次还有对端口的二层接口的配置,

56、对VLAN的配置,对MSTP和IGMP等协议接口的配置以及对Route和ARP学习管理和显示等等。命令行给用户提供了一个管理、监测交换机内部原理的窗口,从而使网络的转发,交换机的行为可控,根据不同的网络拓扑实现不同的转发流程。当然这些配置命令是有层次的,从端口的物理特性,例如端口自协商、流控、MTU、双工/半双工模式等等,到端口的虚拟接口的IP地址以及它的ARP,路由信息。接口在设置上是一个从底层到高层(o cn)的过程,报文在从进入到转发也是一个报文TCP/IP协议处理的流程。接口管理是交换机中的核心内容,更是有线无线一体化交换机的开发的重中之重。在一体化交换机中,不光要涉及到有线网络的处理

57、流程,还要处理无线网络上来的报文。从横向上来说接口管理就是根据TCP/IP模型和交换机功能抽象出层次中的各个接口,并加以融合,实现不同接口之间的互访。有线二层接口到三层接口的融合,无线二层接口到三层接口之间的融合,以及有线到无线各层之间的融合,实现交换机内部(nib)的一种矩阵模型。TCP/IP的协议栈模型,在AX7000中是通过两块高速转发芯片实现(shxin)。交换机在软件上对它们各层抽象出接口,解决同一端口对报文的不同处理。当报文从一个端口进入,在二层接口下会有特定的处理模式,在三层接口下又会有另外一种处理,到这时就有不同的分流,对于WLAN的报文或RIP、OSPF等的报文会送特定的协议

58、去处理,对于多数的转发报文则进行路由查询,进入转发队列。而对于这些特定分流是要有配置去约束,这种约束最终保存在接口所定义的结构上,等报文来时,对其进行检查,最后做出正确的选择。正如前面所说的,命令行是接口管理提供给用户的一个界面,这也是接口管理最直观的体现。网络管理员根据网络拓扑配置交换机的物理属性,FDB表项,三层接口IP,无线网络和接口之间的绑定以及DHCP等其他协议。有了前面的配置,则报文从某个物理端口进入,就开始其在交换机的一个处理流程。4.2 接口管理需求首先从AX7000交换机功能上来说,最重要的是保证基本功能报文正确高速转发,它的实现需要从TCP/IP协议栈上去分析,有数据链路层

59、的功能需要考虑,有网络层的功能需要考虑。还有无线网络的实现,路由的实现这些又需要传输层的功能,当然还有对网络的拓扑的管理以及其他种种特性功能,这么多的东西需要管理。因此衍生出接口管理,它也无可厚非的成为交换机软件的核心部分。它的设计必须要能很好的管理交换机,管理网络拓扑,保证数据高速正确转发。如同第一章所说接口管理在不同的厂商设备中有不同的设计原则,通过各自的命令行可以体会到它们对接口的定义的方式。Cisco对接口定义最广泛,因此也最混乱,让用户很难进行配置,感觉什么都是接口。Juniper公司的接口管理相对要清晰一点,把接口的概念分层了,从物理层到链路层到网络层,逻辑上的可以有好几层接口,类

60、似一个接口栈,完整的接口栈实现完整的报文从网络协议栈最底层到顶层的处理过程。从这些可以看出Juniper公司对接口定义比较严格。而接口的管理也更加的灵活。从上一节所引用的三层VLAN接口就可以看出。要配置一个VLAN接口首先得创建(chungjin)VLAN,有了VLAN就会有端口,同一个VLAN中的这些端口都共享这个三层接口,那么报文如何选择从正确的端口转发出去。还有就是端口从VLAN删除或添加到VLAN怎么处理以及这些个端口在MSTP和IGMP的状态迁移又会怎么影响VLAN转发。另一个重要的影响就是硬件,由于交换机的各自的硬件架构不同,导致软件对硬件的支持需要不同的软件设计结构。不同的设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论