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

news2024/9/21 18:44:11

学习是终身的职业。在学习的道路上,谁想停下来就要落伍。

文章目录

  • UPnP
  • 因特网控制报文协议(ICMP)
  • IPv6
    • IPv6数据报格式
    • IPv4到IPv6的变革

UPnP

通用即插即用(UPnP)提供了一种让外部网络的主机与NAT内主机交换数据的方式。如果主机和NAT都是UPnP兼容的,那么主机上的应用程序可以向NAT请求一个从(专用IP地址,专用端口号)到(公共IP地址,公共端口号)的映射。如果映射成功生成,外部的主机可以发起到(公共IP地址,公共端口号)的TCP连接。此外,UPnP告诉应用程序(公共IP地址,公共端口号),以便应用程序向外部网络通告它。

因特网控制报文协议(ICMP)

ICMP是因特网网络层的3个主要组件之一。ICMP报文有一个类型字段和一个编码字段,这两个字段用于确定ICMP报文的类型,并包含引起该报文首次生成(即差错或有特殊需求)的IP数据报的首部和前8字节,用于让发送方确定出现差错或有特殊请求的IP数据报。
ICMP报文作为一个IP数据报的数据字段被发送,这个IP数据报指明上层协议为ICMP(就像指明是TCP或UDP报文一样),收到该数据报的主机将ICMP报文的内容分解出来给上层协议ICMP。因此,从体系结构来说ICMP协议位于IP协议之上。
下表展示了ICMP的报文类型:
在这里插入图片描述
可以看到,当报文类型相同时,编码字段才起到作用,否则编码字段一致为0。有两种需要特殊解释的ICMP报文:

  • 类型字段为8,编码字段为0的回显请求,ping程序用的就是这种ICMP报文,接收方收到这个报文后,回送一个类型字段为0,编码字段为0的回显回答。
  • 类型字段为4,编码字段为0的源抑制报文,这个报文用于强制发送方主机降低发送速率以进行拥塞控制。

第1章中介绍的Traceroute程序可以用于跟踪运行该程序的主机到任意另一台主机发送数据时经过的路径,这个程序用ICMP报文实现,它向另一台主机发送多个承载ICMP报文的数据报,第一份数据报的TTL为1,第二份的TTL为2,以此类推。TTL是寿命字段,每经过一个路由器,该字段值减一当报文到达一个路由器,路由器发现该报文的TTL字段为0时,则丢弃该报文并向源主机发送一个ICMP告警报文,报文中包括了该路由器的名字和IP地址。因此随着所有告警报文都到达源主机,主机能得知路径上所有路由器的名字和IP地址。最终如果有一个ICMP报文到达了目的主机,由于这个报文要发送给一个不可达的端口号,于是目的主机回送给源主机一个端口不可达的ICMP报文,当这个特别的报文到达源主机时,源主机知道已经到达目的主机,不需要发送其他的ICMP报文。在实践中,该程序每次发送3个相同TTL字段的ICMP报文。

IPv6

为了应对IPv4的可用地址块被分配殆尽的情况,IPv6随之产生。

IPv6数据报格式

在这里插入图片描述
相较于IPv4,IPv6的变化有:

  • 地址长度由32比特扩大到128比特,引入任播地址,这种新型地址可以使数据报交付给一组主机中的任意一个。
  • 首部长度固定为40字节。舍弃了各个选项字段,进行新的选项编码方式。
  • 流标签与优先级。流标签为“属于特殊流”的分组打上标签,特殊流即需要特殊服务的连接,比如需要实时服务的连接会被看做一个特殊流。优先级由首部中一个8比特的流量类型字段提供,它为来自同一个流的分组分出优先级。

IPv6中定义的字段有:

  • 版本字段。
  • 流量类型字段:提供优先级信息。
  • 流标签。
  • 有效载荷长度字段:给出数据字段的长度。
  • 下一个首部:标识这个数据报的上层协议。
  • 跳限制:TTL字段。
  • 源地址和目的地址。
  • 数据字段。

