IGMP, IGMPv1 ve IGMPv2

IGMP

IGMP son kullanıcı ve söz konusu yerel alandaki multicast router arasında çalışır. LAN’da alıcılar ve routerlar arasındaki haberleşme için kullanılır. Şu ana kadar 3 versiyonu bulunmaktadır. IGMP versiyonları arasındaki fark genel olarak, bir yayına katılma, bir yayından çıkma ve routerların o ağda yayın sorgusu yapma istekleri arasındaki farklardır.

IGMP Çalışma Safhaları :

Sorgulama aşaması : Ağda bulunan multicast routerları her 60 saniyede bir TTL değer 1 olan (yani o ağın dışına çıkamayan), o ağda dinleyici olup olmadığını soran paketleri 224.0.0.1 all hosts adresine gönderir.

Cevap aşaması : Ağda bulunan dinleyiciler, üye olmak istedikleri multicast yayını belirten paketleri ağa gönderirler. Bunu alan routerlar o yayını ağa gönderir. Aynı zamanda eğer ağda bu yayını almak istiyen başka bir üye var ise, oda ağa istek göndermez. Zaten router ağa yayını başlatmıştır.

IGMP Çalışması
IGMP Çalışması

IGMPv1:

IGMPv2 Başlığı
IGMPv2 Başlığı

Üyelik Raporu (Membership Report) : Ağda bulunan hostlar tarafından bir yayına üye olmak istediğini belirten isteklerdir. Bu paketlerin alıcı kısmında üye olmak istedikleri Class D multicast yayınının adresi bulunmaktadır. IP alıcı adreside aynı Class D multicast adresi olarak ayarlanır.

Üyelik Sorgusu (Membership Query) : Ağda bulunan multicast yayınlarından sorumlur router tarafından, DR (designated router), yollanırlar. O yayına ait üye olup olmadığını sorgulıyan paketlerdir. Eğer a yayını dinliyen üye yayını almak istemeye devam etmek istiyorsa bu sorguya üyelik raporu isteği ile yeniden cevap vermek zorundadır. Gurup adresi ve 0.0.0.0 olarak ayarlanır. IP alıcı adresi ise 224.0.0.1 olarak ayarlanır.

Burada sorun bir üye yayını almaktan vazgeçtiğini DR bildiremez. Bunun yerine DR’in gönderdiği üye sorgusu pakelerine cevap vermez ve yayın kesilir. Tabi burada esas yayını almak istememesi ve yayının kesilmesi arasında bir süre gecikme olur.

1 – Yayın almak isteyen üyelik raporu gönderir. Bu ilk aşama aynı zamanda DR tarafından’da başlatılabilir.
2 – DR düzenli olarak üyelik sorgularını gönderir.

3 – Üye eğer yayını almaya devam etmek istiyor ise bu düzenli isteklere üyelik raporu ile cevap vermelidir. Yani düzenli olarak üyeliğini yenilemelidir.

IGMPv1 Çalışması
IGMPv1 Çalışması

IGMPv2 :

IGMPv2 Header
IGMPv2 Başlığı

Tüm IGMPv2 mesajlarının IP TTL değeri birdir ve IP Header içerisindeki  IP Router Alert seçeneği işaretlenmiştir (Paketlerin multicast router tarafından incelenmesi için).

IGMPv2’de Type alanı 4 bitden (IGMPv1’de 4 bit) 8 bite çıkartılmış.

