网络不同问题

ICMP协议格式

ping 是基于 ICMP 协议工作的。ICMP全称Internet Control Message Protocol,就是互联网控制报文协议。ICMP 报文是封装在 IP 包里面的。

ICMP 报文有很多的类型,不同的类型有不同的代码。最常用的类型是主动请求为 8,主动请求的应答为 0。

查询报文类型

查询报文类型:常用的ping 就是查询报文,是一种主动请求,并且获得主动应答的 ICMP 协议。所以,ping 发的包也是符合 ICMP 协议格式的,只不过它在后面增加了自己的格式。对 ping 的主动请求,进行网络抓包,称为ICMP ECHO REQUEST。同理主动请求的回复,称为ICMP ECHO REPLY。比起原生的 ICMP,这里面多了两个字段,一个是标识符,即区分查询目的的。另一个是序号,用来标识每一个的数量的。

差错报文类型

差错报文类型:终点不可达为 3,源抑制为 4,超时为 11,重定向为 5。
(1)第一种是终点不可达:具体原因包括,网络不可达、主机不可达、协议不可达、端口不可达、需要进行分片但设置了不分片位
(2)源站抑制:也就是让源站放慢发送速度。
(3)时间超时:也就是超过网络包的生存时间还是没到。
(4)路由重定向:也就是让下次发给另一个路由器。

ping:查询报文类型的使用


(1)ping 命令执行的时候,源主机首先会构建一个 ICMP 请求数据包,ICMP 数据包内包含多个字段。最重要的是两个,第一个是类型字段,对于请求数据包而言该字段为 8;另外一个是顺序号,主要用于区分连续 ping 的时候发出的多个数据包。每发出一个请求数据包,顺序号会自动加 1。为了能够计算往返时间 RTT,它会在报文的数据部分插入发送时间
(2)由 ICMP 协议将这个数据包连同地址 192.168.1.2 一起交给 IP 层。IP 层将以 192.168.1.2 作为目的地址,本机 IP 地址作为源地址,加上一些其他控制信息,构建一个 IP 数据包。
(3)需要加入 MAC 头。如果在本节 ARP 映射表中查找出 IP 地址 192.168.1.2 所对应的 MAC 地址,则可以直接使用;如果没有,则需要发送 ARP 协议查询 MAC 地址,获得 MAC 地址后,由数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址则是本机的 MAC 地址;还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。
(4)主机 B 收到这个数据帧后,先检查它的目的 MAC 地址,并和本机的 MAC 地址对比,如符合,则接收,否则就丢弃。接收后检查该数据帧,将 IP 数据包从帧中提取出来,交给本机的 IP 层。同样,IP 层检查后,将有用的信息提取后交给 ICMP 协议.
(5)主机 B 会构建一个 ICMP 应答包,应答数据包的类型字段为 0,顺序号为接收到的请求数据包中的顺序号,然后再发送出去给主机 A。
(6)在规定的时候间内,源主机如果没有接到 ICMP 的应答包,则说明目标主机不可达;如果接收到了 ICMP 应答包,则说明目标主机可达。此时,源主机会检查,用当前时刻减去该数据包最初从源主机上发出的时刻,就是 ICMP 数据包的时间延迟。
(7)当然这只是最简单的,同一个局域网里面的情况。如果跨网段的话,还会涉及网关的转发、路由器的转发等等。但是对于 ICMP 的头来讲,是没什么影响的。会影响的是根据目标 IP 地址,选择路由的下一跳,还有每经过一个路由器到达一个新的局域网,需要换 MAC 头里面的 MAC 地址。
(8)经常会遇到一个问题,如果不在我们的控制范围内,很多中间设备都是禁止 ping 的,但是 ping 不通不代表网络不通。这个时候就要使用 telnet,通过其他协议来测试网络是否通

Traceroute:差错报文类型的使用

(1)Traceroute 的第一个作用就是故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器。Traceroute 的参数指向某个目的 IP 地址,它会发送一个 UDP 的数据包。将 TTL 设置成 1,也就是说一旦遇到一个路由器或者一个关卡,就表示它“牺牲”了。如果中间的路由器不止一个,当然碰到第一个就“牺牲”。于是,返回一个 ICMP 包,也就是网络差错包,类型是时间超时。接下来,将 TTL 设置为 2,依此类推。
(2)Traceroute 还有一个作用是故意设置不分片,从而确定路径的 MTU。要做的工作首先是发送分组,并设置“不分片”标志。发送的第一个分组的长度正好与出口 MTU 相等。如果中间遇到窄的关口会被卡住,会发送 ICMP 网络差错包,类型为“需要进行分片但设置了不分片位”。

怎么知道 UDP 有没有到达目的主机呢?

