三次握手
TCP协议为了确保数据包能准确发往对象手中采用了三次握手的方法
三次握手原理
第一次握手:客户端发送一个带有SYN(synchronize(同步))的数据包给服务端,表示呼叫对方在不
第二次握手:服务端接收到数据包后,发回一个带有SYN/ACK标志的数据包给客户端,表示回复对方。
第三次握手:客户端接收到回复的数据包后,再回复一个带有SYN/ACK的数据包。表示我明白了,握手结束开始正常通话。
三次握手详细过程
第一次握手:为避免数据包丢失,客户端会发送多个带有初始序号A的数据包。初始序号A是随机生成的,例:1933
第二次握手:服务端接受数据包后查看序号A从而丢掉多发点冗余文件。回复的SYN/ACK标签的包中包含自己随机生成的序号B和以序号A+1作为确认号。
第三次握手:客户端发送的包中包含以序号A+1作为初始序号,以序号B+1作为确认号
四次断开
由于TCP连接是全双工的,服务端和客户端都必须单独进行关闭。
四次断开原理
第一次断开:客户端发送一个包含FIN标签的数据包给服务端,表示我要断开访问了。
第二次断开:服务端接受数据包后,会回复一个包含FIN/ACK的数据包给客户端,表示我知道了。
第三次断开:服务端再发送一个包含FIN/ACK的数据包给客户端,表示我准备好断开连接了。
第四次断开:客户端接受两个数据包后发送一个带有FIN/ACK标签的数据包给服务端,表示我明白了。结束通话。