選路是ip最重要的功能之一。需要進行選路的資料報可以由本地主機產生,也可以由其他主機產生。在後一種情況下,主機必須配置成乙個路由器,否則通過網路介面接收到的資料報,如果目的位址不是本機就會被丟棄。
netstat -rn是用於檢視路由表的命令,輸出如圖所示:
第一列destination表示目的ip位址,比如如果目的位址是140.252.13.65,那麼會通過140.252.13.35將資料報**給目的主機。
第二列gateway表示資料報的**路由器位址
第三列flags代表路由器的一些標誌
第四列refcnt參考計數,列出了正在使用該路由的活動程序數
第五列use,顯示了通過該路由傳送的分組計數
第六列inte***ce,表示了該路由使用的網路介面名稱
route 是操作路由表的乙個命令
route add default sun 1,增加乙個路由表項,第3個引數代表的是目的端,第4個引數代表閘道器,最後乙個引數代表路由的度量,大於0時要為該路由設定g標誌,當為0時不設定。
如果路由表中沒有預設項,也未找到匹配項,如果資料報是由本地主機產生的,那麼就給傳送該資料報的程式返回乙個差錯,或者是」主機不可達」,或者是」網路不可達」。如果資料報是被**的,那麼就給原始傳送端傳送乙份icmp主機不可達的差錯報文。
當ip資料報應該被傳送到另一路由器時,收到資料報的路由器就要傳送icmp重定向差錯報文給ip資料報的傳送端。重定向一般用來讓具有很少選路資訊的主機逐漸建立更完善的路由表
導致重定向的ip位址,即重定向報文的資料,位於ip資料報的首部
傳送重定向報文的路由器ip位址,包含重定向資訊的ip資料報中的源位址
應該採用的路由器ip位址在icmp報文中4~7個位元組
重定向報文只能由路由器生成,而不能由主機生成,另外,重定向報文是為主機而不是為路由器使用的。
主機在引導以後要廣播或多播傳送乙份路由器請求報文,路由器需要響應乙份通告報文,此外,路由器定期廣播或多播傳送它們的路由器通告報文,允許每個正在監聽的主機相應的更新路由表。通告報文的格式如下圖所示:
主機在引導期間一般傳送三份路由器請求報文,每隔3秒傳送一次,一旦接收到乙個有效的通告報文,就停止傳送請求報文。
TCP IP詳解卷一 第9章IP選路
1 ip選路時根據路由表,下面是一張完整的路由表。注意flags標誌 h代表是主機,g代表是直接路由還是間接路由。匹配網路位址時,應當先將目標位址與子網掩碼進行邏輯與。2 初始化路由表的方式有 1 3 當需要將資料報傳送到目的地,找不到下一站路由時,會傳送乙個主機不可達報文。4 存在5個頂層選路域 ...
TCP IP詳解 卷一 協議 第9章 IP選路
路由選擇程式 daemon 通常這是乙個使用者程序。在大多數的unix系統中,大多數的路由選擇程式都是路由程式和閘道器程式。路由表經常被ip訪問,但是它被路由守護程式更新的頻率卻低很多,當接收到icmp重定向報文時,路由表也要被更新。在第三章中,介紹了ip搜尋路由表的步驟 在terminal下執行n...
《TCP IP詳解》筆記 IP選路
1 概述 2 選路原理 3 icmp重定向差錯 4 icmp發現報文 ip層工作步驟 1 搜尋匹配的主機位址 mac 2 搜尋匹配的網路位址 ip 3 搜尋預設表項,該預設的表項在路由表中被指定為乙個網路表項,網路號為0 ip層進行的主要是一種選路機制,搜尋路由表並決定向那個網路介面傳送分組。具體的...