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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Ping和Traceroute原理 -> 正文阅读

[网络协议]Ping和Traceroute原理

Ping和Traceroute原理

两者都是ICMP来完成的,ICMP的主要功能是确认IP包是否成功送达?标地址、报告发送过程中IP包被废弃的原因和改善?络设置等。ICMP是基于ip协议的,ICMP报文直接封装在ip数据报中来传输。

在这里插入图片描述

Ping

当执行ping命令的时候,源主机首先会构造一个ICMP回送请求数据包,其中包含两个字段:类型,指明该ICMP的类型(此时为8);序号,主要用于区分连续ping的时候发出的多个ICMP数据包,每发出一个Ping消息,序号就会自动加1。此外,为了能够计算RTT,还会在ICMP数据包中附加上当前时间。然后将该ICMP数据包封装在ip数据报中发送给目的主机。

当目的主机接收到该ip数据报后,从ip首部中提取出协议类型字段,从而判断出是一个ICMP类型的报文。此时目的主机会构造一个ICMP回送应答数据报,类型为0,序号为接收到的ICMP回送请求数据包中的序号。然后封装到ip数据报中发送给源主机。

在规定的时间内,如果源主机没有收到ICMP的应答包,则说明目标主机不可达;如果收到了应答数据包,则目标主机可达,并且用当前时间减去数据包最初从源主机上发送出去的时刻就是ICMP数据包的时间延迟(RTT)。

Traceroute

Ping命令利用的是ICMP的查询报文类型,而Traceroute利用的是ICMP的差错报文类型。

作用一:追踪去往?的主机时沿途经过的路由器

原理:利用一个数据包每被一个路由器转发就会将TTL减1,如果TTL减为0,路由器就会抛弃该数据包,然后向源主机发送一个ICMP差错报文。

具体来说,源主机循环发送UDP数据包,并且将它们对应的ip数据报中的TTL字段从1开始递增,比如说TTL为2的字段在经过两个路由器转发后TTL变为0,此时该路由器会发送一个类型为超时的ICMP差错报文给源主机,其中包含了该路由器的ip地址。故通过这种方式源主机可以得到去往目的主机路径上的所有路由器。

何时结束循环,即如何判断一个UDP报文段到达了目的主机?可以将UDP报文的目的端口设置为一个不可能的端口号,这时目的主机收到UDP报文段后就会向源主机发送一个ICMP差错报文,类型为端口不可达。所以当源主机收到端口不可达类型的ICMP差错报文时就可以知道到达了目的主机,可以结束循环了。

作用二:确定到目的主机路径上的最小MTU

原理:源主机设置ip数据报首部的分?禁?标志位设置为1,则路径上的路由器不会对ip分片,故如果数据包的长度大于MTU,则会将该数据包丢弃,然后向源主机发送一个ICMP差错报文,类型为需要进?分?但设置了不分?位,并且在该报文中附带了该链路的MTU。源主机每次收到ICMP报文后将减小数据包的大小,再次去探测路径上的最小MTU,从而得到可以通过该路径把数据包发送给目的主机的MTU。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 12:01:41  更:2021-12-09 12:04:02 
 
开发: 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 10:44:37-

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