一、TCP协议
1.三次握手(类似于打电话)
数据包格式:SYN(握手)、ACK(确认)、FIN(终止连接)、RST(处置连接)、SYN-ACK(握手响应)
第一次握手 (SYN) 客户端发送SYN报文(SYN=1),并随机生成一个初始序列号(seq=x)。此时客户端进入SYN_SENT状态,等待服务器确认。(类似于打电话:“喂,你好,有听到吗?”)
第二次握手 (SYN+ACK) 服务器收到SYN报文后,会发送SYN+ACK报文(SYN=1, ACK=1),确认号设置为x+1(ack=x+1),同时随机生成自己的序列号(seq=y)。服务器进入SYN_RCVD状态。(对方回应:“在的,有什么说”)
第三次握手 (ACK) 客户端收到SYN+ACK报文后,发送ACK报文(ACK=1),确认号为y+1(ack=y+1),序列号为x+1(seq=x+1)。此时客户端进入ESTABLISHED状态,服务器收到ACK后也进入ESTABLISHED状态,连接建立完成。
2.四次挥手(终止连接)确保双方安全断开连接
第一次挥手
客户端发送FIN报文给服务器,表示客户端不再发送数据,进入FIN_WAIT_1状态。
第二次挥手
服务器收到FIN报文后,发送ACK报文作为确认,进入CLOSE_WAIT状态。客户端收到ACK后进入FIN_WAIT_2状态。
第三次挥手
服务器发送FIN报文给客户端,表示服务器也准备关闭连接,进入LAST_ACK状态。
第四次挥手
客户端收到FIN报文后,发送ACK报文作为确认,进入TIME_WAIT状态。服务器收到ACK后关闭连接,客户端等待2MSL后也关闭连接。
TIME_WAIT状态的作用
TIME_WAIT状态持续2MSL(Maximum Segment Lifetime),确保网络中残留的报文段完全消失,避免新旧连接混淆。同时还允许最后一个ACK报文重传,确保服务器能正确关闭。
二、UDP协议
类似于发微信,不管对方在不在,就使劲发,发完就可以了
在游戏、直播、会议视频中卡顿几下也无伤大雅,但是实时快,可以追求速度使用
TCP就追求安全可靠
三、SOCKET(协议,地址,端口)
Socket 是网络通信的编程接口,允许不同主机或同一主机上的进程间进行数据交换。分为 流式 Socket(TCP) ,数据报 Socket(UDP) 和三种类型。

1700

被折叠的 条评论
为什么被折叠?



