今天才知道,ping返回的TTL值可以判断是系统还是路由
1个回答
2017-05-20
展开全部
你好你大爷YiC,视乎你所ping的对象...
1.如果你所ping的IP地址为一路由器的IP地址,其中括号中为路由器的接口如下所示
PC----(E0)R1(E1)----(E0)R2(E1)----(E0)R3
而且,路由器上的默认TTL值没有被设置的话(默认为255),则会有:
PC ping R1上的任意口(无论是E0及E1)IP,因为PC与R1直连,所以返回的TTL=255,而如果ping R2的任意口(无论是E0及E1)IP,因为PC与R2间隔了R1这跳,所以TTL值传到R1中会比其减1,而PC收到该包后会得知TTL=254,即可得知,PC到R2间通过了1个路由器(R1);同理,如果PC ping R3,返回TTL=253,同此可判断经过两跳...
但是,如果路由器上的默认TTL值改变了,则很难判断了,因为你不知道所改变的值是多少...但如果你知道,则还是可以知道期间通过的跳数的...
2.如果你所ping的IP地址为拥有一公网IP的PC或服务器,如下图所示:
PC1----R1----R2----R3----PC2/Server
则所得的TTL为PC2/Server的默认TTL减去期间通过的路由器的跳数,比如PC2/Server的默认TTL为128,则PC1 ping过去而返回的TTL=128-3=125,而PC2/Server的默认TTL视乎其操作系统的不同或者其设置的不同而会有所不同,这个就较难判断了...
3.如果你所ping的IP地址为经过NAT之后的PC的IP,如下图所示:
PC1----R1----R2----R3----PC2/Server
(NAT)
即PC2/Server存在于另一私网(有其自身的私网IP地址),而经过R3作NAT获得一个公网IP,而当你ping此公网IP时,会由R3代替PC2/Server返回echo reply包,即由R3返回一个TTL为R3默认值或其配置值的包,比如R3的默认TTL=255,则PC1所收到的返回包TTL=253(255减去R1与R2两跳)..
4.如果你所ping的IP地址为一与你所在同一局域网段的PC/Server地址的IP地址,如下图所示:
PC1----SW(交换机)----PC2/Server
这样PC1收到的返回包的TTL值就是PC2/Server的TTL默认值或配置值,比如PC2/Server的TTL为64,则会PC1所收到的包TTL=64...
希望上面的分析对楼主有所帮助...
答案补充
另外,PC/Server的默认TTL值会因其安装的操作系统的不同也会有所不同,比如
WIN2000/XP/NT: 128
WIN95/98/ME: 32
LINUX: 64
UNIX(包括BSD, Sun Solaris, HP UX): 255
VxWorks: 64
*以上TTL默认值摘自互联网...
昊 回答采纳率:65.5% 2008-10-09 02:04
1.如果你所ping的IP地址为一路由器的IP地址,其中括号中为路由器的接口如下所示
PC----(E0)R1(E1)----(E0)R2(E1)----(E0)R3
而且,路由器上的默认TTL值没有被设置的话(默认为255),则会有:
PC ping R1上的任意口(无论是E0及E1)IP,因为PC与R1直连,所以返回的TTL=255,而如果ping R2的任意口(无论是E0及E1)IP,因为PC与R2间隔了R1这跳,所以TTL值传到R1中会比其减1,而PC收到该包后会得知TTL=254,即可得知,PC到R2间通过了1个路由器(R1);同理,如果PC ping R3,返回TTL=253,同此可判断经过两跳...
但是,如果路由器上的默认TTL值改变了,则很难判断了,因为你不知道所改变的值是多少...但如果你知道,则还是可以知道期间通过的跳数的...
2.如果你所ping的IP地址为拥有一公网IP的PC或服务器,如下图所示:
PC1----R1----R2----R3----PC2/Server
则所得的TTL为PC2/Server的默认TTL减去期间通过的路由器的跳数,比如PC2/Server的默认TTL为128,则PC1 ping过去而返回的TTL=128-3=125,而PC2/Server的默认TTL视乎其操作系统的不同或者其设置的不同而会有所不同,这个就较难判断了...
3.如果你所ping的IP地址为经过NAT之后的PC的IP,如下图所示:
PC1----R1----R2----R3----PC2/Server
(NAT)
即PC2/Server存在于另一私网(有其自身的私网IP地址),而经过R3作NAT获得一个公网IP,而当你ping此公网IP时,会由R3代替PC2/Server返回echo reply包,即由R3返回一个TTL为R3默认值或其配置值的包,比如R3的默认TTL=255,则PC1所收到的返回包TTL=253(255减去R1与R2两跳)..
4.如果你所ping的IP地址为一与你所在同一局域网段的PC/Server地址的IP地址,如下图所示:
PC1----SW(交换机)----PC2/Server
这样PC1收到的返回包的TTL值就是PC2/Server的TTL默认值或配置值,比如PC2/Server的TTL为64,则会PC1所收到的包TTL=64...
希望上面的分析对楼主有所帮助...
答案补充
另外,PC/Server的默认TTL值会因其安装的操作系统的不同也会有所不同,比如
WIN2000/XP/NT: 128
WIN95/98/ME: 32
LINUX: 64
UNIX(包括BSD, Sun Solaris, HP UX): 255
VxWorks: 64
*以上TTL默认值摘自互联网...
昊 回答采纳率:65.5% 2008-10-09 02:04
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询