wireshark sequence number 解码与原始消息不一致问题
来源:互联网 发布:三位一体2 mac版 编辑:程序博客网 时间:2024/04/29 22:26
原贴:http://blog.sina.com.cn/s/blog_53512f590102xfq6.html
我在看TCP协议报文,随机抓了一个TCP包,用WIRESHARK解码,发现
答案:
我终于明白了。 这个“0”是WIRESHAK软件自己计算出来的。
如下帧均是A发给B方向的,是一次TCP建链,到发送数据的过程:
第1帧是:“85 ab f2 29” ,whreshark sequence number= 0 tcp segment length=0; //syn
第2帧是:“85 ab f2 2a” ,whreshark sequence number= 1 tcp segment length=0; //ack
第3帧是:“85 ab f2 2a” ,whreshark sequence number= 1 tcp segment length=47; //data 与前一个序号"85 ab f2 2a"相比没有变化,所以sequence number 不变,还是1 .下一帧的sequence number应当是48!从“85 ab f2 2a”这个数字开始加,再加46个,一共是47个字节,这些数据传给了B ,相加的结果是:“85 ab f2 58”,那下一个要传的数字就是 "85 ab f2 59".
第4帧是:“85 ab f2 59” ,whreshark sequence number= 48 tcp segment length=0; //data 只有传数据,只传了一个ACK信号,表示我收到了对方的数据。所以下一帧的发送地址还应当是这个“85 ab f2 59”
第5帧是:“85 ab f2 59” ,whreshark sequence number= 48 tcp segment length=520; //data
第6帧是:“85 ab f4 61” ,whreshark sequence number= 568 tcp segment length=24; //data
TCP 首部,协议关于”序号“说的很清楚:—— 由于 TCP 封包必须要带入 IP 封包当中,所以如果 TCP 数据太大时(大于 IP 封包的容许程度), 就得要进行分段。这 个 Sequence Number 就是记录每个封包的序号,可以让收受端重新将 TCP 的数据组合起来。序号字段的值则指的是本报文段所发送的数据 的第一个字节的序号。这个 Sequence Number 跟WIRESHARK中的Sequence Number不是一个东西,规范定义的是绝对值,而wireshark为了看上去方便,采用了相对值!
如下帧均是A发给B方向的,是一次TCP建链,到发送数据的过程:
第1帧是:“85 ab f2 29” ,whreshark
第2帧是:“85 ab f2 2a” ,whreshark
第3帧是:“85 ab f2 2a” ,whreshark
第4帧是:“85 ab f2 59” ,whreshark
第5帧是:“85 ab f2 59” ,whreshark
第6帧是:“85 ab f4 61” ,whreshark
结论:
wireshark中某一帧当中的 sequence number= 上一帧的 sequence number+ tcp segment length 。
如上面的第6帧 sequence number= 48 + 520 =568 。
0 0
- wireshark sequence number 解码与原始消息不一致问题
- Wireshark与设备解析字节不一致问题
- hibernate entity使用sequence方式时,id增量50且与sequence值不一致的问题
- hibernate entity使用sequence方式时,id增量50且与sequence值不一致的问题
- oracle RAC 环境解决sequence 不一致问题
- wireshark中sequence number (BE)(LE)
- vs 重新编译后 调试 源代码与原始版本不一致
- 原始问题与对偶问题
- 原始问题与对偶问题
- PKU 1019 Number Sequence 问题的解决
- 杭电1005 Number Sequence问题
- Number Sequence 构表周期问题
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- 神秘的40毫秒延迟与 TCP_NODELAY
- 计算机网络探究(三) TCP和HTTP的keepAlive
- puppet 配置 - 3.3 rpm 管理
- VC中获取当前exe文件运行路径
- 闭包
- wireshark sequence number 解码与原始消息不一致问题
- 火星人过大年,围绕耻辱柱,手拉手,又唱又跳,庆胜利
- nginx优化——包括https、keepalive等
- 【1月24日】并发(一):线程与线程风险
- 面向对象(中)
- CString字符串查找和截取
- 客户端评论盖楼(内涵段子评论盖楼)实现思路
- 快速幂取模
- 好汉