TCP 三次握手和四次挥手
三次握手:
客户端发送链接syn请求给服务端,服务端收到请求,返回客户端一个ack和syn以及序列号 表示可以链接
客户端在发送ack和序列号给服务端
为什么需要三次握手
因为首先第一次握手,是客户端给服务端发送的请求,一定不能少,第二次是服务端返回给客户端的,也不能少表示服务端成功接受了客户端的请求,而最后一次客户端发送给服务端的ack代表你客户端已经收到了服务端发送的数据,这样的握手才是稳定的链接
四次挥手:
客户端发送fin请求断开链接给服务端,服务端收到请求发送ack给客户端,
之后服务端在发送fin和ack给客户端,客户端收到之后在发送ack给服务端
为什么需要四次挥手
因为客户端在请求断开链接的时候,服务端发送给客户端的数据不一定都发送完,
所以在客户端请求fin之后,服务端返回ack,然后等待数据都发送完之后,在发送fin和ack
为什么四次挥手的时候最后要等待2msl客户端才关闭
因为在给服务端发送最后的ack的时候,我们必须认为网络是不稳定的,如果服务端没有接受到ack
就会一直发送fin请求给客户端,所以在客户端要有等待如果这个时候在收到fin,说明之前的没发送成功,在重新发送
tcp和udp区别
tcp是基于连接,udp是无连接的不安全的
tcp对资源要求多,udp要求少
tcp速度慢,udp速度快(较好的实时性)
tcp需要建立三次握手
Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输
tcp 是数据有序可靠的到达
tcp是连接是点到点的
但是udp 支持一对一,一对多,多对多
udp是尽力而为的服务,数据到达是无序的可能丢包
udp没有拥塞控制等机制
tcp首部20字节开销小,udp8个字节开销小
如果觉得有什么疑惑或者博主代码有什么问题,可以通过关于我,加我QQ联系 ,感谢。