linux网桥
文章平均质量分 78
wangpengqi
这个作者很懒,什么都没留下…
展开
-
Spanning Tree Protocol介绍
Spanning Tree Protocol(STP)主要是用在网桥上,用来避免网络回路,并制造冗余连接(也就是保证网络的可靠性). 这里只是一个大概的介绍,具体的还是要去看IEEE 的 802.1D STP的文档。 先看下面的图: 我们可以看到在stp中,只有一个根节点,然后root port指的是将此网桥和root连接起来的那个端口,而designated转载 2013-08-20 18:09:46 · 880 阅读 · 0 评论 -
Linux-kernel 网桥代码分析(一)
本文分析的kernel版本为:2.6.24.4,网桥代码目录为:linux-2.6.24.4/net/bridge。 网桥是kernel网络模块中相于独立的module,读者具有简单的kernel网络设备驱动开发和kerenl网络协议的基础知识即可。我在2007年就开始接触网桥了,当时有位同事为了测试网桥的功能,还特地查看了网桥的代码,还特意转告我一定要看看这部分的代码,他说比较转载 2013-07-03 21:25:29 · 1000 阅读 · 0 评论 -
linux下的网桥介绍
网桥用来连接不同的网段。使不同的网段能够相互通信,看起来很像三层的路由。它能够有多个port,从而能够将数据帧从一个port复制到另一个port。 这里要注意一点,linux下的网桥只能用于以太网。 来看下示意图: 其中一个是bridge,一个是route。 网桥的主要工作是从输入帧学习主机的位置,建立一个地址的表(也就是表明这个主机(mac地址)属于那个转载 2013-08-18 10:45:40 · 967 阅读 · 0 评论 -
网桥在内核的实现
我们知道netdevice有一个priv域,这个域用来保存设备的私有数据,当这个设备是一个网桥的时候,priv域也就指向一个struct net_bridge. 接下来看net_bridge以及相关的数据结构: Java代码 struct net_bridge { ///自旋锁 spinlock_t lock;转载 2013-08-18 10:33:57 · 853 阅读 · 0 评论 -
Linux内核分析 - 网络[六]:网桥
看完了路由表,重新回到netif_receive_skb ()函数,在提交给上层协议处理前,会执行下面一句,这就是网桥的相关操作,也是这篇要讲解的内容。[cpp] view plaincopyskb = handle_bridge(skb, &pt_prev, &ret, orig_dev); 网桥可以简单理解为交换机,转载 2013-07-02 22:13:20 · 773 阅读 · 0 评论 -
Linux-kernel网桥代码分析(二)
第三部分: ioctl管理网桥3.1 通过ioctl系统调用创建网桥 仍然以前的配置作为例,我们分用户空间程序brctl是如何通过ioctl系统调用在kernel空间内创建上述的数据结构。创建网桥,我们不需要预知任何网络设备信息,因此我们通过ioctl来创建网桥时不应该与任何网络设备绑定到一起。网桥模块为此ioctl函数提供了一个恰如其分的名字 br_ioctl_deviceles转载 2013-07-03 21:26:54 · 1117 阅读 · 0 评论 -
Linux下的虚拟Bridge实现
Linux下的Bridge也是一种虚拟设备,这多少和vlan有点相似,它依赖于一个或多个从设备。与VLAN不同的是,它不是虚拟出和从设备同一层次的镜像设备,而是虚拟出一个高一层次的设备,并把从设备虚拟化为端口port,且同时处理各个从设备的数据收发及转发,再加上netfilter框架的一些东西,使得它的实现相比vlan复杂得多。1.Bridge的功能框图 它是转载 2013-11-06 15:48:52 · 899 阅读 · 0 评论