「Network」- 交换,概念,术语

冲突域,Collision Domain

在以太网中,当多个节点同时传输数据时,从多个设备发出的帧将会碰撞,在物理介质上相遇,彼此数据都会被破坏,这样的共享介质网段就叫冲突域。冲突域是指连接在同一共享介质上的所有节点的集合。冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。

在共享式网络中,可能会出现信号冲突现象。同轴电缆

在半双工状态下,使用 CSMA/CD 方案解决:
1)先听后发,监听检测网络是否空闲;
2)如果没有冲突则,进行发送;
3)如果发送时出现冲突,则立即停止;
4)随机延时重发;

目前的网络设备多是全双工,因此基本不会使用 CSMA/CD 进行检测冲突。

交换机不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。

广播域,Broadcast Domain

广播域(broadcast domain):指广播帧传输的网络范围,广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。一般是 Router 来设定边界(因为 Router 不转发广播)。

交换机,Switch

交换机工作在数据链路层,依靠于 MAC 地址进行数据转发。

MAC 地址表

收到数据帧,形成 CAM Table(思科术语),然后根据 CAM Table 进行转发。

交换机依据 MAC 地址转换表(CAM Table,Content Addressable Memory Table)进行数据帧处理。CAM Table 是 MAC 地址出接口 的对应关系(但是这个 MAC 地址来自于帧的 Source MAC 字段,只有这样交换机才能知道哪些 MAC 在哪个接口下)。

MAC 地址表形成过程

在交换机初始状态下,CAM Table 为空。

当 Host-A 访问 Host-B 时:
1)交换机会利用收到帧(SRC MAC),来形成 CAM Table。例如,添加 00:01:02:03:04:AA ⇒ G0/0/0/0 记录;

当 Host-B 响应 Host-A 时:
1)交换机会利用收到帧(SRC MAC),来填充 CAM Table。例如,添加 00:01:02:03:04:BB ⇒ G0/0/0/1 记录;
2)交换机会根据收到帧(DST MAC),来查找 CAM Table,以确定数据包应该从哪个接口发出。例如,查到 00:01:02:03:04:AA ⇒ G0/0/0/0 记录;

如果单播帧的 DST MAC 未出现在 CAM Table 中时,便是未知单播,交换机开始进行泛洪。

CAM Table 的老化时间为 300s,持续的通信会刷新该时间。ARP 的缓存时间为 1200s,所以 CAM Table 会先老化,此时便会发生未知单播。

当端口 Down 状态时,CAM Table 对应的条目(该端口)会立即老化(无需等待 300s 后老化)

交换机的转发行为

泛洪(Flooding)
某个端口收到的数据帧,将被转发到所有其他端口。

交换机收到广播帧时,会进行泛洪。比如 ARP 报文。
交换机收到组播帧时,缺省也是进行泛洪。
如果是未知单播帧时,则依旧泛洪。

转发(Forwarding)
交换机将收到的帧,能够明确的从某个端口发送出去。通常为单播帧(且是已知单播。如果是未知单播,则依旧泛洪。)

丢弃(Discarding)
交换机收到的数据帧,如果无法转发,则丢弃。
在 CAM Table 中,如果该端口收到的数据帧的 DST MAC 也在该端口下,则会丢弃。

三层交换机

具有三层路由功能的交换机。三层交换机的转发路由表与路由器一样,需要软件通过路由协议来建立和维护。

但是,三层交换机的二层转发,依旧通过硬件实现查找和转发。

三层交换机使用精确地址匹配的方法实现快速查找。

接口类型:二层接口、三层接口

交换机的接口多为二层接口,即能进行二层数据帧处理。某些高级交换机的接口,能够切换为三层接口,并能绑定网络地址。

比如,在华为交换机中:

[Huawei-Interface] undo portswitch

# 注意,部分交换机虽然能切换为三层端口,但是不能绑定网络地址

VSAN

是 Cisco 的 SAN 交换机上面使用的一种虚拟化技术,把一个物理交换机虚拟成多个逻辑交换机。通常以 vSphere 内核为基础进行开发、可扩展的分布式存储架构。

MTU

新增的元数据(比如头部和尾部),会增加网络包的大小。由于物理链路中并不能传输任意大小的数据包。网络接口配置的最大传输单元(MTU),就规定最大的 IP 包大小。在我们最常用的以太网中,MTU 默认值是 1500(这也是 Linux 的默认值)。

一旦网络包超过 MTU 的大小,就会在网络层分片,以保证分片后的 IP 包不大于 MTU 值。显然,MTU 越大,需要的分包也就越少,自然,网络吞吐能力就越好。

在以太网(Ethernet)中,MTU(Maximum Transmission Unit,最大传输单元)指的是单次数据传输时允许的最大帧大小,单位为字节。它决定了网络接口一次能发送的最大数据包尺寸,超过此值的数据包需分片(fragment)传输。

### 以太网中的MTU关键点:

  1. 标准值

– 传统以太网(如IEEE 802.3)的默认MTU为 1500字节(仅指有效载荷,不含帧头和帧尾)。

– 加上以太网帧头(14字节)、帧校验序列(FCS,4字节)等,实际帧最大为 1518字节(若带VLAN标签则为1522字节)。

  1. MTU的组成

1500字节包含IP头部(通常20字节)和TCP/UDP头部(如TCP 20字节),剩余部分为实际应用数据。

– 例如:TCP数据段最大为 `1500 – 20(IP) – 20(TCP) = 1460字节`(即MSS, Maximum Segment Size)。ICMP 报文的最大大小则是,1500 – 20 -8 = 1472

  1. 巨型帧(Jumbo Frames)

– 某些网络(如数据中心)支持更大的MTU(如9000字节),以减少分片开销,提升吞吐量。但需全网设备支持。

  1. MTU与分片

– 若数据包超过MTU,IP层会分片(IPv4)或丢弃并通知源端(IPv6需Path MTU Discovery)。

– 分片会降低效率,因此需合理设置MTU。

  1. 实际影响

– MTU设置过大会导致分片或丢包;过小会降低传输效率。通常保持默认1500字节,除非特殊需求(如VPN隧道需降低MTU避免二次分片)。

### 总结:
MTU是网络性能调优的重要参数,理解其含义有助于解决网络分片、丢包或吞吐量问题。