小编Gru*_*nge的帖子

发送固定长度的TCP帧

我需要使用TCP通过具有固定非标准MTU(例如,1560)的子网发送一些数据.如果帧的长度小于MTU,则通过该子网传输的所有以太网帧应手动填充0.

因此,数据大小应为(1560 - sizeof(IP标头) - sizeof(TCP标头)).

这就是我要这样做的方式:

  1. 我设置TCP_CORK选项以减少数据的分段.它不可靠,因为有200毫秒的天花板,但它的工作原理.

  2. 我知道IP头的大小(20字节),因此数据长度应该等于(1540 - sizeof(TCP头)).

  3. 那就是问题所在.我不知道TCP头大小.它的"选项"字段的大小是浮动的.

所以,问题是:如何获得TCP头的大小?或者也许有一些方法来发送带有固定长度标头的TCP帧?

c linux network-programming tcp mtu

5
推荐指数
2
解决办法
2130
查看次数

标签 统计

c ×1

linux ×1

mtu ×1

network-programming ×1

tcp ×1