美文网首页让前端飞
JavaScript--TCP三次握手,四次握手

JavaScript--TCP三次握手,四次握手

作者: 阿毛啊726 | 来源:发表于2020-07-07 23:44 被阅读0次

    TCP三次握手 (请求连接)

    三次握手的目的是:同步连接双方的序列号和确认号并交换 TCP窗口大小信息。
    三次握手过程
    1客户端向服务器端发送SYN报文seq(x),请求连接,等待服务器端确认
    2服务器端接收到客户端的SYN报文,向客户端发送确认信息 SYN seq(y)+ack(x+1)
    3客户端收到服务器端的报文,向服务器端发送ACK )报文ack=y+1,这个报文段发送完毕以后,客户端和服务器端都进入established状态,完成TCP三次握手。

    为什么需要三次握手?
    为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
    一个被C丢弃的数据,被S接收到,S直接发送第二次握手后,对报文进行处理(此时并不知道该数据是否有用),如果三次握手,没有得到C的第三次握手,说明该报文是失效的,不用进行无用处理了

    TCP四次握手 (请求关闭)

    四次握手过程
    1 主机1(可以使客户端,也可以是服务器端),设置seq=x+2 ack=y+1,向主机2发送一个FIN报文段; 表明主机1没有数据要发送了,请求关闭进入close状态
    2 主机2收到了主机1发送的FIN报文段,向主机1回一个ACK(x+3)报文段, 我“同意”你的关闭请求;
    3 主机2向主机1发送FIN报文段seq=y+1,请求关闭连接,同时主机2进入close状态;
    4 主机1收到主机2发送的FIN报文段,向主机2发送ACK y+2报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,主机1也可以关闭连接了。

    相关文章

      网友评论

        本文标题:JavaScript--TCP三次握手,四次握手

        本文链接:https://www.haomeiwen.com/subject/zhfxcktx.html