3 从网线到网络设备

news/2024/11/19 9:21:40/文章来源:https://www.cnblogs.com/yubo-guan/p/18198329

目录
  • 1 信号在网线和集线器中传输
  • 2 交换机的包转发操作
  • 3 路由器的包转发操作


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

TCP 控制信息也叫 TCP 头部,但从以太网和 IP 传输网络包的角度来看,TCP 头部并不算是“头部”,只能算是“数据”

img1

集线器将信号发送给所有连接在它上面的线路


2 交换机的包转发操作

img2

交换机端口的 MAC 模块不具有 MAC 地址。

交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相应的端口

广播地址(broadcast address)是一种特殊的地址,将广播地址设为接收方地址时,包会发送到网络中所有的设备。MAC 地址中的 FF:FF:FF:FF:FF:FF 和 IP 地址中的 255.255.255.255 都是广播地址

交换机的全双工模式可以同时发送和接收信号

img3


3 路由器的包转发操作

路由器包括转发模块和端口模块两部分就可以了。其中转发模块负责判断包的转发目的地,端口模块负责包的收发操作

换句话说,路由器转发模块和端口模块的关系,就相当于协议栈的 IP 模块和网卡之间的关系。因此,大家可以将路由器的转发模块想象成 IP 模块,将端口模块想象成网卡

img4

路由器在转发包时,首先会通过端口将发过来的包接收进来,这一步的工作过程取决于端口对应的通信技术。对于以太网端口来说,就是按照以太网规范进行工作,而无线局域网端口则按照无线局域网的规范工作,总之就是委托端口的硬件将包接收进来。接下来,转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址,在路由表中进行查询,以此判断转发目标。然后,转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去,也就是转发模块委托端口模块将包发送出去的意思

端口是按照以太网规范接收包的,即当端口的 MAC 地址和包的接收方 MAC 地址一致时,端口才接受这个包,否则就丢弃包

路由器的各个端口都具有 MAC 地址和 IP 地址

交换机是通过 MAC 头部中的接收方 MAC 地址来判断转发目标的,而路由器则是根据 IP 头部中的 IP 地址来判断的

路由器根据“IP 地址”判断转发目标

img5

路由器会忽略主机号,只匹配网络号

路由表的子网掩码列只表示在匹配网络包目标地址时需要对比的比特数量

路由器的端口都具有 MAC 地址,只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃

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

通过路由器转发的网络包,其接收方 MAC 地址为路由器端口的 MAC 地址

如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过 ICMP 消息告知发送方

ICMP:Internet Control Message Protocol,Internet 控制报文协议。当包传输过程中发生错误时,用来发送控制消息

路由器遇到不知道该转发到哪里的包,就会直接丢弃

找不到匹配路由时选择默认路由 路由表中子网掩码为 0.0.0.0 的记录表示“默认路由”

这一行的子网掩码为 0.0.0.0,关键就在这里,子网掩码 0.0.0.0 的意思是网络包接收方 IP 地址和路由表目标地址的匹配中需要匹配的比特数为 0,换句话说,就是根本不需要匹配。只要将子网掩码设置为 0.0.0.0,那么无论任何地址都能匹配到这一条记录,这样就不会发生不知道要转发到哪里的问题了

只要在这一条记录的网关列中填写接入互联网的路由器地址,当匹配不到其他路由时,网络包就会被转发到互联网接入路由器。因此这条记录被称为默认路由,这一行配置的网关地址被称为默认网关。

最大包长度是由各个通信规格定义的,如果包超过了这个最大长度就不符合相应的规格,也就不能传输了,因此输入端口收到的包不会超过最大长度

img6

如果查询标志字段发现不能分片,那么就只能丢弃这个包,并通过 ICMP 消息通知发送方。否则,就可以按照输出端口 MTU 对数据进行依次拆分了。在分片中,TCP 头部及其后面的部分都是可分片的数据,尽管 TCP 头部不属于用户数据,但从 IP 来看也是 TCP 请求传输的数据的一部分。数据被拆分后,每一份数据前面会加上 IP 头部,其大部分内容都和原本的 IP 头部一模一样,但其中有部分字段需要更新,这些字段用于记录分片相关的信息

路由器判断下一个转发目标的方法如下。
. 如果路由表的网关列内容为 IP 地址,则该地址就是下一个转发目标。
. 如果路由表的网关列内容为空,则 IP 头部中的接收方 IP 地址就是下一个转发目标

路由器也会使用 ARP 来查询下一个转发目标的 MAC 地址

给包加上 MAC 头部并发送,从本质上说是将 IP 包装进以太网包的数据部分中,委托以太网去传输这些数据。IP 协议本身没有传输包的功能,因此包的实际传输要委托以太网来进行

img7

从包的转发目标也可以看出路由器和交换机之间的委托关系。IP 并不是委托以太网将包传输到最终目的地,而是传输到下一个路由器

