交換機(jī)GMRP協(xié)議詳解
瀏覽次數(shù):發(fā)布時間:2022-11-24
概述
GMRP(garp multicast registration protocol,garp 組播注冊協(xié)議)是基于 GARP(Generic Attribute Registration Protocol,通用屬性注冊協(xié)議)的一個組播注冊協(xié)議, 用于注冊和注銷組播屬性。
技術(shù)介紹
GMRP 協(xié)議是一個動態(tài)二層組播注冊協(xié)議,所有支持 GMRP 的
交換機(jī)都能夠接收來自其他交換機(jī)的組播注冊信息,并動態(tài)更新本地的組播注冊信息,同時也能將本地的組播注冊信息向其他交換機(jī)傳播。這種信息交換機(jī)制,確保了同一交換網(wǎng)內(nèi)所有支持 GMRP 的設(shè)備維護(hù)的組播信息的一致性。
當(dāng)一臺主機(jī)想要加入某個組播組時,它將發(fā)出 GMRP 加入消息。交換機(jī)將接到 GMRP 加入消息的端口加入到該組播組中,并在接收端口所在的 VLAN 中廣播該 GMRP 加入消息,VLAN中的組播源就可以知曉組播成員的存在。當(dāng)組播源向組播組發(fā)送組播報文時,交換機(jī)就只把組播報文轉(zhuǎn)發(fā)給與該組播組成員相連的端口,從而實(shí)現(xiàn)了在 vlan 內(nèi)的二層組播。
交換機(jī)會周期性發(fā)送 GMRP 查詢,如果主機(jī)想留在組播組中,它就會響應(yīng) GMRP 查詢, 在該情況下,交換機(jī)沒有任何操作;如果主機(jī)不想留在組播組中,它既可以發(fā)送一個 leave 信息也可以不響應(yīng)周期性 GMRP 查詢。一旦交換機(jī)在計(jì)時器(leave all timer)設(shè)定期間收到主機(jī) leave 信息或沒有收到響應(yīng)信息,它便從組播組中刪除該主機(jī)。
那么為什么需要二層組播協(xié)議呢?與 IGMP 協(xié)議一樣,如果我們在自己的局域網(wǎng)內(nèi)成立一個組播組,可能我們的局域網(wǎng)包含了很多交換機(jī)。如果這些交換機(jī)沒有實(shí)現(xiàn)二層組播協(xié)議的話,那么某個組員給其他組員發(fā)送數(shù)據(jù)包時,交換機(jī)就會將該數(shù)據(jù)包向所有的端口廣播。因?yàn)榻粨Q機(jī)不知道哪個端口有人加入了該組播組,唯一的解決辦法就是管理員配置交換機(jī),只有這樣才能將這種廣播轉(zhuǎn)發(fā)數(shù)據(jù)包的發(fā)送方式限制住。而組播本身是動態(tài)的,所以通過這種靠管理員的配置來實(shí)現(xiàn)組播的方式是不現(xiàn)實(shí)的。因此,就需要有一個二層組播協(xié)議來動態(tài)管理組員。
GMRP 消息類型
1.Join 消息
當(dāng)一個 GMRP 應(yīng)用實(shí)體希望其它設(shè)備注冊自己的屬性信息時,它將對外發(fā)送 Join 消息; 當(dāng)收到其它實(shí)體的 Join 消息或本設(shè)備靜態(tài)配置了某些屬性,需要其它 GMRP 應(yīng)用實(shí)體進(jìn)行注冊時,它也會向外發(fā)送 Join 消息。
2.Leave 消息
當(dāng)一個 GMRP 應(yīng)用實(shí)體希望其它設(shè)備注銷自己的屬性信息時,它將對外發(fā)送 Leave 消息; 當(dāng)收到其它實(shí)體的 Leave 消息注銷某些屬性或靜態(tài)注銷了某些屬性后,它也會向外發(fā)送Leave 消息。
3.LeaveAll 消息
每個應(yīng)用實(shí)體啟動后,將同時啟動 LeaveAll 定時器,當(dāng)該定時器超時后應(yīng)用實(shí)體將對外發(fā)送 LeaveAll 消息。
LeaveAll 消息用來注銷所有的屬性,以使其它應(yīng)用實(shí)體重新注冊本實(shí)體上所有的屬性信息,以此來周期性地清除網(wǎng)絡(luò)中的垃圾屬性(例如某個屬性已經(jīng)被刪除,但由于設(shè)備突然斷電,并沒有發(fā)送 Leave 消息來通知其他實(shí)體注銷此屬性)。
GMRP 定時器
1.Join 定時器
Join 定時器是用來控制 Join 消息的發(fā)送的。
為了保證 Join 消息能夠可靠的傳輸?shù)狡渌鼞?yīng)用實(shí)體,發(fā)送第一個 Join 消息后將等待一個 Join 定時器的時間間隔,如果在一個 Join 定時器時間內(nèi)收到 JoinIn 消息,則不發(fā)送第二個 Join 消息;如果沒收到,則再發(fā)送一個 Join 消息。
2.Hold 定時器
Hold 定時器是用來控制 Join 消息和 Leave 消息的發(fā)送的。
當(dāng)在應(yīng)用實(shí)體上配置屬性或應(yīng)用實(shí)體接收到消息時不會立刻將該消息傳播到其它設(shè)備,而是在等待一個 Hold 定時器后再發(fā)送消息,設(shè)備將此 Hold 定時器時間段內(nèi)接收到的消息盡可能封裝成最少數(shù)量的報文,這樣可以減少報文的發(fā)送量。如果沒有 Hold 定時器的話,每來一個消息就發(fā)送一個,造成網(wǎng)絡(luò)上報文量太大,既不利于網(wǎng)絡(luò)的穩(wěn)定,也不利于充分利用每個報文的數(shù)據(jù)容量。Hold 定時器的值要小于等于 Join 定時器值的一半。
3.Leave 定時器
Leave 定時器是用來控制屬性注銷的。
每個應(yīng)用實(shí)體接收到 Leave 或 LeaveAll 消息后會啟動 Leave 定時器,如果在 Leave 定時器超時之前沒有接收到該屬性的 Join 消息,屬性才會被注銷。這是因?yàn)榫W(wǎng)絡(luò)中如果有一個實(shí)體因?yàn)椴淮嬖谀硞€屬性而發(fā)送了 Leave 消息,并不代表所有的實(shí)體都不存在該屬性了, 因此不能立刻注銷屬性,而是要等待其他實(shí)體的消息。例如,某個屬性在網(wǎng)絡(luò)中有兩個源, 分別在應(yīng)用實(shí)體 A 和 B 上,其他應(yīng)用實(shí)體通過協(xié)議注冊了該屬性。當(dāng)把此屬性從應(yīng)用實(shí)體A 上刪除的時候,實(shí)體 A 發(fā)送 Leave 消息,由于實(shí)體 B 上還存在該屬性源,在接收到 Leave 消息之后,會發(fā)送 Join 消息,以表示它還有該屬性。其他應(yīng)用實(shí)體如果收到了應(yīng)用實(shí)體 B 發(fā)送的 Join 消息,則該屬性仍然被保留,不會被注銷。只有當(dāng)其它應(yīng)用實(shí)體等待兩個 Join 定時器以上仍沒有收到該屬性的 Join 消息時,才能認(rèn)為網(wǎng)絡(luò)中確實(shí)沒有該屬性了,所以這就要求 Leave 定時器的值大于 2 倍 Join 定時器的值。
4.LeaveAll 定時器
每個 GMRP 應(yīng)用實(shí)體啟動后,將同時啟動 LeaveAll 定時器,當(dāng)該定時器超時后 GMRP 應(yīng)用實(shí)體將對外發(fā)送 LeaveAll 消息,隨后再啟動 LeaveAll 定時器,開始新的一輪循環(huán)。
接收到 LeaveAll 消息的實(shí)體將重新啟動所有的定時器,包括 LeaveAll 定時器。在自己的 LeaveAll 定時器重新超時之后才會再次發(fā)送 LeaveAll 消息,這樣就避免了短時間內(nèi)發(fā)送多個 LeaveAll 消息。
一次 LeaveAll 事件相當(dāng)于全網(wǎng)所有屬性的一次 Leave。由于 LeaveAll 影響范圍很廣, 所以建議 LeaveAll 定時器的值不能太小,至少應(yīng)該大于 Leave 定時器的值。
每個設(shè)備只在全局維護(hù)一個 LeaveAll 定時器。
GMRP 配置
全局設(shè)置
配置步驟
1.在導(dǎo)航欄中選擇[GMRP/GMRP 配置],進(jìn)入 GMRP 配置界面。
2.在[GMRP 全局設(shè)置]界面中可以查看 GMRP 的全局配置,如下圖所示。
3.如需修改 GMRP 的全局配置,在 GMRP 全局配置框中修改相應(yīng)配置,然后單擊<應(yīng)用>。
配置項(xiàng)說明
[GMRP 全局設(shè)置]的相關(guān)界面的配置項(xiàng)說明。
配置項(xiàng) |
說明 |
管理狀態(tài) |
GMRP全局使能開關(guān)。
使能:使能GMRP功能;
禁止:關(guān)閉GMRP功能。注意:默認(rèn)關(guān)閉。 |
Hold Time |
Hold 定時器周期,范圍為100-32760(ms),默認(rèn)值為100ms;
注意 hold time*2 <= join time。 |
Join Time |
Join 定時器周期,范圍為100-32760(ms),默認(rèn)值為200ms;
注意 join time*2<=leave time。 |
Leave Time |
Leave 定時器周期,范圍為100-32760(ms),默認(rèn)值為600ms;
注意 leave time<=leaveall time |
Leaveall Time |
Leaveall 定時器周期,范圍為100-32760(ms),默認(rèn)值為10000ms;
注意 leaveall time>=leave time |
GMRP 端口配置
配置步驟
1.在導(dǎo)航欄中選擇[GMRP/GMRP 配置],進(jìn)入 GMRP 配置界面。
2.在[GMRP 端口設(shè)置]界面中可以查看 GMRP 的端口配置,如下圖所示。
3.如需修改 GMRP 的端口配置,單擊指定端口后面的修改按鈕,進(jìn)入 GMRP 端口配置修改界面,如下圖所示,,配置好后,然后單擊<應(yīng)用>。
配置項(xiàng)說明
GMRP[端口配置]的相關(guān)界面的配置項(xiàng)說明。
配置項(xiàng) |
說明 |
端口 |
端口名稱信息。 |
VLAN 模式 |
端口的 GMRP 模式,默認(rèn)為 Forbidden。 |
飛暢科技擁有超20年的研發(fā)生產(chǎn)售后服務(wù)經(jīng)驗(yàn),專業(yè)提供各類
光端機(jī)、
電話光端機(jī)、
工業(yè)交換機(jī)、
光纖收發(fā)器,
協(xié)議轉(zhuǎn)換器,
串口服務(wù)器等,誠信為本!質(zhì)量保障!服務(wù)至上!是您選擇廠商的不二之選!咨詢熱線:0571-8700-7140。