icmp协议是tcp还是udp_icmp协议使用udp

icmp协议是tcp还是udp_icmp协议使用udp2018年4月11日11:41:29更新工具发包触发点结局traceroute初始发udp包ttl递增,icmp每一跳报ttl超时udp端口不可达tracert初始发icmprequest包触发点:ttl递增,icmp超时icmpechoreply注:触发点都是根据ttl超时来检测参考项traceroutetracert…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

2018年4月11日 11:41:29更新

工具 发包 触发点 结局
traceroute 初始发udp包 ttl递增,icmp每一跳报ttl超时 udp端口不可达
tracert 初始发icmp request包 触发点: ttl递增,icmp超时 icmp echo reply

注: 触发点都是根据ttl超时来检测

参考

traceroute tracert
使用协议 udp+2种icmp(ttl+端口不可达) 仅2种icmp(ttl+icmp reply)
最终判别 端口不可达 ICMP Echo Reply
探测包都有唯一的标识号 UDP数据包使用递增的目标端口号(33434) ICMP使用seq识别

traceroute原理:UDP+icmp(icmp ttl超时/icmp端口不可达) tcp&udp扫描原理

806469-20180305154253640-1482290077.png

1. 从源地址发出一个UDP探测包到目的地址,并将TTL设置为1;
2. 到达路由器时,将TTL减1;
3. 当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;
4. 当源地址收到该ICMP包时,显示这一跳路由信息;
5. 重复1~5,并每次设置TTL加1;
6. 直至目标地址收到探测数据包,并返回端口不可达通知(ICMP Port Unreachable);
7. 当源地址收到ICMP Port Unreachable包时停止traceroute。

注:
1, UDP目标端口从33434开始,一次递增
2, TTL从1开始,依次递增
3, 每个探针发3次.

tracert原理

806469-20180305154311748-149683623.png

1. 从源地址发出一个ICMP请求回显(ICMP Echo Request)数据包到目的地址,并将TTL设置为1;
2. 到达路由器时,将TTL减1;
3. 当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;
4. 当源地址收到该ICMP包时,显示这一跳路由信息;
5. 重复1~5,并每次设置TTL加1;
6. 直至目标地址收到探测数据包,并返回ICMP回应答复(ICMPEcho Reply);
7. 当源地址收到ICMP Echo Reply包时停止tracert。

traceroute实验拓扑

806469-20180305154411156-1548877965.png

806469-20180305154247360-967552326.png

tracert实验

参考
806469-20180305163238034-301166992.png

附: icmp ttl超时

当访问到对端中途设备,发现ttl不够用的时候,中途设备随即返回一个icmp 报文 ttl不可达.

特点:
可见,这类icmp不是成双出现的, 它和ping的icmp一来一去不一样.
806469-20180305162453465-1936877413.png

TTL可以理解为数据包的寿命

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193249.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle中sqrt函数的使用方法,PLSQL SQRT用法及代码示例[通俗易懂]

    oracle中sqrt函数的使用方法,PLSQL SQRT用法及代码示例[通俗易懂]SQRT函数是PLSQL中的内置函数,用于返回给定输入数字的平方根。用法:SQRT(number)使用的参数:该函数接受如下所示的参数:数字–这是要计算其平方根的输入数字。返回值:此函数返回一个数字,该数字是给定输入数字的平方根。下面给出了受支持的Oracle/PLSQL版本:甲骨文12c甲骨文11g甲骨文10g甲骨文9i甲骨文8i我们来看一些说明SQRT功能的示例:示例1:DECLARET…

    2022年5月13日
    116
  • python中main的含义及用法_python main函数有什么用

    python中main的含义及用法_python main函数有什么用原博文2020-03-2720:25−**什么场景下会有main函数?**当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。**main函数的作用?**__name__==’__main__’是Python的main函数入口。并非说,加入这句才能使用pythonxxx…相关推荐2019-12-1922:31−Pyt…

    2022年10月9日
    3
  • 为猪脸识别而进行自己数据集的构建、训练「建议收藏」

    为猪脸识别而进行自己数据集的构建、训练「建议收藏」在实际过程中走了弯路,特地进行说明记录,以备今后参考。思路是先构建VOC2007格式的猪脸数据集,在转换成tf格式,然后利用tf的objectdetectionapi进行训练。原因是把2种构建方式都熟悉一遍,并把所有流程过一遍。1、构架VOC2007格式的猪脸数据集前提:在某个目录下建立如下关系的子目录。                               

    2022年6月21日
    32
  • JDK下载安装及环境变量配置的图文教程(详解)「建议收藏」

    JDK下载安装及环境变量配置的图文教程(详解)「建议收藏」学习Java,需要下载并安装JDK(JavaDevelopmentKit,Java开发工具包);而为了能够快捷打开java程序,就需要按照操作系统的要求进行环境变量的配置。一、下载并安装JDK(一)下载JDK搜索“jdk官方下载”或是直接进入Sun公司的官网(https://www.oracle.com/)…

    2022年6月1日
    33
  • IDEA优化配置,提高启动和运行速度[通俗易懂]

    IDEA优化配置,提高启动和运行速度[通俗易懂]IDEA优化配置,提高启动和运行速度IDEA默认启动配置主要考虑低配置用户,参数不高,导致启动慢,然后运行也不流畅,这里我们需要优化下启动和运行配置;找到idea安装的bin目录;D:\ProgramFiles\JetBrains\IntelliJIDEA2017.2.3\bin打开idea.exe.vmoptions这个文件关键的三个参数第一个-Xms是最小启动内存参数第二个-Xmx是最大运行内存参数第三个-XX:ReservedCode…

    2022年5月15日
    228
  • 子网划分和计算方法(附习题详解)

    子网划分和计算方法(附习题详解)一.子网划分作用1.计算网络号,通过网络号选择正确的网络设备连接终端设备1)清楚IP地址四点段点分十进制数和子网掩码,对应的网络号是什么2)交换机是用来连接相同网络的设备,路由器是用来连接不同网段的设备网络号一样的,即在相同网段,网络号不一样的,即不同网段3)计算方法把十进制数的IP地址换算成二进制数,把子网掩码也由十进制数换算成二进制数,两对二进制数对齐做“与”运算,即可得出网络号。2.根据网络的规模,可以对局域网(内网)进行网络地址规划二.IP地址格…

    2022年6月27日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号