服务器

  • 最常见的终端设备

发出流量,Transmit, outbound

发送数据时,无论是 TCP 还是 UDP,都需要先封装成三层数据包,再封装成二层数据帧,最后通过物理层让网卡发送数据。

接收流量,Receive, inbound

网卡从物理层收到网络数据,解析成二层数据帧,判断目标 MAC 地址是否是发给自己的

  • 如果是,就把数据交给 kernel
  • 如果不是,丢弃

如果是广播报文,根据协议判断是否需要回复(ARP)

交换机

  • 流量转发设备,将收到的网络包转发出去

  • 工作在二层

MAC address table

MAC 地址和交换机端口的对应。

收到一个二层数据帧,交换机会进行如下步骤:

  1. 把源 MAC 地址和源端口号记录在 MAC address table 中
  2. 根据目的 MAC 查找 MAC address table
    • 如果找到目的 MAC 对应的端口号,则从这个端口把数据转发出去
    • 否则,就转发到除了源端口之外的其他所有端口

MAC address table 中,

  • 一个 MAC 地址只能对应一个端口
  • 一个端口可以对应多个 MAC 地址,因为一个端口后面不仅是服务器,也可以是交换机

路由器

  • 流量转发设备,将收到的网络包转发出去

  • 工作在三层

路由表

IP 与端口的对应表