TCP链接建立过程
1、TCP三次握手:
第一次握手:客户端到服务器,发送SYN:同步序列编号,
并进入SYN_SENT,等待服务器确认
第二次握手: 服务器收到syn包,必须确认客户的SYN(ack=x+1),
同时自己也发送一个SYN(SYN=Y)包,即发送SYN+ACK,此时服务器进入SYN_RECV状态
第三次握手:客户端收到SYN+ACK,向服务器发送确认包ACK(ack=Y+1),此包发送完毕,服务器和客户端都进入
ESTABLISHED状态,完成三次握手
2、TCP四次挥手
第一次挥手:主动方发送一个FIN,并进入FIN_WAIT_1,
用来关闭主动方到被动方的数据传送,来告诉被动方,不会再传送数据了(如果没有收到对方的ack
确认报文,还会重发这些数据),但是这时候还是可以接收数据。
第二次挥手:被动方收到FIN后,
发送一个ACK给对方,确认序号为收到序号+1。
第三次挥手:被动方发送FIN,用来关闭和主动方的数
据传送,也就是告诉对方,我的数据发送完成了,不会再给你发送了。
第四次挥手:主动方收到FIN
后,发送一个ACK给被动方,序号为收到序号+1,至此,完成四次挥手。
TCP与UDP的区别
1、UDP传输速度快
2、TCP面向连接协议,检查连接,应用对数据比较看重的,如邮件。UDP面向非连接协议,不检查连接,对数据重要性无要求,如视频
3、TCP有数据恢复,UDP没有
4、TCP检查数据完整性,UDP提供的有限