三次握手协议

前端面试题

  1. 说说三次握手协议

答:第一次握手:创建链接时,客户端发送syn包(syn=j)到服务器,并进入syn_sent状态,等待服务器确认,syn:同步序列编号前端

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时本身也发送一个syn包(syn=k),即syn + ack包,此时服务器进入syn_recv状态面试

第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack = k + 1),此包发送完毕,客户端和服务器进入established(tcp链接成功)状态,完成三次握手服务器

完成三次握手,客户端与服务器开始传送数据tcp

Seq 与ack在三次握手协议的计算同步

第一次   客户端发起第一次握手:随机生成一个seq为i,包含在syn包里面发送给服务器,服务器接收到syn包数据

第二次   服务器发起第二次握手:服务器向客户端发送一个ack包,并把服务器状态变成为syn_recv状态,服务器随机生成一个ack码为j,并把客户端发送的seq码加一,客户端

第三次   客户端接收服务器发送的ack包,首先验证seq码是否加一,seq(客户端) = seq(服务器)+1,并接收到服务器发来的ack码,在ack码上添加一协议

Ack(客户端)+1 = ack(服务器)tab

相关文章
相关标签/搜索