IP(路由器)负责将包发送给通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的

当然,网络并非只有以太网一种,还有无线局域网,以及接入互联网的通信线路,它们和 IP 之间的关系又是什么样的呢?其实只要将以太网替换成无线局域网、互联网线路等通信规格就可以了。也就是说,如果和下一个路由器之间是通过无线局域网连接的,那么就委托无线局域网将包传输过去;如果是通过互联网线路连接的,那么就委托它将包传输过去

IP 本身不负责包的传输,而是委托各种通信技术将包传输到下一个路由器,这样的设计是有重要意义的,即可以根据需要灵活运用各种通信技术,这也是 IP 的最大特点。正是有了这一特点,我们才能够构建出互联网这一规模巨大的网络

IP(路由器)负责将包送达通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707866.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达梦表级触发器

// 达梦触发器CREATE OR REPLACE TRIGGER "K_BASIC"."B_BASE_ENGINEERING_CATEGORY TO B_PROJECT_INVESTMENT" AFTER UPDATE OR INSERT ON "K_BASIC"."B_BASE_ENGINEERING_CATEGORY" REFERENCING OLD ROW AS "OLD" NEW ROW…

NotePad在每行前面或后面添加一些内容

文本文件的每行前面或后面添加一些内容,如给下面文件每一行后面添加;方法 1. 下载文本编辑器 NotePad++ 下载地址:https://notepad-plus.en.softonic.com/download 2. 在每行后面添加内容使用快捷键Ctrl+H打开“替换对话框”,在每行的开头添加内容。 勾选左下角的“正则表达…

C-5-初次接触-全-

C#5 初次接触(全)原文:zh.annas-archive.org/md5/2E6DA4A6D245D14BD719EE0F1D9AAED3 译者:飞龙 协议:CC BY-NC-SA 4.0前言 C#是一种非常富有表现力和强大的语言,让您可以专注于应用程序而不是低级样板。在过去的十年中,C#编译器已经发展,包括了来自动态和函数式语言的许…

Vue关闭eslintrc校验

Vue关闭eslintrc校验vue.config.js文件添加 lintOnSave: falseeslintrc.js文件① 注释掉 @vue/standard ② 添加 ‘vue/multi-word-component-names’: ‘off’

提升数据安全意识,防范数据安全风险

在数字化时代,数据成为企业最宝贵的资产之一,但同时也面临着前所未有的安全挑战。数据泄露事件频发,给企业造成了巨大的经济损失和品牌信誉的损害。因此,提升数据安全意识,防范数据安全风险,已经成为企业不可或缺的一部分。数据安全现状 随着企业数字化转型的加速,数据的…

e语言 给别人写了一个小工具 【A文件夹里面mp3文件 复制 到 指定文件夹B目录下】

效果代码本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18198222

Prompt提示词助力AI写作

AI以极高的效率和还可以的输出质量,得到了许多写作人的青睐,Prompt作为AI写作的核心,通过简短的提示来引导AI生成文本,让写作新手也能轻松自如。 1. 看不下去的行业乱状 让人不禁遗憾的是,国外的开发者都在忙着搞AI科研或者做各种AI应用,而国内的开发者都在忙着捣腾各种“…

vuejs3.0 从入门到精通——vite+vue3+ts 显示找不到模块“../views/HomeView.vue”或其相应的类型声明。ts(2307)

vite+vue3+ts 显示找不到模块“../views/HomeView.vue”或其相应的类型声明。ts(2307) 一、在根目录下的 env.d.ts文件(没有就自己创建)二、在env.d.ts文件中添加以下代码declare module *.vue {import type { DefineComponent } from vueconst component: DefineComponent&l…

ASE60P06-ASEMI低压P沟道MOS管ASE60P06

ASE60P06-ASEMI低压P沟道MOS管ASE60P06编辑:ll ASE60P06-ASEMI低压P沟道MOS管ASE60P06 型号:ASE60P06 品牌:ASEMI 导通内阻:19mΩ 正向电流:-60A 反向耐压:-60V 封装:TO-220 批号:最新 安装类型:直插式封装 引脚数量:3 工作温度:-55C~175C 类型:场效应二极管 ASE60P…

传统发电站的智慧化管理和智能化运维

火电站与水电站作为两种主要的发电方式,各自有其独特的工艺特点和运作流程。火电站:火电站的核心设备较少,工艺流程可以简化为燃烧、蒸汽产生、涡轮转动和发电四个步骤。具体来说,通过燃烧化石燃料(如煤、石油或天然气)产生高温高压蒸汽,推动涡轮机转动,从而带动发电机…

grafana监控Linux资源,导入8919,无数据解决办法

这是由于grafana版本过低,和新的8919监控模板不兼容导致的。如下图所示 解决办法 方法1、替换grafana为更高版本; 方法2、将8919对应的.json文件下载下来,打开后将 table-old替换为table,然后再导入 问题得到解决