TCP/IP详解卷1:协议(六)【Traceroute程序,IP选路】

Traceroute 详解 如果您是网络管理员,系统管理员或任何系统操作团队的一员,那么您可能已经听说过名为TRACEROUTE的工具。默认情况下,它是大多数操作系统中都提供的非常方便的工具。网络管理员和系统管理员在日常活动中最常使用此工具。它基本上是一个非常方便的网络诊断工具。跟踪路由工具的三个主要主要目标。通过traceroute实现的这些目标可以洞悉您的网络问题。它是一种工具,可用于确定数据到达目的地的路径,而无需实际发送数据。就像我在文章中经常说的那样,了解特定工具的工作原理总是很有益的。 阅读详情

traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。traceroute程序还可以让我们使用IP源路由选项。

8.2 Traceroute程序的操作

为什么不使用IP记录路由选项(RR)而另外开发一个新的traceroute?

  1. 原先并不是所有的路由器都支持记录路由选项
  2. 记录路由一般是单向的选项
  3. IP首部中留给选项的空间有限,不能存放当前大多数的路径

traceroute程序使用ICMP报文和IP首部中的TTL字段。TTL字段是由发送端初始设置一个8bit字段。推荐的初始值由分配数字RFC指定,当前值为64。

每个处理数据报的路由器都需要把TTL的值减1 或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒钟,因此TTL最终成为一个跳站的计数器,所经过的每个路由器都将其值减1。

TTL字段的目的是防止数据报在选路时无休止地在网络中流动。当路由器收到一个IP数据报,TTL是0或1,丢弃该数据报,并给信源发送一份ICMP超时信息。Traceroute的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

所以Traceroute的操作过程是:先发送一份TTL字段为1的IP数据报给目的主机,得到第一个路由器的地址;然后发送一个TTL字段为2的IP数据报,以此类推,直到达到目的主机。

8.5 IP源站选路选项

源站选路(source routing) 的思想是由发送者指定路由。它可以采用以下两种形式:

  1. 严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的ICMP差错报文。
  2. 宽松的源站选路。发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。

这里写图片描述

源站路由选项的实际称呼为“源站及记录路由”(对于宽松的源站选路和严格的源站选路,分别用 LSRR和SSRR 表示),这是因为在数据报沿路由发送过程中,对 IP地址清单进行了更新。下面是其运行过程:

  1. 发送主机从应用程序接收源站路由清单,将第1表项去掉(它是数据报的最终目的地址),将剩余的项移到1个项中,并将原来的目的地址作为清单的最后一项。指针仍然指向清单的第 1项(即,指针的值为4)。
  2. 每个处理数据报的路由器检查其是否为数据报的最终地址。如果不是,则正常转发数据报(在这种情况下,必须指明宽松源站选路,否则就不能接收到该数据报)。
  3. 如果该路由器是最终目的,且指针不大于路径的长度,那么 ( 1)由ptr 所指定的清单中的下一个地址就是数据报的最终目的地址; (2)由外出接口(outgoing interface) 相对应的 I P地址取代刚才使用的源地址; (3)指针加4 。

这里写图片描述

9.2 选路的原理

IP搜索路由表的几个步骤:

1) 搜索匹配的主机地址;

2) 搜索匹配的网络地址;

3) 搜索默认表项

IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。这区别于选路策略,它只是一组决定把哪些路由放入路由表的规则。IP执行选路机制,而路由守护程序则一般提供选路策略。

每当初始化一个接口时(通常用ifconfig设置接口地址),就为接口自动创建一个直接路由。到达不直接相连的主机或网络必须以某种方式添加到路由表中,一个常用方式是:

  1. 在系统引导时显式地在初始化文件中运行route命令
  2. 运行路由守护程序。或者用较新的路由器发现协议

如果路由表中没有默认项,又没有找到匹配项,结果取决于该IP数据报是由主机产生还是被转发的。如果是本机产生的,那么久给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者“网络不可达差错”。如果是被转发的数据报,那么就给原始发送端发送一份ICMP主机不可达的差错报文。

9.3 ICMP主机与网络不可达差错

当路由器收到一份IP数据报但又不能转发时,就要发送一份ICMP“主机不可达”差错报文。

9.4 转发或不转发

一般都假定主机不转发IP数据报,除非对它们进行特殊配置而作为路由器使用。

大多数伯克利派生出来的系统都有一个内核变量ipforwarding,或其他类似的名字。一些系统(如BSD/386和SVR4)只有在该变量值不为0的情况下才转发数据报。

9.5 ICMP重定向差错

当IP数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送ICMP重定向差错报文给IP数据报的发送端。