秉承着“快速处理IP分组”的初衷,IPv6相比IPv4减少了三个字段:

  • 分片相关字段。IPv6不允许分片,只能在端系统上对数据报进行分片处理,在链路中如果某个路由器发现下一个链路不足以发送这么大的数据报,它直接丢弃该数据报并返回差错报文。不进行分片操作有利于加快传输速度。
  • 首部检验和:计算检验和是一个非必要且耗时的操作,因此将其删去是可以理解的。
  • 选项:删去选项字段使IP数据报首部变为定长,有效加快了处理。作为补偿,他可能出现在“下一个首部”字段中。如果“下一个首部”指出的是上层协议,那么类似于协议字段;如果指出的是扩展首部,那么就指向扩展首部字段(存储于数据字段中,类似于选项)。

IPv4到IPv6的变革

一个难题是在不影响IPv4流通的情况下引入IPv6使能结点,因为IPv4应用广泛,且两代数据报解读方式不同。有两种方式解决这个问题:

  • 双栈方法。使用这个方法的结点同时有IPv6和IPv4实现,在与只能解析IPv4数据报的结点来说,就使用IPv4协议其他情况下使用IPv6协议。
  • 建隧道。如果两个IPv6结点之间用IPv4结点连接,那么发送方IPv6结点发送一个IPv4报文,然后将整个IPv6报文作为数据字段放入其中。接收方IPv6结点收到报文后将其中的IPv6报文取出进行修改和传输。

请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

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

相关文章

六十分之十七———低头拉车后的抬头看路

目录 前言:一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结 前言: 距离上次的月总已经过去四个多月时间了,这段时间里又是一次阶段性的下沉和突破,于是也就有了现在的总结。 此时还想将自己17…

未来10年,网络安全人才就业的黄金期

随着大数据、物联网、人工智能等新技术的发展,信息技术与经济社会各领域的融合也更加深入。网络攻击行为日趋复杂、黑客攻击行为组织性更强、针对手机无线终端的网络攻击日趋严重,近几年有关网络攻击和数据泄露的新闻层出不穷。因此,随着国家…

Planning-oriented Autonomous Driving 解析

abstract 现代自动驾驶系统通常是模块化的序列任务,这种方式很容易造成累积误差和任务协调不足,因此设计一个端到端架构,从全局的视角出发为agent的交互提供互补的特征提取。 introduction (a) Most industrial solutions deploy separate …

【QQ界面展示-获取监听到的通知的具体内容 Objective-C语言】

一、获取监听到的通知的具体内容 1.刚才这个没说啊,给大家补充一下, 我们看一下,刚才我们只说了一个通知的发布、和移除吧, 刚才我们这里,只是说了一个通知的发布、和移除吧, 以及监听, 那么,大家有没有发现, 我们一开始,给大家介绍的时候,是不是有两个对象啊,…

关于手机Camera的硬件电路知识

前阶段,小白教同事测了些Camere的基本功耗。正愁不知道写什么的小白,突然想到了素材,于是乎便趁着周末雷雨天宅家之际,写一篇关于手机Camere的硬件文章。 手机Camera 一、工作原理 关于Camera,景物通过镜头生成光学…

CRM软件能否代替Excel进行客户管理?

很多销售习惯使用Excel表格来管理客户,觉得这样既简单又方便。但随着客户的增多,使用Excel表格管理客户会带来很多问题。因此,客户管理不用Excel表格用CRM软件,是一种更加明智的选择。 1、统一管理数据 数据是企业的命脉。一旦客…

Python二级综合应用题:通讯录管理

Python二级考试中的最后一题一般是压轴题,有一定的难度,而且分值也高。此题一般分为1~3个问题,步步为赢,才能更好地解决。遇到这种问题,首先是不要怕,能解决几步是几步。今天我们一个通讯录管理题来说明一下…

Unbuntu下载Clion并配置Cmake工具

Clion 下载CLion安装Cmake工具 下载CLion 如果使用的是Unbuntu系统,一行命令就搞定了 sudo snap install clion --classic其他系统的下载方法就不在这里记载了 安装Cmake工具 刚下好Clion的时候,打开之后,如果没有Cmake工具.Clion是不会帮…

