从TCP/IP协议谈Linux内核参数优化
副标题[/!--empirenews.page--]
在硬件资源有限的情况下,最大的压榨服务器性能,提高服务器的并发处理能力,是很多技术人员思考的问题,除了优化Nginx/PHP-FPM/Mysql/Redis这类服务软件配置外,还可以通过修改Linux的内核相关TCP参数,来最大的提高服务器性能。 在Linux内核参数优化之前,我们需要先搞懂TCP/IP协议,这是我们实施优化的理论依据。 TCP/IP协议 TCP/IP协议是十分复杂的协议,完全掌握不是一件容易的事情,但作为基本知识,我们必须知道TCP/IP协的三次握手和四次挥手的逻辑过程。 三次握手 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。 三次握手流程图: ![]() 三次握手流程
四次挥手 四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。 由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。 四次挥手的流程图: ![]() 四次挥手流程
序列号与确认应答 大家都知道TCP/IP协议是以一种高可靠的通信协议,通过序列号与确认应答来保障通信高可靠,有如下几个关键点:
TCP/IP协议缺陷 了解了TCP/IP协议之后,我们就会发现几个问题: 在三次握手中,如果客户端发起第一次握手后就中断或者不响应服务器发回的ACK=1数据包,那服务器就会不断的重试发送数据包,直到超时。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows NTP服务器A Stratum为2,Windows NTP Server B Stra
- 如何控制IIS7使用的IP地址?
- Windows Core OS设备现身GeekBench:搭载Intel 5核Lakefiel
- .net – NuGet在哪里放dll?
- windows-server-2003 – 从死Windows域控制器中获取FSMO角色
- windows – Powershell:找不到匹配的参数
- windows – 选择不同打印处理器的原因是什么?
- windows – 从不存在的域中删除计算机的命令
- Lumia 950 XL成功移植Windows 11新动画也能显现
- Linux日常运维--rsync同步工具小总结