İnternet Grup Yönetim Protokolü

**IGMP** (İngilizce* *'I**nternet **G**roup **M**anagement **P**rotocol''), [[İnternet iletişim kuralları dizisi|TCP/IP]]'de çoklu dağıtım ([[multicast]]) üyelerini yönetmek için kullanılan bir iletişim protokolüdür. Taşıma protokolü gibi davranmamasına rağmen, ağ katmanının üzerinde çalışması IP çokludağıtımın önemli bir özelliğidir. Tekli dağıtım([[unicast]]) bağlantılardaki [[Internet Control Message Protocol|ICMP]] ye benzerdir. **IGMP** online streaming videolarda ve oyunlarda kullanılabilir. Bu tip uygulamaları desteklerken kaynaklarının daha verimli şekilde kullanılmasını sağlar.

== Mimarisi ==
IGMP kullanarak çoklu dağıtım servisi(video gibi) vermek için tasarlanmış bir ağ bunun gibi
basit bir mimariyi kullanıyor olabilir:

IGMP istemciyi yerel çokludağıtım yapan bir yönlendiriciye bağlamak için hem istemci hem de
bitişiğindeki ağ switchleri tarafından kullanılır. Protokolden bağımsız çokludağıtım ([http://en.wikipedia.org/wiki/Protocol_Independent_Multicast Protocol Independent Multicast ] - [[PIM]]) daha sonra video sunucusundan birçok çokludağıtım istemcisine trafiği yönlendirmek için, yerel ve uzaktaki çokludağıtım yapan yönlendiriciler arasında kullanılır.

== Standartlar ==

* igmp v1 [http://tools.ietf.org/html/rfc1112 RFC 1112] ile tanımlanmıştır.
* igmp v2 [http://tools.ietf.org/html/rfc2236 RFC 2236] ile tanımlanmıştır.
* igmp v3 [http://tools.ietf.org/html/rfc3376 RFC 3376] ile tanımlanmıştır.

== IGMP v2 Veri Paketinin Yapısı ==

<code><table border="0" cellpadding="1" cellspacing="2" width="700" class="wikitable">
<tr ><td> **+**</td><td>**0-7 Bit**</td><td>**8-15**</td><td>**16-23**</td><td>**24-31**</td></tr>
<tr ><td>**0**</td><td>**Tip**</td><td>**Max Cevap Süresi**</td><td colspan="2" align="center">**Checksum**</td></tr><tr><td>**32**</td><td colspan="4" align="center">**Grup Adresi**</td></tr>
</table></code>

== Host ve yönlendirici gerçekleştirimleri ==

IGMP protokolü host taraflı ve yönlendirici taraflı olarak uygulanır. Host tarafı gruptaki üyeliğini kendi yerel yönlendiricisine rapor eder. Yönlendirici tarafı host dan gelen raporları dinler ve periyodik olarak sorgular gönderir. [[Linux]] işletim sistemi IGMP yi desteklemektedir.İşletim sisteminin merkezindeki Linux çekirdeği IGMP yi sadece host taraflı uygular. Buna rağmen [[daemon]](bilgisayar programı) IGMP linux yönlendiricisi olarak davranarak bu kullanılabilir.
IGMP'de temelde iki mesaj vardır:

* **Yayın alma isteği** ([[İngilizce]] ''IGMP Subscribe'', yani ''IGMP Aboneliği''): bu mesajı, bir yayını almak isteyen bir kullanıcı [[router]]'ına gönderir. Router ise eğer o yayını almakta ise yayının bir kopyasını da o kullanıcıya göndermeye başlar. Eğer router o yayını almakta değil ise, bağlı olduğu router'lara yayın alma isteğini gönderir. Diğer router'lar da aynı işlemi yaparlar, taa ki yayını bulana kadar.
* **Yayın almayı kesme isteği*' ([[İngilizce]] *IGMP Unsubscribe*, yani *IGMP Aboneliği İptali''): bu mesajı, bir yayını almak istemeyen bir kullanıcı router'ına gönderir. Router ise eğer o yayını almak isteyen kullanıcı kalmamışsa yayını göndermekte olan router'a da aynı mesajdan bir kopya gönderir. Bu sayede, router'lar gereksiz yere yayın kopyalamaya uğraşmazlar.

IGMP'nin değişik sürümlerinde, hata durumlarıyla baş edebilmek ve servis kalitesini artırabilmek için muhtelif durum mesajları da eklenmiştir.

Ayrıca XORP gibi normal bir bilgisayarı tam teşekküllü çokludağıtımlı yönlendiriciye dönüştüren tam yönlendirme takımları da vardır.

## Kaynakça
* IGMP Wiki English