Linux tcp参数设置不正确导致的网络问题

问题描述:

我方和对方公司(简称B公司)需要进行交互,所以分别提供了一个http接口。在测试环境下,双方互相调用都是没有任何问题。可是到了生产环境上
发现调用对方接口可以通,对方调用我方接口偶尔不通。这谁受得了,好端端的代码到了生产环境就挂了,莫不是代码和我作对?!
嗯,烦的不行,冷静下来分析一番,调用对方接口可以也能收到回应,说明网络之间是打通的;对方调用我们生产接口(偶尔通)这个是最难受的
你从代码中看不出任何的问题,检查一番自己开发的代码 确实没有发现问题,无奈,只好按照付现步骤 多抓几次包看看,发现很多时候都是对方的
syn请求到了我们这边,我们这边经常不返回 syn+ack 的回应,也就从而导致三次握手没法完成,自然到不了发送真实数据的那一个步骤。
这种情况真的是特别诡异,至少我之前没有遇到过,于是拿着这个情况去请教其他组的大佬,然后也是大佬和我一起分析处理的

说下我们这边的情况:部署服务器并不是真实的物理机,而是从物理机上虚拟出来的(类似VMWARE)

这种情况下,也不知道开辟这块空间的老师是怎么处理,也可能是从配好的空间copy出来的,

仔细想想,请求肯定是先到宿主机,然后在到虚拟机,

我们和B公司的接口交互中间不在一个网络,中间就需要转发处理,我们部署服务器的这种情况,不就是nat嘛
(仔细想想vmware上的虚拟机连接网略也是这么设置的)

影响tcp连接的因素有啥,总不能是网线质量的问题吧…,所以也是定位到了 tw_recycle 和 tcp_timestamps 这两个参数,tcp_timestamps这个参数
是默认开启的,tw_recycle却是人为打开的,

参考博客:

https://www.cnblogs.com/nmap/p/6435057.html

https://blog.51cto.com/fuyuan2016/1795998

总结,nat网络下不要同时打开tw_recycle 和 tcp_timestamps 这两个参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值