Linux(服务器编程):44---TCP长连接、短连接(心跳检测)
一、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连接