我在网上找不到这个问题的正确答案。Wikipedia声明FCS值是作为受保护的MAC帧字段的函数计算的:源和目标地址、长度/类型字段、MAC客户端数据和填充(即除FCS以外的所有字段)帧的源/目标地址在每次跳时都会发生变化。另外,IP报头TTL被路由路由器修改。在发生这么多变化的情况下,主发送方如何设置FCS,终端接收方如何根据CRC/FCS故障丢弃最终帧?
那么,回到我最初的问题:以太网头中的FCS是以太网帧(和上面的层)中的所有字段的函数吗?
发布于 2019-04-30 19:31:10
封装数据包的帧仅在本地局域网上使用。帧头和FCS被从数据包中剥离并被路由器丢弃。然后路由器将包切换到下一个接口,路由器将为下一个接口构建一个新的帧。下一个接口可能使用完全不同的数据链路协议。并非所有的数据链路协议都使用MAC地址(甚至任何地址),不同的数据链路协议可以有不同的方法来计算错误检测字段,甚至可能没有这样的字段。
例如,Wi上的主机可以将帧发送到WAP,WAP是将Wi帧转换为以太网帧并将该帧发送给路由器的转换桥。路由器从数据包中移除并丢弃帧,然后将数据包切换到使用PPPoA的广域网连接(DSL)。PPP有一个与以太网或Wi非常不同的帧,它不使用寻址,因为只有另一端的链路。每种类型的帧上的FCS与其他类型的帧上的FCS没有任何关系。
帧上的FCS仅用于帧来源的局域网上的源和目的地(它也被局域网上的中间设备使用,例如开关/桥接)。当路由器接收到帧头时,FCS也被丢弃,并且为下一个路由器接口创建一个新的帧头和FCS (假设下一个数据链路协议使用FCS)。
发布于 2019-04-30 19:51:53
在以太网帧的预告片中,FCS/CRC计算的全部字段是什么?
检查IEEE 802.3条款3.2.9:
此值计算为MAC帧的受保护字段的内容的函数:目标地址、源地址、长度/类型字段、MAC客户端数据和Pad (即除FCS以外的所有字段)。
帧的源/目标地址在每次跳时都会发生变化。
帧(包括MAC源和目标地址)不会在L2跳中发生变化。对于一个L3跳(路由器),包含MAC地址的帧不能在该跳中生存。相反,路由器解除对包含的L3/IP数据包的封装,做出转发决定,并(如果必要的话)将分组重新封装在为出口段构建的新帧中。
另外,IP报头TTL被路由路由器修改。
那是真的。但是,请注意,IP报头是L3数据包的一部分。
在发生这么多变化的情况下,主发送方如何设置FCS,终端接收方如何根据CRC/FCS故障丢弃最终帧?
主发送方构建IP数据包,包括报头校验和(用于IPv4)。对于以太网网络,IP分组封装在包括所计算的FCS的以太网帧中。在到达第一个路由器之前,帧不会在其路径上的交换机上发生变化,在第一个路由器中,帧被丢弃。
最终的IP目的地检查本地网关构建的帧中的FCS,提取IP数据包,检查其报头校验和(对于v4),并提取其有效负载,通常使用自己的校验和。
由于IPv4报头校验和几乎是多余的,并且连续的TTL更改和校验和重新计算使路由器负载,因此IPv6的校验和被移除。
https://networkengineering.stackexchange.com/questions/58829
复制相似问题