文章目录

  • PING
  • Traceroute
  • Traceroute 的工作原理
  • 举个“栗子”

PING

ICMP 的一个重要应用就是分组网间探测 PING(Packet InterNet Groper),用来测试两台主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。PING 是应用层直接使用网络层 ICMP 的一个例子。他没有通过传输层的 TCP 或 UDP。

Traceroute

ICMP 的另一个非常有用的应用是 traceroute(这是 UNIX 操作系统中名字),它用来跟踪一个分组从源点到终点的路径。在 Windows 操作系统中这个命令是 tracert。下面简单介绍下这个程序的工作原理。

Traceroute 的工作原理

Traceroute 从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的 UDP 用户数据报。第一个数据报 P1 的生存时间 TTL 设置为1。当 P1 到达路径上的第一个路由器 R1 时,路由器 R1 先收下它,接着把 TTL 的值减 1。由于 TTL 等于零了,R1 就把 P1 丢弃了,并向源主机发送一个 ICMP 时间超过 差错报给报文。
源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达路由器 R1 收下后把 TTL 减 1 再转发给路由器 R2。R2 收到 P2 时 TTL 为 1,但减 1 后 TTL 变为零了。R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报给报文。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的 TTL 是 1。主机不转发数据报,也不把 TTL 值减 1。但因 IP 数据报中封装的是无法交付的传输层的 UDP 用户数据报,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的 ICMP 报文正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的 IP 地址,以及到达其中的每一个路由器的往返时间。

举个“栗子”

C:\Users\liyongjun>tracert www.baidu.com通过最多 30 个跃点跟踪
到 www.a.shifen.com [180.101.49.11] 的路由:1     5 ms     2 ms     6 ms  10.10.68.1 [10.10.68.1]2     *        *        *     请求超时。3     3 ms     3 ms     3 ms  49.76.124.14     3 ms     1 ms     3 ms  58.215.68.2015     5 ms     6 ms     4 ms  58.215.152.1816     5 ms     6 ms     6 ms  58.213.94.1067     *        *        6 ms  58.213.94.868     7 ms    45 ms     9 ms  58.213.96.1029    11 ms    10 ms    10 ms  10.166.50.6 [10.166.50.6]10    10 ms    11 ms    10 ms  10.166.50.8 [10.166.50.8]11     *       60 ms    11 ms  10.166.96.4 [10.166.96.4]12    11 ms     *        *     10.165.1.17 [10.165.1.17]13     5 ms     5 ms     6 ms  180.101.49.11

上面是从一台 Windows PC 向百度服务器 www.baidu.com 发出的 tracert 命令后获得的结果。图中每一行有三个时间出现,是因为对应于每一个 TTL 值,源主机要发送三次同样的 IP 数据报。出现 * 号,可能是该路由器防火墙屏蔽掉了 ICMP 消息,所以我们得不到相关数据包的返回数据。上图说明从 PC 到百度服务器,中间共经历了 12 台路由器,并且能够看到每台路由器的 IP 地址,最终抵达目的IP 180.101.49.11
我们还应该注意到,从原则上讲,IP 数据报经过的路由器越多,所花费的时间也就越多。但从上面示例可以看出,有时正好相反。这是因为互联网的拥塞程度随时都在变化,也很难预料到。因此,完全有这样的可能:经过更多的路由器反而花费更少的时间。

