社区
通信技术
帖子详情
tcpip数据帧格式问题请教!
bit_blue_wind
2009-05-07 07:33:16
我想使用DSP加CP2200实现TCPIP协议,但是按照协议利用网络监控工具分析发现客户端发出的SYN数据报不能理解,书上说以太网帧格式为:以太网首部+ip首部+tcp首部+数据,SYN数据报的长度就是14+20+20=54字节,又因以太网数据长度最小为46字节,所以我认为总长度为60字节,但是监控软件显示为74。而ip首部的总长度就为60字节,这样加上以太网首部14字节刚好70字节,请问高手tcp首部后多出来的是什么数据?还有就是怎样计算IP报的总长度?
...全文
232
2
打赏
收藏
tcpip数据帧格式问题请教!
我想使用DSP加CP2200实现TCPIP协议,但是按照协议利用网络监控工具分析发现客户端发出的SYN数据报不能理解,书上说以太网帧格式为:以太网首部+ip首部+tcp首部+数据,SYN数据报的长度就是14+20+20=54字节,又因以太网数据长度最小为46字节,所以我认为总长度为60字节,但是监控软件显示为74。而ip首部的总长度就为60字节,这样加上以太网首部14字节刚好70字节,请问高手tcp首部后多出来的是什么数据?还有就是怎样计算IP报的总长度?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
binarydaemon
2009-05-08
打赏
举报
回复
楼主描述不够清晰,有些是错误的描述。
TCP第一次握手(SYN)的数据包中,一般情况下TCP首部带有选项(MSS、 Window Scale、SACK-Permit、Timestamp、NOP等)。
不同的操作系统选项个数可能不同。
比如有些系统只带MSS、Window Scale、NOP选项。
有些系统带MSS、Window Scale、、SACK-Permit、NOP选项。
也有系统带MSS、 Window Scale、SACK-Permit、Timestamp、NOP选项。
所以,TCP第一次握手时的字节数就或多或少了,无法定论。
以太网首部14字节+IP首部(无选项)20字节+TCP首部(无选项)20字节=54字节。
你所描述的是74字节,这里我假设带的TCP选项为:MSS(4字节)、 Window Scale(3字节)、Timestamp(10字节)、NOP(3字节)。
建议楼主把二进制码流贴出来,然后才能正确分解。
关于计算IP报文总长度的问题,IP首部有一个总长度的域,直接从中得知。
yanghehong
2009-05-08
打赏
举报
回复
RFC 793里头有TCP 包的图示:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
你说的20字节应该没算上后面的Options这些。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
你少算了options. options 可以有8个字节,12个字节这些。不是32位对齐的话补padding。
-
千里孤行
Python网络编程 -
TCPIP
套接字编程
如果您对这些
问题
的答案是肯定的,那么我们的TCP/IP套接字编程课程正适合您入门。 课程内容简介: 基础知识讲解:我们从最基本的网络通信概念入手,介绍TCP/IP网络模型的基础,为您的网络编程之旅奠定坚实的基础。 ...
普及
tcpip
TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来
格式
以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准...
TCPIP
完整的一套基础介绍
TCP/IP应该是个协议集,根据OS的七层理论,TCP/IP分为四层....但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理
数据帧
相容。由于IP并不能保证...
SNIFFER
问题
集锦
具体
问题
解决: 1.SNIFFER4.75无法使用,打开后提示 No adapter is binding to Sniffer driver 如下图 4.7.5 With SP5以上支持千兆以太网,一般我们从网络上下载的4.75不支持千M网卡 4.7.5 With SP5下载: ...
esp8266~lwip突破MTU最大1500限制
在去年的项目开发中,遗留了一个比较难解决的
问题
,需要udp传图,当时的解决办法是将图片在应用层切片依次传输到wifi芯片,而且还用的是定长的明文传输。 一直在想有什么好办法可以优化,首先想到寻找比较...
通信技术
4,358
社区成员
28,927
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章