IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络笔记--交换机和路由器 -> 正文阅读

[网络协议]网络笔记--交换机和路由器

? ? ? ? ? ?这一节仍然以理论为主,看一看通过网线传输出去的包是如何经过集线器、交换机和路由器等网络设备, 最终进入互联网的。

?信号在网线和集线器中传输

每个包都是独立传输的

? ? ? ? ? ?无论包里面装的是应用程序的数据或者是 TCP 协议的控制信息 , 都不会对包的传输操作本身产生影响。换句话说, HTTP 请求的方法, TCP 的确认响应和序号, 客户端和服务器之间的关系, 这一切都与包的传输无关。 因此, 所有的包在传输到目的地的过程中都是独立的, 相互之间没有任何关联。

网卡中的 PHY(MAU)

? ? ??模块负责将包转换成电信号, 信号通过 RJ-45 接口进入双绞线,以太网信号的本质是正负变化的电压, 大家可以认为网卡的 PHY(MAU) 模块就是一个从正负两个信号端子输出信号的电路。
? ? ?信号在网线的传输过程中, 能量会逐渐损失。 网线越长, 信号衰减就越严重。

“双绞”是为了抑制噪声

? ? ? ? ? ?局域网网线使用的是双绞线, 其中“双绞”的意思就是以两根信号线为一组缠绕在一起, 这种拧麻花一样的设计是为了抑制噪声的影响。?那么双绞线为什么能够抑制噪声呢???如果我们将信号线缠绕在一起, 信号线就变成了螺旋形, 其中两根信号线中产生的噪声电流方向就会相反, 从而使得噪声电流相互抵消, 噪声就得到了抑制 如图 噪声抑制

?交换机的包转发操作

? ? ? ? ? 看一下包是如何通过交换机的。 交换机的设计是将网络包原样转发到目的地,首先, 信号到达网线接口, 并由 PHY(MAU) 模块进行接收, 这一部分和集线器是相同的。 也就是说, 它的接口和 PHY(MAU) 模块也是以 MDI-X 模式进行连接的 , 当信号从双绞线传入时, 就会进入
PHY(MAU) 模块的接收部分。接下来, PHY(MAU) 模块会将网线中的信号转换为通用格式, 然后传递给 MAC 模块。 MAC 模块将信号转换为数字信息, 然后通过包末尾的 FCS 校验错误, 如果没有问题则存放到缓冲区中网线接口和后面的电路部分加在一起称为一个端口, 也就是说交换机的一个端口就相当于计算机上的一块网卡但交换机的工作方式和网卡有一点不同。 网卡本身具有 MAC 地址, 并通过核对收到的包的接收方 MAC 地址判断是不是发给自己的, 如果不是发给自己的则丢弃; 相对地, 交换机的端口不核对接收方 MAC 地址, 而是直接接收所有的包并存放到缓冲区中。 因此, 和网卡不同, 交换机的端口不具有MAC 地址。将包存入缓冲区后, 接下来需要查询一下这个包的接收方 MAC 地址是否已经在 MAC 地址表中有记录了。 MAC 地址表主要包含两个信息,一个是设备的 MAC 地址, 另一个是该设备连接在交换机的哪个端口上。 简而言之,交换机根据 MAC 地址表查找 MAC 地址, 然后将信号发送到相应的端口。

?MAC 地址表的维护

? ? ? ? ? ?交换机在转发包的过程中, 还需要对 MAC 地址表的内容进行维护, 维护操作分为两种。第一种是收到包时, 将发送方 MAC 地址以及其输入端口的号码写入MAC 地址表中。 由于收到包的那个端口就连接着发送这个包的设备,所以只要将这个包的发送方 MAC 地址写入地址表, 以后当收到发往这个地址的包时, 交换机就可以将它转发到正确的端口了。 交换机每次收到包时都会执行这个操作, 因此只要某个设备发送过网络包, 它的MAC 地址就会被记录到地址表中。?
? ? ? ? ? ?另一种是删除地址表中某条记录的操作, 这是为了防止设备移动时产生问题,?只需要将一段时间不使用的过时记录从地址表中删除就可以了。

全双工模式可以同时进行发送和接收

? ? ? ? ? ?全双工模式是交换机特有的工作模式, 它可以同时进行发送和接收操作, 集线器不具备这样的特性。随着全双工模式的出现,如何在全双工和半双工模式之间进行切换的问题 也产生了,于是后来出现了自动切换工作模式的功能。除了能自动切换工作模式之外,还能探测对方的传输速率并进行自动切换。这种自动切换的功能称为自动协商。

?路由器的包转发操作

? ? ? ? ? ?网络包经过集线器和交换机之后, 现在到达了路由器, 并在此被转发到下一个路由器。这一步转发的工作原理和交换机类似, 也是通过查表判断包转发的目标。 不过在具体的操作过程上, 路由器和交换机是有区别的。 因为路由器是基于 IP 设计的, 而交换机是基于以太网设计的。
? ? ? ? ?首先, 路由器的内部结构如图所示

