《计算机网络——自顶向下方法》精炼——4.3.1-4.4.1

news2025/1/12 3:06:13

学习和研究好比爬梯子,要一步一步地往上爬,企图一脚跨上四五步,平地登天,那就必须会摔跤了。——华罗庚

文章目录

  • 路由器工作原理
    • 输入端口概述
    • 交换结构概述
      • 输出端口
      • 何处出现排队
      • 路由选择控制平面
  • 网际协议:因特网中的转发和编址
    • 数据报格式
      • IP数据报分片

路由器工作原理

输入端口概述

在这里插入图片描述

输入端口执行的查找操作是一个很重要的功能。在硬件层面上,使用嵌入式片上DRAM和SRAM内存设计,三态内容可寻址存储器(TCAM) 也用于查找,多种硬件的应用造就了超出简单线性搜索的查找技术。
除了查找外,如果分组在进入交换结构前有其他分组正在使用交换结构,那么分组被暂时阻塞在输入端口,等待稍后被调度以通过交换结构。另外,输入端口还要进行物理层和链路层处理;检查分组版本号、检验和及寿命字段并重写部分字段;更新用于网路管理的计数器。

交换结构概述

交换结构负责将分组从输入接口转发到输出接口,通常有三种方式:
在这里插入图片描述

  • 内存交换(右上图):这里的内存指的是路由选择处理器的内存。使用这种方式时,一个输入端口的分组被复制到处理器内存中,处理器提取目的地址信息并在转发表中查找到合适的输出端口,再将分组复制到输出端口。由于输入端口和输出端口都共享一条系统总线,因此这种方式一次只能转发一个分组
  • 总线交换(右下图):这种方式不需要路由选择处理器干预。这种方式下输入端口和输出端口之间有一条共享总线,输入端口查找转发表,为即将发送的分组打上标签,这个标签指示分组合适的输出端口,然后将该分组通过总线发送给所有的输出端口,但只有与标签匹配的接口才能保存分组。由于总线只有一条,因此这种方式一次也只能发送一个分组
  • 互联网络交换(右上图):使用2N条总线构成一个互联网络,在两条总线的交叉点设置交换结构控制器,能控制交叉点开启和闭合,当交叉点闭合时,两条总线相连接,分组可以通过。这种方式下,两个输入端口和输出端口都不同的分组可以同时被发送

输出端口

在这里插入图片描述
输出接口与输入接口几乎相同,不多赘述。

何处出现排队

显然如果交换结构的交换速率不当,输入端口和输出端口都可能出现堵塞甚至丢包。先讨论输出端口的排队情况。
当输出端口排队时,端口上的分组调度程序在排队的分组中选出一个来发送。分组调度程序可能有多种原则,例如先来先服务调度或加权公平排队(WFQ)规则。分组调度程序对提供服务质量保证方面其关键作用。
当输出端口出现丢包时,要么丢弃到达的分组(称为弃尾),要么删除之前到达的分组。有时在缓存填满前就丢弃或标记一个分组为丢弃,以便向发送方发送拥塞反馈的做法有利于降低拥塞,这种做法被称为主动队列管理(AQM)。随机早期检测(RED)算法是一种AQM算法,它为输出队列长度维护一个加权平均值,再计算一个最小阈值和一个最大阈值。当加权平均值小于最小阈值时,新加入的分组顺利加入队列;当加权平均值在最小阈值和最大阈值之间时,新加入的分组有一定概率被丢弃或标记为丢弃;当加权平均值大于最大阈值时,新加入的分组一定被丢弃或标记为丢弃。
在输入端口中,由于一次只能发送一个分组,那么即使后面的分组要发送到当前空闲的输出端口,也会被阻塞,这种现象称为线路前部(HOL)阻塞
由于上述原因,路由器需要缓存来缓和链路流量的波动,这个缓存的大小约为B=RTT*C/N1/2

路由选择控制平面

网络层面上的路由选择控制平面运行在各个路由器的路由选择处理器上,因此它是分布式的。但某些研究人员抽离了部分控制平面在集中式的路由器中以期简化路由选择和网络创新。

网际协议:因特网中的转发和编址

在因特网中,转发和编址功能是网际协议(IP)的重要组件。因特网的网络层有三个组件:
在这里插入图片描述

  • IP协议。
  • 路由选择部分:决定数据报从源到目的地的路径。
  • 报告数据报差错,对某些网络层信息请求进行响应的设施,依靠互联网控制报文协议(ICMP)。

数据报格式

