xcme писал(а):
inwate, а по остальным параметрам что можете сказать?
Query Interval и Max Response Time влияют только на работу квериера, т.к. только он шлёт Membership Query каждые Query Interval секунд. В Membership Query есть поле Max Response Time, говорящее подписчику, что он должен подтвердить свои подписки в случайное время в промежутке от 0 до Max Response Time секунд.
xcme писал(а):
Мне не очень понятно что такое Data Driven, Report Suppression и настройки Querier.
При включенном Report Suppression коммутатор не будет отправлять кучу одинаковых Membership Report квериеру. Например, у вас на коммутаторе (или на коммутаторах ниже) 50 абонентов, подписанных на одну и ту же группу 239.1.1.1. От кверира прилетает Membership Query всем абонентам. Они должны в ответ прислать Membership Report с ip-dst 239.1.1.1 и полем Multicast address: 239.1.1.1 если и дальше хотят смотреть этот канал. 50 одинаковых репортов, отличающихся только src-ip. Если бы не было igmp snopping, это не было бы проблемой - все подписчики увидели бы report самого быстрого подписчика и свои репорты слать бы не стали (по крайней мере так им велит RFC). Но при снупинге подписчики друг от друга изолированы и не видят репорты друг друга, а значит каждый из них пошлёт свой репорт. При включенном report suppression "наверх" улетит только первый репорт, сообщающий что подписчики есть. Report suppression работает только для IGMPv1 и IGMPv2.
При включенном Data Driven Learning информация о группах берётся коммутатором не только на основе репортов, но и на основе мультикаст-трафика. Я не до конца понимаю назначение этого, но, судя по описанию из документации на DGS-3120, если клиент вздумает вещать какую-нибудь группу, то она запишется в igmp snooping group как data-driven и будет форвардится в роутер порты, т.е. весь этот клиентский мультикаст долетит до квериера. Может быть это нужно для случаев, когда источник далеко от квериера и нужно к нему протолкнуть мультикаст, может быть уменьшает время сходимости мультикаст трафика в кольцевых топологиях в случае обрыва, не знаю.
xcme писал(а):
p.s. Я так понимаю, что robustness используется в нескольких формулах, например опытным путем нашел, что Expiry Time (?) для группы равно Query_Interval*Robustness_Value+Max_Response_Time.
Да, так и вычисляется. Кроме того Membership report specific шлётся robustness variable раз, Expire timer при получении membership query specific равен last member query interval*robustness, и в querier expire timer тоже используется.