Introduction: IP定址及遶送之基本觀念
基本主題 OSI網路層協定定義了下列功能 遶送 邏輯定址 遶送協定 其他功能
網路層功能概述 常見的網路層協定,諸如網際網路協定(IP, Internet Protocol)、Novell網際網路封包交換 (IPX,Internetwork Packet Exchange)或 AppleTalk資料封包傳遞協定(DDP,Datagram Delivery Protocol)。 現今廣泛使用的第三層協定 IP,主要工作是遶送從 來源主機發送的資料(封包)到目的主機。 因為網路必須轉送大量封包,IP遶送程序必須非常簡易。 IP在發送封包之前,不需要做任何的確認或回應動作,使 得IP成為非連接導向的協定。 IP嘗試去傳遞每個封包,但如果路由器或主機的IP程序不 能傳遞封包,則封包被摒棄,因此無錯誤復原的功能。
目的地在另一個 群組;傳送到附 近的路由器 透過離開的序列 鏈路將資料遶送 到該群組 透過訊框中繼 將資料遶送到 該群組 直接傳送到PC2
遶送(轉送) PC1的邏輯:發送資 料給在鄰接的路由器。 產生資料的電腦對網 路懂得不多,只知道 如何將資料傳送給某 個鄰接的路由器。 目的地在另一個 群組;傳送到附 近的路由器 透過離開的序列 鏈路將資料遶送 到該群組 PC1的邏輯:發送資 料給在鄰接的路由器。 產生資料的電腦對網 路懂得不多,只知道 如何將資料傳送給某 個鄰接的路由器。 在乙太網路上封裝IP 封包。 圖5-1 遶送邏輯:PC1發送到R1
R1及R2的傳送邏輯:為資料 跨越網路而進行遶送。 透過離開的序列 鏈路將資料遶送 到該群組 R1及R2的傳送邏輯:為資料 跨越網路而進行遶送。 路由器會根據路徑表 (routing table)項目來比對 封包裡的網路層目的地位址; 只有符合路徑表內的項目,路 由器才會知道如何將封包轉送 到下一站。 R1取出IP封包,並在HDLC上 封裝封包。 R2取出IP封包,並在訊框中繼 上封裝封包。 透過訊框中繼 將資料遶送到 該群組 圖5-2 遶送邏輯:R1發送到R2
R3的邏輯:傳遞資料到 最後目的地。 取出IP封包,並在乙太 網路上封裝封包。 直接傳送到PC2 圖5-3 遶送邏輯:R3發送到PC2
網路層 與資料鏈結層 之互動
IP封包及IP標頭 版本 IHL DS 封包長度 辨識代碼 旗標(3) 分段偏移(13) TTL 協定 標頭檢查碼 來源IP位址 圖5-4 IPv4標頭
IP標頭欄位摘要 (詳見課本pp.103) 欄位 意義 版本 IP 協定版本。現今大部分網路使用第四版 IHL IP 標頭長度(IHL,IP Header Length) DS 差異服務(Differentiated Services)欄位。 封包長度 辨識IP封包的整體長度,包括資料 辨識代碼 供IP封包分段程序使用 旗標 IP 封包分段程序使用3個位元之欄位
欄位 意義 分段偏移 用來協助主機將已分割之封包重組回原始的大小 TTL 存活時間。用來防止遶送迴圈的數值 協定 辨識IP封包資料部分的內容之欄位 標頭檢查碼 用來儲存FCS的值,其目的在判斷在IP標頭內有無任何的錯誤位元 來源IP位址 封包發送者的32位元IP位址 目的地IP位址 封包接收者的32位元IP位址
IP 定址 某個設備想要利用TCP/IP進行通訊,則其必須要有 一個IP位址。當設備擁有IP位址以及適合的軟硬體 之後,便可發送及接收IP封包,因此可稱為是一個 IP主機(IP host)。 IP位址由32位元的數字組成, 通常寫作以點號區格的十進位數表示法(dotted- decimal notation)。 其中「十進位」是從32位元IP位址的每一個位元組(8 個 位元)以十進位值來表示而來的,此四個十進位數字以 「點號(小數點)」隔開並依序寫出,如168.1.1.1。 每個網路介面使用一個獨一無二的IP位址。
網路等級 RFC 791定義了IP協定,包括A級、B級、C級、D 級群播(multicast)位址以及E級實驗用 (experimental) 位址。 A級網路有1個位元組長的網路部分;其餘3個位元 組稱為主機部分。 B級網路有2個位元組長的網路部分;其餘2個位元 組留給位址作為主機部分。 C級網路有3個位元組長的網路部分;只剩1個位元 組留作主機部分。
無子網路切割的IP位址網路和主機部分之大小 * 表示每個網路保留了兩個主機位址(網址位址、廣播位址)
網域位址 廣播位址
十進位及二進位的網路編號
可用有效網路編號 網路 0.0.0.0(廣播位址)及 127.0.0.0(回送位址)被保留
IP子網路切割(Subnetting) IP子網路切割取得單一A、B或C級網路並將其分割 為幾個較小的IP位址分組。 等級A、B和C級位址為「分級式位址; Classful address」;子網路位址為「無分級式位址; Classless address」。 IP子網路切割定址使用一種稱為子網路遮罩 (subnet mask)。
圖 不同網路/子網路之討論數量
圖 使用子網路
圖 使用子網路切割的位址格式 (分級式)
圖 使用子網路切割的位址格式 (無級式)
IP遶送 來源主機如何選擇並發送封包到何處? 路由器如何選擇路徑來遶送或轉送封包到目的地? 主機遶送 步驟一 步驟二 如果目的地IP地址是跟自己的子網路不同,發送封包到自己預 設閘道(default gateway)。
圖 主機遶送選擇
路由器轉送決策及IP路徑表 路由器使用下列邏輯的方式來接收資料鏈結層的訊框 —該訊框將IP封包封裝在內: 步驟一 步驟二 步驟三 步驟四 使用資料鏈結層FCS欄位來確保訊框沒有錯誤,如果發生錯誤,則丟 棄該訊框。 步驟二 假設步驟1沒有被丟棄的訊框,則移除舊的資料鏈結層標頭及標尾, 只留下IP封包。 步驟三 將IP封包的目的地位址與路徑表作比對,並找出相符的路徑。此路 徑辨識路由器的離開介面,或可能是下一站(next-hop)的路由器。 步驟四 將IP封包封裝到新的資料鏈結層標頭及標尾之內,從離開介面傳送 出去,並轉送訊框。
詳細的轉送邏輯見課本pp.116~118 圖 遶送範例,含IP子網路
IP遶送協定 遶送協定(routing protocol)是指學習路徑並將這些 路徑放置在路徑表裡;而被遶送的協定(routed protocol)則是定義封包被遶送通過網路的通訊協定類 型。 動態學習並將到達網路上所有子網路路徑加入到路徑表。 如果有多條路徑可到達子網路,則將最佳路徑加入到路 徑表中。 當注意到表內的路徑不再有效時,則從路徑表將它移除。 如果路徑移除後有另一條鄰接路由器之路徑可提供,則 將它加入路徑表。 新增路徑或替換遺失路徑,路徑表都應該要能即時更新。 防止遶送迴圈。
網路路徑的通告 STEP 1 STEP 2 STEP 3 每個路由器會將每一個直接連接到該路由器的路徑,加入 到其路徑表中。 每個路由器會將其路徑表所有的路徑,包括直接連接的路 徑及從其他路由器所學到的路徑,全部都通告該路由器的 鄰居 STEP 3 路由器從鄰居(一般為下一站的路由器)學到新路徑後,將 其加入到路徑表中。
詳細邏輯見課本pp.119, 120 圖 路由器R1學到 有關子網路150.150.4.0的資訊
網路層工具 目的為協助網路層透過網際網路,完成封包端點到 端點之遶送。 工具 位址解析協定(ARP,Address Resolution Protocol) 網域名稱系統(DNS,Domain Name System) 動態主機配置協定(DHCP,Dynamic Host Configuration Protocol) ICMP Echo及ping的命令
圖 Hannah知道Jessie的名稱,但還需要Jessie的IP位址及MAC位址
位址解析協定 Address Resolution Protocol (ARP) 主機發出 ARP廣播尋找目的地 IP對應的 MAC位 址,因到一個乙太網路廣播位址,故在區域網路上 的每個人都可以收到它。當目的地主機收到 ARP封 包後,回應 MAC位址給來源端。 如果發送主機與目的地主機不在同一個子網路上, 那麼發送主機的遶送邏輯程序,會將封包轉送到其 預設閘道,並轉而尋找閘道之 MAC位址。 ARP所記得的資訊應保留(暫存)在 ARP快取 (cache)裡,當主機每次要去發送封裝在乙太網 路訊框裡的封包時,會先檢視本身的 ARP快取。如 沒有在 ARP快取內,則發送 ARP廣播尋找。
圖 ARP程序
網域名稱系統 Domain Name System (DNS) DNS伺服器位址能預先知道或由DHCP指派,一旦 辨認出其他電腦的名稱(例如 jessie.example.com),便發送一個DNS請求給 DNS伺服器,要求提供IP位址。DNS回應了位址 (例如 10.1.1.2)。
圖5-13 DNS請求與回應
位址指派及Dynamic Host Configuration Protocol (DHCP) TCP/IP設備的介面可能靜態指派或由DHCP伺服器 分配。伺服器一般使用固定配置的IP位址,能維持 穩定的狀態。 DHCP伺服器擁有每個子網路可用的IP位址之清單; DHCP用戶可發送訊息到DHCP伺服器,申請借用 或租用IP位址,而伺服器會建議一個IP位址;如果 被用戶電腦接受,伺服器會註明該位址不可再指派 給其他的主機,而用戶即可使用該IP位址。
圖5-15 DHCP取得IP位址之訊息
ICMP Echo及ping的命令 在安裝網路之後,需要以不靠任何應用程式的方式 來測試基本 IP 連線。測試基本的網路連線,其首 選工具就是ping命令。 ping(Packet Internet Groper)使用網際網路訊 息控制協定(ICMP,Internet Control Message Protocol)發送一個稱為ICMP echo request的請 求訊息給另一個IP位址。擁有該IP位址的電腦則會 回應一個ICMP echo reply。如果網路是通的,說 明你已測試成功該IP網路。
圖 網路的ping命令
Traceroute與ICMP 來源端送出一連串的UDP區段給目的端 當第n份資料報抵達第n台路由器時: 第一份的 TTL =1 第二份的 TTL=2,依此類推 使用不太可能有人使用的埠號 當第n份資料報抵達第n台路由器時: 路由器會丟棄該份資料報 接著送出一則ICMP警告訊息給來源端(類別11、代碼 0) 訊息會包含路由器名稱及其IP位址 當 ICMP訊息抵達時,來源端會計算RTT Traceroute會重複這個步驟三次 停止的標準 UDP區段最終會抵達目的端主機 目的端會回送「主機無法到達」的ICMP封包 (類型3、代碼3) 當來源端收到這則ICMP時,就會停止