Networking 标题数据是否与自然长度对齐?

Networking 标题数据是否与自然长度对齐?,networking,header,Networking,Header,我在查看RFC 3550时,跑过这条线,不确定这是什么意思: 所有报头数据都与其自然长度对齐,即16位字段在偶数偏移量(32位)上对齐 字段以可被四整除的偏移量对齐,等等。指定为填充的八位字节的值为零 我试着环顾四周,找出使用关键字搜索的方法,但没有任何运气。感谢您的帮助 长度为16位(2字节)的字段将以可被2字节(字节0、2、4等)整除的偏移量开始。32位的字段将从字节0、4、8等开始。 偏移量相对于报头(和数据包)的开始。 例如,如果标题包含16位(2字节)字段a和32位(4字节)字段B,则

我在查看RFC 3550时,跑过这条线,不确定这是什么意思:

所有报头数据都与其自然长度对齐,即16位字段在偶数偏移量(32位)上对齐 字段以可被四整除的偏移量对齐,等等。指定为填充的八位字节的值为零


我试着环顾四周,找出使用关键字搜索的方法,但没有任何运气。感谢您的帮助

长度为16位(2字节)的字段将以可被2字节(字节0、2、4等)整除的偏移量开始。32位的字段将从字节0、4、8等开始。 偏移量相对于报头(和数据包)的开始。 例如,如果标题包含16位(2字节)字段a和32位(4字节)字段B,则必须按如下方式排列:

A             : 2 bytes
padding(zero) : 2 bytes
B             : 4 bytes

这里A从偏移量0开始,B从偏移量4开始。

感谢您的帮助!如果我可以再问你一个问题:为什么要这样做,而不是一个接一个地添加它们?@Shaun不是所有的机器都(或一直都有)能够访问未“正确”对齐的字段。TCP/IP协议栈的大部分性能来自于避免在内存中移动缓冲区字段。