Download presentation
Presentation is loading. Please wait.
1
網路概論 第14章 IP、ARP與ICMP通訊協定
2
大 綱 IP通訊協定簡介 ARP通訊協定簡介 ICMP通訊協定簡介 IPv6通訊協定簡介
3
14-1 IP通訊協定簡介 IP (Internet Protocol)的歷史
TCP/IP的雛形最早是在美國ARPAnet上推出,1973年只有一個TCP (Transmission Control Program),包含了目前第三層及第四層的功能。 1977年TCP修正為第2版,Jon Postel並提出分層及模組化的建議。 1978年TCP修正為第3版將第三層的功能分出 1981年正式定義TCP第4版及IP第4版(這是IP沒有第1、2、3版的原因) 1990年代中期開始著手制定新版本的IPv6通訊協定 1998年正式提出IPv6的標準來解決IPv4的問題,採用並行存在逐漸更換的方式來替換IPv4。 TCP/IP的歷史見證了網際網路的發展
4
14-1 IP通訊協定簡介 14-1-1 IP的特性與功能 IP通訊協定的特性 定義了定址模式,讓封包可以送到目的地。
與實體網路無關,可以藉由不同的網路媒介傳送封包。 使用非連線導向式的資料傳送模式:傳送前不需要先建立連線路徑,封包可以透過不同路徑抵達目的地。 不是可靠的(Unreliable)協定 沒有傳送確認的機制,只送出封包但不追蹤封包是否到達目的地。 沒有流量控制、錯誤重送、資料錯誤檢查的機制。 盡全力(Best-effort)傳送封包,其他的留給傳輸層或應用層處理。
5
14-1 IP通訊協定簡介 14-1-1 IP的特性與功能 IP提供的功能 IP定址(Addressing)
具有一套定義網際網路上主機位址的機制 封包能夠經過互相連結的網路傳遞到目的地 資料封裝(Encapsulation) 傳輸層送下來的資料,在傳送前以特定的格式封裝打包。 封包切割(Fragmentation)與重組(Reassembly) 封包傳送前依據實體網路可以運送的大小,決定封包是否要切割。 封包接收後重組再往傳輸層送 封包路由(Routing) 以直接與間接傳遞的方式送封包至目的地 封包可以經由不同的路徑及不同的順序送至目的地 一切都以「傳送封包」為主要目的的功能
6
14-1 IP通訊協定簡介 14-1-2 資料封裝與封包的格式 傳輸層送下來的TCP或UDP訊息加上IP表頭後封裝成傳送的封包
14-1-2 資料封裝與封包的格式 傳輸層送下來的TCP或UDP訊息加上IP表頭後封裝成傳送的封包 封包太大超過實體網路的運送單位,就必須切割成符合的大小 網路世界的包裹遞送系統 IP封包的封裝內容
7
IP通訊協定簡介 14-1-2 資料封裝與封包的格式
8
14-1 IP通訊協定簡介 14-1-2 資料封裝與封包的格式 IP表頭的重要欄位
14-1-2 資料封裝與封包的格式 IP表頭的重要欄位 IP表頭長度:IP表頭(包含Options欄位)的長度,以4個位元組為計算單位,如果表頭沒有Options,則內容為5(20個位元組)。 IP封包長度:IP封包的長度,以位元組為計算單位。 識別碼:封包的識別碼,由傳送端產生,如果訊息經過切割處理,則會有相同的識別碼。 標示:記錄切割的資訊。 封包的有效期間:決定封包可以在網路中傳送多久,每經過一個轉送站(路由器)減1,減至0時封包會被丟棄。 通訊協定:紀錄封包內承載的是哪一種協定的訊息 IP表頭的檢查碼
9
14-1 IP通訊協定簡介 14-1-3 封包的切割與重組 讓封包符合實體網路能運送的大小
14-1-3 封包的切割與重組 讓封包符合實體網路能運送的大小 最大傳送單位(Maximum Transmission Unit) 實體網路能夠運送資料的最大單位 不同實體網路的MTU大小不同(例如乙太網路:1,500位元組,ADSL:1,492位元組)。 IP標準最小的MTU為:576位元組 合適的MTU選擇能決定封包傳送的效能 MTU的值包含IP表頭加上IP運送的資料 封包抵達目的地後再重組上送傳輸層 傳輸路徑上不同網路MTU不同,運送途中若重組有可能發生需要再切割的情形。 路由器只須儘速轉送封包,重組反而影響效能。
10
IP通訊協定簡介 14-1-3 封包的切割與重組
11
14-1 IP通訊協定簡介 14-1-3 封包的切割與重組 封包的切割(Fragmentation) 封包切割的問題
14-1-3 封包的切割與重組 封包的切割(Fragmentation) 封包切割的問題 封包切割後,不一定走相同的路線到目的地。 也未必能依照順序抵達目的地 切割封包內的IP資料欄,修改IP表頭。 表頭內與切割有關的欄位 TL:修改為切割後封包的長度 Identification:每一個Fragment有相同的識別碼 Flag裡的MF位元:除了最後一個Fragment設為0代表結尾外,其他的Fragment都設為1。 Fragment Offset:切割後封包在原訊息的偏移量(形成先後的順序),以8個位元組為計算單位,因此切割的長度須為8個位元組的倍數。
12
IP通訊協定簡介 14-1-3 封包的切割與重組 IP封包切割的方式
13
14-1 IP通訊協定簡介 14-1-3 封包的切割與重組 封包的重組(Reassembly) 辨識切割的封包來自同一個傳送端
14-1-3 封包的切割與重組 封包的重組(Reassembly) 辨識切割的封包來自同一個傳送端 IP表頭裡的識別碼、協定以及IP位址欄位。 設定緩衝區存放收到的封包 IP表頭的Offset決定重組的順序 最後一個MF位元是0的封包才是訊息的結尾 設定等待時間 封包有可能在傳送時遺失,不能無限期等待。 超過時間就將所有等待重組的封包丟棄 重組封包上送傳輸層 重組期間若發生錯誤,訊息重送的程序交由傳輸層或應用層執行。
14
14-1 IP通訊協定簡介 14-1-4 封包的路由 封包路由的類型(Delivery Types)
14-1-4 封包的路由 封包路由的類型(Delivery Types) 直接(Direct)傳送:在同一個實體網路內傳送封包 間接(Indirect)傳送:在不同實體網路間傳送封包 以封包傳送途中是否須送至第三層的繞送設備轉送來分別 包裹是寄到社區內(交給社區管理員送)或是寄到其他城市(交給快遞公司送)
15
14-1 IP通訊協定簡介 14-1-4 封包的路由 封包路由原理 跳至下一站的路由(Next-hop Routing)
14-1-4 封包的路由 封包路由原理 跳至下一站的路由(Next-hop Routing) 封包送至目的地可能須經過許多路由器轉送 封包要送至下一個第三層的設備處理稱為1個hop 經過交換器不算1個hop(交換器不是第三層設備) 路由器只須決定下一站的轉送路徑。 封包在每一站的處理 封包自路由器的第二層上送第三層 檢視IP表頭,決定下一站的路徑後再下送至第二層。 繞送工作由路由器負責,傳送端主機只須知道封包要送給路由器(間接傳送)或是交換器(直接傳送)。 *只需知道鄰近哪一個轉運站可以運送包裹。
16
IP通訊協定簡介 14-1-4 封包的路由 IP封包的直接傳送和間接傳送
17
14-1 IP通訊協定簡介 14-1-5 IP的路由表 存放於路由器內用來決定封包轉送的路徑,又稱為路由表。 路由表的資訊
每一筆路徑資料稱為Routing Entry 紀錄鄰近的網域、子網路、主機等的IP位址。 其他鄰近路由器的資料。 Routing Table的大小,以及搜尋Entry的演算法決定路由器轉送封包的效能。 最佳路徑的選擇(不一定是最短的路徑,但卻是運送封包最快的路)。 每個轉運站用來決定最有效率傳遞包裹的資訊
18
IP通訊協定簡介 14-1-5 IP的路由表 路由表和 網路架構 的關係
19
14-1 IP通訊協定簡介 14-1-5 IP的路由表 Classless IP位址的路由(CIDR)
階層式的路由方式,封包交由下一層的路由器。 路徑聚集式(Route Aggregation)的路由表,路由表交給上一層的路由器收集。 大幅降低路由表的大小 路由資訊通訊協定RIP (Routing Information Protocol) 路由器之間用來交換路由資訊的協定 距離向量演算法(Distance Vector Algorithm)加入hop的參數 可以依據交換得到的資訊,決定封包交由哪一個路由器轉送是最佳路徑。
20
IP通訊協定簡介 14-1-5 IP的路由表 路由器使用距離向量演算法交換路徑資訊
21
14-2 ARP通訊協定簡介 為什麼需要位址解析 在網路模型中需要定址功能的場合 第二層的硬體位址(如乙太網路的網路卡位址)
第三層的IP位址 邏輯的傳送與實體的傳送 IP位址是用來連結來源與目的地的虛擬路徑 硬體位址則是用來建立資料傳送的實際路徑 資料透過IP位址經由網際網路送達目的地,但在實體網路中卻是以硬體位址辨識目的地。 位址解析(Address Resolution) IP位址與硬體位址的對映關係 要知道包裹的目的地位址(IP位址)以及每個轉運站地址(硬體位址)的關係,才有辦法正確送達。
22
14-2 ARP通訊協定簡介 14-2-1 ARP的運作方式 ARP的運作方式 以「詢問/回覆」的機制在區域網路內進行
以廣播IP位址的方式詢問目標的硬體位址 利用ARP的快取紀錄曾經詢問過的對映關係 定期更新ARP快取記錄。 28個位元組的ARP訊息格式用來交換位址資訊 ARP快取記錄 靜態的紀錄:手動方式加入的位址對映記錄 動態的紀錄:動態解析後存入的對映記錄 動態(Dynamic)的位址解析方式 類似飯店人員舉著姓名牌在機場等人的方式(只知道姓名~IP位址,不知面貌~硬體位址)。
23
ARP通訊協定簡介 14-2-1 ARP的運作方式 ARP協定的工作原理
24
ARP通訊協定簡介 14-2-1 ARP的運作方式
25
ARP通訊協定簡介 14-2-1 ARP的運作方式 ARP的查詢與回覆流程
26
14-2 ARP通訊協定簡介 14-2-2 ARP快取 ARP快取的紀錄:靜態、動態 快取的動態解析紀錄不是永遠有效
IP位址變更(例如動態取得IP) 主機已經不在區域網路上(例如關機) 硬體變更(更換網路卡) 非詢問對象在收到ARP廣播封包時 可以將發送端的對映紀錄加入自己的快取? 縮短快取紀錄的有效期限解決紀錄快速擴增的問題 快取的容量 最佳狀況是能容納區域網路內所有主機的紀錄 容量過小時須定期刪除不常使用到的紀錄 定期內部整理(Housekeeping)達到最佳使用效能
27
14-3 ICMP通訊協定簡介 14-3-1 ICMP的特性 負責協助網路層的錯誤回報、偵錯、測試等工作。 ICMP負責網路層的控制訊息傳遞
可附於任何網路層的協定,需要時傳遞控制訊息。 IP協定無回應機制,ICMP可傳遞狀況回來源端。 訊息直接傳回來源端(無法傳至轉送的路由器) ICMP傳遞訊息的種類 錯誤訊息(Error Message):回報來源端封包傳送時發生的問題狀況 資訊訊息(Informational Message):IP裝置間交換的資訊 IP協定全力傳送封包,ICMP是背後管理上的助手。
28
14-3 ICMP通訊協定簡介 14-3-2 ICMP的運作方式 必要時才使用,不能佔用IP封包傳送的效能。
特定的狀況下要避免傳送ICMP封包,例如ICMP訊息也發生傳送錯誤,廣播或群播發生封包傳送錯誤 (變成每個偵測到錯誤狀況的路由器都回覆ICMP訊息,數量將會很可觀),逐一回應切割過的封包發生傳送錯誤 (切割過的封包只要回覆一次) 等。 除了特定的Request/Reply的ICMP訊息外,其他的ICMP訊息沒有硬性規定來源端一定要處理,以免造成來源端的負擔。
29
ICMP通訊協定簡介 14-3-2 ICMP的運作方式
30
14-3 ICMP通訊協定簡介 14-3-3 ICMP的封包格式 ICMP的訊息是封裝在IP封包內傳回來源端,但ICMP卻屬於網路層的協定。
訊息通用格式 類型(Type):錯誤訊息與資訊訊息兩大類型。 子類型(Code):兩大類訊息類型各自的子編碼。 錯誤檢查碼(Checksum)。 訊息內容:依據訊息類型有不同的長度。 錯誤類型的訊息內容欄位,包含: 原來IP的全部表頭。 原來IP資料的前8個位元組(亦即包含了UDP的表頭或是TCP的來源及目的地的連接埠編號)。
31
ICMP通訊協定簡介 14-3-3 ICMP的封包格式 ICMP訊息封裝成IP封包
32
14-4 IPv6通訊協定簡介 14-4-1 IPv6與IPv4不同之處 因應現代與未來網路時代的變革。 封包的格式
表頭(固定40位元組)+選項的擴充表頭(變動長度)+資料欄位(變動長度)。 部份欄位變更名稱反映目前網路現況 移除Checksum欄位,減少計算的工作 增加支援傳送即時資料的功能 封包的傳送 MTU最小值為1280位元組(減低切割情況) 更新封包切割與重組的方式 只有來源端對封包做切割,路由器不切割封包但會回應MTU錯誤訊息給來源端。 增加來源端決定傳送路徑上使用最適合MTU的機制(Path MTU Discovery)
33
14-4 IPv6通訊協定簡介 14-4-1 IPv6與IPv4不同之處 封包的路由 封包的繞送方式大致維持IPv4的原理
特別定義Unicast、Local (Private)及Multicast的定址格式,提升繞送的效率。 更新RIP協定支援IPv6 其他方面的支援及更新 位址空間及定址方式 賦予路由器更重要的角色 自動設定位址及網路參數的功能(Autoconfiguration) 必須支援Multicast及Anycast的功能(列入標準規格) 安全性的支援(認證及加密的擴充表頭) IPv4相容性的支援(Backward Compatible)
34
14-4 IPv6通訊協定簡介 14-4-2 IPv6的封包格式 精簡且必要的表頭 (Header):固定40位元組,包含:
(1) 版本 (Version):IP通訊協定的版本,所以這裡是數值6 (IPv6)。 (2) 載運類別 (Traffic Class):更換原來IPv4的TOS欄位,並定義不同等級服務 (Differentiated Service, DS) 的方法。 (3) 流量標籤 (Flow Label):不同等級的資料傳送,支援即時訊息,這個欄位讓傳送路徑上的路由器知道要以什麼相同的方式傳送封包。 (4) IP資料長度 (Payload Length):以位元組計算,長度包含擴充表頭及IPv6資料部份 (不包含主表頭的長度)。 (5) 下一個表頭 (Next Header) (6) 轉送站數的限制 (Hop Limit):變更原來TTL欄位的名稱,功能不變。 (7) 來源端及目的地的IPv6位址欄位
35
14-4 IPv6通訊協定簡介 14-4-2 IPv6的封包格式 彈性的擴充表頭 (Extension Header):
(1) 目前定義了6種擴充表頭類型,其中包含了路由有關的Hop-by-Hop Options、Routing、Destination Options擴充表頭,切割及重組有關的Fragment擴充表頭,以及安全性有關的Encapsulating Security Payload、Authentication Header擴充表頭。 (2) 每一種類型的擴充表頭有固定的格式 (3) 擴充表頭放在主表頭及IPv6資料之間,可以有多個擴充表頭,從主表頭以Next Header欄位串接起來。 (4) 除了Destination Options表頭可以出現兩次以外,其他擴充表頭在每一個封包中只能出現一次,而且每個擴充表頭必須依照順序串接。 (5) 除了Hop-by-Hop擴充表頭外,其他表頭在路由過程中路由器都不會處理 ,全部由目的地主機處理,以提升路由的速度。 (6) 擴充表頭必須是8個位元組的倍數。
36
IPv6通訊協定簡介 14-4-2 IPv6的封包格式
37
14-4 IPv6通訊協定簡介 14-4-3 IPv6封包的切割與重組 封包切割由來源端主機負責 路由器不再浪費時間切割甚至重組封包。
路由器收到過大的封包只須回覆錯誤訊息給來源端。 來源端如何決定MTU大小? 使用預設的最小值1280位元組。 使用Path MTU Discovery功能找到最佳值。 封包切割後由兩部份組成 不可分割部份:固定加在每個封包前。 可分割部份:分散在每個封包中(須為8位元組的倍數)。 封包重組 目的地主機收到後,移去每個封包中的不可分割部份,重組可分割部份回復原訊息。 將切割及重組的工作交給來源端與目的地主機,IPv6上唯一減輕路由器負擔的工作。
38
IPv6通訊協定簡介 14-4-3 IPv6封包的切割與重組 IPv6封包的切割方式
Similar presentations