暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

工作中的网络知识之五-ttl相关学习

济南小老虎 2024-02-05
219

ttl的概念

TTL是 Time To Live的缩写,
该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。
TTL是IPv4报头的一个8 bit字段。

需要注意:
默认情况下:Linux系统的TTL值为64255
Windows NT/2000/XP系统的TTL值为128
Windows 98系统的TTL值为32
UNIX主机的TTL值为255


注意事项-ttl的修改

ping 返回的ttl数应该不是本机设置的结果
还是目标机器设置的结果

比如你ping 10.110.136.73 比如是一个linux机器:
PS C:\Windows\system32> ping 10.110.136.73

正在 Ping 10.110.136.73 具有 32 字节的数据:
来自 10.110.136.73 的回复: 字节=32 时间<1ms TTL=60
他的返回ttl数值是 60 按照常规情况应该是 64-60=4
中间应该有 4个跳跃点 路由器。

如果是 Windows机器默认情况下:
PS C:\Windows\system32> ping 10.110.136.187
正在 Ping 10.110.136.187 具有 32 字节的数据:
来自 10.110.136.187 的回复: 字节=32 时间=2ms TTL=124
他的返回ttl数值是 124 按照常规情况应该是 128-124=4
中间应该有 4个跳跃点 路由器。

需要注意 这个数值是非常不精确的:
Windows系统可以使用:
netsh interface ipv4 set global defaultcurhoplimit=65
Linux系统可以使用:
echo 65 > proc/sys/net/ipv4/ip_default_ttl

都可以修改默认的 ttl数值, 会导致显示的与默认不一样,会影响判断。


关于跳跃点的学习

Windows和linux都可以使用 tracert的方式进行 跳跃点的侦测。
Windows默认一般都进行了安装,但是linux可能需要进行一下安装
yum install traceroute -y

需要注意的是:
Windows的命令是 tracert
linux 的命令是 traceroute

一个简单的验证
traceroute www.inspur.com
traceroute to www.inspur.com (172.30.26.6), 30 hops max, 60 byte packets
1 _gateway (10.110.139.254) 0.403 ms 0.377 ms 0.328 ms
2 192.168.13.35 (192.168.13.35) 0.882 ms 0.838 ms 0.873 ms
3 192.168.12.11 (192.168.12.11) 1.595 ms 0.969 ms 2.584 ms
4 192.168.1.14 (192.168.1.14) 0.968 ms 0.601 ms 0.898 ms
5 192.168.3.20 (192.168.3.20) 2.688 ms 2.200 ms 2.963 ms
6 172.30.26.6 (172.30.26.6) 1.666 ms 1.737 ms 1.685 ms

理论上每个跳跃点 都有三个时间
三个时间数值可能不一样, 可以理解为是一定的网络误差。
有时候路由器对 ping 命令的优先级不高, 可能比网络使用要效果差一些。
但是大部分情况下可以作为一个网络情况的学习和了解的过程。


关于tracert的一个认识

学习来源:
https://www.jianshu.com/p/30b064a8b07c

输出的第一行
tracert首先输出的内容,描述了命令将做什么。
它列出了目标系统(www.example.com),目标IP地址(93.184.216.34),
以及追踪过程将通过的跃点个数上限(30)。

输出的后续行
接下来输出是单个跃点(一般对应一个路由器)的信息,从发送处到终点的路径。
值得一提的是,跃点个数并不是影响延时的重要因素。
最重要的是数据包所经过的物理距离,
及其在ISP(互联网服务提供商)之间是如何传输的。

逐行解读
在任意一行上面。
这一行包括了跃点序号、3次往返耗时(Round Trip Time,缩写为RTT)
的测量值,跃点所到达的系统名称和IP地址


范例

序号RTT1RTT2RTT3域名[IP地址]
10176 ms180 ms176 ms62.115.170.60

tracert的讲解

序号:从发送端到目标端的路径上的跃点顺序号
RTT(往返时延):数据包到达跃点然后返回到发送端所耗费的时间,
以毫秒为单位。tracert命令缺省对每个跃点发送3个,
因此每个跃点的输出行包括3个往返耗时。RTT有时也被用作延时。
影响RTT很重要的一个因素就是跃点之间的物理距离。
如果RTT的位置出现了星号(*),表明数据包在期望的时间窗口内没有返回。
一个或两个星号出现在单个跃点上,并不一定表明数据包丢失了。
许多互联网路由器有意丢弃ping和路由追踪的数据包,
但并不影响使用这些路由器的应用程序。
这一招称为ICMP(网控协议)限流术,用来使路由器免遭拒绝服务(DoS)攻击。
3个星号后紧跟“请求超时”信息,可能是多个因素所致,详见下节“请求超时”章节。
域名:系统的完整域名(FQDN)。域名通常指明了路由器的物理位置。
如果输出的内容中没有包含域名,说明域名没有找到,这并不意味着是个问题。
IP地址:路由器或域名所绑定的主机的网络协议(IP)地址。
请求超时:可能有几种原因导致这种情况:
1.目标位置的防火墙或其他安全设备对请求进行了屏蔽。
即使终点的防火墙对路由追踪请求进行了屏蔽,还是可以采用其他协议(如http)到达目标。
2. 从目标系统返回可能有问题。记住,往返耗时是度量从发送端至目标端,然后返回的时间。
向前和返回常常会使用不同的路线。如果在返回路由上存在问题,
也并不一定出现在输出内容中。
3.可能在该系统或下一个系统中存在连接问题


异常情况分析

重要情况:有没有从中间跃点开始,时延递增

如果从中间跃点开始,时延稳步递增,可能说明网络有点不对劲。
如果在中间跃点出现了大量的不响应或者星号,也可能网络层存在问题。
这些是可以报告的迹象,稳定的时延递增通常说明网络拥堵,需要多方协作进行解决。
有时可能与互联网服务提供商(ISP,也就是宽带接入服务的电信、移动公司)有关。

如果从某一个 hop 点 时延出现了较大的增长,可能需要进行联系ISP
有机会进行调优的话 性能会好很多。


总结

之前学习过网络时延对应用和客户端的应用。
其实如果是应用和数据库,以及任何设备之间的时延可能影响会更多。

http 应该很多算法都是 幂等的, 所以可以有大量的多个tcp链接进行并发使用。
当然也是用户针对应用服务器时多个http连接和多个tcp链接。
比如chrome 可以一个用户登录之后产生 6个http连接使用 6个tcp 跟应用服务器交互。
默认一个tcp链接复用100次,然后关闭链接。

但是数据库连接池很难做到幂等, 应该一个链接只能有一个tcp链接进行访问。
这方面的学习是需要较长的时间的,不是一蹴而就的。

感觉作为通信的双方,任何一方的关闭都可能导致问题。但是问题的严重程度,需要仔细辨别。


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论