父亲节礼物:用Python编写一个小型游戏

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 安装必要的库 绘制游戏界面 添加游戏元素 为游戏添加交互性 结论 一、父亲节的来历简介 二…

taskAffinity、launchMode 与 flag

1、官方文档 public static final int FLAG_ACTIVITY_CLEAR_TASK 如果在传递给 的意向中设置,则 此标志将导致与 在活动开始之前要清除的活动。即活动 成为原本为空的任务和任何旧活动的新根 都完成了。这只能与 结合使用。Context.startActivity()FLAG_ACTIVITY_NE…

Kubernetes Blog 更新:DaoCloud 为数字世界寻找全局最优解

“ 近日,一篇名为《「DaoCloud 道客」与 Kubernetes--为数字世界寻找全局最优解》的博文,在 Kubernetes 的全球官网上线(链接:https://kubernetes.io/case-studies/daocloud/),下面一起来了解一下具体内容…

ArcEngine二次开发0——入门(下载 部署 组件学习)

折腾一下ArcGIS Engine二次开发。 目录 1、开发环境配置2、部署一个ArcGIS Engine应用程序3、ArcObject组件学习4、报错及解决4、其他 1、开发环境配置 参考:https://blog.csdn.net/H48662654/article/details/113384150 (使用ArcEngine前,…

时序预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机时间序列预测

时序预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机时间序列预测 目录 时序预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机时间序列预测效果一览基本介绍程序设计学习总结参考资料 效果一览 基本介绍 Matlab实现SO-ELM蛇群算法优化极限学习机时间序列预测 1.data为单变量时间…

拿捏指针(三)--- 对指针的高级认识(高级)

函数指针 函数指针的定义 通过对 对指针的基本认识 和 对指针的进阶认识 我们知道,整型指针是指向整型的指针,数组指针是指向数组的指针,其实,函数指针就是指向函数的指针。 和学习数组指针一样,学习函数指针我们也需…

【WebPack】前端工程化

文章目录 前端工程化一、前端工程化概念二、前端工程化优点三、前端工程化解决方案四、webpack 的基本使用4.1 什么是 webpack4.2 创建列表隔行变色项目4.3 安装 webpack4.4 配置 webpack4.5 自定义 打包入口与出口 五、webpack 的插件使用5.1 webpack 常见插件5.2 webpack-dev…

【Linux】进程优先级

目录 进程优先级什么叫做优先级?Linux优先级更改优先级 进程优先级 什么叫做优先级? cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用…

imx6ull固化和更新uboot、zImage和dtb方法---超详细总结

目录 一、固化系统 1. 使用mfgtool上位机固化系统 1.1 mfgtool固化系统到 SD 卡 1.2 mfgtool固化系统到 eMMC 1.3 mfgtool固化系统到 NAND FLASH 2.使用脚本固化系统 2.1脚本固化系统到 SD 卡 2.2 脚本固化系统到 eMMC 2.3 脚本固化系统到 NAND FLASH 二、更新系统 …

用Midjourney画“球迷冲进球场拥抱梅西“事件

作者 | 兔子酱 最近,被“球迷冲进球场拥抱梅西”刷屏了!在阿根廷对战澳大利亚北京工体友谊赛上,一名中国“狂热少年”冲进球场,成功拥抱了梅西,甚至摆出了拍照姿势。拥抱后在球场狂奔,还有大马丁击了掌,最后…

C++学习之STL vector

Vector是什么? 问chatgpt看看是什么回答? ChatGPT: C中的vector是标准库(STL)提供的一种动态数组容器。它能够在运行时根据需要自动调整大小,并且可以存储不同类型的元素。 使用vector,您可…

Java虚拟机——HotSpot的算法实现细节

根节点枚举 在可达性分析算法中从GC Roots集合中找引用链非常的麻烦 。固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(栈帧的本地变量表)中。当Java应用很大的时候,类和常量数量很多…