What is mean mean by passenger, carrier and transport routing prototcol ??
Okay, I see the point. The passenger protocol is the protocol you want to carry over a network that does not understand it (or you do not want the network to see it). For example, you may want to tunnel IPv6 packets over an IPv4-only network. Thus, the IPv6 would become the passenger protocol here.
The carrier protocol is the one that is used to encapsulate the passenger's protocol packets as its own payload. In my example, tunneling IPv6 packets over IPv4 network would require that each IPv6 packet is inserted into an IPv4 packet and the resulting IPv4 packet is transported through the IPv4 network. Thus, the IPv4 becomes the carrier protocol.
Anytime we say "X-over-Y" if related to tunneling, the "X" is the passenger protocol and the "Y" is the carrier protocol, as packets of the type X are carried inside packets of the type Y. Common examples include IPv6-over-IPv4, CLNS-over-IPv4, even IPv4-over-IPv4 and so on.
The transport protocol in this case, or better said, a tunneling protocol is an additional protocol used to facilitate this tunneling. For example, putting IPv6 packets into IPv4 packets is easy and straightforward, but you may require various additional functions for this tunnel:
- Multiple passenger protocols over a single tunnel. You somehow need to identify the type of the passenger protocol, and the IP Protocol header field may not have enough values to express all possible existing protocols you could tunnel over IP.
- Sequencing. The IP is actually unable to make sure that tunneled packets arrive in their original order, and it may be your requirement that the individual tunneled packets must be processed in their original order.
- Authentication. You may require that the tunnel is authenticated before transferring data over it.
- Keepalives. You may require an active test whether the tunnel is indeed capable of transporting data end-to-end. The IP as a best-effort connectionless protocol does not have any means to provide you with this test.
- Dynamic session establishement and teardown, differentiating multiple sessions within a single tunnel.
If you need any of these functions then you have to use the additional tunneling protocol. Nowadays, the most popular tunneling protocols are GRE (Generic Routing Encapsulation) and L2TP (Layer 2 Tunneling Protocol), not counting the MPLS Pseudowires (they are rather special and I don't want to cover them here).
If the GRE is used then the GRE header is placed into the carrier protocol payload just before the passenger protocol datagram comes in. If you create an IPv6-over-IP tunnel using the GRE tunneling protocol, the resulting packet would look like:
Carrier IPv4 header | Tunneling GRE header | Passenger IPv6 packet