zoukankan      html  css  js  c++  java
  • tcp三次握手与四次分手

    三次握手A主机请求B主机

    A主机 先发 syn=1 ,seq=a 给B主机  A主机进入SYN_SENT状态

    B主机收到后发送 syn=1 ACK=1 seq=b ack=a+1 给A主机   B主机此时服务器进入SYN_RECV状态;

    A主机收到后发送ACK=1 seq=a+1 ,ack=b+1 给B主机  客户端和服务器进入ESTABLISHED(TCP连接成功)状态

    syn=1  表示请求连接包  seq=a 表示本机的第几个数据包,即本机的数据包序列号   ACK=1表示确认包  ack=a+1 表示响应对方主机的第几个数据包

    四次挥手

    主机A发送断开TCP连接请求的报文,其中报文中包含seq序列号,是有发送端随机生成的,并且还将报文中FIN字段的值设为1,表示需要断开TCP连接。

    主机B会回复A发送的TCP断开请求报文,其中包含seq序列号,是由恢复段随机生成的,而且会产生ACK字段,ACK字段的数值,是在A发送过来的seq序列号基础上加1进行回复的,以便A收到信息时,知晓自己的TCP断开请求已得到了验证。

    在主机B回复完A的TCP断开请求后,不会马上就进行TCP连接的断开,主机B先会确认确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输完毕就会将回复报文的FIN字段置为1,并产生随机seq序列号。

    主机A收到主机B的TCP断开请求后,会回复主机B 的断开请求,包含随机生成的seq字段和ack字段,ack字段会在主机B的TCP断开请求的seq的基础上加1,从而完成主机B请求的验证回复。

     

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    负载均衡获得真实源IP的6种方法
    美图全链路监控实战
    移动端APM网络监控与优化方案
    k8s 如何对外提供服务
    mysql5.7安装audit审计插件
    mysql 5.7安装密码校验插件validate_password
    Linux Crontab 定时任务
    stm32 hard fault usage fault UNALIGNED -> task stack overflow
    linux逻辑卷管理(LVM)
    suse11开启telnet服务
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/10454401.html
Copyright © 2011-2022 走看看