Mevcut IGMPv1 isteklerine ek olarak ;

  • Üyelik sorgusu : Yerel ağdaki multicast router tarafından, ağdaki multicast üyelerini tespiti için kullanılır. Her 60sn (varsayılan değer) ağa gönderilirler. Alıcıların bu mesajı en fazla 10sn cevap vermesi beklenir. Eğer iki üyelik sorgusu’na cevap alınmaz ise söz konusu gurup’da alıcı olmadığı düşünülür (Toplam süre 60X2+10=130sn). Alıcı adresi o ağdaki tüm sistemleri belirten 224.0.0.1 olarak ayarlanır. İki tip üyelik sorgusu vardır. İki mesajın tek farkı gorup adresleridir.
    • Genel Üyelik Sorgusu : Yeral ağda hangi multicast gurubunda alıcı olduğunu öğrenmek için multicast router tarafından gönderilir. Sorgu yapıldığı gurup adresi 0.0.0.0’dır.
    • Guruba Özel Üyelik Sorgusu : Belli bir guruba ait alıcı olup olmadığını öğrenmek için multicast router tarafından gönderilir. Sorgunun yapıldığı gurup adresi, hangi gurubu ait alıcı bilgisi aranıyor ise ona ayarlanır.
  • Üyelik Raporu : Ağda bulunan hostlar tarafından bir yayına üye olmak istendiğini belirten mesajdır. Bu paketlerin alıcı kısmında üye olmak istedikleri Class D multicast yayınının adresi bulunmaktadır. Ayrıca Üyelik Sorgusu Mesajlarına cevap olarak’da gönderilir.
  • Guruptan çıkma isteği (Leave Group Message) : IGMPv1’de eksik olan, hostların bir yayını daha fazla almak istemediklerini belirtememeleri soruna çözüm olarak bu istek tipi geliştirilmiştir. Üyeler bu mesaj ile üyeliklerini sonlandırabilirler. Bu mesajı alan DR Guruba özel sorgu göndererek başka üye olup olmadığını sorgular. Zira bu mesajı alır almaz yayını keser ise, o yayına üye diğer alıcılarında yayını kesilmiş olur. Mesaj yerel ağdaki tüm routerlara, alıcı adresi 224.0.0.2 yapılarak gönderilir. Gurup adresi ise terk edilmek istenen yayının adresine ayarlanır.
IGMPv2 Çalışması
IGMPv2 Çalışması

IGMPv2 Ağındaki Görevli Multicast Router, Sorgucu (Multicast Querier),Seçimi :

Yayın yapılan ağda birden fazla multicast router olması durumunda, routerlar arasında bir seçim yapılır ve kazanan router o ağdaki multicast üyelik sorgulamasından sorumlu olur. Bu seçim multicast routerların ağdaki diğer routerların IGMPv2 üyelik sorgularını dinliyerek yapılır. IP adresi en düşük olan router o ağdan sorumlu olur. Eğer ağda başka multicast router’ın mesajı alınmaz ise, dinliyen router bu rolü üstlenir. Eğer kendinden daha düşük ip adresleri bir router’ın mesajını alır ise görevi ona devretmiş olur.

Özet olarak IGMPv2 ve IGMPv1 arasındaki farklar :

  • IGMPv1’de üyelikden ayrılma mesajı bulunmaz. Dolayısı ile bir alınıcının devre dışı kalması ile o yerel ağdaki multicast yayının kesilmesi arasında uzun bir zaman olabilir.
  • IGMPv1’de bir guruba özel sorgulama mesajı bulunmaz.
  • IGMPv1’de en geç cevap verme süresi sabittir (10sn).
  • IGMPv1’de o yerel ağdaki sorgucuyu seçme işlemi uygulanmaz. Dolayısı ile bir’den fazla sorgucu router olabilir.

IGMPv2 ve IGMPv1 Uyumluluğu :

Aynı anda hem IGMPv2 ve IGMPv1 router ve alıcıların bulunması durumu söz konusu olabilir. Bunlar;

  • IGMPv2 Alıcılar / IGMPv1 Router : V2 alıcı ağda V1 router olduğunu algılarsa, V1 gibi davranır ve guruba özel istekleri bastırır.
  • IGMPv1 Alıcılar / IGMPv2 Router : Burada Router ağda v1 alıcı olduğunu anlar ise, v2 guruba özel ayrılma mesajlarını dikkate almaz. Ağda bir v1 alıcısı olduğunu farkettiği anda o gurub için v1 çalışıyormuş gibi davranır. Zira v1 alıcılar v2 mesajlarından anlamaz ve cevap veremez.
  • IGMPv1-2 Alıcılar / IGMPv2 Router :

IGMPv2 ve IGMPv1 Uyumluluğu

IGMPv2 ve IGMPv1 Uyumluluğu

IGMPv3 :

