在uClinux环境下实现虚拟局域网

时间:2020-10-07 14:45:42 理工毕业论文 我要投稿

在uClinux环境下实现虚拟局域网

摘要:μClinux是近年发展起来的一种专用于微控制器领域的嵌入式Linux操作系统。虚拟局域网(VLAN)作为新兴技术,是解决以太网广播风暴和安全问题的一个重要策略。本文在对VLAN技术和μClinux操作系统分析的基础上,给出在μClinux环境下VLAN的实现方式与过程。

引言

虚拟局域网VLAN(Virtual Local Area Network)是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络。一个VLAN组成一个逻辑子网,即一个逻辑广播域。它可以覆盖多个网络设备,允许处于不同地址位置的网络用户加入到一个逻辑子网中。使用VLAN最明显的好处是,它可以控制广播风暴,提高网络的整体安全性,且在网络管理上简单、直观。

ΜClinux是应用于微控制器领域的一种嵌入式Linux操作系统,它以优异的性能及免费开放的代码等优点,博得了众多嵌入式开发者的青睐。与过去基于RTOS,甚至没有使用任何操作系统的嵌入式程序设计相比,基于Linux这样成熟、高效、健壮、可靠、模拟化及易于配置的操作系统来开发自己的应用程序,无疑能提高效率,并且有很好的可移植性。

1 VLAN实现原理

1.1 VLAN的帧格式

VLAN采用多种方式配置于企业网络中,包括网络安全论证、使无线用户在802.11b接入点温游、隔离IP语音流、压缩视频或音频数据流的多址广播及在不同协议的网络中传输数据等。VLAN的划分一般基于以下3种:端口、MAC地址、路由。

VLAN通常基于IEEE802.1q和802.1p规范用于将VLAN用户信息载入以太网帧;而802.1p使二层交换机具有流量优先和实施动态多址滤波的能力。标准一直在修订和完善之中,IEEE 802.1u和IEEE 802.1v就是2001年3月颁布的、对1998年版802.1q的修订。

VLAN的帧格式与传统的以太网802.3帧格式有所不同,如图1所示,是不包含802.1p和802.1q的802.3帧格式。包含802.1p和802.1q后的新802.3帧格式如图2所示。

其中,TCI是Tag Control Info的缩写,2字节。当设置为“8100”(hex)时,表明这一帧使用802.1p和802.1q标记;P是Priority,指示802.1p的优先级别(0~7),占用3位;C是Canonical Indicator,指示以太网格式是否规范,规范用0表示,否则用1表示,占用1位;VLAN是VLAN Identifier(VID),表明这一帧属于哪一个VLAN(0~4095),占用12位。它们加在一起共4个字节。

1.2 μClinux及对VLAN的支持

μClinux最大的特征就是针对没有内存管理单元MMU的处理器设计的。它非常适合那些没有MMU的处理器,如Motorola公司的M6828、M68EN322、MC68360;DragonBall系列的68EZ328、68VZ328;ColdFire系列如5272、5307,ARM7TDMI和MC68EN302、ETRAX、Intel i960、PTISMA、Atari 68k等。ΜClinux对Linux内核的源代码进行了重新编写,以紧缩和裁减基本的代码。所以它的内核非常小,仅有512KB,加上相关的工码。所以它的'内核非常小,仅有512KB,加上相关的工具还不到900KB但,μClinux仍然保持了Linux操作系统的主要优点,如稳定性好、有强大的网络功能和出色的文件系统支持等能力。

在μClinux系统源代码包内的linux-2.4.x8021q目录下,有vlan.c、vlan_dev.c等几个关于VLAN运行及配置的源程序文件。它们针对VLAN帧做了代码实现。在linux-2.4.x目录下的if_vlan.h文件中,定义了VLAN处理的相关数据结构。只需利用μClinux可裁剪、可配置的特点,在make menuconfig…Customize Kernel Settings…Networking options以及在make menuconfig…Customize Vendor/User Settings…Network Applications下作相应配置,以及通过编写makefile文件将这些文件编译进内核中即可。