? ? ? ? 只要看明白路由器包括转发模块和端口模块两部分就可以了,其中转发模块负责判断包的转发目的地, 端口模块负责包的收发操作。路由器转发模块和端口模块的关系, 就相当于协议栈的 IP 模块和网卡之间的关系。 因此, 大家可以将路由器的转发模块想象成 IP 模块, 将端口模块想象成网卡。通过更换网卡,计算机不仅可以支持以太网,也可以支持无线局域网,路由器也是一样。如果路由器的端口模块安装了支持无线局域网的硬件,就可以支持无线局域网了。
? ? ? ? ? 路由器在转发包时, 首先会通过端口将发过来的包接收进来, 这一步的工作过程取决于端口对应的通信技术。 对于以太网端口来说, 就是按照以太网规范进行工作, 而无线局域网端口则按照无线局域网的规范工作,总之就是委托端口的硬件将包接收进来。 接下来, 转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址, 在路由表中进行查询, 以此判断转发目标。 然后, 转发模块将包转移到转发目标对应的端口, 端口再按照硬件的规则将包发送出去, 也就是转发模块委托端口模块将包发送出去的意思。

路由器的包接收操作

? ?首先, 信号到达网线接口部分, 其中的 PHY(MAU) 模块和 MAC 模块将信号转换为数字信息, 然后通过包末尾的 FCS 进行错误校验, 如果没问题则检查 MAC 头部中的接收方 MAC 地址, 看看是不是发给自己的包, 如果是就放到接收缓冲区中, 否则就丢弃这个包。 如果包的接收方 MAC 地址不是自己, 说明这个包是发给其他设备的, 如果接收这个包就违反了以太网的规则。路由器的端口都具有 MAC 地址, 只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃。

查询路由表确定输出端口

? ?? ? ? 完成包接收操作之后, 路由器就会丢弃包开头的 MAC 头部。 MAC 头部的作用就是将包送达路由器, 其中的接收方 MAC 地址就是路由器端口的 MAC 地址。 因此, 当包到达路由器之后, MAC 头部的任务就完成了, 于是 MAC 头部就会被丢弃。通过路由器转发的网络包, 其接收方 MAC 地址为路由器端口的MAC 地址。

包的有效期

? ? ? ? ??从路由表中查找到转发目标之后, 网络包就会被转交给输出端口, 并最终发送出去, 但在此之前, 路由器还有一些工作要完成。第一个工作是更新 IP 头部中的 TTL(Timeto Live, 生存时间) 字段。 TTL 字段表示包的有效期, 包每经过一个路由器的转发, 这个值就会减 1, 当这个值变成 0 时, 就表示超过了有效期, 这个包就会被丢弃。这个机制是为了防止包在一个地方陷入死循环。?如果路由表中的转发目标都配置正确, 应该不会出现这样的情况, 但如果其中的信息有问题,或者由于设备故障等原因切换到备用路由时导致暂时性的路由混乱, 就会出现这样的情况。

通过分片功能拆分大网络包

? ? ? ? ? 路由器的端口并不只有以太网一种, 也可以支持其他局域网或专线通信技术。 不同的线路和局域网类型各自能传输的最大包长度也不同, 因此输出端口的最大包长度可能会小于输入端口 。 即便两个端口的最大包长度相同, 也可能会因为添加了一些头部数据而导致包的实际长度发生变化, ADSL、 FTTH 等宽带接入技术中使用的 PPPoE 协议就属于这种情况。?

? PPPoE: PPP over Ethernet。 它是一种控制 ADSL、 FTTH 等宽带网络的方式

路由器与交换机的关系? ?

? ? ? ? ? ?要理解两者之间的关系, 关键点在于计算机在发送网络包时, 或者是路由器在转发网络包时, 都需要在前面加上 MAC 头部。给包加上 MAC 头部并发送, 从本质上说是将 IP 包装进以太网包的数据部分中, 委托以太网去传输这些数据。 IP 协议本身没有传输包的功能, 因此包的实际传输要委托以太网来进行。 路由器是基于 IP 设计的,?而交换机是基于以太网设计的, 因此 IP 与以太网的关系也就是路由器与交换机的关系。换句话说, 路由器将包的传输工作委托给交换机来进行 。?从包的转发目标也可以看出路由器和交换机之间的委托关系。 IP 并不是委托以太网将包传输到最终目的地, 而是传输到下一个路由器。 在创建MAC 头部时, 也是从 IP 的路由表中查找出下一个路由器的 IP 地址,并通过 ARP 查询出 MAC 地址, 然后将 MAC 地址写入 MAC 头部中的, 这表示 IP 对以太网的委托只是将包传输到下一个路由器就行了。当包到达下一个路由器后, 下一个路由器又会重新委托以太网将包传输到再下一个路由器。 随着这一过程反复执行, 包就会最终到达 IP 的目的地, 也就是通信的对象。如图:

? ? ? ? ? ?简单来说, IP(路由器) 负责将包发送给通信对象这一整体过程, 而其中将包传输到下个路由器的过程则是由以太网(交换机) 来负责的。?IP 本身不负责包的传输, 而是委托各种通信技术将包传输到下一个路由器, 这样的设计是有重要意义的, 即可以根据需要灵活运用各种通信技术, 这也是 IP 的最大特点。 正是有了这一特点, 我们才能够构建出互联网这一规模巨大的网络。IP(路由器) 负责将包送达通信对象这一整体过程, 而其中将包传输到下一个路由器的过程则是由以太网(交换机) 来负责的。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:19:05  更:2021-10-17 12:19:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:27:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码