社区论坛网站建设,影响网站权重,茶叶推广方案,做交友信息网站可行么第一次握手 A 创建本地的传输控制模块 TCB#xff0c;然后创建一个 TCP 报文段#xff0c;报文段中#xff1a;
SYN 1 同步控制位#xff08;1 时候不能携带数据#xff09; seq x#xff1b;序号#xff0c;供 B 确认 由于此时 SYN 为 1#xff0c;不能给携带数据然后创建一个 TCP 报文段报文段中
SYN 1 同步控制位1 时候不能携带数据 seq x序号供 B 确认 由于此时 SYN 为 1不能给携带数据但是要消耗掉一个序号 seq发送完以后客户端进入 SYN-SENT同步已发送 状态
第二次握手 B 在接收到 A 传来的建立连接请求以后如果是同意建立连接则会给 A 响应以确认自己同意建立连接报文段如下
SYN 1 同步控制位1 时候不能携带数据 ACK 1 确认控制位 ack x 1 在 A 传来的序号 x 基础上1以确认 seq y 创建自己的 序号 y供 A 去确认
这一步主要是添加了 ACK 1 表示确认有效然后再把 A 传来的 x 值加一以供 A 去确认再创建一个自己的序号 y。 最终把 TCP 报文传递给 AB 进入 SYN-RCVD同步收到 状态。
第三次握手 A 在接收到 B 传来的 TCP 报文以后还需要再次向 B 确认
ACK 1 ack y 1 seq x 1
此时把 ACK 1表示确认然后把 B 传来的 seq 1 作为确认序号 ack 消耗自己的序号数 seq x1 这个时候没有 SYN 控制位此 TCP 是可以携带数据但是会消耗自己的序号如果不携带数据的话不会消耗自己的序号 等到下次数据传输的时候seq 还是 x1这个时候 TCP 连接已经建立A进入ESTAB-LISHED已建立连接状态。
当 B 收到 A 传来的 TCP 报文的时候也进入ESTAB-LISHED已建立连接状态。
第一次挥手 当客户端 A 没有数据要和服务器 B 交互的时候就会发送一个 TCP 报文
FIN 1 标志着要断开此 TCP 连接 seq u u 等于前面已经传送过数据的最后一个字节的序号 1
A 发送了这个 TCP 报文以后就进入了 FIN-WAIT1终止等待 1状态等待 B 的确认这里要注意的是即使 FIN 报文段不携带数据也会将序号消耗掉一个。
第二次挥手 B 接收到 A 发来的请求终止 TCP 连接的报文以后要回复给 A 一个确认报文
ACK 1 ACK 1 表示确认 ack u1 把 A 传来的 u 加 1 以后通过确认序号返回给 A seq v 自身前面已经传送过的数据的最后一个字节的需要1 以后作为本次序号传递给 A
B 发送完了本次确认报文以后就进入了 CLOSE-WAIT关闭等待状态这时的 TCP 连接处于半关闭状态 即A 没有数据要发送给 B但是 B 还是有可能发送数据给 A 的这个时候 A 仍然会对 B 发送的数据进行接收。
A 收到 B 传来的确认报文以后就进入了 FIN-WAIT-2终止等待 2 状态等待 B 发送最后的连接关闭报文
第三次挥手 这个时候发生在 B 也没有数据要发送给 A 了这时 B 要发送报文告诉 AB 自身也要关闭连接。
FIN 1 关闭连接控制位 ACK 1 确认控制位 seq w 如果在第二次握手以后 B 没有发送数据那么 w v如果发生了数据发送就 w v ack u1重复发送上次发送的 u1确认序号。
此时 B 发送了以后自身进入了LAST-ACK最后确认状态等待 A 的确认
第四次挥手 A 在收到 B 的请求关闭连接的报文以后在确认报文段中将 ACk 置为 1表示确认并给 B 回复
ACK 1确认控制位 ack w1确认序号为 B 发来的 w1 seq u1自身的序号1
A 在发送了最后的报文以后自身就进入了TIME-WAIT时间等待状态此时的 TCP 连接还没有释放掉必须经过时间等待计时器TIME-WAIT timer设置的时间 2MSL 以后 A 才会进入到 CLOSED 状态。
只要 B 接收到 A 发来的确认报文就进入了 CLOSED 状态但是由于 A 要再发送报文以后等待一段时间才会关闭所以B 的关闭会比 A 早一点。 第一次握手 A 创建本地的传输控制模块 TCB然后创建一个 TCP 报文段报文段中
SYN 1 同步控制位1 时候不能携带数据 seq x序号供 B 确认 由于此时 SYN 为 1不能给携带数据但是要消耗掉一个序号 seq发送完以后客户端进入 SYN-SENT同步已发送 状态
第二次握手 B 在接收到 A 传来的建立连接请求以后如果是同意建立连接则会给 A 响应以确认自己同意建立连接报文段如下
SYN 1 同步控制位1 时候不能携带数据 ACK 1 确认控制位 ack x 1 在 A 传来的序号 x 基础上1以确认 seq y 创建自己的 序号 y供 A 去确认
这一步主要是添加了 ACK 1 表示确认有效然后再把 A 传来的 x 值加一以供 A 去确认再创建一个自己的序号 y。 最终把 TCP 报文传递给 AB 进入 SYN-RCVD同步收到 状态。
第三次握手 A 在接收到 B 传来的 TCP 报文以后还需要再次向 B 确认
ACK 1 ack y 1 seq x 1
此时把 ACK 1表示确认然后把 B 传来的 seq 1 作为确认序号 ack 消耗自己的序号数 seq x1 这个时候没有 SYN 控制位此 TCP 是可以携带数据但是会消耗自己的序号如果不携带数据的话不会消耗自己的序号 等到下次数据传输的时候seq 还是 x1这个时候 TCP 连接已经建立A进入ESTAB-LISHED已建立连接状态。
当 B 收到 A 传来的 TCP 报文的时候也进入ESTAB-LISHED已建立连接状态。
第一次挥手 当客户端 A 没有数据要和服务器 B 交互的时候就会发送一个 TCP 报文
FIN 1 标志着要断开此 TCP 连接 seq u u 等于前面已经传送过数据的最后一个字节的序号 1
A 发送了这个 TCP 报文以后就进入了 FIN-WAIT1终止等待 1状态等待 B 的确认这里要注意的是即使 FIN 报文段不携带数据也会将序号消耗掉一个。
第二次挥手 B 接收到 A 发来的请求终止 TCP 连接的报文以后要回复给 A 一个确认报文
ACK 1 ACK 1 表示确认 ack u1 把 A 传来的 u 加 1 以后通过确认序号返回给 A seq v 自身前面已经传送过的数据的最后一个字节的需要1 以后作为本次序号传递给 A
B 发送完了本次确认报文以后就进入了 CLOSE-WAIT关闭等待状态这时的 TCP 连接处于半关闭状态 即A 没有数据要发送给 B但是 B 还是有可能发送数据给 A 的这个时候 A 仍然会对 B 发送的数据进行接收。
A 收到 B 传来的确认报文以后就进入了 FIN-WAIT-2终止等待 2 状态等待 B 发送最后的连接关闭报文
第三次挥手 这个时候发生在 B 也没有数据要发送给 A 了这时 B 要发送报文告诉 AB 自身也要关闭连接。
FIN 1 关闭连接控制位 ACK 1 确认控制位 seq w 如果在第二次握手以后 B 没有发送数据那么 w v如果发生了数据发送就 w v ack u1重复发送上次发送的 u1确认序号。
此时 B 发送了以后自身进入了LAST-ACK最后确认状态等待 A 的确认
第四次挥手 A 在收到 B 的请求关闭连接的报文以后在确认报文段中将 ACk 置为 1表示确认并给 B 回复
ACK 1确认控制位 ack w1确认序号为 B 发来的 w1 seq u1自身的序号1
A 在发送了最后的报文以后自身就进入了TIME-WAIT时间等待状态此时的 TCP 连接还没有释放掉必须经过时间等待计时器TIME-WAIT timer设置的时间 2MSL 以后 A 才会进入到 CLOSED 状态。
只要 B 接收到 A 发来的确认报文就进入了 CLOSED 状态但是由于 A 要再发送报文以后等待一段时间才会关闭所以B 的关闭会比 A 早一点。