当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]在uClinux环境下实现虚拟局域网

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

    关键词:μClinux VLAN IEEE802.1q

引言

虚拟局域网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文件将这些文件编译进内核中即可。

2 VLAN实现

为了说明VLAN的实现过程,本文具体针对高速视频流的网上传输完成了VLAN的实现。

2.1 网络结构

由于VLAN是建立在物理网络基础上的一种逻辑子网,因此建立VLAN需要相应的支持VLAN技术的网络设备。当网络中不同VLAN间进行相互通信时,需要路由的支持。在本文中利用一台装有两块网卡的PC机作为服务器,运行Linux操作系统,并经过相应的配置来完成器由功能。图3所示为一网络配置示意图,所有设备及PC机均通过以太网接口RJ45接入局域网。PC机A和B是作为浏览器来观察视频图像的,可选用。它们使用的网卡型号是10M/100M自适应网卡Realtek RTL8139(A)PCI Fast Ethernet Adapter。图3中的device主要负责视频流的采集、压缩与传输。它们选用了基于ARM7TDMI的Samsung-4510B处理器。其主频为50MHz,主存储器为32MB的SDRAM,网络处理芯片选用了RTL8019AS.因本文主要讲述VLAN的实现,其具体的硬件结构在此就不再多述。

2.2 软件实现

vconfig是一个客户端配置工具包。它可完成VLAN的相关配置。稍加修改即可在μClinux下运行。它可以从www.wanfear.com网址上获得,所用的版本是vconfig-1.6-4.i386.rpm。选用的μClinux内核为2.4.18版本的μClinux-dist-20020306.tar.gz。由于μClinux不支持动态编译到内核中并下载到设备中。

从图3中可以看出,我们划分了两个VLAN:VLAN1与VLAN2。当然,也可根据需要划分出多个VLAN。一块网卡可以绑定两个或多个IP地址,为加快处理速度,在服务器端选用了两块网卡分别命名为eth0与eth1,在初始状态时不需做任何配置。按如下步骤进行配置。

Vconfig set_name_type DEV_PLUS_VID_NO_PAD

;配置VLAN命名类型

vconfig add eth0 1 ;eth0网卡绑定VLAN1号

vconfig add eth1 1 ;eth1网卡绑定VLAN1号

vconfig add eth0 2 ;eth0网卡绑定VLAN2号

vconfig add eth1 2 ;eth1网卡绑定VLAN2号

brct1addbr br0 ;添加虚拟网桥,用于不同VLAN间通信

brct1addif br0 eth0.1 ;将VLAN绑定到虚拟网桥上

brct1 addif br0 eth1.1

brct1stpbr0off ;设置生成树协议关闭

brct1addbrbr1

brct1addifbr1eth0.2

brct1addifbr1eth1.2

brct1stpbr1off

ifconfig eth0 up ;启动网卡

ifconfig eth1 up

ifconfig eth0.1 up ;启动VLAN

ifconfig eth1.1up

ifconfig eth0.2up

ifconfig eth1.2up

ifconfig br0 up ;启动虚拟网桥

ifconfig br1 up

在客户端,也就是视频采集的设置端需做的应配置如下:

VLAN 1下的设备1

Vconfig set_name_type DEV_PLUS_VID_NO_PAD

Vconfig add eth0 1

Ifconfig eth0.1 192.168.1.1 up

VLAN 1下的设备2

vconfig set_name_type DEV_PLUS_VID_NO_PAD

vconfig add eth0 1

ifconfig eth0.1 192.168.1.2 up

VLAN 2下的设备1

Vconfig set_name_type DEV_PLUS_VID_NO_PAD

Vconfig add eth1 2

Ifconfig eth1.2 192.168.2.1 up

VLAN 2下的设备2

Vconfig set_name_type DEV_PLUS_VID_NO_PAD

vconfig add eth1 2

ifconfig eth1.2 192.168.2.2 up

依此类推,可以扩充到n个设备的相应配置,从而实现了两个VLAN。当然,还可以通过iptables设置规则来实现不同VLAN之间的包转发与包过滤等高级功能,此文就不再叙述其详细过程。

3 VLAN测试

首先,通过ping命令测试不同VLAN之间的可达性。

在设备192.168.1.1上ping 192.168.1.2,链路可达;在设备192.168.1.1上ping 192.168.2.1,链路不可达,说明它们不属于同一个VLAN。同时,在服务器端执行下述语句。

tcpdump -n -p icmp -i br0

可看到如下结果。

00:55:11.700355802.1Qvlan#1P0192.168.1.1>192.168.1.2:icmp:echo request(DF)

00:55:11.700486802.1Qvlan#1P0192.168.1.2>192.168.1.1:icmp:echo reply

00:55:12.700260802.1Qvlan#1P0192.168.1.1>192.168.1.2:icmp:echo request(DF)

00:55:12.700352802.1Qvlan#1P0 192.168.1.2>192.168.1.1:icmp:echo erply

其次,以μClinux为软件平台,用GCC编译实现了一个高速视频流服务器/客户程序。它的功能主要是服务器接受来自客户端的RTSP连接,并按照RTP、RTCP和SDP等协议向客户端提供所采集到的实时视频流。在这里,客户端是浏览器,服务器端是device,与上述客户端/服务器端有所不同。通过实际的程序运行和测试,在图3所示的网络拓扑中,我们发现在网络负载较重时,划分了VLAN的视频流在传输延迟和时延抖动上均优于不划分VLAN的视频流在20%~40%;负载较轻时,它们的性能相当。

4 结论

当前,以信息家电中心的嵌入式系统正得到蓬勃的发展。随着嵌入式系统和网络技术的发展,整个世界将更加网络化和智能化。所以设备上网必然带来网络安全性和广播的问题,VLAN则为设备连入Internet提供了一个较好的解决途径。本文针对嵌入式应用开发环境μClinux操作系统,对VLAN的实际给出具体的应用环境与步骤。具有良好的应用前景与现实意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