【发布时间】:2013-12-06 18:07:55
【问题描述】:
我正在检查使用 Wireshark 捕获的数据包。
我了解 IP 数据报(数据包)中的总长度字段的值是数据报的总大小,包括报头和数据的大小。报头的大小固定为 40 字节(封装的 TCP 报头 20 字节 + IP 报头 20 字节)。然而,在我的每个数据包中,我注意到数据的大小从 1 字节到 ~ 1500 字节不等。
我的 Java 应用程序发送的消息用标头 \x0b 和尾标 \x0c\x0d 包装。所以我的消息发送格式是:
0b 消息 0c0d
但是,如果我在 Wireshark 中检查发送的数据包,我可以看到某些数据包的数据中仅包含 0b。一些数据包包含 0b + 部分消息。
我很想知道为什么数据包的数据部分是可变的。
- 如何确定数据/有效负载的大小?
- 由谁决定有效载荷的大小?
- 我可以在我的应用程序中控制负载的大小吗?
【问题讨论】:
标签: java sockets networking tcp