网络笔记

文章内容不保证正确,其叙述方式仅为了方便写作,并不代表实际情况。

通过物理层通信

物理层提供网络的物理连接,例如网线、光纤、无线电、中继器、集线器以及它们对应的协议。

中继器(Repeater)

中继器又称 “转发器”。中继器是一种双接口设备,可将一个接口收到的信号转发到另一接口,用于扩大网络传输范围。中继器可以被视作理想网线。

集线器(Hub)

集线器就是多接口的中继器。源设备发出的信号会去往物理层网络内所有设备。

以下是使用集线器通信的例子:

  • A 发送信号:

    1
    2
    设备A --> 集线器a --> 设备B
    设备C <--/ \--> 设备D
    1. A 把信号发送出去
    2. a 的一个接口收到信号,a 再将这个信号从其他接口发出去
    3. B、C、D 收到了信号

通过数据链路层通信

数据链路层提供了利用物理层传输数据的协议。

在上文的物理层网络内,如果有两个设备同时发送信息,就一定会产生冲突。数据链路层引入了 MAC 地址,让设备能够标明自己的身份。而借助 MAC 地址来明确源设备与目标设备,就可以减少冲突。

桥接器(Bridge)

桥接器又称 “网桥”,是一种与中继器类似的双接口设备,但是桥接器能够根据 MAC 地址决定是否转发。有些桥接器甚至能连接不同物理层网络。

数据链路层交换机(L2 Switch)

数据链路层交换机又称 “二层交换机”,是多接口的桥接器。它将源设备发出的数据仅转发到目标设备上,避免了部分冲突。

如何建立接口与设备的联系:源设备首次对目标设备发包,交换机便借助 MAC 地址来记下源设备连接在自己的哪个接口上,并通过广播确定并记住目标设备在自己的哪个接口上

以下是利用 MAC 通信的例子:

  • A 发送数据到 D:

    1
    2
    设备A --> 交换机a --- 设备B
    设备C ---/ \--> 设备D
    1. A 预先知道 D 的 MAC 地址,它将这个地址附在数据中,发送出去
    2. a 的一个接口收到数据,a 查看自己记录的映射关系,将数据从 D 的 MAC 地址对应的接口发出去
    3. D 收到数据

虚拟局域网(VLAN)

部分交换机拥有划分虚拟局域网的功能,由于这些被划分的设备仍然连接在同一交换机上,故此局域网是 “虚拟” 的。此功能可以隔离不同的设备。

通过网络层通信

当网络结构变得多样、层层嵌套,这样愈发复杂的时候,仅靠交换机便略显吃力。

网络层就此引入了 IP 协议,方便了 “寻址”(去哪儿)与 “路由”(怎么走):每个接入网络的设备都拥有一个 IP,只要在数据中指定 IP,我们就知道要 “去哪儿”。IP 也可以划分 “子网”,用来对应复杂的网络结构;IP 有两部分:网络前缀和其余字段,配合各种方法(CIDR、子网掩码等)来区分二者。同一网络前缀的设备在同一个子网下,可以视作能直接通过数据链路层通信;不同网络前缀的设备则需要额外的步骤。

路由器(Router)

路由器是有两个接口的设备,两个接口拥有不同的 IP,分别连接在不同的子网里,可以让设备跨越子网通信。

以下是两个例子,其中 A、C、a、1 组成了一个子网,B、D、b、2 组成了一个子网:

  • A 发送数据到 C:

    1
    2
    设备A -> 交换机 - (接口1 路由器a 接口2) - 交换机 - 设备B
    设备C <--/ \--- 设备D
    1. A 查看自己的路由表,发现 C 的 IP 与自己的网络前缀相同——二者位于同一子网,不需要通过路由器通信。
    2. A 通过一些方式(ARP、NDP)通过 C 的 IP 得知 C 的 MAC 地址。
    3. A 直接通过数据链路层将数据发给 C。
  • C 发送数据到 D:

    1
    2
    设备A - 交换机 -> (接口1 路由器a 接口2) -> 交换机 - 设备B
    设备C -->/ \--> 设备D
    1. C 查看自己的路由表,发现 D 的网络前缀与自己不同——二者位于不同子网,需要通过路由器通信。
    2. C 根据路由表得知 “网关”(跨越网络的关口),即 a 的接口 1 的 IP,并将 D 的 IP 等信息写入数据,发送给 1(这段发送过程类似 A 发送数据到 C)。
    3. a 的 1 收到自 C 的数据后,a 就查看自己的路由表,发现自己的接口 2 的网络前缀与 D 的相同,2 与 D 就可以通过数据链路层通信。

以上例子中的交换机可以被整合成一个支持虚拟局域网(VLAN)的二层交换机:

1
2
3
4
5
         路由器
|
VLAN 交换机
设备C --// \\-- 设备B
设备A ---/ \--- 设备D

如果再整合上述的交换机、路由器,那就得到了一台三层交换机(L3 Switch),它更加高效:

1
2
3
       三层交换机
设备C ---// \\--- 设备B
设备A ---/ \--- 设备D

其他

Linux 网络设置

  • Linux下可以用ip命令进行IP相关设置,而ifconfigroute是BSD系的
  • ethtool可以查看编辑网络接口
  • 可以用nftables设置包过滤(简单来说:防火墙);nftables现在替代了iptables,且有ufwfirewalld等前端

名词表

  • 广域网(WAN):广阔地理范围内的网络
  • 局域网(LAN):有限地理范围内的网络,为 WAN 的组成部分
  • 无线局域网(WLAN):使用无线连接的 LAN
  • 以太网(Ethernet):遵循 IEEE 802.3 标准实现的技术,用于构建 LAN
  • Wi-Fi:基于 IEEE 802.11 标准实现的技术,用于构建 WLAN
  • 无线接入点(WAP):允许设备通过无线连接接入有线网络的网络设备
  • 热点:能接入无线网络的物理位置

  • 互联网、因特网、万维网:
    • 互联网指网络设备互联形成的超大型网络,是一种 WAN
    • 因特网为互联网中最大、最著名的一个
    • 万维网是互联网上信息组成的抽象空间,它忽略了具体的物理设备,专注于其中的信息

  • DHCP:在某个设备上运行,为网络中设备分配IP的服务
  • 旁路由:在已有路由器的网络中再增加一个路由器,以增加路由速度的技术

  • 通信方式:
    • 单播:一对一发送信息
    • 多播:一对多发送信息
    • 广播:一对全发送信息