---
title: ICMP
source: 'https://academia.sh/tr/kurslar/ag-modelleri/icmp'
course: 'Ağ Modelleri ve Protokoller'
language: tr
updated: '2026-08-17T18:07:08+00:00'
license: 'CC BY-SA 4.0'
---

# ICMP

Denetim mesajlarının biçimi, yankı sınaması, yaşam süresi alanının yol izlemeye dönüşmesi, yol MTU keşfi ve mesajların engellenmesinin sonuçları.

Önceki derslerde birkaç kez "yönlendirici paketi atar ve bildirir" denildi: yaşam süresi
tükendiğinde, hedef ağa yol bulunamadığında, paket MTU'dan büyük olduğunda. Bu bildirimlerin
nasıl yapıldığı henüz açılmadı.

IP'nin kendisi hiçbir geri bildirim vermez; elinden geleni yapan bir teslim hizmetidir. Geri
bildirim ayrı bir protokolün işidir. Bu dersin sorusu, o protokolün ne söylediği ve
söyleyemediğinde ne olduğudur.

## Denetim Mesajlarının Yeri

**ICMP (Internet Control Message Protocol)**, IP paketlerinin taşınması sırasında oluşan
durumları bildiren protokoldür. IP başlığındaki protokol alanında `1` değeriyle taşınır —
yani IP'nin yükü olarak gider, ancak taşıma katmanı protokolü değildir.

Konumu bir tuhaflık gibi görünür: IP'nin denetim protokolü, IP'nin içinde taşınmaktadır.
Gerekçe pratiktir; ICMP mesajının da yönlendirilmesi gerekir ve yönlendirmeyi yapan
düzenek zaten IP'dir.

ICMP'nin sınırları açıkça bilinmelidir:

- Bir ICMP mesajının ulaşacağının **güvencesi yoktur**; kendisi de kaybolabilir.
- Bir ICMP mesajı kaybolduğunda **ikinci bir mesaj üretilmez**; hata bildirimi için hata
  bildirimi yapılmaz.
- ICMP mesajları hata **düzeltmez**; yalnızca haber verir. Ne yapılacağına uç karar verir.

## Mesajın Biçimi

Her ICMP mesajı 8 baytlık bir başlıkla başlar:

| Alan | Boyut | İşlev |
|---|---|---|
| Tür | 1 bayt | Mesajın sınıfı |
| Kod | 1 bayt | Sınıf içindeki ayrıntı |
| Sağlama | 2 bayt | Mesajın tamamı üzerinde |
| Değişken alan | 4 bayt | Türe göre anlam kazanır |

Hata bildiren mesajlarda gövde, **hataya yol açan paketin IP başlığını ve yükünün ilk
baytlarını** taşır. Bu ayrıntı önemlidir: uç, gelen hata mesajını kendi hangi bağlantısına
ait olduğunu ancak bu kopya sayesinde eşleştirebilir. Kopyada taşıma katmanı başlığının ilk
baytları da bulunduğundan bağlantı noktası numaraları da okunabilir.

Yankı mesajlarında değişken alan, kimlik ve sıra numarası olarak kullanılır:

```python
import struct


def saglama(veri: bytes) -> int:
    if len(veri) % 2:
        veri += b"\x00"
    toplam = 0
    for i in range(0, len(veri), 2):
        toplam += (veri[i] << 8) + veri[i + 1]
    while toplam >> 16:
        toplam = (toplam & 0xFFFF) + (toplam >> 16)
    return ~toplam & 0xFFFF


def yanki_istegi(kimlik: int, sira: int, yuk: bytes) -> bytes:
    govde = struct.pack("!BBHHH", 8, 0, 0, kimlik, sira) + yuk
    c = saglama(govde)
    return govde[:2] + struct.pack("!H", c) + govde[4:]


mesaj = yanki_istegi(kimlik=0x1234, sira=1, yuk=bytes(range(32)))
print("mesaj boyu :", len(mesaj), "bayt")
print("başlık     :", mesaj[:8].hex())
print("sağlama    :", hex(struct.unpack("!H", mesaj[2:4])[0]))
print("denetim    :", saglama(mesaj))

tur, kod, _, kimlik, sira = struct.unpack("!BBHHH", mesaj[:8])
print(f"tür={tur} kod={kod} kimlik={hex(kimlik)} sıra={sira} yük={len(mesaj) - 8} bayt")
```

```
mesaj boyu : 40 bayt
başlık     : 0800f4c912340001
sağlama    : 0xf4c9
denetim    : 0
tür=8 kod=0 kimlik=0x1234 sıra=1 yük=32 bayt
```

Sağlama yöntemi, kapsülleme dersinde IPv4 başlığı için kurulanla aynıdır; farkı, ICMP'de
başlığın yanı sıra yükü de kapsamasıdır. Doğrulama yine sıfır vermelidir.

