南京重庆网站建设,优秀高端网站建设公司,python是什么,网站建设如何在宣传部备案TCP三次握手TCP标志位TCP在其协议头中使用大量的标志位或者说1位#xff08;bit#xff09;布尔域来控制连接状态#xff0c;一个包中有可以设置多个标志位。TCP是主机对主机层的传输控制协议#xff0c;提供可靠的连接服务#xff0c;采用三次握手确认建立一个连接#…TCP三次握手TCP标志位TCP在其协议头中使用大量的标志位或者说1位bit布尔域来控制连接状态一个包中有可以设置多个标志位。TCP是主机对主机层的传输控制协议提供可靠的连接服务采用三次握手确认建立一个连接TCP标志位有6种标示:SYN表示建立连接FIN表示关闭连接ACK表示响应PSH表示有 DATA数据传输RST表示连接重置。 URG(紧急)我们常用的是以下三个标志位序号表示发送的数据字节流确保TCP传输有序对每个字节编号确认序号发送方期待接收的下一序列号接收成功后的数据字节序列号加 1。只有ACK1时才有效。SYN - 创建一个连接 确认序号的标志ACK1表示确认号有效ACK0表示报文不含确认序号信息FIN - 终结一个连接 结束标志用于释放连接为1表示关闭本方数据流ACK - 确认接收到的数据 ACK1表示确认号有效ACK0表示报文不含确认序号信息三次握手所谓三次握手是指建立一个TCP连接时需要客户端和服务器总共发送3个包。第一次握手主机客户端发送位码为 syn1,随机产生seq number1234567的数据包到服务器主机服务器由syn1知道客户端要求建立联机第二次握手主机服务器收到请求后要确认联机信息向客户端发送ack number(主机客户端的seq1),syn1,ack1,随机产生seq7654321的包第三次握手主机客户端收到后检查ack number是否正确即第一次发送的seq number1,以及位码ack是否为1若正确主机A会再发送ack number(主机B的seq1),ack1主机服务器收到后确认seq值与ack1则连接建立成功。完成三次握手主机客户端与主机服务器开始传送数据。四次挥手第一次挥手客户端发送了一个FIN报文报文中会指定一个序列号此时客户端状态为FIN_WAIT1状态第二次挥手服务端收到FIN之后会发送ACK报文并且把客户端的序列号1作为ACK报文的序列号值表明已经收到客户端的报文了此时服务端处于CLOSE_Wait状态第三次挥手如果服务端也想断开连接了和客户端的第一次挥手一样发给FIN报文且指定一个序列号此时服务端处于LAST_ACK状态。第四次挥手客户端收到FIN之后,一样发送一份ACK报文作为应答,并且把服务器的序列号1作为自己的ACK报文的序列号值此时客户端处于TIME_wait状态,注意此时TCP连接还没有释放必须经过2∗∗MSL最长报文段寿命的时间后才进入CLOSED状态。服务器只要收到了客户端发出的确认立即进入CLOSED状态。