WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

TCP的原理

1.TCP三次握手

 

 2.TCP四次挥手

 

 3.TCP短链接

模拟一种TCP短连接的情况:   1.client 向 server 发起连接请求   2.server 接到请求,双方建立连接   3.client 向 server 发送消息   4.server 回应 client   5.一次读写完成,此时双方任何一个都可以发起 close 操作
在步骤5中,一般都是 client 先发起 close 操作。当然也不排除有特殊的情况。 从上面的描述看,短连接一般只会在 client
/server 间传递一次读写操作!

操作步骤:

 

 

4.TCP的长链接

再模拟一种长连接的情况:   1.client 向 server 发起连接   2.server 接到请求,双方建立连接   3.client 向 server 发送消息   4.server 回应 client   5.一次读写完成,连接不关闭   6.后续读写操作...   7.长时间操作之后client发起关闭请求

操作步骤:

5. TCP长/短连接的优点和缺点

长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。 对于频繁请求资源的客户来说,较适用长连接。 client与server之间的连接如果一直不关闭的话,会存在一个问题, 随着客户端连接越来越多,server早晚有扛不住的时候,这时候server端需要采取一些策略, 如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致server端服务受损; 如果条件再允许就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数, 这样可以完全避免某个蛋疼的客户端连累后端服务。 短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。 但如果客户请求频繁,将在TCP的建立和关闭操作上浪费时间和带宽。

 

6. TCP长/短连接的应用场景

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。 每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接, 再操作的话那么处理速度会降低很多,所以每个操作完后都不断开, 再次处理时直接发送数据包就OK了,不用建立TCP连接。 例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误, 而且频繁的socket 创建也是对资源的浪费。 而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源, 而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源, 如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话, 那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

 


__EOF__

本文作者Ambitious
本文链接https://www.cnblogs.com/ambitiousPlus/p/16148568.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Ambitious~  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示