• [svc]traceroute(udp+icmp)&tracert(icmp)原理


    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扫描原理

    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原理

    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实验拓扑

    tracert实验

    参考

    附: icmp ttl超时

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

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

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

  • 相关阅读:
    结合自己造的轮子实践按需加载
    清风不知道--项目需求分析
    2020软件工程作业——团队03
    2020软件工程作业——团队02
    清风不知道——团队展示
    Java注解
    Java反射机制
    浅谈Vector
    浅谈LinkedList
    在IDEA中搭建Java源码学习环境并上传到GitHub上
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8509506.html
Copyright © 2020-2023  润新知