为什么PPPoE的最佳MTU是1492?

以太网默认的MTU为1500B,运行PPPoE协议时需要再多占用8B,假设有台PC通过PPPoE上网,网卡的MTU设置为1500,那出来的最大数据帧是不是ETH+PPPoE(8B)+payload(1492B)? 那么问题是,设置MTU的时候,PPPoE算进payload吗,如果算进去的话,设置MTU为1492没有意义吧? 如果通过家用路由器来PPPoE拨号,内网PC发送一个1500B的数据包到路由器LAN口上,路由器加上8B的PPPoE数据,但是WAN口的MTU也是1500,此时payload变成了1508B,…
关注者
21
被浏览
7,724

1 个回答

你问了三个问题, 我就分开来回答你把

1. 1500的MTU 是不包含以太网帧头部的和尾fcs一共14个字节的, 如果你要拆开一个pppoe报文来表示应该是 eth + pppoe + ppp + ip +payload.

2. 你把1492byte全部算进去payload理解也是有问题, payload应该是数据包的包含数据的净含量,所以PPPOE包头是不可能算进去payload的

3.最后一个问题, 路由收到lan口的1500byte的数据包后会抛到wan口处理, wan口完成封装后会发现大于自己接口1508大于自己接口的mtu值, 这时会检查数据包里面的df是不是1, 如果是1代表不能分片, 会丢弃次数据包, 并返回icmp错误给客户端, 告知mtu值太大。如果不是1 , 则分片发包, 分片发生在网络层。希望下图能帮你理解。