General Routing Packages (GRE) define protocols that encapsulate any other network layer protocol on any of the network layer protocol.
In most common circumstances, the system has a payload (or load) package that needs to be packaged and sent to a destination. First, the payload is packaged in a GRE package and then the GRE package is encapsulated in other protocols and forwarded. In addition, the protocol is the send protocol. When IPv4 is transmitted as a GRE payload, the protocol type field must be set to 0x800. When a tunnel end is unpacked, the destination address in the IPv4 cladhead must be used to forward the package, and the TTL of the payload package needs to be reduced. It is worth noting that when forwarding such a package, if the destination address of the payload package is the package of the package (the other end of the tunnel), it will appear. In this case, the package must be discarded. When the GRE package is encapsulated in IPv4, IPv4 protocol 47 is required.
For more information, please visit the following page: 中文 版: http://www.networkDictionary.com/chinese/protocols/gRE.php
English: http://www.networkDictionary.com/protocols/gre.php