linux网桥浅析

本文深入探讨了Linux系统中的网桥功能,包括其在网络连接中的作用,如何利用Linux内核进行网络通信,以及网桥与网络协议和数据结构的交互。通过对Linux网桥的分析,揭示了其在网络管理中的关键角色。
摘要由CSDN通过智能技术生成

linux网桥浅析

2010-03-26 23:59

什么是桥接?

简单来说,桥接就是把一台机器上的若干个网络接口连接起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。
交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。

如下图:主机A发送的报文被送到交换机S1eth0口,由于eth0eth1eth2桥接在一起,故而报文被复制到eth1eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机CD


交换机在报文转发的过程中并不会篡改报文数据,只是做原样复制。然而桥接却并不是在物理层实现的,而是在数据链路层。交换机能够理解数据链路层的报文,所以实际上桥接却又不是单纯的报文转发。
交换机会关心填写在报文的数据链路层头部中的Mac地址信息(包括源地址和目的地址),以便了解每个Mac地址所代表的主机都在什么位置(与本交换机的哪个网口相连)。在报文转发时,交换机就只需要向特定的网口转发即可,从而避免不必要的网络交互。这个就是交换机的地址学习。但是如果交换机遇到一个自己未学习到的地址,就不会知道这个报文应该从哪个网口转发,则只好将报文转发给所有网口(接收报文的那个网口除外)。
比如主机C向主机A发送一个报文,报文来到了交换机S1eth2网口上。假设S1刚刚启动,还没有学习到任何地址,则它会将报文转发给eth0eth1。同时,S1会根据报文的源Mac地址,记录下主机C是通过eth2网口接入的。于是当主机AC发送报文时,S1只需要将报文转发到eth2网口即可。而当主机DC发送报文时,假设交换机S2将报文转发到了S1eth2网口(实际上S2也多半会因为地址学习而不这么做),则S1会直接将报文丢弃而不做转发(因为主机C就是从eth2接入的)。

然而,网络拓扑不可能是永不改变的。假设我们将主机B和主机C换个位置,当主机C发出报文时(不管发给谁),交换机S1eth1口收到报文,于是交换机S1会更新其学习到的地址,将原来的主机C是通过eth2网口接入的改为主机C是通过eth1网口接入的
但是如果主机C一直不发送报文呢?S1将一直认为主机C是通过eth2网口接入的,于是将其他主机发送给C的报文都从eth2转发出去,结果报文就发丢了。所以交换机的地址学习需要有超时策略。对于交换机S1来说,如果距离最后一次收到主机C的报文已经过去一定时间了(默认为5分钟),则S1需要忘记主机C是通过eth2网口接入的这件事情。这样一来,发往主机C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值