PPPoE成帧组件
组件
大小(以字节为单位)
数据净荷
1~1 452
TCP头部
20
IP头部
20
PPP头部
2
PPPoE头部
6
PPPOE的最大接收单元为1492,以太网最大载荷为1500 octets,PPPOE头为6 octets,PPP协议ID为2(PPP包前是两字节的PPP协议ID值) octets,所以PPP的MTU最大不能超过1492 。 PPPOE协议头有6个字节,正好和14字节的以太头实现了4字节对齐。 在PPP会话阶段,PPP包被封装在PPPOE以太帧中,以太包目的地址都是单一的,以太协议为0x8864,PPPOE头的CODE必须为0,SESSION_ID必须一直为发现阶段协商出的SEESION_ID值,PPPOE的负载是整个PPP包,PPP包前是两字节的PPP协议ID值。数据净荷、TCP头部和IP头部构成PPP净荷,因而加起来不能超过PPPoE的最大尺寸1 492字节,PPP、PPPoE和以太网头部不在1 492字节之内,属于额外开销:
1 492 + 2 + 6 + 18 = 1 518字节
在PPP会话阶段,PPP包被封装在PPPOE以太帧中,以太包目的地址都是单一的,以太协议为0x8864,PPPOE头的CODE必须为0,SESSION_ID必须一直为发现阶段协商出的SEESION_ID值,PPPOE的负载是整个PPP包,PPP包前是两字节的PPP协议ID值。一个PPPOE会话过程包的例子为: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Access_Concentrator_mac_addr |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Access_Concentrator_mac_addr(c)| Host_mac_addr |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Host_mac_addr (cont) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| ETHER_TYPE = 0x8864 | v = 1 | t = 1 | CODE = 0x00 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| SESSION_ID = 0x1234 | LENGTH = 0x???? |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| PPP PROTOCOL = 0xc021 | PPP payload ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+注意:由于PPPOE头是6字节,PPP协议ID号两个字节,一共要占用8个字节,而以太网的MTU值为1500,所以上层PPP负载数据不能超过1492字节,所以PPP协商时协商的最大接收单元值不能超过1492字节,也就是相当于在PPPOE环境下的MTU是1492字节。