?? rfc2236.txt
字號:
- "發送離開 " 對于接口上的組。如果該接口的狀態說查詢者正在運行IGMPv1, 該反應應被跳過。如果說我們是最后一個主機的該狀態標志被清除,該反應可被跳過。該離開消息被送給所有路由器組(224.0.0.2)。
- "設置狀態" ,指我們是最后發送報告給該組的主機 。
- "清除狀態", 指因為我們不是最后發送報告給該組的主機 。
- "開始定時器" ,為此接口上的組而定。使用一個唯 一的選 擇值(從0到最大的響應時間間隔)延時值, 在此最大的響應時間在查詢中規定。如果這是一個非請求的報告,該定時器會被設為一個唯 一的選 擇值(從0到最大的響應時間間隔)延時值。
- "重置定時器 " 對于該接口上的組設為一個新的數值,其延時數值從從0到最大的響應時間間隔)延時值, 和"開始定時器"中所說的一樣。
- "停止定時器 " 對于接口上的該組。
在所有如下的狀態報文中,每一個狀態傳送弧都被標以引起該傳送的事件,并且,在插入符中,有在傳送中的一個反應標識。注意該傳送已經被事件引發了;即使該反應是有條件的,該傳送仍然發生。
________________
| |
| |
| |
| |
--------->| Non-Member |<---------
| | | |
| | | |
| | | |
| |________________| |
| | |
| leave group | join group | leave group
| (stop timer, |(send report, | (send leave
| send leave if | set flag, | if flag set)
| flag set) | start timer) |
________|________ | ________|________
| |<--------- | |
| | | |
| |<-------------------| |
| | query received | |
| Delaying Member | (start timer) | Idle Member |
---->| |------------------->| |
| | | report received | |
| | | (stop timer, | |
| | | clear flag) | |
| |_________________|------------------->|_________________|
| query received | timer expired
| (reset timer if | (send report,
| Max Resp Time | set flag)
| < current timer) |
-------------------
所有系統的組 (地址為 224.0.0.1) 被處理為一個特別的事例。對于每個接口上的組,該主機開始于空閑成員狀態,并且從不發送針對此組的報告。
另外,考慮到某個單一的網絡接口一個主機可以是在兩個可能狀態中的一個:
- "無 IGMPv1 路由器存在", 當該主機沒有聽到針對[版本 1 的路由器存在超時]的IGMPv1風格的查詢時,此為初始狀態。
- "IGMPv1 路由器存在", 當該主機已聽到了在針對[版本 1 的路由器存在超時]的一個IGMPv1 風格的查詢時。
此處有兩個事件,能導致狀態的改變:
- "IGMPv1 查詢收到", 當主機接收到一個帶有最大響應時間域設為0的查詢時產生。
- "定時器超時", 當定時器設為提示有一個 IGMPv1 的路由器存在已過期。加入一個單個的反應能被一個事件所啟動:
"設定定時器 ", 設定定時器為其最大的值[版本 1 的路由器存在超時]且開始或重新開始它。
________________
| |
| |
| No IGMPv1 |
| Router |
| Present |
| |
---->| |----
| | | |
| |________________| |
timer expires | | IGMPv1 query
| ________________ | received
| | | | (set timer)
| | | |
| | | |
-----| IGMPv1 |<---
| Router |
| Present |
| |
---->| |----
| |________________| |
| |
| IGMPv1 query received |
| (set timer) |
---------------------------
7. 路由器狀態報文
路由器的行為很大程度上由如下的傳送提報文所定義。
考慮到 任一個單一的鄰接網絡,一個路由器可為兩個可能狀態中的一個 :
- "查詢者", 當該路由器設計為在此網絡上傳送IGMP 成員關系查詢時。
- "非查詢者", 當此處是另一個設為在此網絡上傳送IGMP成員關系查詢的路由器。
如下的三個事件能導致路由器改變狀態:
- "查詢定時器超時" 發生在定時器設為查詢傳送超時時。
- "從低IP地址的路由器上收到的查詢消息" 發生在從在同一個網絡上且有低IP地址的路由器上接收到IGMP 成員查詢時。
- "其它的查詢者存在定時器超時" 發生在,當定時器設為提示另一個此網絡上擁有低IP地址的查詢者超時時。
此處有三個反應,可用來響應以上的事件:
- "啟動一般查詢定時器" 針對一個鄰接網絡。
- "啟動另一個查詢者存在定時器" 針對于該鄰接網絡[其它查詢者存在周期。
- "發送一般查詢" 在鄰接網絡上發送。一般的查詢被發 給所有的系統組(224.0.0.1),并且有[查詢響應周期]的最大的響應時間 。
--------------------------------
_______|________ gen. query timer |
--------- | | expired |
| Initial |---------------->| | (send general query, |
--------- (send gen. q., | | set gen. q. timer) |
set initial gen. q. | |<----------------------
timer) | Querier |
| |
-----| |<---
| | | |
| |________________| |
query received from a | | other querier
router with a lower | | present timer
IP address | | expired
(set other querier | ________________ | (send general
present timer) | | | | query,set gen.
| | | | q. timer)
| | | |
---->| Non |----
| Querier |
| |
| |
---->| |----
| |________________| |
| query received from a |
| router with a lower IP |
| address |
| (set other querier |
| present timer) |
---------------------------
一個路由器應該在所有的鄰接網絡上開始于初始狀態,并且立即移到查詢者狀態。
另外,為了保持和那些有成員的組的聯系,在考慮到任一個位于單個鄰接的網絡上的單一IP組播組時,一個路由器可處于四個可能狀態:
- "無成員存在" 狀態,當已 發送該組播組報告的網絡上沒有主機存在時。 這對于該路由器上所有的組來說是一個初始狀態;它不需要路由器的存儲。
- "成員存在" 狀態, 當已 發送該組播組報告的網絡上有一個主機存在時。
- "版本1成員存在" 狀態,當對于該組已發送版本1成員組報告的網絡上有一個主機存在時。
- "檢測成員關系" 狀態,當路由器已接收到了一個離開組消息,今明兩天沒有聽到針對組播組的成員報告。
此處有六個明顯的能導致路由器狀態改變的事件:
- "版本v2 報告收到" 發生在當路由器接收到針對該接口上該組的版本2成員關系報告時。為了有效,該報告消息必須至少有8個字節長,并且必須有正確的IGMP 檢測字。
- "版本v1 報告收到 " 發生在當路由器收到了針對該接口上該組的版本1的成員報告 。 應用了同樣合法的請求。
- "離開收到" 發生在當路由器接收到針對該接口上的該組的IGMP 組離開消息時。為使其有效,此離開組的消息必須至少有8個字節長,并且必須有正確的IGMP校驗字。
- "定時器超時" 發生在當定時器為一個組成員設置后超時時。
- "重傳定時器超時" 發生在為重傳一個特定組查詢的定時器超時時。
- "版本v1 主機定時器超時" 發生在當為提示版本1的主機作為組成員存在的定時越野時。
此處有六個可能的反應,它可能對以上的事件反應:
- "開始定時器" 針對接口上的組成員- 也重置定時囂為其初始值 [組成員生存期]如果該定時器當前正在運行。
- "開始定時器*" 針對接口上的的組成員- 該替代的響應設此計時器為[最后的組成員生存期] * [最后的成員查詢計數] 如果該路由器是一個查詢者,或是 包中的[最大的響應時間] * [最后的成員查詢計數]如該路由器是一個非查詢者。
- "開始重傳定時器" 針對于該口上的組成員 [最后的成員查詢周期]。
- "開始版本1主機定時器" 針對于該接口上的組成員,也重置該定時器為其初始值[組成員周期] 如果該定時器當前正在運行。
- "發送特定組查詢" 針對于鄰接網絡上的組。特定組查詢被發給所查詢的 組中,并且有著[最后成員查詢周期]的最大的響應時間 。
- "通知路由+" 通知路由協議在此連接的網絡上該組的成員。
- "通知路由 -" 通知路由協議在此連接的網絡上不在有該組的成員。
對于路由器查詢狀態的狀態報文如下 :
________________
----------------------------| |<-----------------------
| | |timer expired |
| timer expired| |(notify routing -, |
| (notify routing -)| No Members |clear rxmt tmr) |
| ------->| Present |<------- |
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -