三次握手协议

前端面试题

  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连接成功)状态,完成三次握手

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

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

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

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

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

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

posted @ 2018-11-27 16:16  明烟雨任  阅读(858)  评论(0编辑  收藏  举报