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,表示接受成功

  • 相关阅读:
    Node.js安装及环境配置(windows)
    table
    检测浏览器
    ickeck插件
    全国三级联动
    css3-calc用法
    jQuery Portamento 滑动定位
    canvas版《俄罗斯方块》
    canvas入门级小游戏《开关灯》思路讲解
    css3 matrix 2D矩阵和canvas transform 2D矩阵
  • 原文地址:https://www.cnblogs.com/20191301lhq/p/12046179.html
Copyright © 2011-2022 走看看