一、TCP连接的相关说明
①使用TCP协议时,会在客户端和服务器之间建立一条虚拟的信道,这条虚拟信道就是指连接,而建议这条连接需要3次握手,拆毁这条连接需要4次挥手,可见,我们建立这条连接是有成本的,这个成本就是效率成本,简单点说就是时间成 本,你要想发送一段数据,必须先3次握手(来往3个包),然后才能发送数据,发送完了,你需要4次挥手(来往4个包) 来断开这个连接
②CPU资源成本,三次握手和4次挥手和发送数据都是从网卡里发送出去和接收的,还有其余的设备,比如防火墙, 路由器等等,站在操作系统内核的角度来讲,如果我们是一个高并发系统的话,如果大量的数据包都经历过这么一个过 程,那是很耗CPU的。
③每个socket是需要耗费系统缓存的,比如系统提供了一些接口设置socket缓存的,比如:
/proc/sys/net/ipv4/tcp_rmem
/proc/sys/net/ipv4/tcp_wmem
/proc/sys/net/ipv4/tcp_mem
因为TCP的可靠传输,所以我们有大量的应用程序使用TCP协议作为通信,但是每个应用因为产品功能的原因,对TCP的使用是不一样的,比如即时聊天系统(微信,钉钉,探探)
二、TCP长连接、TCP短连接
TCP短连接
概念:如下图所示,客户端与服务器建立连接开始通信,一次/指定次数通信结束之后就断开本次TCP连接,当下次再次通信时,再次建立TCP的链接
优点:不长期占用服务器的内存,那么服务器能处理的连接数量是比较多的
缺点:
因为等到要发送数据或者获取资源时,才去请求建立连接发送数据,否则就是端开连接的,那么如果服务器要想往客户端发送数据时怎么办?凉伴,没有任何办法,或者要等到下一次要请求数据时,才发送,比如我们采用轮询(30秒或者更