GRE------网络基础知识整理第三篇
GRE协议号为47
通用路由封装Generic Routing Encapsulation (GRE) 在一种协议上封装另一种协议 RFC1701 RFC1702 RFC2784
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
GRE提供了将一种协议的报文在另一种协议组成的网络中传输的能力:对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如ip)中传输。
以下内容源于:RFC 2784----通用路由封装(GRE)

Checksum Present (bit 0)
如果Checksum Present位置为1,那么Checksum和Reserved1域都出现并且Checksum域包含有效信息。注意一个compliant实现必须接受并处理该域。
Reserved0 (bits 1-12)
接收者必须丢弃1-5比特中任一位为非0的数据包,除非接收者使用RFC 1701。比特6-12保留以备后用,这些比特位必须按0发送,并且在接收时必须忽略掉。
Version Number (bits 13-15)
Checksum Present (bit 0)
如果Checksum Present位置为1,那么Checksum和Reserved1域都出现并且Checksum域包含有效信息。注意一个compliant实现必须接受并处理该域。
Reserved0 (bits 1-12)
接收者必须丢弃1-5比特中任一位为非0的数据包,除非接收者使用RFC 1701。比特6-12保留以备后用,这些比特位必须按0发送,并且在接收时必须忽略掉。
Version Number (bits 13-15)
Version Number域必须包含值0。
Protocol Type (2 octets)
Protocol Type域包含净载数据包的协议类型。这些协议在RFC 1700中定义为“ETHERT TYPES”,可在参考文献[ETYPES]的网址上得到。应用程序如果接收到一个包含未列于RFC 1700中的协议类型的数据包应该丢弃该数据包。
Checksum (2 octets)
Checksum域包含了GRE头部和净载数据包所有的16位字(word)的IP(one's complement)检验和。为了计算检验和,checksum域的值为0。该域仅在Checksum Present位为1时出现。
Reserved0 (bits 1-12)
接收者必须丢弃1-5比特中任一位为非0的数据包,除非接收者使用RFC 1701。比特6-12保留以备后用,这些比特位必须按0发送,并且在接收时必须忽略掉。
Version Number (bits 13-15)
Checksum Present (bit 0)
如果Checksum Present位置为1,那么Checksum和Reserved1域都出现并且Checksum域包含有效信息。注意一个compliant实现必须接受并处理该域。
Reserved0 (bits 1-12)
接收者必须丢弃1-5比特中任一位为非0的数据包,除非接收者使用RFC 1701。比特6-12保留以备后用,这些比特位必须按0发送,并且在接收时必须忽略掉。
Version Number (bits 13-15)
Version Number域必须包含值0。
Protocol Type (2 octets)
Protocol Type域包含净载数据包的协议类型。这些协议在RFC 1700中定义为“ETHERT TYPES”,可在参考文献[ETYPES]的网址上得到。应用程序如果接收到一个包含未列于RFC 1700中的协议类型的数据包应该丢弃该数据包。
Checksum (2 octets)
Checksum域包含了GRE头部和净载数据包所有的16位字(word)的IP(one's complement)检验和。为了计算检验和,checksum域的值为0。该域仅在Checksum Present位为1时出现。
Reserved1 (2 octets)
Reserved1域保留以待将来使用。如果出现,传输时必须为0。Reserved1域仅在Checksum域出现时出现(也就是说,Checksum Present为置为1)。
IPv4作为净载:当IPv4作为GRE的净载时,Protocol Type域必须置为0x800。
Reserved1域保留以待将来使用。如果出现,传输时必须为0。Reserved1域仅在Checksum域出现时出现(也就是说,Checksum Present为置为1)。
IPv4作为净载:当IPv4作为GRE的净载时,Protocol Type域必须置为0x800。
封装后一个GRE数据包的格式如下:

来源于网络的图示


转载于:https://blog.51cto.com/itcnjd/67560