## Mesaj Türleri

| Tür | Kod | Anlamı | Ne zaman üretilir |
|---|---|---|---|
| 0 | 0 | Yankı yanıtı | Yankı isteğine karşılık |
| 3 | 0 | Ağa ulaşılamıyor | Hedef ağa yol yok |
| 3 | 1 | Düğüme ulaşılamıyor | Yerel ağda hedef yanıtsız |
| 3 | 3 | Bağlantı noktasına ulaşılamıyor | Hedefte dinleyen süreç yok |
| 3 | 4 | Parçalama gerekli, engellenmiş | Paket MTU'dan büyük ve DF kurulu |
| 8 | 0 | Yankı isteği | Erişilebilirlik sınaması |
| 11 | 0 | Yaşam süresi aşıldı | TTL sıfıra indi |
| 11 | 1 | Birleştirme süresi aşıldı | Parçalar zamanında toplanamadı |
| 12 | 0 | Başlık hatası | Alanlardan biri tutarsız |

Tür 3, kod 4 ayrı bir öneme sahiptir: mesaj, kabul edilebilir MTU değerini de taşır ve yol
MTU keşfinin dayanağıdır.

## Yankı Sınaması

**Yankı isteği (echo request)** ve **yankı yanıtı (echo reply)** çifti, bir adresin
erişilebilirliğini sınamak için kullanılır. Gönderen bir kimlik ve artan bir sıra numarası
koyar; yanıt aynı değerleri geri döndürür. Böylece hangi yanıtın hangi isteğe ait olduğu
eşleştirilir ve gidiş–dönüş süresi ölçülür.

Sınamanın ne kanıtladığı ve kanıtlamadığı ayrılmalıdır.

**Yanıt geldiyse** şunlar doğrudur: iki yönde de yol vardır, hedef arayüz etkindir, IP
katmanı çalışmaktadır.

**Yanıt gelmediyse** şunların hiçbiri kesin değildir. Hedef kapalı olabilir; hedef açık ama
yankı isteklerini yanıtlamıyor olabilir; yol üzerindeki bir filtre isteği veya yanıtı atmış
olabilir. Yanıtsızlık, hedefin çalışmadığı anlamına gelmez.

Bir bağlantı noktasının hizmet verip vermediği yankı sınamasıyla anlaşılmaz. Yankı, IP
düzeyinde bir sınamadır; taşıma katmanı ve uygulama katmanı hakkında bilgi vermez. Yankı
yanıtı veren bir sunucunun uygulaması durmuş olabilir.

## Yaşam Süresi ve Yol İzleme

IP başlığındaki **yaşam süresi (time to live, TTL)** alanı, paketin geçebileceği yönlendirici
sayısını sınırlar. Her yönlendirici alanı bir azaltır; sıfıra indiğinde paketi atar ve
gönderene tür 11 mesajı yollar.

Alanın asıl amacı, yönlendirme döngülerinde paketlerin sonsuza dek dolaşmasını önlemektir.
Ancak alan, bambaşka bir amaca da hizmet eder: **yol izleme**.

Yöntem şudur. Hedefe önce TTL değeri 1 olan bir paket gönderilir; ilk yönlendirici onu atar
ve kendini bildirir. Sonra TTL değeri 2 olan bir paket gönderilir; ikinci yönlendirici
bildirir. Değer birer birer artırılarak yolun her adımı sırayla ortaya çıkar. Hedefe
ulaşıldığında gelen mesaj tür 11 değil, ya yankı yanıtı ya da bağlantı noktasına
ulaşılamıyor bildirimidir; bu, dizinin sonunu belirtir.

Örnek ağdaki istemciden `198.51.100.20` adresine giden yolun topolojisi bilindiğine göre,
izlemenin hangi adımları üreteceği doğrudan çıkarılabilir:

| TTL | Yanıt veren | Rolü | Yanıt türü |
|---|---|---|---|
| 1 | `192.168.10.193` | Kurum yönlendiricisi, yönetim arayüzü | Tür 11 |
| 2 | `203.0.113.1` | Sağlayıcı kenar yönlendiricisi | Tür 11 |
| 3 | `198.51.100.1` | Hedef ağın kenar yönlendiricisi | Tür 11 |
| 4 | `198.51.100.20` | Hedef uç | Tür 0 veya tür 3 kod 3 |

Yol izleme sonuçları okunurken üç sınır bilinmelidir. Yolun her adımı yanıt vermek zorunda
değildir; yanıt vermeyen bir adım boş görünür ve bu, oradan geçilmediği anlamına gelmez.
Gidiş yolu görülür, dönüş yolu görülmez; iki yön farklı olabilir. Ölçülen süreler, ara
yönlendiricinin hata mesajı üretme önceliğine bağlıdır ve o noktadaki gerçek gecikmeyi
göstermeyebilir.

## Yol MTU Keşfi

