我一直在使用tcpdump
来准确捕获系统要发送到的内容:
4a02 0000 0800 0000 2011 0123 4567 890A
4a02 0000 0800 0000 2111 0123 4567 890A
在大多数情况下,长度(8)之后的字节始终为00 0000,然后我的有效负载的实际数据就会开始。
但是经常这样:
4a02 0000 08e4 0bcc 2011 0123 4567 890A
4a02 0000 08a7 5ea7 2111 0123 4567 890A
填充,res0和res1字节填充:
struct can_frame {
canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
__u8 can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
__u8 __pad; /* padding */
__u8 __res0; /* reserved / padding */
__u8 __res1; /* reserved / padding */
__u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
};
是什么原因导致__pad,__ res0和_res1被填充,我该如何解释它们的含义?