| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 关于TCP中服务端接收数据包无响应问题 -> 正文阅读 |
|
[网络协议]关于TCP中服务端接收数据包无响应问题 |
原因是公司换了一套VPN现在为NAT网络模式,然后生产出现偶发性的页面无法连接问题,下面是排查处理结果 ?????? 1.访问流程? 2.问题现象在旧版切换为新Vpn之后用户访问堡垒机首页,偶发性出现连接异常提示连接超时,没有规律日志没有报错,然后和vpn那边沟通他们也没有明确回复vpn的旧版新版差异性问题导致走了一堆弯路 ? 3.排查思路(1)网络排查开始以为网络问题测试本地连接Vpn可以Ping和Telnet通Nginx但是访问不到时候Telnet端口不通(Telnet为应用层协议) (2)前端日志排查然后排查应用Nginx日志报错为:根据报错没有有用信息报错端口是图形化桌面端口 ? (3)后端应用排查然后直接不通过Nginx代理直接访问后端IP进行访问应用来测试看看是否是应用 问题,发现直接访问应用不会出现断开连接丢包现象 (4)前端应用排查在想是不是Nginx代理转发出了问题然后直接访问前端Nginx真实IP进行测试、也是一直可以打开页面没有出现断开连接超时情况。 (5)资源排查Top看了资源占用情况发现剩余资源都在百分95以上不存在资源不够情况,又看Nginx连接数量和Tcp连接数远远没有达到最大标准。 (6)抓包测试进行抓包测试当页面出现不能访问情况时服务端可以收到客户端发来数据包、但是服务端没有响应 遂www.baidu.com服务端接收数据包不回复原因,查询到两个Linux进程参数 tcp_tw_recycle ?????????? 1发送方在发送数据时,将一个timestamp(表示发送时间)放在包里面 ????? 2接收方在收到数据包后,在对应的ACK包中将收到的timestamp返回给发送方(echo back) ????? 3发送发收到ACK包后,用当前时刻now - ACK包中的timestamp就能得到准确的RTT
? 均为开启状态,了解到tcp_timestamps为时间戳tcp_tw_recycle是快速回收处理TIME_WAIT状态的socket,当tcp_tw_recycle为1是开启状态,然后修改为0就可以了 ? 4 . 总结(以下为个人理解,如有不对欢迎大佬补充讨论) 大概意思就是当网络模式为NAT(可能旧版VPN不是大家共用一个IP所以没出现这个情况)连接用户都为一个IP发送到服务端数据包源IP一致,但是时间戳不同但是用户访问时候每个人有每个人对应的访问时间戳,当其中一个用户断开了连接之后他会短暂处于一个TIME_WATI状态,然后开启了tcp_tw_recycle之后系统会在一个RTO的极短时间内回收处于TIME_WAIT状态的socket但是同时他还会接收到之前连接了此页面的用户发来的数据包,然后就会进行判断时间戳如果是老报文,则丢弃且不回复。 5.处理方法netstat -s |grep reject 查询到被动拒绝的连接数 当tcp_tw_recycle为1时在不断增长被动拒绝连接数 然后修改为0就可以了 ? ? ? ? ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:37:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |