第 6 章 通訊協定

54
1 第 6 第 第第第第 Internet Protocol (IP)

description

第 6 章 通訊協定. Internet Protocol (IP). IP 簡介. IP 位於 Network 層。 對上可載送 Transport 層各種協定的資訊 , 例如: TCP 、 UDP 等等。 對下可將 IP 封包放到 Link 層 , 透過乙太網路、 Token Ring 、 FDDI 、 X.25 、 Frame Relay 等等各種規格的技術來傳送。. IP 所提供的服務. IP 封包的傳送。 IP 封包的切割與重組。. 傳送 IP 封包. - PowerPoint PPT Presentation

Transcript of 第 6 章 通訊協定

Page 1: 第  6  章 通訊協定

1

第 6 章 通訊協定

Internet Protocol (IP)

Page 2: 第  6  章 通訊協定

2

IP 簡介

IP 位於 Network 層。 對上可載送 Transport 層各種協定的資訊 , 例

如: TCP 、 UDP 等等。 對下可將 IP 封包放到 Link 層 , 透過乙太網

路、 Token Ring 、 FDDI 、 X.25 、 Frame Relay 等等各種規格的技術來傳送。

Page 3: 第  6  章 通訊協定

3

IP 所提供的服務

IP 封包的傳送。 IP 封包的切割與重組。

Page 4: 第  6  章 通訊協定

4

傳送 IP 封包

要將 IP 封包從來源裝置傳送到目的裝置 , 必須依賴以下兩種機制: IP 位址 IP 路由 (IP Routing)

Page 5: 第  6  章 通訊協定

5

IP 位址

IP 位址如同現實生活中的地址。 所有使用 IP 的裝置 , 至少都必須有一個獨一

無二的 IP 位址 , IP 封包才能正確送達目的裝置。

Page 6: 第  6  章 通訊協定

6

誰負責分派 IP 位址?

負責分派 IP 位址的最高機構為 Internet Corpor

