三次握手、四次挥手
三次握手:客户端与服务端传输数据
第一次:客户端向服务端发送消息,此信息主要确定的是服务端是否处于运行状态,传输内容包括(标识为0,协议为syn)
第二次:服务端向客户端发送消息,此信息主要是告诉客户端,服务器处于运行状态,传输内容包括(标识为0+1,协议为syn+ack)当客户端接收到此消息后,客户端与服务端就处于连接状态
第三次:客户端向服务端发送数据包,传输内容包括(ack,标识为1,数据)
四次挥手:客户端与服务端断开连接
第一次:客户端调用close方法,向服务端发送长度为0的消息,协议为FIN
第二次:服务端向客户端发送确认消息(关闭连接消息)
第三次:服务端调用close方法,通知客户端
第四次:客户端向服务端发送确认消息,此时客户端与服务端断开连接
三次握手
四次挥手
tcp比udp稳定的原因
tcp在建立连接时,需要客户端与服务端确认是否连接成功,如果没有连接成功,客户端还会想服务端发送确认消息,在建立连接后,每次客户端向服务端发送消息后,服务端都会向客户端发送确认收到的消息
而upd,每次只会发送数据,而不管数据是否发送成功
tcp的长连接与短连接
长连接:在http1.0中,默认使用的是短连接,client请求server,会创建一次连接,访问结束就断开连接
短连接:在http1.1中,默认使用的是长连接,client请求server,会先建立连接,(响应头的属性:connect:keep-alive)每次client访问server时,都会使用第一次创建的连接,当超过一定时间没有请求时,会断开连接,重新访问时,会再次创建连接,client主动调用close时,也会断开连接
长连接与短连接应用场景不同,各有优缺点,实际应用时,要根据具体场景来定