IPv4数据报的格式如下:
在这里插入图片描述

  • 版本:规定了数据报的IP协议版本,由于不同版本的IP数据报有不同格式,路由器根据版本确定如何解释这个IP数据报。
  • 首部长度:确定该数据报首部长度,以区分首部部分和数据部分。IP数据报拥有可变数量的选项,因此即使是相同版本的IP数据报,其首部长度也可能不同。
  • 服务类型(TOS):对不同类型的IP数据报,需要提供不同的服务。比如,将实时数据报(例如电话等应用)与非实时的数据报区分开有利于更好地提供实时服务。
  • 数据报长度:IP数据报的总长度。
  • 标识,标志,片偏移:与分片有关。
  • 寿命(TTL)字段:每经过一个路由器,TTL字段减1,为0时被路由器丢弃。该字段确保数据报不会永远占据链路资源。
  • 上层协议:指定该数据报应交给哪个上层协议。
  • 首部检验和:检验数据报中的差错。将首部中的每2个字节当做一个数,用反码运算对这些数求和,将这个和存在检验和字段。到达的路由器重新计算检验和,
  • 源和目的IP地址:存放源主机和目的主机的IP地址。
  • 选项:允许IPv4数据报扩展功能,在IPv6中已被去掉。
  • 数据(有效载荷):存放数据的字段。

IP数据报分片

由于一个链路层帧最大承载的数据量称为最大传送单元(MTU),并且每个链路的MTU不同,所以单个IP数据报的长度也被严格限制。如果当一个IP数据报到达一个新链路时发现封装成链路层帧后长度大于该链路的MTU,那么这个IP数据报需要被分片成多个小的数据报。这是标识,标志和片偏移字段就起作用了。

  • 标识:发送主机将它发送的每一个数据报标识号+1。在分片时,由同一个IP数据报切片成的多个数据报拥有同一个初始数据报的标识,于是目的主机知道他们来自同一个大的数据报。
  • 标志:由于IP协议不能保证数据报不丢失,因此目的主机需要知道被分片的数据报的最后一部分是哪个。当分片时,如果标志字段为0,代表该分片是最后一部分;否则该分片后还有来自同一数据报的分片。
  • 偏移:指示该分片的开始位置,该字段设置的值是初始字节序号除以8。
    下面是一个切片的例子:
    在这里插入图片描述
    在目的地,网络层将IP数据报重构为初始数据报,如果发现有分片丢失,那么将整个数据报丢弃并告诉源主机重传。
    请添加图片描述
    我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

29 # node 中的 eventloop

process.cwd cwd:current working directory 表示当前用户的工作目录(这个目录可以更改用户自己切换即可) 当用户在哪执行 node 命令,就去哪找配置文件 console.log(process.cwd());__dirname:表示当前文件所在的目…

【计算机网络】网络编程套接字(一)

目录 1.预备知识 1.1.理解源IP地址和目的IP地址 1.2.认识端口号 1.2.1.理解"端口号"和"进程ID" 1.2.2.理解源端口号和目的端口号 1.3.认识TCP/UDP协议 1.3.1.TCP协议 1.3.2.UDP协议 1.4.网络字节序 网络字节序和主机字节序的转换 2.socket编程接…

8B/10B编码

8B/10B编码 8B/10B编码介绍实现方式8b/10b编码中的编码表和字节编码RD控制符号 8B/10B编码 介绍 8b/10b编码是将8位符号映射到10位符号,以实现直流平衡,同时提供足够多的状态来实现时钟恢复。这意味着在一个至少20位的字符串中,1和0的计数之…

[论文阅读笔记74]The Power of Scale for Parameter-Efficient Prompt Tuning

1. 基本信息 题目论文作者与单位来源年份The Power of Scale for Parameter-Effificient Prompt TuningBrian Lester等googleConference on Empirical Methods in Natural Language Processing2021 857 Citations 论文链接:https://arxiv.org/abs/2104.08691 论…

配置SSH远程登录和免密登录

上一篇我们已经讲了如何配置修改Linux的主机名和网络设置,这一篇我们来讲一下配置Linux的SSH免密登录。   首先讲一下我们为什么要配置SSH 免密登录,通过VMware Workstation工具操作虚拟机十分不方便,无法复制内容到虚拟机中,也…

Python使用多进程并行加速业务操作 完整代码

Python使用多进程并行加速业务操作 完整代码 需求分析 完整代码 本demo性能分析 Python中单线程、多线程和多进程的效率对比实验 需求分析 最近在对一个数据集进行处理,共2000条,每条去调一个第三方接口,耗时7-10秒。单线程处理一次要3.…

Vue - 项目编译速度、性能优化、打包体积优化

GitHub Demo 地址 在线预览 Vue - 项目编译速度、性能优化、打包体积优化 序一、编译速度优化1、使用缓存1.1、缓存插件 - HardSourceWebpackPlugin1.2、webpack5 配置cache1.3、cache-loader 插件 2、合理使用source-map3、多线程打包3.1、thread-loader3.2、parallel-webpac…

阿里5面,成功唬住面试官拿了21K,面试也没有那么难吧....

