路由:對數據包選擇路徑的過程
路由器(也叫網關)
智能選擇數據傳輸路由的設備,其端口數量較少!
功能:
連接網絡
1.連接異構網絡
以太網、ATM網絡、FDDI網絡
2.連接遠程網絡
局域網、廣域網
隔離廣播
將廣播隔離在局域網內
路由選擇
網絡安全
地址轉換:NAT
訪問列表:IP訪問列表,設置各種策略。
路由器工作在網絡層(3層)!
工作原理
- 路由選擇
按照一定的規則動態地更新它所保持的路由表,并根據量度來決定最佳路徑。路由選擇算法將收集到的信息寫入路由表中,根據路由表可將目的網絡與下一跳的關系告訴路由器。
常見的路由選擇協議:
路由信息協議(RIP)
開放式最短路徑優先協議(OSPF)
邊界網關協議(BGP)
- 數據轉發
接收到IP包后,解釋并處理該數據包的協議報頭,完成對數據的完整性驗證。
根據IP包頭的目的IP地址,選擇合適的下一跳的IP地址。同時,IP數據包頭的TTL域開始減數,并重新計算校驗和。
封裝上相應的包頭,將IP包經路由選擇的端口轉發出去。
IP數據包格式:
IP包頭:20-60字節
版本:IPv4或IPv6
首部(頭部)長度:長度可變,因此需要定義
優先級與服務類型:3+4+1(不使用)
總長度:IP包數據的總長度
標識符:分片序號(對分片進行編號)
標志:(010,001,000)
- 第1個比特位:保留,永遠為0。
- 第2個比特位:0:分片,1:不分片
- 第3個比特位:本分片是不是最后一個分片。1:不是,0:最后一個分片。
段偏移量:決定IP分片的先后順序(從0開始,后面每一個加1480)
TTL(Time to Live):生存時間(一跳的個數),經過一個路由器,這個值減1,為0時,該數據自行銷毀。
windows系統發出的數據TTL默認為128,linux為64。
協議號:用來標識封裝的上層數據是是UDP還是TCP
UDP:17
TCP:6
首部校驗和:類似幀當中的幀校驗和,但這里校驗的是IP包頭的準確性。
拓撲圖:
- 路由器是根據路由表來轉發數據的。
- 如果成功匹配路由表,根據表來轉發數據。
- 如果沒有匹配,數據丟棄。
- 匹配路由表時,優先匹配直連(c),然后是s,最后是s*。
路由表的形成
- 直連路由表條目:接口的IP配置完畢并開啟,會自動形成直連條目。
- 非直連路由表條目:手工靜態或動態為路由器進行配置
路由器條目的類型
直連:C
靜態:S
默認:S*
優先級:C>S>S*