首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在boost asio icmp示例中的icmp请求包中设置了一个小ttl时,icmp应答包中的标识符为零

在boost asio icmp示例中,当你设置了一个小的TTL(Time to Live)值时,ICMP应答包中的标识符为零。

ICMP(Internet Control Message Protocol)是一种网络协议,用于在IP网络中传递控制消息和错误报告。在网络通信中,当一个主机发送一个ICMP请求包时,它会在包头中设置一个标识符字段,用于唯一标识这个请求。当目标主机收到请求后,会生成一个ICMP应答包,并将标识符字段设置为与请求包相同的值,以便发送方可以将应答与请求进行匹配。

然而,在boost asio icmp示例中,当你设置了一个小的TTL值时,可能会导致ICMP应答包中的标识符为零。这是因为TTL值是IP包头中的一个字段,用于限制数据包在网络中的传输跳数。当TTL值减少到零时,路由器会丢弃该数据包并发送一个ICMP超时消息给发送方。在这种情况下,ICMP应答包中的标识符可能会被设置为零,因为发送方并没有收到完整的ICMP请求包。

为了解决这个问题,你可以尝试增加TTL值,或者使用其他工具或库来发送ICMP请求包并接收应答包,以确保标识符字段的正确性。

腾讯云提供了一系列与云计算相关的产品和服务,包括云服务器、云数据库、云存储等。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

网络诊断工具:ICMP、Ping 和 Traceroute 原理与应用

可变字段:这部分内容根据ICMP消息类型和代码不同而有所不同。例如,回显请求和回显应答,这部分包含了一个标识符和序列号。...需要进行分片但设置不分片位(Code 4):数据太大,需要分片,但IP头部不分片(DF)标志被设置。...代码字段设置 0。 校验和字段,用于错误检测。 标识符和序列号,用于标识回应请求。 可选数据部分,通常包含时间戳和额外填充数据,以帮助测量往返时间。...处理应答:如果目标设备可达并正确配置,它将接收到 ICMP 回显请求,并发送一个 ICMP 回显应答消息回来。这个应答消息类型字段设置 0(表示回显应答)。...它通过发送一系列ICMP回显请求消息,每个消息生存时间(TTL)逐渐增加,从1开始。每当数据经过一个路由器,其TTL减1,当TTL减至0,路由器会丢弃该并发送一个ICMP超时响应回原始发送者。

30920

ICMP报文详解

应答系统收到请求报文填写接收时间戳,发送应答填写发送时间戳。大多数实现是把后面两个字段都设成相同值。 3>主机使用ICMP地址掩码请求报文可向子网掩码服务器得到某个接口地址掩码。...系统广播它ICMP请求报文。ICMP报文中标识符和序列号字段由发送端任意选择设定,这些值应答中将被返回,这样,发送端就可以把应答请求进行匹配。...3.ICMP回显请求和回显应答报文格式: 1>Unix系统实现ping程序时把ICMP报文中标识符字段置成发送进程ID号。...当应答返回,用当前时间减去存放在ICMP报文中时间值,即是往返时间。 4>当返回ICMP回显应答,要打印出序列号和TTL,并计算往返时间。TTL位于IP首部生存时间字段。...ping程序通过ICMP报文数据段存放发送请求时间值来计算往返时间。当应答返回,用当前时间减去存放在ICMP报文中时间值,即是往返时间。

