如何理解 IP 数据报中的 TTL?

ttl


目录

    • 前言
    • 理解


前言

面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首部的固定部分,这个 TTL 指的就是数据报在网络环境中的“生存时间”

理解

TTL 是“生存时间”的英文缩写(Time To Live),共占 8 位,由发出数据报的源点进行设置,目的是为了防止无法交付的数据报无限制存在于互联网中,从而耗费网络资源。TTL 最初的设计是以“秒”为单位,数据报每进过一个路由器就把 TTL 减去数据报在路由器所消耗的时间。当 TTL 值减为 0 时,就丢弃这个数据报。

而现在的计算机网络中 TTL 的单位已经不再是“秒”,而是“跳数”,其含义就是数据报在互联网中可以经过的路由器数量,由于 TTL 占 8 位,因此,数据报可在互联网中可经过的路由器数量的最大值为 255。

不同操作系统中,默认的 TTL 不一样,常见默认值如下:

操作系统 / 设备默认 TTL 值
Windows128
Linux / Unix64
Cisco 路由器255
Solaris255
FreeBSD / macOS64
Android64

TTL 默认值是否可修改?答案是“可以”,以 Linux 系统为例。

查看当前值:

cat /proc/sys/net/ipv4/ip_default_ttl

image-20250606165308416

临时修改:

echo 128 > /proc/sys/net/ipv4/ip_default_ttl

永久修改:

echo 'net.ipv4.ip_default_ttl = 128' >> /etc/sysctl.conf
sysctl -p

那如何直观理解 TTL 跳数?我们继续举个例子,比如我 ping www.baidu.com

image-20250606165356556

上图显示 TTL=52 表示 ICMP 数据报经过了 64 - 52 = 12 个路由器。

验证是不是 12 个路由器:

[root@ism ~]# traceroute -T www.baidu.com
traceroute to www.baidu.com (183.2.172.17), 30 hops max, 60 byte packets1  _gateway (172.17.10.1)  0.482 ms * *2  192.168.11.1 (192.168.11.1)  0.418 ms * *3  * * *4  * * *5  * * *6  * * *7  113.96.4.234 (113.96.4.234)  38.721 ms * *8  * * *9  14.29.117.178 (14.29.117.178)  30.439 ms  32.970 ms  34.381 ms
10  * * *
11  * * *
12  * * *
13  183.2.172.17 (183.2.172.17)  34.743 ms  35.205 ms *

traceroute 输出中,最后成功到达目标主机 183.2.172.17 是在第 13 跳

说明:

172.17.10.1:这是我本地的三层交换机,具备网络层,所以这里 TTL 会 -1

192.168.11.1:这是我本地的路由器,这里 TTL 也会 -1

所以:

  • 数据报在到达目标前经过了 12 个路由器(即跳数为 12);
  • 第 13 个 TTL 的数据包才到达目标主机;
  • TTL 初始值如果是 64,那么最终在目标返回时,你会在 ping 等工具里看到 ttl=52(64 - 12),如上图所示;
  • 实际中,跳数大于 30 就很少见了,一般公网路径 10~20 跳是常见范围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java学习笔记】StringBuilder类(重点)

StringBuilder(重点) 1. 基本介绍 是一个可变的字符串序列。该类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的) 该类被设计用作 StringBuffer 的一个简易替换,用在字符…

计算机网络 | 1.2 计算机网络体系结构与参考模型

计算机网络体系结构与参考模型 目录 计算机网络体系结构与参考模型 【思维导图】 1、计算机的分层结构 1、为什么要分层? 2、什么是计算机网络体系结构 2、计算机网络协议、接口和服务 1)协议: 2)接口: 3…

微软的新系统Windows12未来有哪些新特性

在今年即将到来的重大设计升级中,苹果计划对其全线操作系统统一按年份命名,作为另一巨头微软的win12还远吗?win11和win10是微软现在正在用的主流版本,win11系统发布于2021年6月24日,win10系统发布于2015年7月29日。预计win12尝鲜版可能在2025年下半年或明年。 尽管win12还…

制造业数智化卡在知识断层?R²AIN SUITE AI知识管理打通关键经络

在一家工厂里,工程师正面临棘手难题——某机器异常振动的处理方案。他的笔记本记录着三年前类似案例的解决方案,但翻查半小时仍未找到关键参数。与此同时,工厂的碳排放监控系统显示,因设备停机导致的额外能源损耗已使产线碳强度有…

构造数列中的常见变形总结

前情概要 针对高考中构造数列的常见变形做一总结,便于梳理思路,提升思维。 类型Ⅰ: 形如 a n + 1 = p ⋅ a n + q a_{n+1}=p\cdot a_n+q an+1​=p⋅an​+q, p , q p,q p,q为常数,即 a n + 1 = f ( a n ) a_{n+1}=f(a_n) an+1​=f(an​),构造变形方向: 其一: a n…

全国县域统计年鉴PDF-Excel电子版-2022年

