在计算机网络中,数据被封装在帧(Frame)中进行传输。帧由头部(Header)和数据(Data)两部分组成,其中头部包含了帧的控制信息,数据则是待传输的实际内容。
头部控制信息中包括目标地址、源地址、帧类型及校验等内容。帧类型根据不同协议不同,比如以太网和Wi-Fi的帧类型不同。
帧传输过程中,为了保证数据的可靠性,需要对帧的数据部分进行校验,以检测是否有数据传输错误。以太网帧就使用了循环冗余检验(CRC)来检测数据是否有误。
而为什么没有选择对头部进行校验呢?这是因为帧头部的长度是固定的,在协议设计阶段就已经确定,因此头部的正确性可以通过协议本身的设计来保证。而且头部信息通常只需要在传输的起始点进行解析,不会经常进行传输,因此出错的概率相对较小。
头部校验可能会导致较高的开销。因为数据包通常比帧短得多,这意味着必须要在头部中包含更多控制信息,以便进行校验。这会导致头部比传输的实际数据还要长,从而减少数据的传输效率。
另外,头部校验的校验和可能会在转发过程中被修改,因为路由器可能会对帧进行重新封装。这使得头部校验无法完整地保证数据传输的可靠性。
在数据传输中,为了保证数据的可靠性,需要对数据进行校验。在帧传输中,采用循环冗余检验(CRC)对数据进行校验,而未对头部进行校验。这是因为头部长度较短且不经常传输,同时协议本身的设计可以保证头部的正确性,因此头部校验的开销相对较大且效用较小。