精华内容
下载资源
问答
  • traceroute

    2018-09-17 16:15:39
    traceroute很好,很屌,非常好用,用了都说好,不用不知道
  • TraceRoute

    2019-07-11 20:22:00
    TraceRoute通过故意设置特殊的TTL,来追踪去往目的地沿途经过的路由器。 注意:TraceRoute它是利用了ICMP差错报文,是在返回报文上利用了ICMP差错报文,而自己并没有使用ICMP差错报文。 它具体是怎么做的呢?(注意:...

    TraceRoute通过故意设置特殊的TTL,来追踪去往目的地沿途经过的路由器。

    注意:TraceRoute它是利用了ICMP差错报文,是在返回报文上利用了ICMP差错报文,而自己并没有使用ICMP差错报文。

    它具体是怎么做的呢?(注意:它自己发的是UDP数据报)
    TraceRoute的参数指向一个IP地址,那么它会发送一个UDP数据报,把TTL设置为1,那么在经过第一个路由器它的TTL就会归0,那么这个路由器就会给该主机发送一个ICMP差错报文。

    差错类型就是超时。

    如此反复,直到到达目标主机。这样就知道中间路由信息了。

    但是有的主机却不会向源主机去发送一个ICMP差错报文。

    怎么判断UDP数据报有没有到达目标主机呢?

    因为TraceRoute给目标主机发送的UDP数据报的端口很刁钻,是大于30000的,这是一个不可能的值作为端口号,对于中间路由,它会发送超时额ICMP差错报文。但是对于目的主机,它在收到报文后,会发送端口不可达的ICMP差错报文,然后就知道到达目标主机了。

    TraceRoute的另一个作用就是确定一个路径的MTU、

    注意:是到达目的主机整条路径的MTU。也就是所有MTU的最小值

    它的做法是故意设置不分片,也就是DF=1,这样某个网络的MTU小于数据帧的数据部分,路由器就会发出ICMP差错报文,回复:

    需要进行分片,但是设置了DF =1 .

    这里再复习一下:MTU是最大传输单元,是数据帧的数据部分(单个IP数据分片的最大值)之所以说是单个IP数据分片,是因为如果说IP数据报太大,会被切割为IP数据报片。

    MSS:最大报文段大小指的是TCP报文段数据部分的最大值。

    MSL最大报文段长度:指的是客户机在对服务器的FIN报文做出确认后变成TIME-WAIT状态应该等待的时间,注意:是等待2MSL。

    我们来复习一下:

    TraceRoute有两个作用:

    1、确定到达目标主机的路由信息,2、确定该路由的最小MTU

    该程序发送UDP数据报,设置的目标端口大于30000.是一个不可达的端口,而且每次发一个UDP数据报,设置TTL=1.2.3...

    然后中间路由就会发ICMP差错报文,报告超时。

    而目标主机也会发ICMP差错报文,报告端口不可达。

    该程序发送的UDP数据报设置的是:DF = 1,这样遇到MTU更小的网络,路由器也会发ICMP差错报文,报告:需要设置分片,但是设置了DF = 1.

     

    展开全文
  • Traceroute

    2020-07-20 20:49:18
    1 为什么IP有记录路由的选项,还要使用Traceroute? (1)Tr a c e r o u t e程序只需要目的端运行一个U D P模块—其他不需要任何特殊的服务器应用程序。 (2)I P首部中留给选项的空间有限,不能存放当前大多数...

    基础介绍:


    1 为什么IP有记录路由的选项,还要使用Traceroute?

            (1)Tr a c e r o u t e程序只需要目的端运行一个U D P模块—其他不需要任何特殊的服务器应用程序。

            (2)I P首部中留给选项的空间有限,不能存放当前大多数的路径。在 I P首部选项字段中最多只能存放 9个I P地址。在原先的 A R PA N E T中这是足够的,但是对现在来说是远远不够的。


    2 TTL的作用?

         (1) T T L字段的目的是防止数据报在选路时无休止地在网络中流动。例如,当路由器瘫痪或者两个路由器之间的连接丢失时,选路协议有时会去检测丢失的路由并一直进行下去。在这段时间内,数据报可能在循环回路被终止。 T T L字段就是在这些循环传递的数据报上加上一个生存上限。
          (2)当路由器收到一份I P数据报,如果其T T L字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是在通常情况下,系统不应该接收 T T L字段为 0的数据报) 。相反,路由器将该数据报丢弃,并给信源机发一份I C M P“超时”信息。 Tr a c e r o u t e程序的关键在于包含这份 I C M P信息的I P报文的信源地址是该路由器的I P地址。


    3 应该如何判断数据包是否已经到达目的主机了呢?

         (1)traceroute 程序区分报文不可达还是端口不可达来区分是否到达目的主机。案例如下:我们使用一个端口为30000的端口,假设端口根本不可达,因此当该数据报到达时,将使目的主机的 U D P模块产生一份“端口不可达”错误(见 6 . 5节)的 I C M P报文。


    4 Traceroute 的工作过程

         (1)它发送一份 T T L字段为1的I P数据报给目的主机。处理这份数据报的第一个路由器将 T T L值减1,丢弃该数据报,并发回一份超时I C M P报文。这样就得到了该路径中的第一个路由器的地址。然后 Tr a c e r o u t e程序发送一份T T L值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到 T T L值为1的I P数据报,也不会丢弃该数据报并产生一份超时I C M P报文,这是因为数据报已经到达其最终目的地。


    Sangfor:aSV/host-5853c005213b /sf # traceroute www.baidu.com
    traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packets
     1  * * *
     2  4.4.4.4  (120.197.58.130)  1.927 ms  2.894 ms  10.913 ms
     3  3.3.3.3  2.484 ms 183.233.53.185 (183.233.53.185)  4.489 ms  4.486 ms
     4  * 2.2.2.2  (120.196.243.21)  4.707 ms *
     5  1.1.1.1  3.717 ms  4.204 ms 120.196.199.114 (120.196.199.114)  4.684 m

          60字节的数据报包含 2 0字节I P首部、 8字节的U D P首部和3 2字节的用户数据( 3 2字节的用户数据包含每发一个数据报就加 1的序列号,送出T T L的副本以及发送数据报的时间)。

    如上图:

    (1)输出的后面两行以T T L开始,接下来是主机或路由器名以及其I P地址。对于每个T T L值,发送3份数据报。

    (2)每接收到一份I C M P报文,就计算并打印出往返时间.

    (3)如果在 5秒种内仍未收到3份数据报的任意一份的响应,则打印一个星号,并发送下一份数据报。


    20:33:01.082192 IP (tos 0xc0, ttl 64, id 20091, offset 0, flags [none], proto ICMP (1), length 101)
      : ICMP 192.168.1.252 udp port 33825 unreachable, length 81
            IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 73)
    : [udp sum ok] 40309 ServFail q: PTR? 210.49.241.120.in-addr.arpa. 0/0/0 (45)
    20:33:09.789580 IP (tos 0xc0, ttl 64, id 20094, offset 0, flags [none], proto ICMP (1), length 101)
       : ICMP 192.168.1.252 udp port 55142 unreachable, length 81
            IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 73)
        192.168.1.1.53 > 192.168.1.252.55142: [udp sum ok] 58648 ServFail q: PTR? 198.48.241.120.in-addr.arpa. 0/0/0 (45)

    S L I P链路的往返时间

    计算出S L I P链路的往返时间是很有意义的,就象我们在 7 . 2节中所举的 P i n g例子,将链路值设置为1 2 0 0 b / s一样。发送出的 U D P数据报共4 2个字节,包括 1 2字节的数据、 8字节U D P首部、 2 0字节的I P首部以及(至少) 2字节的S L I P帧( 2 . 4节) 。但是与 P i n g不一样的是,返回的数据报大小是变化的。从图 6 - 9可以看出,返回的 I C M P报文包含发生差错的数据报的 I P首部以及紧随该 I P首部的8字节数据(在t r a c e r o u t e程序中,即 U D P首部) 。这样,总共就是 2 0+ 8 + 20 + 8 + 2,即5 8字节。在数据速率为 960 b/s的情况下,预计的RT T就是( 42 + 58/960),即104 ms。这个值与s v r 4上所估算出来的110 ms是吻合的
     


     

     


     

       
     

          

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,273
精华内容 1,309
关键字:

traceroute