前言

准备整理网络章节,先整理概念。

tracer 是一个可以获取我们的主机到访问端中间经过了哪些路由,这个对于我们非常重要,看下原理吧。

正文

tracer 在unix中是tracerRout。

它的原理是这样子的,他发送一个udp包,去访问一个不可达端口,这个端口是一个高位端口,比如说44444。

回过头来看ip协议,我把图贴过来:

看到那个ttl没?就是那个生存时间。

这个我在介绍ip协议的时候介绍过,每经过一个路由,那么他将会-1。

利用这个特征,我们可以这样做,先设置ttl为1,那么经过一个路由后他将返回一个icmp包。

这个时候我们就知道了这个路由的地址。

同样我们再发送ttl为2,然后就是下一个路由。

那么就有一个问题了,那么我们是如何确定到达的呢?

关键部分就是这个,udp如果是一个不可达端口,那么会返回一个端口不可达的icmp包,这个时候我们就不用继续发了。

同样windows又不一样。

看下windows是如何实现的,windows命令行叫做tracer。

windows 实现原理:

微软就是发送icmp包,同样是通过这个ttl实现来返回路由,那么它是如何确定已经到达对方路由了呢?

icmp如果没到,那么路由器会发送错误icmp包,如果到了,那么目的主机对回应icmp包,这样就结束路由跟踪了。

tracer 原理的更多相关文章

  1. Linux内核跟踪之syscall tracer 【转】

    转自:http://blog.chinaunix.net/uid-20543183-id-1930847.html ------------------------------------------ ...

  2. Cisco Packet Tracer 6.0 实验笔记

    开篇:组建小型局域网 实验任务 1.利用一台型号为2960的交换机将2pc机互连组建一个小型局域网: 2.分别设置pc机的ip地址: 3.验证pc机间可以互通. 实验设备 Switch_2960 1台 ...

  3. 以太坊智能合约虚拟机(EVM)原理与实现

    以太坊 EVM原理与实现 以太坊底层通过EVM模块支持合约的执行与调用,调用时根据合约地址获取到代码,生成环境后载入到EVM中运行.通常智能合约的开发流程是用solidlity编写逻辑代码,再通过编译 ...

  4. drone的pipeline原理与代码分析

    最近的一个项目,需要实现一个工作任务流(task pipeline),基于之前CICD的经验,jenkins pipeline和drone的pipeline进入候选. drone是基于go的cicd解 ...

  5. Spring Cloud Netflix Eureka源码导读与原理分析

    Spring Cloud Netflix技术栈中,Eureka作为服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究. 本文主要分为四部分,一是对项目构建 ...

  6. zuul源码分析-探究原生zuul的工作原理

    前提 最近在项目中使用了SpringCloud,基于zuul搭建了一个提供加解密.鉴权等功能的网关服务.鉴于之前没怎么使用过Zuul,于是顺便仔细阅读了它的源码.实际上,zuul原来提供的功能是很单一 ...

  7. 计算机网络原理实验_使用网络协议分析仪Wireshark

    一.实验名称  使用网络协议分析仪Wireshark 二.实验目的: 1. 掌握安装和配置网络协议分析仪Wireshark的方法: 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协 ...

  8. IP组网实验(使用Cisco Packet Tracer路由器模拟软件)

    最近计网课讲到了以太网,第二个计网实验就是IP组网实验.这个实验主要使用了netsim这个路由器模拟软件.怎奈mac上没有,于是用Cisco Packet Tracer进行了一次模拟(其实就是实验中的 ...

  9. Spring Cloud Eureka源码分析之三级缓存的设计原理及源码分析

    Eureka Server 为了提供响应效率,提供了两层的缓存结构,将 Eureka Client 所需要的注册信息,直接存储在缓存结构中,实现原理如下图所示. 第一层缓存:readOnlyCache ...

  10. go-micro集成链路跟踪的方法和中间件原理

    前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路追踪.o ...

随机推荐

  1. 11 .Codeforces Round 891 (Div. 3)E. Power of Points(推公式+前缀和优化)

    E. Power of Points 题解参考 #include <bits/stdc++.h> #define int long long #define rep(i, a, b) fo ...

  2. OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

    前言   知道图像畸变矫映射的原理之后,那么如何得到相机的内参是矫正的第一步,内参决定了内参矩阵(中心点.焦距等),用内参矩阵才能计算出投影矩阵,从而将原本畸变的图像矫正为平面投影图像.  本篇描述了 ...

  3. 学习ASP.NET Core Razor 编程系列文章目录

    学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二--添加一个实体 学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目 ...

  4. 遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法

      本文介绍基于ENVI软件,利用"Pixel Based Mosaicking"工具实现栅格遥感影像镶嵌拼接的方法.   首先需要说明的是,本文需要镶嵌的遥感影像并不含地理参考信 ...

  5. cache 本地&分布式(-redis) & JSON对象转换

    本地缓存 最简单的cache, 做一个map就行 private final Map<String,List<User>> cache=new HashMap<>( ...

  6. CodeGeeX vscode代码提示,智能问答

    CodeGeeX 官网 https://codegeex.cn/zh-CN/ CodeGeeX vscode代码提示,智能问答

  7. iptables五表五链及对应实例

    iptables是Linux系统上用于配置网络包过滤规则的工具,它使用表(tables)和链(chains)来组织规则.以下是iptables中的五表五链及其对应的实例说明: 五表 filter表:默 ...

  8. leetcode数据库sql之Rising Temperature

    leetcode原文引用: Given a Weather table, write a SQL query to find all dates' Ids with higher temperatur ...

  9. 自己想到的几道Java面试题

    1.在抽象类中能否写main方法,为什么? 2.在接口中能否写main方法,为什么? 3.Java能否使用静态局部变量,为什么? 4.Java类变量,实例变量,局部变量在多线程环境下是否线程安全,为什 ...

  10. (模板)Manacher算法:线性时间求字符串内回文子串的数量

    已通过leetcode647:https://leetcode-cn.com/problems/palindromic-substrings/ void get_d(vector<int> ...