FT12短网址:Tcp长连接与短连接对高并发的影响
1、Tcp树立连接需求三次握手,断开连接需求四次握手。
2、tcp树立连接后将会在操作系统内核内存中保护四元组方针(源ip,源port,方针ip,方针port)。
3、tcp在断开连接时,自动断开方四元组将会处于time_wait状况,一起源port不可用,此由操作系统限制。因而本地频频的自动断开tcp衔接将很快耗尽端口号。
http协议:
http协议是应用层协议,树立在tcp之上,因而一切tcp上的数据包发送都有http协议结构触发。
1、http1.0协议默以为短链接,并且是由服务器自动断开衔接,当服务器发送完数据以后会发送FIN数据包,此刻客户端发送ACK对FIN进行回答,等客户端发送FIN给服务端,服务端发送ACK给客户端,到此TCP才断开,客户端TCP衔接开释,可是服务器端TCP四元组将会进入到Time_Wait状况,Time_Wait由系统决议,可装备,最低30s,进入Time_Wait的原因是不能确保对方收到最终的ACK。按自己了解,假如服务端发送自动封闭FIN,客户端已回复ACK,此刻客户端良久不回复Fin,客户端http结构会强行不活动TCP四元组发送Fin,完毕TCP衔接。
2、http1.1协议默以为keep-alive,意义是通知服务端不要封闭tcp,延迟一段时间再封闭。假如此刻客户端往服务器发送tcp包将会更新服务端tcp定时器,确保tcp衔接再活一段时间。http协议根据tcp协议,一起根据tcp链接池,假如http发现当时恳求有契合的tcp链接将会复用。契合条件:端口号属于当时客户端程序,方针地址及端口号契合,一起tcp四元组处于活动状况即可复用。
总结:高并发用短衔接会很快耗尽客户端端口号,功率乃至不如http恳求。解决方案是使用socket连接池长衔接。