Docker 部署 Python 爬虫项目的完整指南

missing_99005 9 0 pdf 2024-07-22 02:07:23

表10.56接收状态信息字位符号描述:10:0 RxSize传输给一个片段缓冲区的实际数据的字节数。换句话说,它是DAM管理器针对一个描述符实际写入的帧或片段的字节数。该值可能与描述符控制区域中Size位(表示器件驱动程序分配的缓冲区大小)的值有所不同。该字段采用减1编码,如果缓冲区有8个字节,则RxSize的值为7。关于更多帧结构的详情,可以参考E1帧结构描述

17:11 -未使用。18 ControlFrame表示这一个用于流控制的控制帧,它可以是一个暂停帧也可以是一个带有不支持的操作码的帧。19 VLAN表示一个VLAN帧。20 FailFilter表示这帧信息的Rx过滤失败。这样的帧将不能正常地传递到存储器中。但由于缓冲区大小的限制,帧中可能已有一部分信息传递到了存储器。一旦发现某帧的Rx过滤失败,就将该帧的剩余部分丢弃,而不传递到存储器中。但如果命令寄存器中的PassRxFilter位置位,则整帧都将传递到存储器中。关于过滤机制的更多细节,可以参考C协议远程帧和错误帧详解

21 Multicast当接收到一个多播帧时置位。22 Broadcast当接收到一个广播帧时置位。23 CRCError接收到的帧有一个CRC错误。24 SymbolError在接收过程中,PHY通过PHY接口报告有一个位错误。25 LengthError该帧的帧长度区域指定了一个有效的帧长度,但它与实际的数据长度不相等。26 RangeError接收到的包超出了包长度的最大限制。27 AlignmentError当检测到dribble位和一个CRC错误时,将“对齐错误”作上标记。这与IEEE std.802.3/条款4.3.2是一致的。28 Overrun接收溢出。适配器不能接收数据流。29 NoDescriptor没有新的Rx描述符可用,并且对于当前的接收描述符中的缓冲区大小来说,帧信息太长。30 LastFlag该位置位表示这个描述符是一帧中的最后一个片段。如果一帧只由一个片段组成,则该位也是置位的。31 Error表示在该帧的接收过程中出现错误。它是AlignmentError、RangeError 、 LengthError、SymbolError、CRCError和Overrun逻辑“或”的结果。EMAC不区分帧类型和帧长度。当接收到IP(0x8000)或ARP(0x0806)包时,EMAC将帧类型与最大长度进行比较并给出“长度超出范围”错误。事实上,该位不是一个错误指示,而只仅仅是由芯片产生的、关于接收帧状态的一个说明。关于更多的帧类型和码率控制内容,可以参考x264参数介绍一帧类型和码率控制

对于具有多个片段的帧,该帧中除了最后一个片段之外的所有片段中的AlignmentError、 RangeError 、LengthError、SymbolError、CRCError位的值都是0。同样,FailFilter 、Multicast、 Broadcast、VLAN、ControlFrame位的值是未定义的。而该帧中最后一个片段的状态是从MAC中将上述位的值复制过来而得的。所有片段都将具有有效的LastFrag、RxSize、Error、Overrun和NoDescriptor位。10.15.2发送描述符和状态图10.4描述了发送描述符在存储器中的规划。

想要深入了解IP帧或UDP帧结构,可以参考以太帧_ip帧_udptcp帧_http报文结构.docx

用户评论
请输入评论内容
评分:
暂无评论