2.5K30
  • HCNP学习笔记之ICMP协议与ping原理以及用Python实现ping

    由数据链路层所能发送最大数据帧,即MTU(Maximum Transmission Unit)1500,计算易知ICMP协议实际传输数据:20字节IP首部 + 8字节ICMP首部+ 1472...这个往返时间计算方法是:ping命令发送ICMP报文将当前时间值存储ICMP报文中发出,当应答报文返回,使用当前时间值减去存放在ICMP报文数据存放发送请求时间值来计算往返时间。...ping返回接受到数据报文字节大小、TTL值以及往返时间。 Unix系统实现ping程序时是把ICMP报文中标识符字段置成发送进程 ID号。... UDP(后面就 知道 UDP 是什么)数据,而经过一个路由器收到这个数据以后,就自动把 TTL 减1,而 TTL 变为0以后,路由 器就把这个包给抛弃,并同时产生 一个主机不可达...未到达超时时间之前socket处于阻塞状态一直等待响应,当有数据传回就接受响应,然后提取包含标识符IDICMP报文首部和包含发送时间值ICMP内容部分,计算请求-响应延时间隔。

    1.4K40

    Icmp protocol

    我们可以用tcpdump来抓取icmp数据就可以看到整个数据本来面目。 1.ICMP协议: ICMP经常被认为是IP层一个组成部分,它传递差错报文以及其他需要注意信息。...(一般发送时间戳和接收时间戳一般设成相同值) 往返时间rtt(round trip time)是应答时间-发送时间 生存时间ttl(time to live)是IP首部一个字段,指的是报文能够在网络存活时间...每经过一个路由器ttl值就减1,当减到0,这个数据就被路由器抛弃。...UNIX ICMP报文中会把标识符字段设置发送进程id号,这样的话可以同一台主机上同时运行多个ping程序。 客户程序应答请求之间进行匹配是通过序列号字段实现。...当数据报到达目的端,IP地址清单都会被复制到ICMP回显应答,这样用户就可以通过ping输出信息查看目的主机IP

    1.3K10

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

    ICMP 回送请求和回送应答报文 相比原生 ICMP,这里多了两个字段: 标识符:用以区分是哪个应用程序发 ICMP ,比如用进程 PID 作为标识符; 序号:序列号从 0 开始,每发送一次新回送请求就会加...ICMP 时间超过消息 此外,有时可以用 TTL 控制到达范围,例如设置一个较小 TTL 值。...主机 B 会构建一个 ICMP 回送响应消息数据,回送响应数据类型字段 0,序号为接收到请求数据序号,然后再发送出去给主机 A。 ?...比如,将 TTL 设置 1,则遇到第一个路由器,就牺牲,接着返回 ICMP 差错报文网络,类型是时间超时。...接下来将 TTL 设置 2,第一个路由器过了,遇到第二个路由器也牺牲,也同意返回了 ICMP 差错报文数据,如此往复,直到到达目的主机。

    77120

    所谓 ICMP,不过将军与士卒而已

    地址,而主机 B 都关机自然也就无法应答这个请求报文。...ping 也并不是啥事也没做,它在 ICMP 报文格式又添加了两个字段:标识符和序号。这俩其实很好理解: 1)标识符用来区分是哪个应用程序发 ICMP 。...设置 IP 生存周期主要目的,是为了路由控制遇到问题发生循环状况,避免 IP 无休止地在网络上被转发。...比如说,将 TTL 设置 1,那么遇到第一个路由器时候,这个 IP 数据报就会被丢弃,接着返回 ICMP 差错报文,类型是 ICMP 超时消息。...接下来将 TTL 设置 2,第一个路由器过了,遇到第二个路由器这个 IP 数据报就会被丢弃,接着返回ICMP 差错报文。 ...... 这样,traceroute 就拿到了所有路由器 IP。

    44820

    你知道ping命令是如何工作吗?

    选项数据,ping 还会存放发送请求时间值,来计算往返时间,说明路程长短。 五、差错报文 根据什么是ICMPICMP如何工作?...是原点抑制。 11-ICMP超时 为了限制IP数据包在计算机网络存在时间,我们给数据设计一个TTL,能够避免IP包在网络无限循环和收发,节省了网络资源。...Traceroute 一个作用为故意设置特殊 TTL,来追踪去往目的地沿途经过路由器。...思路很骚啊~我给你慢慢道来: 先设置TTL1,数据到第一个路由器就嗝屁,临死前把第一个路由器IP搞到手。返回时间超时ICMP差错报文。...然后设置TTL2,数据到第二个路由器嗝屁,临死前把第二个路由器IP搞到手。 再设置TTL3… 以此类推,直到到达目的主机,如此就拿到了线路上所有路由器IP。

    37230

    给我图解一下ping工作原理!

    ICMP 回送请求和回送应答报文 相比原生 ICMP,这里多了两个字段: 标识符:用以区分是哪个应用程序发 ICMP ,比如用进程 PID 作为标识符; 序号:序列号从 0 开始,每发送一次新回送请求就会加...ICMP 原点抑制消息目的就是为了缓和这种拥堵情况。 当路由器向低速线路发送数据,其发送队列缓存变为而无法发送出去,可以向 IP 源地址发送一个 ICMP 原点抑制消息。...主机 B 会构建一个 ICMP 回送响应消息数据,回送响应数据类型字段 0,序号为接收到请求数据序号,然后再发送出去给主机 A。 ?...比如,将 TTL 设置 1,则遇到第一个路由器,就牺牲,接着返回 ICMP 差错报文网络,类型是时间超时。...接下来将 TTL 设置 2,第一个路由器过了,遇到第二个路由器也牺牲,也同意返回了 ICMP 差错报文数据,如此往复,直到到达目的主机。

    2K10

    ICMP报文类型

    大家好,又见面,我是你们朋友全栈君。 日常开发,我们经常会碰到查询网络是否畅通以及域名对应 IP 地址等需求,这时候用最多应该就是 ping 命令。...,最常用类型是主动请求,代码 8,主动请求应答,代码 0。...应答数据类型字段 0,顺序号为接收到请求数据顺序号。 将应答数据发给主机 A。     规定时间内,源主机如果没有接到 ICMP 应答,则说明目标主机不可达。...将 TTL 设置成 1 ,表示这个数据 MP 1,碰到第一个“拦路虎”(通常是路由器或一个其它类型关卡)就会阵亡了,然后就会返回一个 ICMP ,这个就是 网络差错,类型是时间超时。...如果中间遇到窄关卡就会被卡主,返回 ICMP 网络差错,类型是“需要进行分片但设置不分片”。就这样,每次收到ICMP“不能分片”差错就减小分组长度,从而确定整个路径 MTU。

    64120

    ping(8) command

    3.选项说明 -4 只使用 IPv4 -6 只使用 IPv6 -A 探测发送间隔自适应往返时间,这样网络存在应答探测请求一般不会超过一个 -a   每次发送数据发出鸣响(Audible...请求分配一个 20 比特 flow label。如果 FLOW_LABEL 0,内核会随机分配 -f   采用洪泛模式大量且快速地向目标发送数据。...只有超级用户可以将间隔设置小于0.2 秒值 -L 抑制组播报文回送,只适用于 ping 目标一个组播地址 -l PRELOAD 没有接受到回复报文之前能发送最多报文。...PMTUDISC_OPT 取值可以为 do(不允许分段,甚至不允许本地分段)、want(找出 PMTU,如果太大就在本地分段) 或 dont(不要设置 IP 首部 DF 位,即允许分段) -...当我使用 ping 命令,返回结果里会带一个 TTL 值。

    33640

    ICMP报文分析

    应答系统收到请求报文填写接收时间戳,发送应答填写发送时间戳。大多数实现是把后面两个字段都设成同样值。 3>主机使用ICMP地址掩码请求报文可向子网掩码server得到某个接口地址掩码。...系统广播它ICMP请求报文。ICMP报文中标识符和序列号字段由发送端随意选择设定,这些值应答中将被返回,这样,发送端就能够把应答请求进行匹配。...3.ICMP回显请求和回显应答报文格式: 1>Unix系统实现ping程序时把ICMP报文中标识符字段置成发送进程ID号。...当应答返回,用当前时间减去存放在ICMP报文中时间值,即是往返时间。 4>当返回ICMP回显应答,要打印出序列号和TTL,并计算往返时间。TTL位于IP首部生存时间字段。...ping程序通过ICMP报文数据段存放发送请求时间值来计算往返时间。当应答返回,用当前时间减去存放在ICMP报文中时间值,即是往返时间。

    1.3K10

    ICMP协议分析-ping和traceroute

    ,不同类型有不同代码,最常用类型是主动请求,代码 8,主动请求应答,代码 0。...同理,主动请求回复,称为ICMP ECHO REPLY。比起原生 ICMP,这里面多了两个字段,一个标识符,另一个是序号。...应答数据类型字段 0,顺序号为接收到请求数据顺序号。 将应答数据发给主机 A。     规定时间内,源主机如果没有接到 ICMP 应答,则说明目标主机不可达。     ...将 TTL 设置成 1 ,表示这个数据 MP 1,碰到第一个“拦路虎”(通常是路由器或一个其它类型关卡)就会阵亡了,然后就会返回一个 ICMP ,这个就是 网络差错,类型是时间超时。...如果中间遇到窄关卡就会被卡主,返回 ICMP 网络差错,类型是“需要进行分片但设置不分片”。就这样,每次收到ICMP“不能分片”差错就减小分组长度,从而确定整个路径 MTU。

    82100

    用户空间协议栈设计和netmap综合指南,将网络效率提升到新高度

    CRC 校验和,包括数据在内整个 ICMP 数据报检验和 ID 标识符,将发送进程 ID 号放置标识符字段,这样即使主机上运行了多个 ping 程序,ping 程序也可以识别出返回信息。...向目的服务器发送回显请求,目的服务器发送回显应答;计算发送回显请求数据时间与接收到回显应答数据时间差,就是数据一去一回所需要时间。 (2)traceroute命令。...1.8、TTL概念 TTL,全称Time To Live,即存活时间;指一个数据可传递最长距离(跃点数)。 当一个数据经过一个路由器TTL减一;当TTL=0路由器就会取消数据转发。...bpf、ebpf等 4.2、长数组 长数组,顾名思义,就是长度数组。一般GUN C中使用,其他编译器使用可能会报错或警告。 长度数组一个特点是它不占用内存存储空间。...-I /netmap/sys/ 4.5、协议栈实现代码示例 示例简单实现arp、icmp、udp协议栈;其他协议实现类似。

    9500

    网络协议 5 - ICMP 与 ping:投石问路侦察兵

    ICMP 报文有很多类型,不同类型有不同代码,最常用类型是主动请求,代码 8,主动请求应答,代码 0。从大方面看可以分为 查询报文类型和差错报文类型。...同理,主动请求回复,称为ICMP ECHO REPLY。比起原生 ICMP,这里面多了两个字段,一个标识符,另一个是序号。...应答数据类型字段 0,顺序号为接收到请求数据顺序号。 将应答数据发给主机 A。     规定时间内,源主机如果没有接到 ICMP 应答,则说明目标主机不可达。     ...将 TTL 设置成 1 ,表示这个数据 MP 1,碰到第一个“拦路虎”(通常是路由器或一个其它类型关卡)就会阵亡了,然后就会返回一个 ICMP ,这个就是 网络差错,类型是时间超时。...如果中间遇到窄关卡就会被卡主,返回 ICMP 网络差错,类型是“需要进行分片但设置不分片”。就这样,每次收到ICMP“不能分片”差错就减小分组长度,从而确定整个路径 MTU。

    1K31

    Linux 命令(109)—— ping 命令

    3.选项说明 -4 只使用 IPv4 -6 只使用 IPv6 -A 探测发送间隔自适应往返时间,这样网络存在应答探测请求一般不会超过一个 -a   每次发送数据发出鸣响(Audible...请求分配一个 20 比特 flow label。如果 FLOW_LABEL 0,内核会随机分配 -f   采用洪泛模式大量且快速地向目标发送数据。...只有超级用户可以将间隔设置小于0.2 秒值 -L 抑制组播报文回送,只适用于 ping 目标一个组播地址 -l PRELOAD 没有接受到回复报文之前能发送最多报文。...PMTUDISC_OPT 取值可以为 do(不允许分段,甚至不允许本地分段)、want(找出 PMTU,如果太大就在本地分段) 或 dont(不要设置 IP 首部 DF 位,即允许分段) -...当我使用 ping 命令,返回结果里会带一个 TTL 值。

    15.2K22

    ICMP 协议分析

    3.1 ICMP 差错报文类型分析: 1、ICMP 目标不可达消息:IP 路由器无法将 IP 数据报发送给目的地址,会给发送端主机返回一个目标不可达 ICMP 消息,并在这个消息显示不可达具体原因...3、ICMP 超时消息:IP 数据中有一个字段 TTL(Time to live,生存周期),它值随着每经过一个路由器就会减 1,直到减到 0 该 IP 数据包被丢弃。...ICMP 回显请求ICMP 回显应答报文是配合工作。当源主机向目标主机发送了 ICMP 回显请求数据后,它期待着目标主机回答。...目标主机收到一个 ICMP 回显请求数据后,它会交换源、目的主机地址,然后将收到 ICMP 回显请求数据数据部分原封不动地封装在自己 ICMP 回显应答数据,然后发回给发送 ICMP...其原理很简单,开始发送一个 TTL 字段 1 UDP 数据报,而后每次收到 ICMP 超时后,按顺序再发送一个 TTL 字段加 1 UDP 数据报,以确定路径每个路由器,而每个路由器丢弃

    1.5K10

    计算机网络面试题整理

    TTL最大值是255,TTL一个推荐值是64 3.TTL原理 虽然TTL从字面上翻译,是可以存活时间,但实际上TTL是IP数据包在计算机网络可以转发最大跳数。...TTL字段由IP数据发送者设置IP数据从源到目的整个转发路径上 每经过一个路由器,路由器都会修改这个TTL字段值,具体做法是把该TTL值减1,然后再将IP包转发出去。...如果在IP到达目的IP之前,TTL减少0,路由器将会丢弃收到TTL=0IP``并向IP发送者发送ICMP 发送超时报文。...B电脑应答ARP请求,向A电脑发起单向应答,告诉A电脑自己MAC地址90:A4:DE:C2:DF:FE 知道MAC地址后,开始进行真正ping请求,由于B电脑可以根据A电脑发送请求知道源MAC...ICMP协议是一种面向无连接协议,它是TCP/IP协议族一个子协议,用于IP主机、路由器之间传递控制消息。ICMP一个网络层协议。

    46430

    ping 之后,计算机背后都做了些什么

    ,但是 ICMP 传输是被封装在 IP 报文内部,原因也很简单,没有 IP 协议,怎么知道你要把报文传给谁呢,IP 协议就相当于一个信封。...也就是说: 不妨让大脑牢记一下这个图: 现在来看下 ICMP 报文格式: 但是 ICMP 回显请求和回显应答报文,又多了一些标识符和序号两个固定字段: 标识符有什么用呢?...从上述 ping 结果看,处理序号,还有 ttl 和 time,ttl 就是 time to live,指的是报文在网络能够存活限制,就是当报文在网络中转发,每经过一个路由点,就把预先设定这个...time 就是往返时间,ping 程序通过 ICMP 报文数据存放发送请求时间值,当应答返回,用当前时间减去存放在 ICMP 报文中时间值,即是往返时间。...ping 是域名,但 ping 输出第一行包括目的主机 IP 地址,说明发送 ICMP 报文之前,还请求 DNS 服务器。

    1.1K10

    ICMP 协议「建议收藏」

    原因是,通信途中某处一个路由器由于不能处理所有的数据,就将数据一个一个丢弃。或者,虽然到达对方,但是由于搞错了端口号,服务器软件可能不能接受它。...响应请求 我们日常使用最多ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败...而且选项数据字段里,将填入原先数据IP 首部和ICMP 开始8 字节。正如ping 命令时候看到ICMP 回送请求先头8 字节里包含了标识符和序号字段。...,对整个网络影响非常少; 第二种方法就是主机上设置ICMP数据处理规则,最好是设定拒绝所有的ICMP数据。...设置ICMP数据处理规则方法也有两种: 一种是操作系统上设置过滤; 另一种是主机上安装防火墙。

    1.9K41

    TCP-IP详解卷1:协议 学习笔记(6) Ping

    Unix系统实现ping程序时是把ICMP报文中标识符字段设置成发送进程ID号,这样即使同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回信息。...序列号从0开始,每发送一次新回显请求就加1.ping程序打印出返回每个分组序列号,允许我们查看是否有分组丢失、失序或重复。 当返回ICMP回显应答,要打印出序列号和TTL,并计算往返时间。...ping程序通过ICMP报文数据存放发送请求时间值来计算往返时间。当应答返回,用当前时间减去存放在ICMP报文中时间值。 ping程序提供查看IP记录路由(RR)选项机会。...大多数不同版本ping程序都提供-R选项,以提供记录路由功能。使得ping程序发送出去IP数据报设置IPRR选项(该IP数据报包含ICMP回显请求报文)。...这样每个处理该数据报路由器都把它IP地址放入选项字段。当数据到达目的端,IP地址清单应该复制到ICMP回显应答,这样返回途中所经过路由器地址也被加入清单

    86620
    领券