# 简介

# 网络接口卡

:Network Interface Card(NIC),又称为网卡、网络适配器。

  • 工作在物理层,以及数据链路层的 MAC 子层。

  • 计算机必须通过网卡连接到传输介质(比如光纤),才能收发数据包,与其它计算机进行网络通信。

  • 每个网卡都有一个在世界上唯一的 MAC 地址,又称为物理地址、硬件地址。

    • MAC 地址长度为 48 位,用 12 个十六进制数表示。例如 00-e0-4c-46-56-3f ,也可写作 00e0.4c46.563f 。
  • 每个主机通常存在多个网口,会分别收发数据包。

    • 在网络层,通常采用 IP 协议传输数据包,根据 IP 地址来寻址。当网卡收到一个 IP 包时,如果目标地址是本机 IP 地址,则由物理层协议继续处理。否则说明该 IP 包是发给其它主机的,像网卡发送的其它 IP 包一样处理。
    • 在物理层,通常采用以太网协议传输数据包,根据 Mac 地址来寻址。当网卡收到一个以太网帧时,如果目标地址是本机 Mac 地址,则读取该包。否则丢弃,除非该主机是交换机、路由器,才会转发以太网帧。
  • 假设主机 A 的 IP 为 10.0.0.1/24 ,想发送一个 IP 协议的数据包给主机 B 。

    • 如果已知主机 B 的 IP 为 10.0.1.2/24 ,位于另一个子网。则主机 A 会将 IP 包发送给网关,进行路由转发。
      • 在网络层,该 IP 包的目标地址填的是 10.2.0.2 。
      • 在物理层,该 IP 包封装在以太网帧里,帧头的目标地址填的是网关的 Mac 地址。
    • 如果已知主机 B 的 IP 为 10.0.0.2/24 ,位于同一个子网,则可以在物理层直接通信:将 IP 包封装在以太网帧里,帧头的目标地址填的是主机 B 的 Mac 地址。
    • 如果已知主机 B 的 IP 为 10.0.0.2/24 ,但不知道主机 B 的 Mac 地址,则不能在物理层寻址,比如 ping 不通。需要使用 ARP 协议,查询主机 B 的 Mac 地址。

# 无线接入点

:Access Point(AP),又称为无线 AP、热点,相当于无线集线器。

  • 除了只能连接结点的简单型无线 AP ,还有能提供路由功能的扩展型无线 AP(目前更常见)。
  • 无线 AP 是无线局域网的核心设备。

# 中继器

:Repeater ,将衰减或变形的信号进行放大整形,从而延长信号的传输距离。

  • 工作在物理层。
  • 中继器连接的两个网段仍然属于同一个网络,所以中继器不是网络互联设备。

# 网桥

:Bridge

  • 工作在数据链路层的 MAC 子层。
  • 可以通过转发数据帧将两个数据链路层协议不同(但上层协议相同)、传输介质不同、传输速率不同的网络在 MAC 子层连接起来。
  • 基本职责:通过自学习的方法自动地建立和维护一个表示目的地址 MAC 与端口对应关系的 MAC 地址表。
  • 网桥的不同端口的信道相互独立,所以可以将局域网分成多个冲突域独立的子网。
    • 但是网桥不能隔离广播风暴,而且端口少,只适用于小型局域网。
    • 目前网桥已经被同样可以隔离冲突域并且端口更多的交换机取代。
  • 透明网桥是目前最常见的一种网桥。
    • 透明是指网桥对局域网没有影响、不可见,相当于透明。
  • 网络互联时可能产生回路,即出现环型拓扑结构,为了避免回路中网桥重复转发同一数据帧,可以采用生成树协议(Spanning Tree Protocol ,STP)。
    • 生成树算法会选择网络中的一个网桥作为根,其它网桥各自选出自身到根网桥最近的一个端口作为转发端口,并暂时阻塞其它端口,从而构成一个树型拓扑结构的网络。这样既能消除回路,又能保留备用路径即冗余。

# 网关

:Gateway ,泛指两个网络相连的关口。

  • 通常用一个路由器作为网关。

# 集线器

:Hub ,是共享式局域网的核心设备。

  • 工作在物理层。
  • 多个结点连接到集线器会构成物理上的星型结构,但逻辑上仍然是总线型结构。
  • 背板是集线器中传输数据的物理通道,集线器的各个结点共享背板的带宽。
  • 普通集线器有两种端口,一种是用于连接结点的普通端口,另一种是用于级联的端口。
    • 普通集线器只能通过多个集线器级联来扩展局域网的范围(构成树型结构),而堆叠式集线器可以通过堆叠端口将背板相互连接,逻辑上相当于一个集线器。
    • 级联和堆叠都会将所有结点汇集到一个冲突域中。

# 端口

计算机网络中的端口(port)有两种含义。

  • 物理上的线路接口:比如路由器、交换机的端口。
  • 逻辑上的网络端口:比如 TCP 80 端口常用于 HTTP 通信。