ICMP paketlerini kullanarak IP verilerini tünelleme
ICMP paketleri IP datagramlarını kapsüllemek için kullanılır. Bu IP datagramı olabilir: bir UDP paketi, bir TCP bölümünün bir parçası, bir SCTP / GRE / MPLS protokol veri biriminin bir parçası veya katman 2'den daha yüksek olan herhangi başka bir protokol.
ICMP ile TCP verisinin tünellenmesi
ICMP paketleri, TCP bölümlerini veya sadece TCP bölümlerinden oluşan IP datagramlarını kapsüllemek için kullanılır.
Bir ICMP yankı isteği, gönderenin bir yük belirtmesini sağlar. Örneğin, ICMP'nin bir "kesilmesi" bu durumdan yararlanabilir ve bir TCP paketini yüke yükleyebilir. Alıcı taraftaki bir şey bunu bilmek zorunda ve aynı zamanda oyunu oynamak zorunda kalacak. Diğer ICMP istek türleriyle yaratıcı olursanız, muhtemelen çok şey yapabilirsiniz.
Bir protokolü, amaçlanmadığı bir kullanıma doğru döndürmenin harika bir örneği iodine
( http://code.kryo.se/iodine/ ) hangi DNS isteklerini üzerinden IP tünelleri.
(Yan not: IP başlığında hangi üst katman protokolünün taşındığını tanımlayan bir "protokol alanı" olduğuna dikkat edin. TCP protokol # 6, GRE protokol # 47, vb. ( http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml ))