您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

网络设备与协议之设备篇

发表于:2020-04-21 作者:思科CCIE俱乐部 来源:思科CCIE俱乐部

前言

面试时回答计算机网络这块的问题,很对应试者回答的内容多为讲解计算机网络的 TCP 三次握手、四次挥手,或者是 OSI 七层模型的细节阐释。

当被问到数据包如何在网络上进行传输的,比如 IP 路由、ARP 寻址、交换机与路由器的区别、私有 IP 与全局 IP 的转换等细节,只能沉默以对。

本文将会梳理清楚数据包在网络中由一台主机发往另一台主机的详细过程,内容包括调制解调器、中继器、网卡、交换机、路由器等网络设备,以及 IP 协议相关技术 DNS、ARP、DHCP、NAT、ICMP等。

设备

搭建一套网络环境要涉及各种各样的电缆和网络设备,既然要搞清楚数据的传输,那就先搞清楚数据传输的媒介。

如图所示,主机A向主机B发送数据包,需要经过交换机、路由器等设备。但在物理层(OSI 模型的第 1 层),还需要调制解调器和中继器。

1. 调制解调器

现代家庭网络搭建宽带时,可以看到路由器后接的调制解调器(英语:Modem),我们一般亲切称之为“猫”。

调制解调器是将计算机产生的数字信号转换为模拟信号进行传输,并解调收到的模拟信号以得到数字信号的电子设备。

以前用电话线上网用的是电话调制解调器,现在都是光纤上网,用的是光纤调制解调器,即用于数字信号与光纤信号的转换。

2. 中继器

同调制解调器一样工作在物理层的还有中继器,它的作用是将电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆,简而言之,中继器是对减弱的信号进行放大和发送的设备。

3. 网卡

一台计算机要想上网必备的就是网卡,而现在大多数计算机也早已内置了网卡。

网卡,又称为网络适配器、LAN 卡,是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有 MAC 地址,因此属于 OSI 模型的第 2 层(数据链路层)。

我们所讲的计算机的 MAC 地址或主机的 MAC 地址,实际上是网卡的 MAC 地址。

如下图所示,Mac 电脑可以在「系统偏好设置 - 网络 - Wi-Fi - 高级 - 硬件」查看当前计算机的 MAC 地址。

4. 交换机

换机是一种网络设备,通过报文交换方式接收和转发数据到目标设备。

简而言之,交换机就是接收数据包、查看数据包的目的地址以选择路由、将数据包转发给下一跳路由。

需要明确,交换机不修改数据包,只负责转发数据包。

交换机又被称为网桥或者 2 层交换机,所谓 2 层,就是工作于数据链路层。这代表着,交换机在转发数据包时,不知道也无需要知道来源主机和目的主机的 IP 地址,只需知其 MAC 地址。

交换机的工作原理:

交换机内部的 CPU 会在每个端口成功连接时,通过将 MAC 地址和端口对应,形成一张 MAC 表。

当一台交换机安装配置好之后,其工作过程如下:

  • 交换机端口 1 收到 MAC 地址为 X 的计算机发给 MAC 地址为 Y 的计算机的数据包,交换机从而记下了 MAC 地址 X 在端口 1 。(学习)
  • 如果目的地 MAC 地址 Y 不能在 MAC 表中找到时,交换机会把数据包转发给除端口 1 外的所有数据包。(洪泛)
  • MAC 地址 Y 的计算机收到该数据包,向 MAC 地址 X 发出确认包。交换机收到该包后,从而记录下 MAC 地址 Y 所在的网段。
  • 交换机向 MAC 地址 X 转发确认包。(转发)
  • 交换机收到一个数据包,查表后发现该数据包的来源地址与目的地址属于同一个端口,交换机将不处理该数据包。(过滤)
  • 交换机内部的 MAC 地址-端口 查询表的每条记录采用时间戳记录最后一次访问的时间。早于某个阈值(用户可配置)的记录被清除。(老化)

5. 路由器

路由器可以连接不同的数据链路。例如连接两个以太网。现在,人们在家或办公室里连接互联网时所使用的宽带路由器也是路由器的一种。

路由器是在 OSI 模型的第 3 层即网络层面上连接两个网络、并对分组报文进行转发的设备。

交换机是根据物理地址(MAC地址)进行处理,参考的是 MAC 表,而路由器则是根据 IP 地址进行处理,所参考的表叫做路由控制表。

路由控制表:

发送数据包时所使用的地址是网络层的 IP 地址。然而仅仅有 IP 地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似“指明下一个路由器或主机”的这方面信息,以便真正发往目标地址。保存这种信息的就是路由控制表。

实现 IP 通信的主机和路由器都必须持有一张这样的表。它们也正是在这个表格的基础上才得以进行数据包发送的。

该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其它路由器相互交换信息时自动刷新。前者也叫静态路由控制,而后者叫做动态路由控制。

为了让动态路由及时刷新路由表,在网络上互连的路由器之间必须设置好路由协议,保证正常读取路由控制信息。

路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。

如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。所谓最为吻合是指相同位数最多的意思。

例如 172.20.100.52 的网络地址与 172.20/16 和 172.20.100/24 两项都匹配。此时,应该选择匹配度最长的 172.20.100/24 。

默认路由是指路由表中任何一个地址都能与之匹配的记录。默认路由一般标记为 0.0.0.0/0 或 default。这里的 0.0.0.0/0 并不是指 IP 地址是 0.0.0.0,为了避免人们误以为 0.0.0.0 是IP地址,故后缀是 /0 。