通用路由封装
外观
此條目没有列出任何参考或来源。 (2013年8月17日) |
通用路由封装(英語:Generic Routing Encapsulation,縮寫:GRE)是一种可以在虚拟点对点链路中封装多种网络层协议的隧道协议。由思科系统开发,在RFC 2784中定义。
协议栈举例
[编辑]OSI模型分层 | 协议 |
---|---|
5. 会话层 | X.225 |
4. 传输层 | UDP |
3. 网络层 (GRE封装) | IPv6 |
封装 | GRE |
3. 网络层 | IPv4 |
2. 数据链路层 | 以太网 |
1. 物理层 | 以太物理层 |
从上面的图表可以看出,协议封装(非特指GRE)打破了OSI模型中定义的分层。这可以被看成两个不同协议栈中间的分割器,一个承载另一个。
报文头
[编辑]GRE报文头结构如下图所示。[最新的RFC 2784 && RFC 2890]
Bits 0–3 | 4–12 | 13–15 | 16–31 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | K | S | Reserved1 | Version | Protocol Type | ||||||||||||||||||
Checksum (optional) | Reserved2 | ||||||||||||||||||||||
Key (optional) | |||||||||||||||||||||||
Sequence Number (optional) |
- C:校验码标记位,标为1为代表启用校验码。
- K:键码标记位,标为1为代表启用键码。
- S:序列号标记位,标为1为代表启用序列号。
- Reserved1、Reserved2:预留,默认为填0。
- Version:版本号,默认值为0。
- Protocol Type:负载得网络层以太类型。
- Checksum:校验码,C位启用时可用。为GRE头与负载的校验码。
- Key:键码,K位启用时可用。特定用语所需的键值。
- Sequence Number,序列号,S位启用时可用。为GRE数据包的发送序列号。
参考资料
[编辑]外部链接
[编辑]- RFCs
- RFC 1701 — Generic Routing Encapsulation (GRE) (INFORMATIONAL)
- RFC 1702 — Generic Routing Encapsulation over IPv4 networks (INFORMATIONAL)
- RFC 2784 — Generic Routing Encapsulation (GRE) (PROPOSED STANDARD - Updated by RFC 2890)
- RFC 2890 — Key and Sequence Number Extensions to GRE (PROPOSED STANDARD)
- Cisco Systems
- Generic Routing Encapsulation, Subprotocol homepage at Cisco
- Generic Routing Encapsulation (页面存档备份,存于互联网档案馆), Entry in Cisco DocWiki (formerly known as the "Internetworking Technology Handbook")