全国县域统计年鉴PDF-Excel电子版-2022年.ziphttps://download.csdn.net/download/2401_84585615/89784662 https://download.csdn.net/download/2401_84585615/89784662 《中国县域统计年鉴》是一部全面反映中国县域社会经济发展状况的资料性年鉴。自2014年起,该年…

81 实战一:给root目录扩容

添加一块100G硬盘 vgextend centos /dev/sdb1 /dev/sdc lvextend -L +120G /dev/centos/root xfs_growfs /dev/centos/root df -h 看是否扩容成功 82 实战二:给swap空间扩容 添加一块20G硬盘 fdisk -l 可以看到新添加的硬盘 vgextend centos /dev/sdd …

实现购物车微信小程序

实现一个微信小程序购物车页面,包含以下功能: 需求说明: 商品列表:显示商品名称、价格、数量加减按钮,支持修改商品数量(数量≥1)。 全选 / 反选功能:顶部 “全选” 复选框&#…

R语言使用随机过采样(Random Oversampling)平衡数据集

随机过采样(Random Oversampling)是一种用于平衡数据集的技术,常用于机器学习中处理类别不平衡问题。当某个类别的样本数量远少于其他类别时(例如二分类中的正负样本比例悬殊),模型可能会偏向多数类&#x…

【力扣】2434.使用机器人打印字典序最小的字符串

1、题目描述: 2、测试用例: 3、解题思路 每次删除字符串s的第一个字符,可以将s看做队列,每次从头部出。在t的尾端插入或删除,可以将t看做栈栈顶元素出栈条件:①比即将入栈的元素小并且比s中剩下的还没有入…

业务材料——半导体行业MES系统核心功能工业协议AI赋能

一、前置概念 半导体行业 半导体行业主要生产基于半导体材料(如硅、锗、化合物半导体等)的电子元器件及相关产品,广泛应用于计算、通信、能源、医疗等领域。 MES系统 MES系统(Manufacturing Execution System,制造…

视频的分片上传,断点上传

​ 上传功能的实现,点击上传按钮,判断添加的文件是否符合要求,如果符合把他放入文件列表中,并把他的状态设置为等待中,对于每个文件,把他们切分为chunksize大小的文件片段,再检查他的状态是否为…

指针的定义与使用

1.指针的定义和使用 int point1(){//定义指针int a 10;//指针定义语法&#xff1a; 数据类型 * 指针变量名int * p;cout << "sizeof (int(*)) --> " << sizeof(p) << endl;//让指针记录变量a的地址 & 取址符p &a ;cout << &qu…

Git开发实战

本文对开发中git的常用概念和操作做一个总结。参考绿毛鸭子的部分内容。 git分布式的体现 1.本地完整的版本库&#xff1a; 每个克隆下来的 Git 仓库都包含了项目的所有历史记录、提交、分支等信息。这意味着每个开发者的本地仓库是一个完整的版本控制系统&#xff0c;包括…

ingress-nginx 开启 Prometheus 监控 + Grafana 查看指标

环境已经部署了 ingress-nginx&#xff08;DaemonSet 方式&#xff09;&#xff0c;并且 Prometheus Grafana 也已经运行。但之前 /metrics 端点没有暴露 Nginx 核心指标&#xff08;如 nginx_ingress_controller_requests_total&#xff09;&#xff0c;经过调整后现在可以正…

ThinkPHP 5.1 中的 error 和 success 方法详解

1、success() 方法 public function someAction() {// 操作成功逻辑...return $this->success(操作成功, 跳转地址, 额外数据); } 参数说明 参数类型说明默认值msgstring成功提示信息空字符串urlstring跳转URLnull (不跳转)datamixed返回的额外数据nullwaitinteger跳转等…

抗辐照MCU在卫星载荷电机控制器中的实践探索

摘要:在航天领域&#xff0c;卫星系统的可靠运行对电子元件的抗辐照性能提出了严苛要求。微控制单元&#xff08;MCU&#xff09;作为卫星载荷电机控制器的核心部件&#xff0c;其稳定性与可靠性直接关系到卫星任务的成败。本文聚焦抗辐照MCU在卫星载荷电机控制器中的应用实践&…

计算机视觉——相机标定

计算机视觉——相机标定 一、像素坐标系、图像坐标系、相机坐标系、世界坐标系二、坐标系变换图像坐标系 → 像素坐标系相机坐标系 → 图像坐标系世界坐标系 → 相机坐标系 ⋆ \star ⋆ 世界坐标系 → 像素坐标系 三、相机标定 一、像素坐标系、图像坐标系、相机坐标系、世界坐…

好未来0520上机考试题1:括号的最大嵌入深度

题目 &#xff08;LeetCode 1614.括号的最大嵌入深度&#xff09; 给定 有效括号字符串 s&#xff0c;返回 s 的嵌套深度。嵌套深度是嵌套括号的最大数量。 示例 1&#xff1a; 输入&#xff1a;s "(1(2*3)((8)/4))1" 输出&#xff1a;3 解释&#xff1a;数字…

MySQL复杂SQL(多表联查/子查询)详细讲解

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 MySQL复杂SQL&#xff08;多表联查/子查询&a…