zoukankan      html  css  js  c++  java
  • wirehark

    wireshark初体验
    三次握手
    第一次握手数据包
    客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。

    数据包的关键属性如下:
    SYN :标志位,表示请求建立连接
    Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
    Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据

    第二次握手的数据包
    服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图

    数据包的关键属性如下:
    [SYN + ACK]: 标志位,同意建立连接,并回送SYN+ACK
    Seq = 0 :初始建立值为0,表示当前还没有发送数据
    Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)

    第三次握手的数据包
    客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:

    数据包的关键属性如下:
    ACK :标志位,表示已经收到记录
    Seq = 1 :表示当前已经发送1个数据
    Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。
    就这样通过了TCP三次握手,建立了连接。开始进行数据交互。

    四次分手

    1.首先客户端请求关闭客户端到服务端方向的连接,这时客户端就要发送一个FIN=1,表示要关闭一个方向的连接
    2.服务端接收到后是需要确认一下的,所以返回了一个ACK=1
    3.这时只关闭了一个方向,另一个方向也需要关闭,所以服务端也向客户端发了一个FIN=1 ACK=1
    4.客户端接收到后发送ACK=1,表示接受成功

  • 相关阅读:
    06python 中的递归函数(python函数)
    05python 的内置函数以及匿名函数(python函数)
    Elasticsearch6.x集群部署
    SuperMap iServer之CAS单点登陆搭建流程
    大数据系列文章-Hadoop的HDFS读写流程(二)
    大数据系列文章-Hadoop基础介绍(一)
    SuperMap iObjects for Spark使用
    Hadoop集群+Spark集群搭建(一篇文章就够了)
    Linux配置 xampp下的https证书(腾讯云申请)
    SuperMap iServer 9D HBase使用
  • 原文地址:https://www.cnblogs.com/20191301lhq/p/12046179.html
Copyright © 2011-2022 走看看