一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第20天,点击查看活动详情。
前言
网络包在顺着网线,经过集线器和交换机之后,下一个目的地就是路由器了。接下来我们学习的内容也来到了路由器。
路由器在我们日常生活中很常见,因此我们也着重来学习一下。本文先来探索一下路由器的基本原理。
路由器基本结构
路由器的基本结构如上图所示,我们把路由器结构简化为 转发模块 和 端口模块 两部分,其中 转发模块负责判断包的转发目的地,端口模块负责包的收发操作。
路由器转发模块和端口模块的关系,就相当于协议栈的 IP 模块和网卡之间的关系。我们可以将路由器的转发模块想象成 IP 模块,将端口模块想象成网卡。
通过更换网卡,计算机不仅可以支持以太网,也可以支持无线局域网,路由器也是一样。 如果路由器的端口模块安装了支持无线局域网的硬件,就可以支持无线局域网了。此外,计算机的网卡除了以太网和无线局域网之外很少见到支持其他通信技术的品种,而路由器的端口模块则支持除局域网之外的多种通信技术,如 ADSL、FTTH、以及各种带宽专线等,只要端口模块安装了支持这些技术的硬件即可。
工作原理
看明白路由器的结构之后,我们也应该明白了路由器的基本工作原理了。
路由器在转发包时,首先会通过端口将发过来的包接收进来,这一步的工作过程取决于端口对应的通信技术。对于以太网端口来说,就是按照以太网规范进行工作,而无线局域网端口则按照无线局域网的规范工作,总之就是委托端口的硬件将包接收进来。
接下来,转发模块会根据接收到包的 IP 头部中记录的接收方 IP 地址,在路由表中进行查询,以此判断转发目标。
然后,转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去,也就是转发模块委托端口模块将包发送出去的意思。
这就是路由器的基本原理,下面我们再来做一些补充。刚才我们提到端口模块会根据相应通信技术的规范来执行包收发的操作,这意味着端口模块是以实际的发送方或者接收方的身份来收发网络包的。
以以太网为例,路由器的端口具有 MAC 地址,因此它就能够成为以太网的发送方和接收方。端口还具有 IP 地址,从这个意义上来说,它和计算机的网卡是一样的。当转发包时,首先路由器端口会接收发给自己的以太网包,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。这一点和交换机是不同的,交换机知识将进来的包转发出去而已,它自己并不会成为发送方和接收方。
参考文档
- 《网络是怎样连接的》—— 户根勤
往期文章
- 网络是怎样连接的(一)—— 浏览器访问 Web 服务器过程概览
- 网络是怎样连接的(二)—— 浏览器生成 HTTP 消息
- 网络是怎样连接的(三)—— 通过 DNS 服务器查询 IP 地址
- 网络是怎样连接的(四)—— DNS 服务器工作介绍
- 网络是怎样连接的(五)—— 委托操作系统进行收发消息过程概览
- 网络是怎样连接的(六)—— 协议栈内部探索步骤
- 网络是怎样连接的(七)—— 协议栈的内部结构
- 网络是怎样连接的(八)—— 探索套接字
- 网络是怎样连接的(九)—— 连接连的到底是啥
- 网络是怎样连接的(十)—— 连接操作的实际过程
- 网络是怎样连接的(十一)—— 协议栈发送数据特性
- 网络是怎样连接的(十二)—— 数据收发操作中重要标志位 ACK
- 网络是怎样连接的(十三)—— 从服务器断开并删除套接字
- 网络是怎样连接的(十四)—— 网络包传输概览(IP 模块视角)
- 网络是怎样连接的(十五)—— 网络包传输概览(IP 模块视角)
- 网络是怎样连接的(十六)—— 生成包含接收方 IP 地址的 IP 头部
- 网络是怎样连接的(十七)—— 生成以太网用的 MAC 头部
- 网络是怎样连接的(十八)—— 将服务器的响应包从 IP 传递给 TCP
- 网络是怎样连接的(十九)—— UDP协议的收发操作
- 网络是怎样连接的(二十)—— 信号在网线和集线器中传输
- 网络是怎样连接的(二十一)—— 交换机工作模式