ip資料報的傳輸過程(路由)
ip協議的乙個核心任務就是資料報的路由,即決定傳送資料報到目標機器的路徑。當乙個ip資料報從資料鏈路層傳輸到ip模組的時候,ip模組的工作流程如下:
如何判斷這個資料報該發往**?
依靠每個節點內部維護乙個路由表(注意是節點,包括主機和路由器)
字段
含義
destination
目標網路或主機
gateway
閘道器位址,*表示目標位址和本機在同乙個網路,不需要路由
genmask
子網掩碼
flags
u:該路由項是有效的
h:該路由項的目標是一台主機
d:該路由項是由重定向生成的
m:該路由項被重定向修改過
metric
路由舉例,即到達指定網路所需的中轉數
ref
路由項被引用的次數(linux中未使用)
use
該路由項被使用的次數
iface
該路由項對於的輸出網絡卡介面
ip路由機制的過程分為下面三個步驟(按照ip位址分類)
因此,對於我的機器而言,所有傳送到ip位址為192.168.224.*的機器的ip資料報都可以直接傳送到目標機器而不需要經過路由(傳送到本機的資料報根本不會進入都計算下一跳位址這一步,在處理ip頭部資訊的時候如果匹配了ip就直接交給上層協議了),而所有其他訪問請求都將通過預設路由項來**。
如果要傳送的資料報位址是192.168.224.3
如果要傳送的資料報位址是200.10.1.2
路由表更新
路由表必須能夠更新,以反映網路連線的變化,這樣ip模組才能準確、高效地**資料報。
route命令可以修改路由表,這是屬於靜態的路由更新方式。對於大型的路由器,常常通過bgp(border gateway protocol,邊際閘道器協議)和rip(routing information protocol,路由資訊協議)、ospf等協議來發現路徑,並更新自己的路由表,這種更新方式是動態的、自動的。
sudo route add -host 192.168.224.138 dev ens33
上面的命令表示新增主機192.168.224.138對應的路由項,設定以後會有h標誌
可以在通過下面的命令來刪除剛新增進去的路由項
sudo route del 192.168.224.138
ip**
不是本機的ip資料報都交給資料報**子模組來處理。路由器都能執行**操作,而主機一般只傳送和接收資料報,不支援**。這意味著,如果ip資料報傳送到主機,而主機不允許**,那麼主機就將丟棄該資料報。我們可以通過修改下面檔案的內容來讓主機支援**。
這個檔案中的值是0,改為1表示支援**。
對於允許**的節點(主機或路由器),資料報**子模組將對資料報執行下面的操作
TCP IP協議族基礎
tcp ip是個協議組,可分為三個層次 網路層 傳輸層和應用層。在網路層有ip協議 icmp協議 arp協議 rarp協議和bootp協議。在傳輸層中有tcp協議與udp協議。在應用層有ftp http telnet smtp dns等協議。因此,http本身就是乙個協議,是從web伺服器傳輸超文字...
網路基礎篇 一 TCP IP協議族
tcp ip協議族是乙個分層,多協議通訊體系.1 tcp ip協議族體系結構 tcp ip協議族自底而上分為四層 資料鏈路層,網路層,傳輸層和應用層.1.1 資料鏈路層 實現網絡卡介面的網路驅動程式,以處理資料在物理媒介 如,乙太網,令牌環 上的傳輸.經常使用協議 arp協議和rarp協議 1.2 ...
TCP IP協議族四層模型
tcp ip協議族四層模型分為 應用層 傳輸層 網路層 鏈路層資料鏈路層 1.1 作用 1 實現網絡卡介面的網路驅動,以處理資料在乙太網線等物理媒介上的傳輸 2 網路驅動程式隱藏了不同物理網路的不同電氣特性,為上層協議提供乙個統一的介面 1.2 協議應用 arp和rarp reverse addre...