Traceroute 程序会发送一份 UDP 数据报给目的主机,但它会选择一个不可能的值作为 UDP 端口号(大于 30000)。当该数据报到达时,将使目的主机的 UDP 模块产生一份“端口不可达”错误 ICMP 报文。如果数据报没有到达,则可能是超时。

趣谈网络协议——ICMP与ping:投石问路的侦察兵(笔记)相关推荐

  1. 趣谈网络协议---ICMP与ping:投石问路的侦察兵

    ICMP协议格式 ICMP 报文是封装在 IP 包里面的,因为侦察兵需要轻装上阵. 最常用的类型是主动请求为 8,主动请求的应答为 0. 查询报文类型 ping使用查询报文,是一种主动请求,并获得主动 ...

  2. 趣谈网络协议笔记-二(第五讲)

    趣谈网络协议笔记-二(第五讲) 目录 第二模块 底层网络知识讲解:第二层到第三层 第5讲 | 从物理层到MAC层:如何在宿舍离自己组网完联机游戏 第6讲 | 交换机与VLAN:办公室太复杂,我要回学校 ...

  3. 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

    华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解) 程序员高级码农II 2020-09-25 07:23:00 前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ...

  4. 面试华为必备:华为18级大牛呕心沥血三年整理的 趣谈网络协议

    前言 华为是一个热门的互联网大厂,华为每年都要进很多新人,对于新人来说,那些高大上的技术是用不到的,反倒是非常需要这些基础的文档,有这些新手进步会快很多,搞清楚TCP IP协议栈,其他的学起来也就容易 ...

  5. 华为19级工程师三年心血终成趣谈网络协议文档(附清华大牛视频讲解和课件)

    前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ,非常复杂.学的时候就浑浑噩噩,真正到了实践中更是糊里糊涂,一旦工作中遇到了网络问题,除了会简单地 ping 几下 ,基 ...

  6. 华为18级工程师三年心血终成趣谈网络协议文档(附讲解)

    前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ,非常复杂.学的时候就浑浑噩噩,真正到了实践中更是糊里糊涂,一旦工作中遇到了网络问题,除了会简单地 ping 几下 ,基 ...

  7. 趣谈网络协议笔记-二(第七,八,九讲)

    趣谈网络协议笔记-二(第七,八,九讲) 勉励 人生而自由,却无往不在枷锁(牢笼)之中. ------卢梭@<社会契约论> 为那些有形的牢笼感到庆幸吧. 为自己出生于这个时代感到庆幸吧,因为 ...

  8. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  9. 趣谈网络协议1-为什么学习网络协议

    来自极客时间<趣谈网络协议> 学习过程遇见问题:一看觉得懂,一问就打鼓,一用就糊涂. 1.为什么要学习网络协议 一般编译过程: 词法分析: 词法分析是编译的第一阶段.词法分析器的主要任务是 ...

最新文章

  1. 实时卷积神经网络实现人脸检测和情感/性别分类
  2. Android图片褪色,Android – 使用Alpha褪色动画闪烁图片
  3. 微软10亿美元砸入OpenAI:明为AGI,暗争谷歌,被指云计算换投资
  4. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第1章-绪论
  5. 成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
  6. 通过QQ或者QQ帮助别人学习Lync之一
  7. iotop命令监控磁盘io
  8. 64匹马,8个赛道,通过比赛,决出前四名。
  9. 第0章 Oracle的安装及相关配置
  10. typora高级设置字体_设计黑金风格高级感logo
  11. 2019五一建模A题思路
  12. CANalyzer添加dbc文件
  13. IEEE极限编程:Word Ordering
  14. IDEA轻松实现.class文件反编译(超实用)
  15. http隧道Chisel
  16. AppStore SDK
  17. mysql强行关闭回滚中的进程_mysql查询正在执行的进程
  18. 《3D打印:正在到来的工业革命(第2版)》——2.4节粉末床熔融
  19. html5 js实现今日头条视频播放列表,Github最火开源项目-高仿今日头条视频列表功能...
  20. 图片社交php,图像社交时代

热门文章

  1. 基于 Tensorflow 轻松实现 XOR 运算!| CSDN 博文精选
  2. 信息安全风险评估流程
  3. 楚留香自动采矿--按键精灵
  4. [vscode]vetur扩展的安装问题
  5. 微软与亚马逊达成合作 跨平台整合语音助手
  6. java jnotify_JNotify使用 | 学步园
  7. 妇与术(二):女性营销频频翻车?搞懂“女性凝视”太太太有必要了!
  8. 在PPT中插入数据透视表(数据透视图)
  9. 期刊等级学习笔记——nature篇
  10. 函数图像绘制python海龟库