Çerçeve, Paket, Segment dersinde parçalamadan kaçınmanın yolu tanımlanmıştı: parçalanmasın
bayrağını kurmak ve gelen bildirime göre segment boyunu küçültmek. Bildirim, ICMP tür 3 kod
4 mesajıdır.

Döngü şöyle işler. Gönderen, kendi bağlantısının MTU değerine göre paket üretir. Yol
üzerindeki bir bağlantının MTU değeri daha küçükse, o yönlendirici paketi atar ve kabul
edebileceği MTU değerini bildirir. Gönderen, bu değere göre segment boyunu düşürür ve
yeniden gönderir. Süreç, paketler geçmeye başlayana kadar sürer.

Yöntemin zayıf noktası, ICMP mesajının kendisine bağımlı olmasıdır. Mesaj yol üzerinde
engellenirse gönderen hiçbir şey öğrenemez: paketleri atılmaya devam eder, ancak nedeni
bilmez. Bu duruma **kara delik (black hole)** denir ve tipik belirtisi şudur — küçük
istekler çalışır, büyük veri aktarımı takılır. Yankı sınaması başarılıdır, bağlantı kurulur,
ilk birkaç bayt gider, sonra akış durur.

Tanısı, MTU'nun elle küçültülmesiyle konur: segment boyu sınırlandığında aktarım düzeliyorsa
sorun yol MTU keşfindedir.

## ICMP'yi Engellemenin Bedeli

ICMP mesajları, ağ hakkında bilgi verdiği için sık sık toptan engellenir. Bu, birkaç somut
arıza üretir:

- **Tür 3 kod 4 engellenirse** yol MTU keşfi çalışmaz; kara delik oluşur.
- **Tür 3 kod 3 engellenirse** kapalı bir bağlantı noktasına yapılan bağlantı denemesi
  anında reddedilmek yerine zaman aşımına uğrar; bekleme süreleri uzar.
- **Tür 11 engellenirse** yol izleme çalışmaz ve yönlendirme döngüleri görünmez olur.
- **Tür 8 ve 0 engellenirse** erişilebilirlik sınaması yapılamaz; tanı kör noktalarla
  yürütülür.

Ölçülü yaklaşım, toptan engelleme yerine tür bazlı seçim yapmaktır: hata bildirimleri
geçirilir, dışarıdan gelen yankı isteklerine verilen yanıt gerekiyorsa sınırlandırılır.
Herhangi bir seçimde tür 3 kod 4 geçirilmelidir; onsuz aktarımlar sessizce bozulur.

## ICMPv6'nın Genişletilmiş Rolü

IPv6'da ICMP'nin kapsamı belirgin biçimde genişler. ARP dersinde belirtildiği gibi komşu
keşfi ICMPv6 içindedir; ayrıca yönlendirici isteği ve duyurusu, yinelenen adres sınaması ve
çok noktaya gönderim grubu yönetimi de bu protokol üzerinden yürür.

Bunun doğrudan bir sonucu vardır: **ICMPv6 toptan engellenirse IPv6 çalışmaz.** IPv4'te
ICMP'yi kapatmak tanıyı zorlaştırır; IPv6'da temel işlevleri durdurur. Adres kurulamaz,
komşular çözümlenemez, yönlendirici bulunamaz.

## Özet

- ICMP, IP'nin yükü olarak taşınan denetim protokolüdür; hata düzeltmez, yalnızca bildirir
  ve kendi ulaşımının güvencesi yoktur.
- Hata mesajları, hataya yol açan paketin başlığını taşır; uç, mesajı bu kopya sayesinde
  kendi bağlantısıyla eşleştirir.
- Yankı sınaması IP düzeyinde erişilebilirliği gösterir; yanıtsızlık hedefin çalışmadığı
  anlamına gelmez ve bir hizmetin varlığını kanıtlamaz.
- Yaşam süresi alanı, artırılarak gönderilen paketlerle yolun adımlarını sırayla ortaya
  çıkarır; gidiş yolu görülür, dönüş yolu görülmez.
- Yol MTU keşfi tür 3 kod 4 mesajına bağımlıdır; mesaj engellenirse küçük isteklerin
  çalıştığı, büyük aktarımların takıldığı kara delik oluşur.
- ICMPv6, komşu keşfi ve yönlendirici duyurusunu da üstlenir; toptan engellenmesi IPv6'yı
  çalışmaz hâle getirir.

## Sonraki Adım

Buraya kadar örnek ağdaki her adresin elle atandığı varsayıldı. Yüz cihazlık misafir
ağında bu varsayım sürdürülemez: her cihaza adres, maske, geçit ve ad sunucusu bilgisini tek
tek girmek olanaksızdır. Sonraki ders adreslerin kiralanma sürecini, kiralamanın dört
adımını ve alt ağ planının bu sürece nasıl döküleceğini ele alacak.
