服务器
- 最常见的终端设备
发出流量,Transmit, outbound
发送数据时,无论是 TCP 还是 UDP,都需要先封装成三层数据包,再封装成二层数据帧,最后通过物理层让网卡发送数据。
接收流量,Receive, inbound
网卡从物理层收到网络数据,解析成二层数据帧,判断目标 MAC 地址是否是发给自己的
- 如果是,就把数据交给 kernel
- 如果不是,丢弃
如果是广播报文,根据协议判断是否需要回复(ARP)
交换机
流量转发设备,将收到的网络包转发出去
工作在二层
MAC address table
MAC 地址和交换机端口的对应。
收到一个二层数据帧,交换机会进行如下步骤:
- 把源 MAC 地址和源端口号记录在 MAC address table 中
- 根据目的 MAC 查找 MAC address table
- 如果找到目的 MAC 对应的端口号,则从这个端口把数据转发出去
- 否则,就转发到除了源端口之外的其他所有端口

MAC address table 中,
- 一个 MAC 地址只能对应一个端口
- 一个端口可以对应多个 MAC 地址,因为一个端口后面不仅是服务器,也可以是交换机
路由器
流量转发设备,将收到的网络包转发出去
工作在三层
路由表
IP 与端口的对应表