重定向一般用来让具有很少选路信息的主机逐渐建立更完善的路由表。主机启动时路由表中可以只有一个默认表项。一旦默认路由发生差错,默认路由器将通知它进行重定向,并允许主机对路由表作相应的改动。

这里写图片描述

重定向报文有许多规则:

  1. 重定向报文只能由路由器生成,不能由主机生成
  2. 重定向报文是为主机而不是路由器使用的
  3. 路由器发应该发送的是对主机的重定向,而不是对网络的重定向。因为子网的存在使得难于准确指明何时应发送对网络的重定向。

9.6 ICMP路由器发现报文

在本章前面已提到过一种初始化路由表的方法,即在配置文件中指定静态路由(Route命令)。这种方法经常用来设置默认路由。另一种新的方法是利用ICMP路由器通告和请求报文。

主机在引导后会广播/多播一份路由器请求报文。另外,路由器会定期广播/多播传送他们的路由器通告报文,允许每个正在监听的主机更新它们的路由表。

这里写图片描述

这里写图片描述

## 路由器操作

当路由器启动时,它定期(一般不是定义,随机传送的,减少冲突)在所有广播或多播传送接口上发送通告报文。路由器还要监听来自主机的请求报文,并发送路由器通告报文以响应这些请求报文。

主机操作

主机在引导期间一般发送三份路由器请求报文,每三秒钟发送一次。一旦接收到一个有效的通告报文,就停止发送请求报文。

主机也监听来自相邻路由器的请求报文。这些通告报文可以改变主机的默认路由器。另外,如果没有接收到来自当前默认路由器的通告报文,那么默认路由器会超时。

路由器发现报文一般由用户进程(守护程序)创建和处理。

tcp/ip详解卷一(笔记1:概述与IP层协议) 文章目录1.概述1.1 分层1.2 网络中主机的地址与域名系统1.2.1 ip地址分类1.2.2 域名系统1.3 封装1.4 分用1.5 端口1.6 tcp/ip实现 、应用编程接口2. 链路层2.1 以太网和IEEE 802封装3. IP3.1 IP首部3.2 ip路由3.2.1 路由表的选路原则4. ARP4.1 arp 高速缓存4.2 arp 代理4.2.1 arp代理4.2.1 **代理... 阅读详情

相关推荐

TCP/IP详解:协议(网络层)

第三章:IP:网际协议 IP协议提供的是不可靠,,无连接的数据报传送服务 不可靠:(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP). 无连接:(connectionless)这个术

Jinming Su 8839

linux 用户切换到root命令

1. sudo -i 可以直接切换到root用户, 2. sudo passwd 设置新的密码。 win7 ssh 链接vm ubuntu 1.安装ssh服务器   sudo apt-get install openssh-server 2.启动ssh-server   /etc/init.d/ssh start 3.查看是否启动正常   netstat -tlp

tdoly的专栏 1222

读书笔记《TCP/IP详解卷一:协议》

第一章:概述 1.1 引言 1.2 分层 P1:TCP/IP通常被认为是一个四层协议系统 应用层 Telnet、FTP、email等 运输层 TCP和UDP 网络层 IP、ICMP、IGMP 链路层 设备驱动程序以及接口卡 P2:Telnet远程登录,FTP文件传输协议,SMTP简单邮件传送协议,SNMP简单网络管理协议

HYCANYE 2782

traceroute命令