ation for Assigned Names and Numbers (ICANN, http://www.icann.org/ ) 。

ICANN 依地區與國家 , 授權給公正的單位來執行 IP 位址分派的工作。

台灣是由財團法人臺灣網路資訊中心 (TWNIC, http://www.twnic.net/ ) 負責。

Page 7: 第  6  章 通訊協定

7

IP 路由 Internet 可視為由許多個網路連結起來所形成的大型網路。

必須透過 IP 路由 (IP Routing) 的轉送 , 才能將 IP 封包經過一個個的網路 , 送達目的地。

Page 8: 第  6  章 通訊協定

8

路由器

在實體上 , 每個網路是透過路由器 (Router) 來相互連接。

路由器的功能是為 IP 封包選擇傳送的路徑。 IP 封包必須靠沿途各路由器的通力合作 , 才

能到達目的地。 IP 路由的過程中 , 是由路由器負責選擇路徑 ,

而 IP 封包則是處於被動的狀態。

Page 9: 第  6  章 通訊協定

9

Connectionless 的傳送特性

IP 封包使用 Connectionless 傳送方式。 來源裝置不必理會目的裝置是否已準備好 , 只

管將 IP 封包逐一送出即可。 目的裝置是否正確收到每個封包 , 則是由上層

的協定 ( 例如: TCP) 來負責檢查。

Page 10: 第  6  章 通訊協定

10

切割與重組 IP 封包

路由器必須將過長的封包加以切割 , 以便能在 MTU 較小的網路上傳輸。

切割後的 IP 封包 , 會由目的裝置重組 , 恢復成原來 IP 封包的模樣。

每一種 Data Link 層的技術 , 都有其所能傳輸的最大封包長度 (MTU) :

Page 11: 第  6  章 通訊協定

11

IP 在 TCP/IP 中的位置

Page 12: 第  6  章 通訊協定

12

IP 封包

IP 表頭: 記錄有關 IP 位址、路由、封包識別等資訊。

長度為 4 Bytes 的倍數 , 最短為 20 Bytes, 最長可達 60 Bytes 。

IP Payload : 載送上層協定的封包。長度最短為 8 Bytes, 最

長可達 65515 Bytes 。

Page 13: 第  6  章 通訊協定

13

IP 封包的包裝 IP 對上可接受 Transport 層協定所交付的

封包 , 形成 IP Payload :

對下則將整個 IP 封包交付給 Data Link 層的協定 , 包裝後直接在介質上傳送:

Page 14: 第  6  章 通訊協定

14

IP 表頭內容

Page 15: 第  6  章 通訊協定

15

Version ( 版本 )

佔 4 Bits, 記錄 IP 的版本編號。 目前最常見的 IP 版本為 IP Version 4, 亦即

第 4 版 , 欄位值為 4 ( 十進位 ) 或 0100 ( 二進位 ) 。後續版本為 IP Version 6, 也就是第 6 版 , 但目前仍不普及。

Page 16: 第  6  章 通訊協定

16

IHL ( 表頭長度 )

IHL ( Internet Header Length ) 用來定義 IP 表頭的長度。

由於 IP 表頭長度並不固定 , 因此有必要記載其長度。

以 4 Bytes 為基本單位。例如: IHL 欄位值為 0101 ( 二進位 ) 時 , 換算為十進位為 5, 即代表 IP 表頭的長度為 5 x 4 = 20 Bytes 。

Page 17: 第  6  章 通訊協定

17

範例 範例 11

某到達之 IP 封包其前 8 位元為:

01000010

接收者丟棄該封包為什麼?

Page 18: 第  6  章 通訊協定

18

解答

此封包中有錯誤。最左的 4 位元 0100 代表版本這部分正確。後面 4 位元 (0010) 代表標頭長度為 2 x 4=8 ,這是錯誤的,因為最小的標頭長度,需為 20 位元組,這封包在傳輸過程有被破壞過。

Page 19: 第  6  章 通訊協定

19

範例 範例 22

某 IP 封包其 IHL 為 1000 ( 2 進制)問此封包攜帶多少位元組的選項?

Page 20: 第  6  章 通訊協定

20

解答

IHL 值為 8 ,代表標頭的總長為 32 ( 8 x

4 )位元組。最前面 20 位元組為主要標頭,剩下的 12 位元組為選項。

Page 21: 第  6  章 通訊協定

21

Type of Service ( 服務類型 )

路由器可根據 Type of Service 中的 6 項參數 , 決定如何處理 IP 封包: Precedence

用來決定 IP 封包的優先等級。 Delay 、 Throughput 、 Reliability 、 Cost

提供路由器選擇路徑時的參考。 Reserved

保留未使用。

Page 22: 第  6  章 通訊協定

22

Type of Service 的參數位置

Page 23: 第  6  章 通訊協定

23

Precedence ( 優先等級 )

數值愈大 , 代表 IP 封包優先等級愈高。 平常的 IP 封包一律使用 0, 也就是優先等級最低的

Routine 。

Page 24: 第  6  章 通訊協定

24

Delay (延遲性 )

用來定義 IP 封包對於延遲性的要求。 Low Delay 代表 IP 封包儘量不要延遲。 具有即時性需求的應用程式 ( 如影音會議 ) 會將 Dela

y 參數設為 1, 一般 IP 封包則設為 0 。

Page 25: 第  6  章 通訊協定

25

Throughput ( 傳輸量 )

用來定義 IP 封包對於頻寬的要求。 High Throughput 代表路由器應儘量選擇頻寬較高的

傳遞路徑來傳送此封包。 傳輸資料量大的應用程式 , 會將此參數設為 1, 至於

一般的 IP 封包皆設為 0 。

Page 26: 第  6  章 通訊協定

26

Reliability ( 可靠度 )

定義 IP 封包對於路徑可靠度的要求。 High Reliability 代表路由器應儘量選擇可靠度較高的

路徑來傳送此封包。 若應用程式希望在傳送過程中儘量減少 IP 封包遺失 ,

會將 Reliability 參數設為 1 。一般的 IP 封包皆設為 0 。

Page 27: 第  6  章 通訊協定

27

Cost ( 成本 )

定義 IP 封包對於路徑成本的要求。 Low Cost 代表路由器應儘量選擇成本較低的傳遞路徑

來傳送此封包。 若傳輸的資料不是很重要 , 則應用程式可將 Cost 參

數設為 1 。一般的 IP 封包皆設為 0 。

Page 28: 第  6  章 通訊協定

28

Type of Service 的重要觀念

1. 路由器必須具解讀這些參數的能力。2. 路由器必須有多條路徑可供選擇 , Delay 、 Th

roughput 、 Reliability 、 Cost 等參數才會有作用。

3. 當路由器有多條路徑可供選擇時 , 路由器必須 『知道』 每條路徑的特性。

路由器必須具備以下條件 , Type of Service 參數才能發揮作用:

Page 29: 第  6  章 通訊協定

29

各應用程式的Type of Service 建議值

Page 30: 第  6  章 通訊協定

30

Total Length (總長度 )

記錄整個 IP 封包的長度 , 單位為 Byte 。 整個 IP 封包最大可達 1500 Bytes, 所以 此

欄位的最大值即為 1500 ( 十進位 ) 。

Page 31: 第  6  章 通訊協定

31

Identification ( 識別碼 )

記錄 IP 封包的識別碼。 識別碼由來源裝置決定 , 按照 IP 封包發出的順序遞增 1 。

每個 IP 封包到達目的裝置的先後順序可能與出發時的順序不同。目的裝置可利用此欄位 , 判斷 IP 封包原來的順序 , 並予以重組。

Page 32: 第  6  章 通訊協定

32

Flag ( 封包切割標示 )

與 IP 封包的切割與重組有關。總共有 3 個參數 , 每參數佔 1 Bit :

Page 33: 第  6  章 通訊協定

33

DF 參數

定義 IP 封包是否可加以切割。 Don‘t Fragment 代表不允許路由器切割 IP 封包 ( 此

時封包若大於 MTU 值 , 路由器會丟棄此封包 , 並發出 ICMP 訊息通知來源裝置 ) 。

Page 34: 第  6  章 通訊協定

34

MF 參數 定義此 IP fragment 是否為原始封包的最後一

個 IP fragment 。 IP fragment 是切割後所產生的新封包。

Last Fragment 代表此 IP fragment 是原始 IP 封包經切割後 , 所產生的最後 1 個 IP fragment ( 或原始封包未經切割 ) 。

Page 35: 第  6  章 通訊協定

35

Fragment Offset ( 切割重組點 )

用來記錄 IP fragment 所載送的是原始 IP Payload 的哪一段資料。 Fragment Offset 的單位是 8 Bytes 。 因 IP 封包切割後 , 原始封包內 IP Payload

的資料會分散到每個 IP fragment 中 , 因此需要分別註明以便重組。

Page 36: 第  6  章 通訊協定

36

Fragment Offset 範例 -1

假設原始 IP 封包長度為 4520 Bytes, IP 表頭的長度為 20 Bytes, IP Payload 長度為 4500 Bytes 。

若必須經由乙太網路傳送 , 在切割後每個 IP fragment 最大長度為 1500 Bytes, 其中 IP 表頭的長度為 20 Bytes, IP Payload 最大長度為 1480 Bytes 。

因此 , 會產生如下圖的 4 個新 IP fragment :

Page 37: 第  6  章 通訊協定

37

Fragment Offset 範例 -2

Page 38: 第  6  章 通訊協定

38

Fragment Offset 範例 -3

切割後所產生的第 1 個 IP fragment 載送了原始 IP Payload 的第 1 Byte 到第 1480 Byte, 因此 Fragment Offset 設為 0 。

第 2 個 IP fragment 載送了原始 IP Payload 從第 1481 Byte 到第 2960 Byte, 因此 Fragment Offset 設為 1480 / 8 = 185 ( 因為以 8 Bytes 為單位 ) 。依此類推:

Page 39: 第  6  章 通訊協定

39

詳細分段範例

Page 40: 第  6  章 通訊協定

40

Time to Live (存活時間 )

記錄 IP 封包的 『存活時間』 , 以限制 IP 封包在路由器之間轉送的次數。

當 IP 封包每經過一部路由器時 , 路由器便會將 Time to Live 欄位值減 1 。

當路由器收到此欄位值為 0 的 IP 封包時 , 便直接將之丟棄 , 不再轉送。

Page 41: 第  6  章 通訊協定

41

範例 範例 44

某到達 IP 封包其前面幾個以 16 進制表示數字之為:

45000028000100000102...................

問這個封包還可以經過幾個路由器,而不會被丟掉?其資料屬於哪一種上層協定?

Page 42: 第  6  章 通訊協定

42

解答

要找到 TTL 值,我們要跳 8 個位元組, TT

L 在第九位元組為 01 ,表示這個封包只能再旅行一個站。協定欄為 TTL 的下一個位元組,其值為 02 表示上層的協定是 IGMP 。

Page 43: 第  6  章 通訊協定

43

Protocol ( 協定 )

記錄上層所使用的協定。

Page 44: 第  6  章 通訊協定

44

Header Checksum ( 表頭錯誤檢查碼 )

來源裝置先針對資料進行數學函數運算 , 得到的結果即是錯誤檢查碼。

目的裝置對資料進行同樣的函數運算 , 將結果與來源的錯誤檢查碼作核對。若兩者相同 , 代表資料正確無誤。

Page 45: 第  6  章 通訊協定

45

Header Checksum 的檢查範圍

IP 只針對 IP 表頭進行檢查 , 並不會檢查 IP Payload 的正確性。 IP Payload 正確性應由上層的協定來檢查。

IP 封包所經過的每部路由器都必須執行錯誤檢查。 路由器核對 Checksum 發現不符時 , 會將此 I

P 封包丟棄。

Page 46: 第  6  章 通訊協定

46

Source Address ( 來源裝置的 IP 位址 )

記錄來源裝置的 IP 位址 , 佔 32 Bits 。 Source Address 及以下的 Destination Addre

ss 欄位 , 可說是 IP 表頭中最重要的資訊。

Page 47: 第  6  章 通訊協定

47

Destination Address( 目的裝置的 IP 位址 )

記錄目的裝置的 IP 位址 , 佔 32 Bits 。

Page 48: 第  6  章 通訊協定

48

Options 與 Padding

此 2 欄位為選擇性 , 提供 IP 封包功能擴充的可能性。

所有額外功能都記錄在 Options 欄位。 由於 Options 欄位長度不一定是 4 Bytes 的倍

數。為讓整個 IP 封包的長度為 4 Bytes 的倍數 , 因此再用不固定長度的 Padding 欄位 , 讓 Options 與 Padding 加起來剛好是 4 Bytes 的倍數。

Page 49: 第  6  章 通訊協定

49

擷取 IP 封包 -1

以一個 FTP 協定的封包作為範例:

Page 50: 第  6  章 通訊協定

50

擷取 IP 封包 -2

1. Version : 4 代表此 IP 封包的版本為 IPv4 。2. Header Length : IP 表頭的長度為 20 Bytes 。3. Precedence :優先等級為 Routine, 即最低的等級。4. Type of Service : Normal Service 代表 Delay 、

Throughput 、 Reliability 、 Cost 等欄位皆設為 Normal 。

5. Total Length : IP 封包的長度。因為此例是在乙太網路上傳送的 IP 封包 , 因此長度為 1500 Bytes 。

Page 51: 第  6  章 通訊協定

51

擷取 IP 封包 -3

6. Identification :此 IP 封包的識別碼。7. 此為 More Fragments 欄位。因為是未經切割的 IP

封包 , 因此為 0 。8. 此為 Don‘t Fragments 欄位。 1 代表傳送過程中不

可切割。9. 因為未經切割 , 所以 Fragment Offset 為 0 。10. Windows 2000 預設的 Time to Live 為 128 。當 I

P 封包通過路由器時 , Time to Live 欄位值會遞減 1 。

Page 52: 第  6  章 通訊協定

52

擷取 IP 封包 -4

11. 記錄 Transport 層所用的協定。 FTP 使用的是 TCP 協定。

12. 這是錯誤檢查碼。每個 IP 封包可能會有不同的錯誤檢查碼。

13. IP 封包來源裝置的 IP 位址。14. IP 封包目的裝置的位址。15. 這並非 IP 表頭的欄位 , 而是網路監視器自行計算

所得的 IP Payload 長度。

Page 53: 第  6  章 通訊協定

53

IPv6 VS IPv4

兩者的差異大量增加 IP 位址: IPv4 的位址是 32bits, IPv6 的位址是 128bits擴大了位址的容量

表頭格式的簡化: IPv6 將 IPv4 的表頭作了 大幅的修改,捨棄了部分的欄位,更作了 最佳的處理

加強表頭的延伸能力和選項部分: IPv6改 善了 IPv4 在表頭延伸上的限制,也提高了 選項欄位的使用彈性,以適用於未來的發 展

Page 54: 第  6  章 通訊協定

54

IPv6 VS IPv4

新增加流向標記 (Flow Labeling) 的能力: 流向標記可以要求流向特定的處理 ( 例如 即時的服務 )

驗證與隱私的能力:為了資料安全 IPv6 使 用延伸能力來達成驗證,確保隱私和資料 完整的處理能力