发送固定长度的TCP帧

发送固定长度的TCP帧,第1张

概述我需要使用TCP通过具有固定非标准MTU(例如,1560)的子网发送一些数据.如果帧的长度小于MTU,则通过该子网传输的所有以太网帧应手动填充0.所以,数据大小应该是(1560 - sizeof(IP头) - sizeof(TCP头)).这就是我要这样做的方式:>我设置了TCP_CORK选项以减少数据的分段.它不可靠,因为有200毫秒的天花板,但

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

所以,数据大小应该是
(1560 – sizeof(IP头) – sizeof(TCP头)).

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

>我设置了TCP_CORK选项以减少数据的分段.它不可靠,因为有200毫秒的天花板,但它的工作原理.
>我知道IP头的大小(20字节),因此数据长度应该等于(1540 – sizeof(TCP头)).
>那就是问题所在.我不知道TCP头大小.它的“选项”字段的大小是浮动的.

所以,问题是:如何获得TCP头的大小?或者也许有一些方法来发送带有固定长度标头的TCP帧?最佳答案从用户应用程序使用TCP时,尝试控制帧的大小是错误的.您正在以错误的抽象级别工作.这也是不可能的.

您应该做的是考虑用其他东西替换TCP(UDP?),或者不太可能,但可能,重写您的以太网驱动程序以设置非标准MTU并执行您需要的填充.

总结

以上是内存溢出为你收集整理的发送固定长度的TCP帧全部内容,希望文章能够帮你解决发送固定长度的TCP帧所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存