消息分块实例分析

来源:互联网 发布:suse安装yum源 编辑:程序博客网 时间:2024/06/15 12:48

转自http://blog.csdn.net/shangmingyang/article/details/50837852

 chunk表示例1


    • 首先包含第一个Message的chunk的Chunk Type为0,因为它没有前面可参考的chunk,timestamp为1000,表示时间戳。type为0的header占用11个字节,假定chunkstreamId为3<127,因此Basic Header占用1个字节,再加上Data的32个字节,因此第一个chunk共44=11+1+32个字节。
      第二个chunk和第一个chunk的CSID(chunkstreamId),TypeId,Data的长度都相同,因此采用Chunk Type=2,timestamp delta=1020-1000=20,因此第二个chunk占用36=3+1+32个字节。
      第三个chunk和第二个chunk的CSID,TypeId,Data的长度和时间戳都相同,因此采用Chunk Type=3省去全部Message Header的信息,占用33=1+32个字节。
      第四个chunk和第三个chunk情况相同,也占用33=1+32个字节。
      最后实际发送的chunk如下:
    •  chunk表示例2


    注意到Data的Length=307>128,因此这个Message要切分成几个chunk发送,第一个chunk的Type=0,Timestamp=1000,承担128个字节的Data,因此共占用140=11+1+128个字节。
    第二个chunk也要发送128个字节,其他字段也同第一个chunk,因此采用Chunk Type=3,此时时间戳也为1000,共占用129=1+128个字节。
    第三个chunk要发送的Data的长度为307-128-128=51个字节,还是采用Type=3,共占用1+51=52个字节。
    最后实际发送的chunk如下:


0 0
原创粉丝点击