美文网首页后端汇总
websocket 协议剖析

websocket 协议剖析

作者: 杭州_mina | 来源:发表于2017-06-02 15:59 被阅读0次

1、websocket小针数据传输的格式:

  • 1.1 websocket 发送"msg" 该字符长度不大于125长度通过 wireshark 抓包的显示16进制数据如下:
image.png
    • 1.1.1
      81 二进制表示 1000 0001
      二进制第一位 1表示 当前数据没有被分片
      二进制第八位 1表示 文本消息片断
    • 1.1.2
      83 二进制表示 1000 0011
      二进制第一位 1表示 该数据包有掩码
      二进制剩余位数据 000 0011表示 包体的长度 如果转成10进制 就是 3
    • 1.1.3
      e4 b4 b5 c3表示 随机4个字节的掩码
    • 1.1.4
      89 c7 d2 表示掩码后的数据内容 也就是对 'msg' 字符进行掩码后的16进制数据

2、websocket中针数据传输的格式:

  • 2.1 websocket 发送"111...." 该字符长度大于125 小于65536 长度通过 wireshark 抓包的显示16进制数据如下:
image.png
    • 2.1.1
      81 二进制表示 1000 0001
      二进制第一位 1表示 当前数据没有被分片
      二进制第八位 1表示 文本消息片断
    • 2.1.2
      fe 二进制表示 1111 1110
      二进制第一位 1表示 该数据包有掩码
      二进制剩余位数据 111 1110表示 包体的长度 如果转成10进制 就是 126 如果长度为126 数据包后两个字节表示 包体长度
    • 2.1.3
      00 8c 表示 包体的长度 如果转成10进制 就是 140 实际上 发送了140个 字符为"1"的字符
    • 2.1.4
      69 77 68 06表示 随机4个字节的掩码
    • 2.1.5
      58 46 59 37...表示 掩码后的数据内容

3、websocket大针数据传输的格式:

  • 3.1websocket 发送"111...." 该字符长度 大于65536 长度通过 wireshark 抓包的显示16进制数据如下:
image.png
    • 3.1.1
      81 二进制表示 1000 0001
      二进制第一位 1表示 当前数据没有被分片
      二进制第八位 1表示 文本消息片断
    • 3.1.2
      ff 二进制表示 1111 1111
      二进制第一位 1表示 该数据包有掩码
      二进制剩余位数据 111 111表示 包体的长度 如果转成10进制 就是 127 如果长度为127 数据包后八位字节表示 包体长度
    • 3.1.3
      00 00 00 00 00 01 7e d0表示 包体的长度 如果转成10进制 就是 98000 实际上 发送了98000个 字符为"1"的字符
    • 3.1.4
      59 2a 90 c3表示 随机4个字节的掩码
    • 3.1.5
      68 1b a1 f5...表示 掩码后的数据内容

4、websocket分片数据传输的格式: 【chrome浏览器在发送数据超过最大的tcp数据发送窗口(默认大小131072) 是会对消息进行分片 但是Safari 、ie 是不会 至于火狐是否会,我没有测试】:

image.png
    • 4.1.1
      01二进制表示 0000 0001
      二进制第一位 0表示 当前数据已经分片
      二进制第八位 1表示 文本消息片断
    • 4.1.2
      ff 二进制表示 1111 1111
      二进制第一位 1表示 该数据包有掩码
      二进制剩余位数据 111 111表示 包体的长度 如果转成10进制 就是 127 如果长度为127 数据包后八位字节表示 包体长度
    • 5.1.3
      00 00 00 00 00 02 00 00 表示 包体的长度 如果转成10进制 就是 131072 实际上 发送了131072个 字符为"1"的字符
    • 5.1.4
      59 2a 90 c3表示 随机4个字节的掩码
    • 5.1.5
      bc f4 ea d0...表示 掩码后的数据内容
    • 5.1.6
      下图 就是数据包第二个分片 所以可以看出 websocket协议的分片数据包的格式 就是协议+内容1 协议+内容2 这样的格式
image.png

相关文章

  • websocket 协议剖析

    1、websocket小针数据传输的格式: 1.1 websocket 发送"msg" 该字符长度不大于125长...

  • 好程序员web前端培训分享WebSocket协议

    好程序员web前端培训分享WebSocket协议,WebSocket协议简介 一.WebSocket协议简介 1....

  • 1.解释WebSocket,socketio

    1.解释WebSocket,socketio WebSocket:是一个标准网络传输协议 WebSocket协议是...

  • python之websocket

    一、websocket WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范...

  • 在tornado中使用WebSocket

    什么是WebSocket WebSocket是一种网络通信协议,与Http协议不同的是,WebSocket 连接允...

  • 基于koa的前后端分离的socket.io使用

    1、websocket websocket是html5出的协议,它是基于TCP协议,利用http协议建立连接,实现...

  • 2.WebSocket

    WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议...

  • WebSocket

    WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议...

  • websocket

    WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议...

  • WebSocket SSL 加密浅析

    1 WebSocket 原理 1.1 背景 WebSocket 是基于Http 协议的改进,Http 为无状态协议...

网友评论

    本文标题:websocket 协议剖析

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