IGMPv2 ek olarak hangi, hostların hangi kaynakdan gelen yayını dinlemek istediklerini belirtemelerini, kaynak filtrelemesini sağlar. Burada ekle,çıkar (exclude, include) gibi işlemler yapılabilir. Ekle çalışma şekli, gönderdiği mesaj içerisinde listelenen kaynakları dinlemek istediğini belirtir. Çıkar çalılma şekli ise listelediği kaynaklar dışındaki tüm kaynakları kabul ettilğini belirtir. IGMPv2 Guruba özel ürelik sorgulamasında ek olarak kaynaklarda listelenir. IGMPv3 başlığında kaynakların listelendiği alan eklenmiştir.

IGMPv3 Başlığı
IGMPv3 Başlığı

IGMPv6 :

IPv6 ile birlikte kullanılır.

Link’ler :

IGMP, Internet Group Management Protocol

IGMP and PIM

http://mars.tekkom.dk/mediawiki/index.php/IP_Multicast

IGMP

Internet Group Management Protocol (IGMP)
IGMP is a host-to-router protocol used when hosts want to join a multicast group. With IGMPv1, routers send periodic membership queries to the multicast address 224.0.0.1. Hosts send membership reports to the group multicast address they want to join. Hosts silently leave the multicast group.

  • IGMP has evolved through three versions (1, 2, and 3).
  • Understanding this protocol is fundamental in defining the multicast group membership join and leave process, which is a required function of multicasting.

IGMP Version 1 

RFC 1112, Host Extensions for IP Multicasting, describes the specification for IGMP Version 1 (IGMPv1). A diagram of the packet format for an IGMPv1 message is shown in Figure 5. Figure 5 IGMPv1 Message Format In Version 1, only the following two types of IGMP messages exist:

  • Membership query
  • Membership report

Defined by RFC 1112

IGMPv1 packet
+ Bits 0 – 3 4 – 7 8 – 15 16 – 23 24 – 31
0 Version Type Unused Checksum
32 Group Address

Hosts send out IGMP membership reports corresponding to a particular multicast group to indicate that they are interested in joining that group. The TCP/IP stack running on a host automatically sends the IGMP Membership report when an application opens a multicast socket. The router periodically sends out an IGMP membership query to verify that at least one host on the subnet is still interested in receiving traffic directed to that group. When there is no reply to three consecutive IGMP membership queries, the router times out the group and stops forwarding traffic directed toward that group.

IGMP Version 2 

IGMPv1 has been superceded by IGMP Version 2 (IGMPv2), which is now the current standard. IGMPv2 is backward compatible with IGMPv1. RFC 2236, Internet Group Management Protocol, Version 2, describes the specification for IGMPv2. A diagram of the packet format for an IGMPv2
In Version 2, the following four types of IGMP messages exist:

  • Membership query
  • Version 1 membership report
  • Version 2 membership report
  • Leave group

Defined by RFC 2236

IGMPv2 packet
+ Bits 0 – 7 8 – 15 16 – 23 24 – 31
0 Type Max Resp Time Checksum
32 Group Address

IGMP Version 2 works basically the same way as Version 1. The main difference is that there is a leave group message. With this message, the hosts can actively communicate to the local multicast router that they intend to leave the group. The router then sends out a group-specific query and determines if any remaining hosts are interested in receiving the traffic. If there are no replies, the router times out the group and stops forwarding the traffic. The addition of the leave group message in IGMP Version 2 greatly reduces the leave latency compared to IGMP Version 1. Unwanted and unnecessary traffic can be stopped much sooner.

IGMP Version 3 

IGMP Version 3 (IGMPv3) is the next step in the evolution of IGMP. IGMPv3 adds support for “source filtering,” which enables a multicast receiver host to signal to a router the groups from which it wants to receive multicast traffic, and from which sources this traffic is expected. This membership information enables Cisco IOS software to forward traffic from only those sources from which receivers requested the traffic. IGMPv3 is an emerging standard. The latest versions of Windows, Macintosh, and UNIX operating systems all support IGMPv3. At the time this document was being written, application developers were in the process of porting their applications to the IGMPv3 API.

Defined by RFC 3376

IGMPv3 packet
Bits 0 – 7 8 – 15 16 – 23 24 – 31
Type Max Resp Time Checksum
Group Address
S QRV QQIC Number of sources N
Source address 1
Source address 2
Source address N

One thought on “IGMP, IGMPv1 ve IGMPv2”

Leave a Reply