Revision history [back]
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used TCP, its TCP header will be present ICMP packet. It is not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used TCP, its it's TCP header will be present ICMP packet. It is not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used TCP, it's TCP header will be present ICMP packet. It is It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used TCP, it's TCP header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used TCP, it's TCP header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't contain their own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram used was TCP, it's header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so ICMP packets don't it doesn't contain their it's own(!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram was TCP, it's header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so it doesn't contain it's own(!) own (!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram was TCP, it's header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so it doesn't does'nt contain it's own (!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram was TCP, it's header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.
Generally: ICMP acts on top of IP, so it does'nt contain it's own (!) TCP header.
BUT the question is tricky in a sense that ICMP packets of some types (those ones reporting different problems, like in your trace - TTL exceeded, Destination unreachable etc.) according to RFC792 must contain some chunk of ORIGINAL datagram causing a problem.
In this case if original datagram was TCP, it's header will be present ICMP packet. It's not used for transport purposes though, but only for diagnostics purposes.