網絡子係統13_鄰居子係統狀態機
// 參考深入理解linux網絡技術內幕 // 頭文件net/neighbour.h //一個solicitation請求已發出,但是還沒有收到應答,在這個狀態下,不適用任何硬件地址 #define NUD_INCOMPLETE 0x01 //該鄰居是可到達的 #define NUD_REACHABLE 0x02 //緩存中包含此鄰居項,但是該地址已有一段時間沒有被確認了,上一次確認時間由 //neighbour->confirmed成員指出,當下一次有封包要到達這個鄰居時,要啟動可到達性確認, //在該狀態下,會使用舊的硬件地址 #define NUD_STALE 0x04 //當發送一個封包到一個鄰居,且該鄰居相關的緩存處於NUD_STALE時,就進入這個狀態, //NUD_DELAY表示一個時間窗口,如果在這個窗口內,沒有收到該鄰居的確認,就進入NUD_PROBE狀態 #define NUD_DELAY 0x08 ////當鄰居處於NUD_DELAY並且沒有收到可到達性確認時,狀態轉變為NUD_PROBE,同時開始solicitation處理 #define NUD_PROBE 0x10 //由於solicitation請求失敗,將鄰居標記為不可達 #define NUD_FAILED 0x20 //標記不要任何協議進行l3到l2的地址映射 #define NUD_NOARP 0x40 //鄰居項l2地址靜態配置 #define NUD_PERMANENT 0x80 //鄰居項剛被創建,還沒有狀態可用 #define NUD_NONE 0x00 //表示當前狀態有定時器在運行 #define NUD_IN_TIMER (NUD_INCOMPLETE|NUD_REACHABLE|NUD_DELAY|NUD_PROBE) //表示相信該鄰居有一個硬件地址 #define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY) //表示沒有未決的處理要確認 #define NUD_CONNECTED (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE)
最後更新:2017-04-03 15:21:56