traceroute 工作原理相关推荐

  1. traceroute工作原理

    traceroute,也就是trace route,跟踪路由.这个程序最早是Van Jacobson实现的.源码在网上可以找到,不过我还没有去找.主要的原理是IP路由过程中对数据包TTL(Time t ...

  2. linux traceroute命令详解_详解Linux系统路由跟踪指令traceroute语法、工作原理和实例说明...

    概述 traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不 ...

  3. traceroute的工作原理

    MyySophia5个月前 traceroute的工作原理 是利用ICMP差错控制报文中的TTL超时会回向源点发送一个时间超时报文.例如A 主机 traceroute B主机,A会封装一些分组,这些分 ...

  4. traceroute命令(unix)/tracert命令(windows)的工作原理

    traceroute命令(unix)/tracert命令(windows)的工作原理     traceroute命令和tracert命令的工作原理是一样的,只是前者用于unix和linux系统中,而 ...

  5. 听说你 ping 用的很 6 ?给我图解一下 ping 的工作原理!

    来自:小林coding 每日一句英语学习,每天进步一点点: 前言 在日常生活或工作中,我们在判断与对方网络是否畅通,使用的最多的莫过于 ping 命令了. "那你知道 ping 是如何工作的 ...

  6. 计算机网络(OSI、TCP/IP、网络协议、常见网络设备工作原理)

    目录 OSI模型 TCP/IP模型 网络协议 IP协议 IP数据报格式 IP数据报分片 IPv4地址 NAT协议 ARP/RARP协议 ARP RARP DHCP协议 ICMP协议 ICMP差错报告报 ...

  7. 第五章 路由器的工作原理及其配置

    第五章 路由器的工作原理及其配置 5.1 广域网服务 WAN连接的目的是在两个远离的网络之间尽可能高效率传递数据.连接的效率越高,到最终用户的连接就越透明.WAN连接通常比L A N连接要慢.例如,一 ...

  8. tcp和icmp测速哪个好_TCP/UDP/ICMP Traceroute的原理及区别

    Tracerotue 作为网络排错的常用工具可以显示出数据包在网络中经过的路由信息,它的工作原理也是网络工程师求职面试时的经典问题. Traceroute 的实现一共有三种方法,分别是:TCP tra ...

  9. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

最新文章

  1. 为什么清北硕博扎推街道办毫不意外, 反会越来越多?
  2. Windows Phone 7 XNA开发之关于图形的配置
  3. 常见三维文件格式之STL
  4. 服务端/web+客户端模式配置
  5. python常用小技巧(四)——批量图片改名
  6. warning C4819: The file contains a character that cannot be represented in the current code page
  7. SharePoint2013的头像显示和读取
  8. mysql传参为数组,将数组传递给MySQL存储例程
  9. Atitit 资源类型的分类法规范MIME类型类型 目录 1.1. 一个MIME类型至少包括两个部分:一个类型(type)和一个子类型(subtype)。 1 1.2. 命名格式MIME类型包括一个
  10. snap7 python连接_python snap7 windows-找不到snap7库
  11. 2022-2028年中国冷冻草莓加工行业市场竞争态势及发展趋向分析报告
  12. twitter跳过手机验证_twitter跳过手机验证_twitter手机验证不了_攻略
  13. Classification and Representation
  14. 蓝桥杯训练1:质数判断,同余问题
  15. 基于 RFID 与 ZigBee 智能汽车装配生产线车模追溯系统设计
  16. 蓝桥杯 - 历届试题 小朋友排队 C语言实现
  17. BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Mode
  18. Java Web入门之JSTL标签的解析及使用(超详细必看)
  19. hive的环境搭建,以及简单使用-01
  20. 常用电平LVTTL、LVCMOS、LVDS、CML的标准和区别

热门文章

  1. 启用vsftpd日志及其解读
  2. html5设置单元格行高,单元格的行高怎么设置 EXCEL文档怎么统一设置行高
  3. 菜鸟初识脚本 and 脚本语言
  4. NCBI中SRA数据下载
  5. ISDEV : error -6003的解决办法
  6. Win7和Win10如何使文件的视图默认按详细信息显示
  7. Android实现mp3音频剪辑(带试听)
  8. 搭建自己的知识体系 自我提升
  9. 数码科技分享_路由器01————TP-LINK AC1900无线桥接:没用的路由器千万别扔掉,它还可以当你的WiFi放大器
  10. 云帆教育大数据分享-Flume-0.9.4源码编译及一些编译出错解决方法