时间戳引起的网站访问不了的问题
时间戳引起的网站访问不了的问题
针对有些用户能ping通我们的网站,但是连接时超时服务器没有任何响应,怀疑问题处在了了http的三次握手环节,这是决定通过抓包进行分析:
1、发现问题
从抓包数据发现,web服务器对出问题机器和正常机器系统的tcp syn包都返回ACK包,但存在问题发出的tcp syn包有时候响应,有时候不响应。不响应时,终端与web服务器之间的tcp连接无法正常建立,导致页面不能打开。对比这两种数据包,就在时间戳上有差 异,存在问题的机器发出的tcp syn包带有时间戳,因此怀疑时间戳问题导致的故障。
2、解决问题
既然怀疑是时间戳导致的,那我们就着手分析如果将出现问题的机器的时间戳去掉会不会解决问题。针对带有时间戳的tcp syn包不响应的问题,查阅了相关资料得知产生问题的原因是出问题系统中的注册表中有Tcp1323opts这个选项,会导致其在发包时加入时间戳,经过 nat之后,如果前面相同的端口被使用过,且时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现 为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重 复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。
解决方法如下:
首先我们先查看一下我们服务器net.ipv4.tcp_timestamps的默认值,如果该值为0测说名不是该问题导致,如果是0我们需要将该值设置为1。
查看默认值的方法:[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_timestamps
修改该值的方法:vim /etc/sysctl.conf 添加 net.ipv4.tcp_timestamps=0
值为0(禁用时间戳)
值为1(启用时间戳)
只有客户端和服务端都开启时间戳的情况下,才会出现能ping通不能建立tcp三次握手的情况,所以做为提供服务的公司,不可能保证所有的用户都关闭时间戳,这个功能,所以我们必须关闭时间戳,这样才能给所用用户提供正常的服务。
使用该命令使其立马生效:/sbin/sysctl-p
>更多相关文章
- 07-30数据中心如何减少人为故障发生率
- 07-30如何破解数据中心的空气污染问题?
- 07-3012条原则,让数据中心发挥更高性能
- 07-30论数据中心冗余备份重要性
- 07-30数据中心液体冷却方案正在兴起的五大原因
- 07-30数据中心网络如何快速排障
- 07-30云计算时代,数据中心运维应该注意哪些问题?
- 07-30自然环境愈发恶劣,地下数据中心成为趋势
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御