traceroute命令 一、技术名词: IP协议 IP协议是TCP/IP协议族中最核心的部分,它的作用是在两台主机之间传输数据,所有上层协议的数据(HTTP、TCP、UDP等)都会被封装在一个个的IP数据包中被发送到网络上。 ICMP ICMP全称为互联网控制报文协议,它常用于传递错误信息,ICMP协议是IP层的一部分,它的报文也是通过IP数据包来传输的。 TTL TTL(time-...

魔教中人 1714

ArduSub程序学习(1)——ardupilot框架整理

AP_HAL层(硬件抽象层)是我们制作 ArduPilot 的方式可移植到许多不同的平台。有一个顶级AP_HAL libraries/AP_HAL,用于定义代码其余部分的接口 有针对具体的板子特性,然后就有了AP_HAL_XXX 子目录,例如,AP_HAL_AVR 用于基于 AVR 的 开发板,AP_HAL_PX4用于 Pixhawk 开发板和 AP_HAL_Linux 基于 Linux 开发板。工具目录tools directories工具目录是杂项支持目录。

weixin_49839886的博客 2811

基于Meteoinfo与TrajStat的后向轨迹聚类分析实战:从数据准备到可视化制图

本文详细介绍了基于Meteoinfo与TrajStat进行后向轨迹聚类分析的完整实战流程。从Java环境配置、Meteoinfo软件与TrajStat插件安装,到精准获取NOAA气象数据、设置参数进行批量轨迹计算,再到利用聚类分析提炼主要气流路径,并最终完成专业地图可视化与制图。文章旨在帮助环境与气象研究者快速掌握从数据准备到成果输出的全链路操作。

p4q5r6s7t的博客 804

day06–操作命令及系统目录

day06–操作命令及系统目录 1.目录结构 Linux目录结构:一切从根开始。 Windows目录结构:从盘符开始 Linux挂载:让用户可以将一个目录作为一个存储设备的挂载点,通过挂载点可以查看存储的数据。 挂载光驱: [root@zzx-centos-7 ~]# ls -l /dev/cdrom //找到光驱目录 lrwxrwxrwx. 1 root root 3 Apr 2 08:11 /dev/cdrom -> sr0 [root@zzx-centos-7 ~]# ls /mnt

weixin_44828943的博客 175

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 952

【Linux】网络诊断 traceroute命令详解

首先它发送一份TTL字段为1的IP数据包给目的主机,处理这个数据包的第一个路由器将TTL值减1,然后丢弃该数据报,并给源主机发送一个ICMP报文(“超时”信息,这个报文包含了路由器的IP地址,这样就得到了第一个路由器的地址),然后traceroute发送一个TTL为2的数据报来得到第二个路由器的IP地址,继续这个过程,直至这个数据报到达目的主机。,第1跳路由器收到后,查看目的地址进行转发,转发前会将TTL会减1,减完后TTL=0,就丢弃该数据包,并向客户端返回TTL超时的ICMP报文。

康师傅没有眼泪 1万+

HDRP shader 获取阴影(Custom Pass)

Unity:2021.3.0f1 HDRP:12.1.6

LanQ的博客 2097

极简JEPA世界模型实战:低门槛复现LeWorldModel,CPU可跑

这次我们来看一个能让普通开发者真正上手跑起来的“世界模型”项目。如果你对Yann LeCun提出的JEPA(联合嵌入预测架构)框架感兴趣,但又苦于Meta官方实现过于庞大复杂,那么这个GitHub上4k star的项目就是为你准备的。它用极简的PyTorch代码(核心文件仅160-278行)完整复刻了包括LeWorldModel在内的五个JEPA核心变体,最大的亮点是: 门槛极低,普通笔记本甚至CPU就能跑,显存占用友好,非常适合学习和原理验证。 这个项目名为 keon/jepa ,完全开源。它剥离了工业级

weixin_29031161的博客 421

TCP/IP详解——ICMP协议,Ping程序,Traceroute程序,IP源站选路选项

Internet 控制消息协议 ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。ICMP通常被IP层或者更高层的协议(TCP/IP)使用。一些ICMP报文把差错报文返回给用户进程。(告诉应用程序网络上存在什么问题)

来日可期的博客 3382

基于Simulink的基于MPC的实时ZMP约束步态优化仿真

本文完成了基于Simulink的MPC实时ZMP约束步态优化仿真,实现了:✅ 建立3D-LIPM预测模型✅ 设计带ZMP可行域约束的MPC优化器✅ 实现闭环实时求解与扰动抑制✅ 验证强鲁棒性与安全性✅ 为人形机器人野外行走、人机交互提供先进控制方案。

xiaoheshang_123的博客 85

#TCP/IP# TCP IP详解 卷1:协议-第8章Traceroute程序

8.1 引言 由Van Jacobson编写的Tr a c e r o u t e程序是一个能更深入探索T C P / I P协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的I P数据报具有相同的路由,但是大多数情况下这样的。Tr a c e r o u t e程序可以让我们看到I P数据报从一台主机传到另一台主机所经过的路由。Tr a c e r o u t e程序还可以让我们使...

潇汀 3万+

Access查询中的Dlookup函数的妙用

在Microsoft Access中,处理和分析数据的过程中,常常会遇到需要根据条件从其他记录中提取特定数据的情况。这时候,Dlookup函数就成了开发者和数据分析师的得力助手。今天我们将通过一个具体的实例,详细探讨如何利用Dlookup函数来解决复杂的查询问题。

m0_62153576的博客 294

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8716

《TCP/IP 卷1》笔记:Traceroute程序

Traceroute程序 引言 Traceroute程序是了解TCP/IP协议的工具。可以看到IP数据报从一台主机传到另一台主机所经过的路由。 Traceroute的操作 IP的数据报中,有一个选项字段。IP记录路由选项(RR)。已经有了记录路由选项的功能还要单独开发一个Traceroute程序呢? 因为IP记录路由选项(RR),需要每个路由器把自己的ip放入选项字段,但是IP首部的选项字段最多只...

cjdjcdj的博客 846

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

《TCP/IP详解 卷1:协议》读书笔记

《TCP/IP详解 卷1:协议》读书笔记 第一章 概述 协议栈 应用层 HTTP,FTP   运输层 TCP, UDP 段(Segment) 网络层 IP, ICMP, IGMP 数据报(Datagram) 链路层   帧(Frame) 物理层  

2320

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TCP/IP协议详解 卷1 Traceroute程序

作用 可以让我们看到IP数据报从1台主机传到另一台主机所经过的路由。比Ping程序看到更多东西 优势 不是所有路由器都支持RR选项。所以有些路由器上会出现不记录IP的现象。Traceroute不需要路由器具备任何特殊的功能 RR选项的数据报的目的Ping服务器(主机)会将接受到的RR清单Copy回去。然后再加上回去的IP清单。这样就是X2。这会收到一些限制 IP首部的空间有限,不能存放太多的IP...

@凌晨三点半的博客 428

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

《TCP/IP详解 卷1:协议》之第七、八章:Ping && Traceroute

记录学习笔记:《TCP/IP详解 卷1:协议》之第七、八章:Ping && Traceroute

qq_53619687的博客 1737

TCP/IP协议详解卷1-ping,traceroute程序

 卷1第七、八章第七章是Ping程序的基本原理,第八章是traceroute( Win2000下是tracert)的原理。主要介绍的是一些原理性的东西,并以实际的tcpdump的抓包的内容作解释。ping 程序是利用icmp的回复请求来探测远端主机是否可达。(并不能继续判断端口是否可达。要想查看端口,就要使用扫描器了。)win2000里的网络库里已经提供网络函数库(icmp.dll)可以实现利用i

2233

TCP/IP详解 卷1:协议 学习笔记 第八章 Traceroute程序

尽管不能保证从源端发往目的端的两份连续的IP数据报有相同路由,但大多情况下是这样的。Traceroute可让我们看到IP数据报从一台主机传到另一台主机所经过的路由,还可让我们使用IP源路由选项。 有了IP首部的RR选项,但还是使用Traceroute的理由: 1.不是所有路由器都支持RR选项。 2.RR一般是单向的选项,发送端设置后,接收端必须从收到的IP首部中提取出信息,再全部返回给发送端。这样使记录下来的IP地址翻了一番。而Traceroute程序只需在目的端运行一个UDP模块,不需要特殊的服务器应用程

tus00000的博客 1439

TCP/IP——Ping、IP选项(Tracerouter、IP源站选路)

一、Ping Ping目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答 可以用ping程序来确定问题出在哪里,测出到这台主机的往返时间 一台主机的可达性可能不止取决与IP层是否可达,还取决于使用何种协议以及端口号。Ping程序的运行结果可能显示某台主机不可达,但telnet却可以。 对于某些ICMP查询报文,服务器必须响应标识符和序列号,发的...

weixin_44233369的博客 2458

《TCP/IP详解 卷1:协议》读书笔记 第8章 Traceroute程序

Traceroute程序

山洞拐 710

TCP/IP协议详解卷一:Chapter8 笔记

TCP/IP协议详解卷一:Chapter8 笔记Chapter 8 Traceroute 程序8.2节 Traceroute程序的操作8.3节 局域网输出8.5节 IP源站选路选项 Chapter 8 Traceroute 程序 Traceroute程序可以显示IP数据报从一台主机传到另一台主机所经过的路由。相对于IP记录路由RR选项,使用Traceroute程序而不是前者主要有以下三个原因: Traceroute程序不要求中间路由器具备任何特殊的或可选的功能; 记录路由一般是单向的选项。大多数的Ping

Sebastien23的博客 444

《TCP/IP协议详解 卷1》--- Traceroute程序

Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。 Traceroute程序还可以让我们使用IP源路由选项。 Traceroute程序的操作 当路由器收到一份IP数据报,如果其TTL字段是0或1,则路由器不转发该数据报,相反,路由器将该数据报丢弃,并给信源 机发一份ICMP“超时”信息。Traceroute程序的关键在于包含这份ICMP信息的IP报文的信...

新博客:https://aping-dev.com/ 552
上一篇: Common.Logging的输出配置
下一篇: TCP/IP详解卷1:协议(七)【动态选路协议 , UDP:用户数据报协议】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值