一、traceroute的实现原理

1、IP协议利用存活时间TTL来发出探测包跟踪数据包到达目标ip主机所经历的路由网关数量,每经过一个路由器,TTL的值就减去1。当TTL值为0时,主机就取消发送数据包,并回传一份ICMP报文。
2、在linux系统中,traceroute 命令利用ICMP协议实现定位本地计算机与目标计算机进行网络通信过程中经历的所有路由器。
3、IP协议包头部中的TTL 值可以反映数据包经过的路由器的跳数,通过控制独立ICMP 请求报文段中的TTL 值,观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。

二、traceroute命令使用方法

1、命令格式

	traceroute  [参数]  [主机]

2、常用命令参数

	-4 Use IPv4

	-6 Use IPv6

	-d  --debug    Enable socket level debugging

	-q  Set the number of probes per each hop. Default is 3

	-f 设置第一个检测数据包的存活数值TTL的大小。

	-F 设置勿离断位。

	-g 设置来源路由网关,最多可设置8个。

	-i 使用指定的网络界面送出数据包。

	-I 使用ICMP回应取代UDP资料信息。

	-m 设置检测数据包的最大存活数值TTL的大小。

	-n 直接使用IP地址而非主机名称。

	-p 设置UDP传输协议的通信端口。

	-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

	-s 设置本地主机送出数据包的IP地址。

	-t 设置检测数据包的TOS数值。

	-v 详细显示指令的执行过程。

	-w 设置等待远端主机回报的时间。

	-x 开启或关闭数据包的正确性检验。

3、使用实例

    1. sudo apt-get install traceroute
      如果是第一次使用 traceroute 命令,则可能会出现这种情况:

      按照提示安装即可: sudo apt-get install traceroute
    2. traceroute www.baidu.com
      效果截图:
      可以看到,traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
    3. traceroute -n -m 5 -q 4 -w 3 www.baidu.com
      效果截图:

      -q 4每个网关发送4个数据包
      -w 3 把对外发探测包的等待响应时间设置为3秒

traceroute在linux中的使用方法的更多相关文章

  1. linux中nginx重定向方法总结

    linux中nginx 301重定向跳转方法总结 第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站 复制代码代码如下: server { server_naaaaaaame www.aa ...

  2. 利用shell批量改名和linux中取随机数的方法

    先批量创建文件 #!/bin/sh if [ ! -d /tmp/chenyao ] then mkdir /tmp/chenyao -p fi cd /tmp/chenyao ..} do touc ...

  3. 在linux中运行main方法所在的java类(亲测有效!!!)

    本人是用SecureCRTPortable连接linux终端的.其他工具连接linux终端应该是一样的操作! 一.首先到移动到java工程所在的bin目录. 二.在bin目录下执行javac -cp ...

  4. linux中5种方法过滤出文件夹ls -F ls -p grep、find快速查找过滤目录

    1.ls -l , 根据颜色区分目录和文件2.ls -l, 以d开头的是目录 ls -l | grep "^d" 过滤以d开头的3.ls -l , 输入结果中第二列中大余1的是目录 ...

  5. linux中grep使用方法具体解释

    查找特定字符串并颜色显示 [root@fwq test]# grep -n 'the' regular_express.txt --color=auto 8:I can't finish the te ...

  6. Linux中的zero-copy技术

    本文是对参考文章重要部分的摘录,同时进行简单地总结. 零拷贝技术的相关背景知识 传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的 ...

  7. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  8. 1008win7与虚拟机中的linux共享文件的(详细)方法

    转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...

  9. linux中快速清空文件内容的几种方法

    这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > f ...

随机推荐

  1. 【BZOJ2655】calc(拉格朗日插值)

    bzoj 题意: 给出\(n\),现在要生成这\(n\)个数,每个数有一个值域\([1,A]\).同时要求这\(n\)个数两两不相同. 问一共有多少种方案. 思路: 因为\(A\)很大,同时随着值域的 ...

  2. excel制作田字格,excel行高磅,列宽1/10英寸;

    打开一个excel表格,发现列宽是行高的4倍: 开始-格式中查看,发现行高14.25磅,列宽8.38*1/10英寸: 网上百度,了解1英寸=72磅: 那么列宽8.38=60.336磅: 60.336英 ...

  3. DOM的重绘和回流及代码性能优化

    1.DOM的重绘和回流Repaint&Reflow 1.1重绘:元素样式的改变(但宽高.大小.位置等不变) 如outline.visibility.color.background-color ...

  4. eclipse git pull 代码 failed 并且报DIRTY_WORKTREE.classpath

    用eclipse git pull代码的时候出现如题错误. 解决办法就是reset reset命令有3种方式: 1.git reset –mixed:此为默认方式,不带任何参数的git reset,即 ...

  5. html行级元素与块级元素以及meta标签的使用

    块级元素的特性: 永远都会占满父级元素的宽度(块级元素的宽度永远都等于它父级元素的宽度) 行级元素的特性: 所占的空间刚好等于内容的大小 常见的块级元素: h1~h6.p.ul.div.li.form ...

  6. Node.js和JavaScript的区别与联系

    虽然不能说它们一点关系也没有,但它们的确关系不大: 第一,JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScript的一种执行环境. 第二,Ja ...

  7. concurrent (八) Future

    作用: 接受多线程的执行结果 全路径: java.util.concurrent 声明: public interface Future<V> 类图结构: 方法 boolean cance ...

  8. 探索 ASP.Net Core 3.0系列三:ASP.Net Core 3.0中的Service provider validation

    前言:在本文中,我将描述ASP.NET Core 3.0中新的“validate on build”功能. 这可以用来检测您的DI service provider是否配置错误. 具体而言,该功能可检 ...

  9. php中in_array函数的坑

    由于PHP是弱类型语言,所以有自动类型转换 例子 $array = [0, 1, 2, '3']; var_dump(in_array('abc', $array)); //true var_dump ...

  10. ocelot性能测试

    网上搜索发现多篇文章指出ocelot的性能有问题,可是在ocelot项目issue提问中,维护者指出,ocelot的性能问题不大.瓶颈在于.net的httpclient. 我参考文章 https:// ...