GRE 协议rfc总结
2017-05-26 20:54
176 查看
一、简介
GRE(Generic Routing Encapsulation):通用路由封装。GRE是一个通用的路由封装协议,它描述在任意的网络层之上封装另一个网络协议。
RFC:2784.
二、报文格式
封装格式:payload是网络层,delivery是网络层
1) 校验和存在位(1位:0)
如果为1,则checksum和reserved1有效。2) reserved0位(12位:1-12)
接收到的报文如果reserved0的1-5位(对应上图)不为0,那么接收段必须丢弃该报文,除非该接收端明确支持RFC1701。6-12位为保留位,必须设置为0,接收端必须不关系这些位。3) 版本字段(3位:13-15)
版本字段必须设置为0.当版本字段为1时,成为PPTP协议。4) 协议类型(16位)
协议类型字段包含负载的协议。协议类型的值由RFC1700的ETHER TYPES部分指定。5) 校验和字段(16位:0-15)
只有当校验和存在位为1,该校验和字段才有效。该字段初始为0,表示要计算校验和。
校验和包括该16位校验和字段和负载部分。
6) reserved1字段(16位:16-31)
只有到校验和存在位为1,该字段有效。该字段为保留位,必须设置为0.
三、IPv4作为运输协议
IPv4的协议字段为47,表示ipv4封装的是GRE包。四、IPv4作为负载
对应的协议字段为0x800.传输该IPv4负载时:
接收GRE隧道端,使用负载的IP地址来传输解封装的负载报文,负载报文的TTL必须减1。注意,当负载报文的IP地址为GRE隧道的另一端地址时,会出现循环,这时必须丢弃该报文。
五、PMUT的影响
当用IPv4作为传送协议时,现有实现并不实现路径MTU发现和不设置禁止分片标志。当传送大包时,在隧道中会分片,在隧道端再重组。如果一个隧道端希望实现Path MTU发现,那么该隧道也需要实现把ICMP不可达错误信息报文(需要分片,设置DF位)回复给报文产生者。
否则,假如报文产生者设置了不分片标志,那么报文在隧道中可能会被丢弃,但没有把该ICMP错误信息传回给产生者,那么后续的报文也将使用相同的PMTU,导致后续报文都被丢弃。
相关文章推荐
- 有关ICP(Internet Cache Protocol)协议的总结(一)之RFC 2186
- 【总结】HTTP协议基础知识
- [导入]邮件技术相关的RFC协议的变迁
- Cisco产品采用的网络协议总结
- 路由协议高度总结.ppt
- Cisco产品采用的网络协议总结
- CISCO协议总结大全
- VTP协议-要点总结
- Loadrunner Sockets协议实战问题总结
- RFC324 RJE 协议会议
- 短信开发技术总结--协议篇
- CISCO 协议总结大全
- EIGRP中的RTP、Neighbor Discovery协议及Time总结
- 短信开发技术总结--协议篇
- RFC865 白天协议的引用
- OSPF协议分析(总结)
- OSPF协议分析(总结)