• 本文转自: ... TTL Brief TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。 ...例如,不正确的路由表可能导致包的无限循环。...

    本文转自:

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20617871&id=4284694

    TTL Brief
    TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。

    例如,不正确的路由表可能导致包的无限循环。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成两个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。
    通过TTL值我们能得到什么 其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。
    每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。如你看到112,可能是初始128,跳了16个节点,或者是初始160,跳了48次。
    不同的操作系统,它的TTL值默认值是不相同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。

    从PING命令的回显可以判断操作系统类型
    就是使用PING命令来查看TTL值从而判断操作系统类型。详细如下: 
    TTL=128,这是WINNT/2K/XP。 
    TTL=32,这是WIN95/98/ME。 
    TTL=256,这是UNIX。 
    TTL=64,这是LINUX。 

    Changing the Time To Live (TTL) in windows
    Try to modify the registry value DefaultTTL using the following steps:
     
    1. Open Registry Editor (regedit.exe).
    2. Navigate to the following registry
    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
    3. In the right pane, add the following value:
    Name: DefaultTTL
    Type: REG_DWORD
    Valid Range: 1-255
    4.  After that, please restart the computer and check the result.

    Changing the Time To Live (TTL) in Linux
    iptables -t mangle -A POSTROUTING -o eth0 -j TTL --ttl-set {Value_You_Wanna_2set}

    展开全文
  • TLL=32——WIN98 TLL=64——LINUX2.2.X/2.4.X TLL=128——WIN NT/2000/XP TLL=255——UNIX/BSD PS:以上TLL值均为近似值,因为数据包在传输过程中每经过一个路由TLL值就会减1,可以通过TRACETT命令获得与远程主机间...
    TLL=32——WIN98
    TLL=64——LINUX2.2.X/2.4.X
    TLL=128——WIN NT/2000/XP
    TLL=255——UNIX/BSD
    PS:以上TLL值均为近似值,因为数据包在传输过程中每经过一个路由TLL值就会减1,可以通过TRACETT命令获得与远程主机间存在的路由个数,精确TLL值
    展开全文
  • 利用ping应答的TTL 字段值可以(初步)识别对方操作系统类型。 数据包已经通过的路由器的个数=源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。 <br />UNIX 及类 UNIX 操作系统:...

    利用ping应答的TTL 字段值可以(初步)识别对方操作系统类型。
    数据包已经通过的路由器的个数=源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。


    UNIX 及类 UNIX 操作系统:255
    LINUX:64
    Windows NT/2K:128 
    Windows 95/98/98SE/ME :32
    ----------------------------------------------------------------

    UNIX 及类 UNIX 操作系统:

    FreeBSD 4.1, 4.0, 3.4;
    Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
    OpenBSD 2.6, 2.7,
    NetBSD
    HP UX 10.20

    展开全文
  • ping 时,TTL是60的一般是Linux,除非人为改变LLF值在Windows端下ping,默认返回4次在Linux端下ping,默认无限返回但是无法判断ip的操作系统 TTL 字段值可以帮助我们识别操作系统类型。UNIX 及类 UNIX 操作系统 ICMP...

    ping 时,TTL是60的一般是Linux,除非人为改变LLF值
    在Windows端下ping,默认返回4次
    在Linux端下ping,默认无限返回
    但是无法判断ip的操作系统

    TTL 字段值可以帮助我们识别操作系统类型。
    UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
    Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
    微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
    微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
    当然,返回的TTL值是相同的。
    TTL
    LINUX 64
    WIN2K/NT 128
    WINDOWS 系列 32
    UNIX 系列 255

    转载于:https://blog.51cto.com/12942223/2320709

    展开全文
  • ping命令详解

    2018-11-02 23:39:23
    Linux系统ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST...

     

    1 概述

     

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。有些服务器为了防止通过ping探测到,通过防火墙设置了禁止ping或者在内核参数中禁止ping,这样就不能通过ping确定该主机是否还处于开启状态。

     

    linux下的ping和windows下的ping稍有区别。linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。

     

     

     

     

     

     

    2 命令

     

    2.1 命令功能

     

    ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

     

    ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

     

     

     

     

    2.2 命令格式

     

    ping [参数] [主机名或IP地址]

     

    ping命令运行在命令提示符终端,用法为:“ping 参数 目标主机”。其中参数为零到多个,目标主机可以是IP或者域名。

    Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
    
    [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
    
    [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
    
    [-w deadline] [-W timeout] [hop1 ...] destination

     

     

     

     

    2.3 命令参数

     

    参数

    功能

    -a

    Audible ping, 即每ping一次都会有声音提示。

    -A

    自适应ping,根据ping包往返时间确定ping的速度。

    -b

    允许ping一个广播地址。

    -B

    不允许ping改变包头的源地址。

    -c count

    ping指定次数后停止ping。

    -d

    设置socket中的SO_DEBUG选项,使能调试跟踪。实质上Linux内核中没有使用这个套接字选项。

    -F flow_label

    为ping回显请求分配一个20位的“flow label”,如果未设置,内核会为ping随机分配。这个选项只有ping6才有。

    -f

    洪泛模式。极限检测,快速连续ping一台主机,ping的速度达到100次每秒。对每一个ECHO_REQUEST报文的发送,打印一个“.”,当接受到ECHO_REPLY报文时,打印一个backspace字符。这样能够快速地表明网络丢失了多少个报文。如果interval没有设置,则设置interval为0,并按照报文接受的速度和一百次每秒的速度来发送报文(看哪个速度快)。只有超级用户能够和-i 0选项一起使用这个选项。

    -i interval

    设定间隔几秒发送一个ping包,默认一秒ping一次。

    -I interface

    指定网卡接口、或指定的本机地址送出数据包。

    -l preload

    是在没有接受到回复报文之前能发送的最多报文。非超级用户最多只能设置为3。如果不赋值preload默认为1。

    -L

    抑制组播报文回送,只适用于ping的目标为一个组播地址。

    -n

    只有数字形式ip地址值的输出,不通过查询DNS获知IP地址对应的主机名,以节省时间。

    -p pattern

    允许为传输的回显报文中包含的内容指定字节模式。这对于诊断与传输数据有关的网络问题可能很有用。数据采用16进制,例如“-p ff”可将传输的报文填充为全1。

    -q

     

    静默模式。这种模式下,出了开始的提示和结束的数据统计,不会输出任何东西。

     

    -Q tos

    用来设置服务质量(Quality of Service ),例如最小开销、 可靠性、吞吐量、低延迟。

     

    IP协议有一个8bit的DS区分服务(以前叫服务类型)。前三位是优先(precedence)字段(在目前,优先字段并未被大家使用),接着4bit是TOS位,最后1bit没有使用,但必须置0。

     

    4比特TOS位的意义分别为D(最小时延)、T(最大吞吐量)、R(最高可靠性)、C(最小代价)。要设置TOS位为对应意义,可以设置-Q <tos>分别为0x10,0x08,0x04,0x02。TOS的各个位不能同时置1。

    -R

    记录路由信息。在发送的IP报文首部选项中放入记录路由选项,在接到到报文回复之后,打印出回复报文的路由信息。

     

    注意:IP报文的选项中最多只能计算9个路由信息,计算方式如下:

     

    首部长度HLEN。这4bit字段用来定义首部的长度,以4字节为单位。由于首部长度可变,默认长度是20字节,此时4bit字段值为5。4bit的字段最大可以表示的数为15,故此首部长度最大为15*4byte,即60byte。首部的可变字节数为60-20=40byte,RR选项用去3byte(参见记录路由选项的一般格式),只剩下37byte,最多只能放下9个IP地址。

     

    注意:很多的主机会略过IP报文的路由选项,因此有可能在回复报文中没有路由信息。

    注意:不能和-T选项一起使用。

    -r

    绕过一般的路由表而直接向一个连接着的主机发送报文。如果主机不是通过直接连接的网络相连,则会出现错误。这个选项可以用来ping一个没有通过路由相连而是通过一个接口相连(假设也使用了-I选项)的本地主机。

    -S sndbuf

    设置套接字的发送缓冲区大小。如果没有设置,则被设定为不超过一个报文长度的长度。

    -s packetsize

    指定每次ping发送的数据字节数,默认为“56字节”+“28字节”的ICMP头,一共是84字节。

    包头+内容不能大于65535,所以最大值为65507(linux:65507, windows:65500)。

    -t ttl

    设置TTL(Time To Live)为指定的值。该字段指定IP包被路由器丢弃之前允许通过的最大网段数。

    -T timestamp_option

    设置IP时间戳选项。时间戳选项可以是以下三种:

    (a) -T tsonly 只记录时间戳。

    (b) -T tsandaddr 收集时间戳和IP地址。

    (c) -T tsprespec [host1 [host2 [host3[host4]]]] 收集来自预定的网络段的时间戳和地址,发送端对选项列表进行初始化,存放了4个IP地址和四个取值为0的时间戳。只有在列表中的下一个地址和当前路由地址相匹配时,才记录它的时间戳。

     

    与-R选项的分析类似,首部的可变字节数为60-20=40byte,选项用去4byte(参见时间戳选项的一般格式),只剩下36byte,最多只能放下9个时间戳。

     

    注意:由于IP首部的空间限制,程序限制-R选项与-T不能同时使用。

    -M hint 

    设定Path MTU查找选下项,可设置成下列三种:

    (a) -M do 不允许分段,甚至不允许在本地分段。

    (b) -M want 找出PMTU,在如果包太大就在本地分段。

    (c) -M dont 不要设置IP首部中的DF位,即允许分段。

    -m mark

    设置mark。

    -v

    使ping处于verbose方式,它要ping命令除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包。

    -W timeout

    等待回复的时间,单位是毫秒。这个选项只在没有接到任何的回复的情况下有效,只要接到了一个回复,就将等待时间设置为两倍的RTT。如果没有设置,则等待时间设置为一个最大值。

    -w deadline

    设定时间期限为<deadline>秒,不管已经发送和接到了多少包,只要达到时间期限就结束ping的过程。

     

     

     

    2.4 输出格式

     

     

     

    下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:

    ① ping目标主机的域名和IP(ping会自动将域名转换为IP)

    ② 不带包头的包大小和带包头的包大小(参考“-s”参数)

    ③ icmp_seq:ping序列,从1开始;如果数字不是按顺序递增也就意味着丢包了

      ttl:剩余的ttl;见TTL解释

      time: 响应时间,数值越小,联通速度越快;

    ④ 发出去的包数,返回的包数,丢包率,耗费时间;

    ⑤ 最小/最大/平均响应时间和本机硬件耗费时间;

     

     

     

     

     

    3 TTL解释

     

    当我们在使用ping命令时,返回结果里会带一个TTL值。这个东西的含义其实就是Time To Live,指的是报文在网络中能够‘存活’的限制。以前这个限制方式是设定一个时间(Time To Live中的Time就是这样来的),当报文在网络中转发时,时间超过这个限制,最后一个收到报文的‘路由点’就会把它扔掉,而不继续转发。后来把时间限制改为了跳数限制,就是当报文在网络中转发时,每经过一个‘路由点‘,就把预先设定的这个TTL数值减1,直到最后TTL=1时报文就被扔掉,不向下转发。

     

    路由点:我这里是指完成路由功能的机器,因为并不是只有路由器才可以完成路由转发功能,比如主机可以配置路由转发。

     

    ping命令中的TTL

     

    上边解释的TTL是基础,然后,我们这篇文章要说明的是ping中的TTL到底是什么意思。

     

    其实这个TTL是指:被ping主机那里返回的报文,到了你这里,从它自己预设的TTL减小到还剩下多少。

     

    有点绕口,举个例子就明白了。

     

    (1) 我们先 tracert www.baidu.com

     

     

     

     

    这里表示,我们发出的ICMP报文从自己主机到目标主机一共经过12跳,这里可以想成我们发过去的和对方返回的路由路径是一样的(其实网络很复杂的,这样说是在基本理论上简化问题——一般网络情况不变化就是这样的),也就是目标主机它预设的报文TTL要减掉12。现在,按照刚才说的“被ping主机那里返回的报文,到了你这里,从它自己预设的TTL减小到还剩下多少。”,我们可以计算ping www.baidu.com时的TTL了。

     

    TTL = 目标主机预设报文TTL - 12

     

    现在等式中有两个未知数,但是“目标主机预设报文TTL”其实比较容易知道。并且有一个前提:一般有64、128等几个值。

     

    (2) 我们先来ping www.baidu.com

     

     

     

     

    这里我们看到 TTL = 52。一般就可以推断目标主机预设的报文TTL为64,因为它比较接近(一般啦)。然后对比一下上边的等式,代入数值:

    52 = 64 - 12

    默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。

     

     

     

     

     

    4 简单实例

     

    (1) 每隔0.6秒ping一次,一共ping 5次

     

     

    [root@my ~]# ping -c 5 -i 0.6 qq.com
    PING qq.com (14.17.32.211) 56(84) bytes of data.
    64 bytes from 14.17.32.211: icmp_seq=1 ttl=54 time=16.5 ms
    64 bytes from 14.17.32.211: icmp_seq=2 ttl=54 time=17.0 ms
    64 bytes from 14.17.32.211: icmp_seq=3 ttl=54 time=16.6 ms
    64 bytes from 14.17.32.211: icmp_seq=4 ttl=54 time=18.3 ms
    64 bytes from 14.17.32.211: icmp_seq=5 ttl=54 time=19.9 ms
     
    --- qq.com ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 2405ms
    rtt min/avg/max/mdev = 16.520/17.692/19.919/1.293 ms

     

    (2) 极限快速的使用大包ping

    以最快的速度,使用最大的包进行ping,可用于测试目标主机的承压能力:

    [root@my ~]# ping -f -s 65507 10.0.0.52
    PING 10.0.0.52 (10.0.0.52) 65507(65535) bytes of data.
    .^
    --- 10.0.0.52 ping statistics ---
    646 packets transmitted, 646 received, 0% packet loss, time 1675ms
    rtt min/avg/max/mdev = 1.202/2.406/8.253/0.507 ms, ipg/ewma 2.598/2.318 ms

     

    注意:此用法非常危险,65535(包头+内容)*100个包每秒=6.25MB,每秒发送6.25MB的数据,相当于50Mbps的带宽,完全可能导致目标主机拒绝服务。请勿用于非法用途,造成不良后果自负。

     

     

    (3) 不稳定网络,丢包严重的情形

    下面的ping发出17个ping icmp包,而只有序号为8、9、12的包收到响应信息,丢包率达82%,联通非常不稳定

    [root@my ~]# ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=8 ttl=43 time=32.3 ms
    64 bytes from 8.8.8.8: icmp_seq=9 ttl=43 time=32.2 ms
    64 bytes from 8.8.8.8: icmp_seq=12 ttl=43 time=32.0 ms
    ^C
    --- 8.8.8.8 ping statistics ---
    17 packets transmitted, 3 received, 82% packet loss, time 16003ms
    rtt min/avg/max/mdev = 32.038/32.208/32.362/0.246 ms

     

     

     

    (4) 完全无法ping通的情形

     

     

    [root@my ~]# ping -c 3 9.9.9.9
    PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
     
    --- 9.9.9.9 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 1999ms

     

     

     

     

     

     

     

     

    展开全文
  • 根据它的值判断所ping主机的操作系统类型。 TTL被称为生存期,也就是你所传输的数据在网络上经过的路由器的最大个数。 操作系统 TTLLINUX 64WIN2K/NT 128WINDOWS 系列 32UNIX 系列 255如果TTL=63,64-63=1,由此...
  • C:\Documents and Settings\Administrator>ping 10.168.10.1 Pinging 10.173.10.1 with 32 bytes of data: Reply fro...
  • 通过简单的ping命令,查看返回的TTL值来判断对方的操作系统 生存时间(TTL)是IP分组中的一个值,网络中的路由器通过察看这个值就可以判断这个IP分组是不是已经在网络中停留了很久,进而决定是否要将其丢弃。出于多种...
  • 今天在百度百科中看到一个朋友问在ping一个域名时返回的TTL值大好呢 还是小好呢,自己很少去判断这个ttl一般都是判断 time,一时也愣那了,从网上找了找,大概得了解了这个ping值的含义,现在发给大家看看,希望对...
  • 今天我给大家介绍,通过用ping命令判断远程主机操作系统. 了解对方所使用的操作系统是攻击的第一步,因为只有知道对方用什么系统,才可以判断对方可能存在那些漏洞(不过现在可以用扫描器了~ ^!^).好了言归正传.. 比如:...
  • 每一个被发送出的IP信息包都有一个TTL域,该域被设置为一个较高的数值(在本例中ping信息包的TTL值为255)。当信息包在网络中被传输时,TTL的域值通过一个路由器时递减1;当TTL 递减到0时,信息包被路由器抛弃。 IP...
  • 根据TTL判断对方是什么操作系统 TTL(Time To Live,生存时间),是IP协议包中的一个值,指定数据包被路由器丢弃之前允许通过的网段数量,数据包每经过路由器转发一次都至少要把TTL减一,TTL通常表示包在被丢弃前...
  • windows操作系统和虚拟机中的Linux系统网络不通(ping不通)
  • Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。   具体的配置方法如下:    A、内核参数...
  • 为什么要使用知道那个网卡ping操作 2. 使用指定网卡ping操作 3. 总结 1、 为什么要使用指定网卡ping操作 现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高可用,有些是网络隔离(内网与外网或者...
  • PING来查看TTL值判断操作系统 TTL=128,这是WINNT/2K/XP。 TTL=32,这是WIN95/98/ME。 TTL=256,这是UNIX。 TTL=64,这是LINUX。 以上都是默认情况,实际可能被欺骗.
  • 在这个时代,科技越来越发达,网络已经越来越成为人们不可缺少的一部分。计算机也已经是很多学校的课程了,因为计算机技术是非常有... 1、Ping的基础知识 ping命令相信大家已经再熟悉不过了,但是能把ping的功能发...
  • 一、在被PING电脑操作系统为XP下分为:1、被PING 电脑关闭了防火墙,就完全可以PING通;2、被PING 电脑开了防火墙,但是打开了“文件和打印机共享”,也是能PING通;3、当被PING 电脑开了防火墙且关闭了“文件和...
  • Linux操作系统基础

    2018-05-27 12:16:53
    Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 Linux介绍 Linux出现于1991年,是...
  • 测试网络连通性命令:ping 命令所在路径:/bin/ping 语法:  ping [ip地址]或ping -c [ip地址] -c指定发送的次数 范例:  ping 192.168.1.100
1 2 3 4 5 ... 20
收藏数 145,736
精华内容 58,294
热门标签