阿里的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。 全程 5 面,前四面技术面,电话面试,最后一面…

吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--08 Chatbot

08 Chatbot ChatGPT的一种重要功能是作为一个聊天机器人,本节将展示如何和ChatGPT进行对话 1) 不同的角色(Roles) 前面几节的课程中,我们通过如下函数调用ChatGPT的接口,输入用户输入的prompt,返回模型生…

第二章硬件入门之电容

第二章硬件入门之电容 文章目录 第二章硬件入门之电容一、电容是什么?二、实际应用场景常见电容:1.陶瓷电容(无正负极之分)1、旁路2、去耦 2.铝电解电容贴片式插件式3.安规电容x电容Y电容 总结 一、电容是什么? **电容…

【kernel exploit】CVE-2022-2602 UNIX_GC错误释放io_uring注册的file结构-UAF

本文主要参考 [漏洞分析] CVE-2022-2602 io_uring UAF内核提权详细解析 并做一些补充。 影响版本&#xff1a;Linux Kernel < v6.0.3。v6.0.3已修复。 测试版本&#xff1a;Linux-v6.0.2 &#xff08;v6.0.2 测试失败&#xff0c;v5.18.19测试成功&#xff09; exploit及测…

React Fiber 使用 MessageChannel + requestAnimationFrame 模拟实现 requestIdleCallback

由于 requestIdleCallback 兼容性较差且不支持 Safari&#xff0c;React Fiber 需要实现一个 requestIdleCallback polyfill 做浏览器兼容&#xff1b; MDN RequestIdleCallbackMDN RequestAnimationFrameMDN MessageChannel 以下为其使用 MessageChannel requestAnimationF…

vivado中ila的使用方法记录

ILA工具生成方法 一、 ILA工具介绍 在FPGA的开发中&#xff0c;当完成代码设计后&#xff0c;为了验证代码的准确性和各种不同条件下的可靠性&#xff0c;往往需要优先想到通过逻辑仿真进行相关验证。使用逻辑仿真进行验证虽然可以周密的考虑给出不同输入条件下的输出结果或交…

“智慧赋能 强链塑链”—— 汽车行业供应链管理数字化应用探讨

01车企供应链数字化的必要性 汽车供应链是一个复杂的系统&#xff0c;很多汽车企业因为供应链管理不当&#xff0c;造成资源浪费、成本高、客户满意度低等一系列问题&#xff1b;而汽车行业规模技术门槛高、配合协同复杂的特性&#xff0c;决定了其供应链缺口无法在短时间内填…

Three.js系列-报错export ‘Geometry‘ (imported as ‘THREE‘) was not found in ‘three‘

今天遇到报错export ‘Geometry’ (imported as ‘THREE’) was not found in ‘three’ port Geometry (imported as THREE) was not found in three (possible exports: ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, …

为什么大家都不用postman而选择 Apifox呢?

丢掉 Postman&#xff0c;Apifox 更香 作为开发者&#xff0c;丢掉 Postman 和 Jmeter吧&#xff0c;这款国产 API 工具更香&#xff0c;更安全&#xff01;一键即可导入 Postman 数据&#xff01; 一、Apifox 是什么&#xff1f; 1、Apifox 定位 Apifox Postman Swagger …

Altium Designer(AD)局域网内使用解冲突

1. Altium Designer 版本 AD15.0.8&#xff0c;电路设计软件&#xff0c;硬件工攻城狮必备技能&#xff0c;软件攻城狮也要会一点点 2. AD软件出现“Your license is already used on computer “LAPTOP-F99R6OR1” using product “AltiumDesigner” 用同事的安装包解压安装的…

Mysql 索引详细解析——底层->应用

1、索引的数据结构 1.1 概述 索引&#xff08;index&#xff09;是帮助Mysql高效获取数据的数据结构。 索引的本质&#xff1a; 索引是数据结构。简单理解为“排好序的快速查找数据结构”&#xff0c;满足特定查找算法。这些数据结构以某种方式指向数据&#xff0c; 这样就可…

期末计算机网络知识点总结

开篇提示: 因为博主图床使用的是GitHub进行存储的&#xff0c;因此当出现图片无法加载&#xff0c;可以尝试更换网络&#xff0c;或者用其他上网方法。当时想用 Gitee进行存储&#xff0c;但一直失败&#xff0c;过一段时间再试几次。目前这篇博文会一直更新&#xff0c;补充新…

Python的内置函数和保留字(关键字)

目录 内置函数 关键字&#xff08;保留字&#xff09; 内置函数 Python 解释器自带的函数叫做内置函数&#xff0c;这些函数可以直接使用&#xff0c;不需要导入某个模块。 将使用频繁的代码段封装起来&#xff0c;并给它起一个名字&#xff0c;以后使用的时候只要知道名字就可…