Ping和traceroute 的工作原理?以及超详细实验
nanshan 2024-11-25 15:28 15 浏览 0 评论
在工作中,我们会经常使用ping 和traceroute 来检测网络的连通性,那么今天就给大家分析一下这两个小工具的工作原理以及常用的可选项参数的具体含义:
(1)Ping 的工作过程
Ping 会发送 echo request message 到某个地址,然后等待应(reply),当 echo request 到达目标地址以后,在一个有效的时间内(timeout 之前)返回 echo reply message 给源地 址,则说明目的地可达。如在有效时间内,没有收到回应,则在发送端显示超时。
Ping 命令是把 ICMP 报文中的标示符置为发送该 ICMP 报文的进程,这样在对端可以区 分出从本端运行的多个 Ping 实例。Ping 命令每发送一个 ICMP 回显请求报文,顺序号就加 1,顺序号从 1 开始,不同的系 统发送回显请求的数量不同,默认情况发送 5 个回显请求报文。
也可以通过命令行参数设 置发送回显请求报文的个数,如果对端可达,则在对端会相应回应 5 个和请求端同样序号 的 ICMP 回应报文。
(2)Tracert 的工作过程
源端首先发送 3 个 TTL 字段的值都为 1 的 UDP 数据报给远程设备,使用随机的任何大 于 32768 的端口地址作为目标设备的接受报文端口,TTL 为 1 的数据报到达第一跳路由器以后 随即超时,路由器响应源设备一个 ICMP 的超时报文,之后源端再发送 3 个 UDP 数据报, 这次更改 TTL 值为 2,即经过 2 个路由器以后,响应源端 ICMP 超时报文,依次类推,直到 这些 UDP 报文到达了目标设备。
由于发送的报文中的目的端口,目标设备接收到 ICMP 报文后,由于报文的端口是一个 在目标设备没有使用的端口,目标设备就会响应 ICMP port unreachable 信息给源端,表示 目标端口不可达,同时说明 Tracert 执行完毕。从而可以从源端显示的结果中,看到到目标 设备所经过的路径。
Tracert 发送数据报的 TTL 值最大可以到 30,每一次发送如果在指定的时间的内没有回 应报文,在发送端就会显示超时,如果发送 30 跳的值后,仍然显示为超时,表明无法达到 目标设备,测试失败。默认情况没有发送报文的超时时间为 5 秒,可以在 0ms~65535ms 之 间进行设置。
IPv4 网络环境:(H3C 设备上需要开启) 需要在中间设备(源端与目的端之间的设备)上开启 ICMP 超时报文发送功能。如果中 间设备是 H3C 设备,需要在设备上执行 ip ttl-expires enable 命令 需要在目的端开启 ICMP 目的不可达报文发送功能。
如果目的端是 H3C 设备,需要在设 备上执行 ip unreachables enable 命令。
实验:
实验环境,在R1和R3 上分别配置环回口,三个路由器之间使用OSPF 全部宣告到Area 0 .
实验一:ping 的使用
以下是常用的一些命令
[R1]ping ?
-a Select source IP address, the default is the IP address of the
output interface
-c Specify the number of echo requests to be sent, the default is
5
-f Set Don't Fragment flag in packet (IPv4-only)
-h Specify TTL value for echo requests to be sent, the default is
255
-i Select the interface sending packets
-name Display the host name of the destination address
-s Specify the number of data bytes to be sent, the default is
56bytes
-si Set the specified interface as the source interface of ping
packet
ip IP Protocol
ipv6 IPv6 Protocol
这些参数是可以结合使用的, 比如检查链路MTU 。
配置解释
[R1]ping -a 1.1.1.1 -s 1500 3.3.3.3
如图, 是在R1 上使用1.1.1.1 作为源地址, 3.3.3.3 作为目的地址,发送数据包大小为1500
实验二:tracert的使用
以下是常用的一些命令
[R1]tracert ?
-a Set source IP address, the default is the IP address of the
output interface
-f First time to live, the default is 1
-m Max time to live, the default is 30
-name Display the host name of the router on each hop
-p Destination UDP port number, the default is 33434
-q Number of probe packet, the default is 3
ipv6 IPv6 Protocol
配置解释
[R1]tracert -a 1.1.1.1 3.3.3.3 以1.1.1.1 为源,3.3.3.3 为目的地探测每一跳路径
[R1]tracert -a 1.1.1.1 -f 2 3.3.3.3 指定以1.1.1.1 为源3.3.3.3 为目的地,每次ttl都为2,探测路径,隔跳探测。
相关推荐
- Linux文件管理知识:文本处理
-
Linux文件管理知识:文本处理上篇文章详细介绍了Linux系统中查找文件的工具或者命令程序的相关操作内容介绍。那么,今天呢,这篇文章围绕Linux系统中文本处理来阐述。众所周知,所有Linux操作系...
- Linux基础运维篇:Linux磁盘与文件系统管理(第012课)
-
一、磁盘基础认知1.磁盘是什么在Linux系统里,磁盘就像是一个巨大的仓库,专门用来存放各种数据。电脑里的文档、图片、程序等,都储存在磁盘上。磁盘有不同的类型,常见的有机械硬盘(HDD)和固态硬...
- Linux系统中其他值得关注的病毒/恶意软件示例
-
Linux系统中其他值得关注的病毒/恶意软件示例,结合其传播方式、危害特征及清除方法进行整理。一、经典病毒家族1.Slapper特征:利用Apache的SSL漏洞传播的蠕虫病毒,可创建僵尸网络供攻击者...
- Linux磁盘爆满紧急救援指南:5步清理释放50GB+小白也能轻松搞定
-
“服务器卡死?网站崩溃?当Linux系统弹出‘Nospaceleft’的红色警报,别慌!本文手把手教你从‘删库到跑路’进阶为‘磁盘清理大师’,5个关键步骤+30条救命命令,快速释放磁盘空间,拯救你...
- Linux常用文件操作命令
-
ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...
- linux怎么编辑文件内容
-
在Linux中,你可以使用多种方法来编辑文件内容。以下是几种常用的方法:使用文本编辑器:你可以使用命令行下的文本编辑器,如vi、vim或nano来编辑文件。例如,使用vim编辑一个名为example....
- linux学习笔记——常用命令-文件处理命令
-
ls目录处理命令:ls全名:list命令路径:/bin/ls执行权限:所有用户ls–ala--alll–long-i查看i节点ls–i查看i节点命令名称:mkdir命令英文原意:m...
- Win10新版19603推送:一键清理磁盘空间、首次集成Linux文件管理器
-
继上周四的Build19592后,微软今晨面向快速通道的Insider会员推送Windows10新预览版,操作系统版本号Build19603。除了一些常规修复,本次更新还带了不少新功能,一起来了...
- 很少有人知道可以这样删除文件
-
有时候我们在格式化硬盘分区或者删除一些文件的时候,会出现无法操作的情况,例如下面这种这个文件权限问题,系统为了保护一些文件而采取的安全措施,如果你能确定文件是可能删除的,那你只要赋予它管理员权限,...
- linux中磁盘满了?一招教你快速清理
-
创作背景:当天部署服务时,发现无法部署,后来经过日志排查后发现服务器磁盘满了,查询资料后进行了清理。话不多说,直接上解决方法。操作一:1.查看磁盘大小:df-h2.直接在最上层进行排序:du-a...
- Linux下乱码的文件名修改或删除
-
查看文件名#lstouch1?.txt#ll-itotal1469445217956913-rw-r--r--1oracleoinstall0Jan18...
- Linux系统的病毒示例
-
Linux系统中病毒实例的详细说明,综合了典型案例和补充信息:一、挖矿类病毒(近年高发)1.BillGates特征:通过替换系统工具(如ss、ps)伪装,创建/tmp/gates.lod文件,并连接域...
- Linux批量修改文件名及强大的$\「\」用法介绍
-
一:Rename命令rename命令用字符串替换的方式批量改变文件名。rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:vim`whichrename`C语言版本...
- Linux 文件已删除但空间不释放问题
-
有时候linux磁盘空间已满,手动删除了大文件之后,df查看一下发现空间占用还是100%,这是啥问题呢?解决办法:1、lsof|grepdeleted使用以上命令可以查看已经删除的文件进程,ki...
- C语言remove函数详解:“文件粉碎机”
-
一句话理解remove「remove就像一台文件粉碎机,只需提供文件路径,就能将目标文件彻底删除,但需小心——粉碎机不会确认文件内容!」函数原型#include<stdio.h>i...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
解决Linux终端中“-bash: nano: command not found”问题
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)