Presentation is loading. Please wait.

Presentation is loading. Please wait.

NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作

Similar presentations


Presentation on theme: "NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作"— Presentation transcript:

1 NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作
by NetSmooth Corporation PART I TCP/IP通訊協定深入剖析/以NetGuru實作 第二章 IP Address 與 MAC Address 之涵意

2 Overview Internet Protocol IEEE 802與Ethernet MAC address ARP運作機制 實驗導引
實驗2.2 Subnetting 實驗2.3 了解Subnet的運作與限制 實驗2.4 Supernetting

3 Internet Protocol

4 概述 IP (Internet Protocol )通訊協定定義於 RFC 791
網際網路所使用的網路層通訊協定,負責傳送資料到指定位址,但並不確認資料是否正確傳達,是一種無連結(Connectionless)的通訊協定 負責做 Packet 路徑選擇(Routing), Packet 分割(Fragmentation)及重組 (Re-assembly)

5 分級IP Address Internet Protocol Version 4 用來辨別裝置或主機唯一的識別碼,適用於不同網路間定址
由 32 Bits 組成,可有 232 = 4,294,967,296 個位址 由網路位址及主機位址兩部分組成 依照網路位址和主機位址的分配,分成五種 Class: 進位制與轉換

6 MAX of Hosts in its Subnet
Class First Bits First Byte Values MAX of Hosts in its Subnet A 0~127 224-2=16,777,214 B 1 0 128~191 216-2=65,534 C 1 1 0 192~223 28-2=254 D 1 1 1 224~239 Reversed for multicast E 240~255 Reversed 每個網段的頭碼與尾碼不可用

7 Netmask 目的:對IP Address分類,以判定所屬網路號碼netid 例: / 27

8 名詞介紹 netid broadcast 每一組IP位址的第一個IP位址,即為該組IP位址的網路號碼(netid)
例: / 24 -> broadcast 每一組IP位址的最後一個IP,即為該組IP位址的廣播位址(broadcast) 例: / 24 ->

9 不分級IP Address - CIDR Classless Inter-Domain Routing
使用 CIDR 即可代表數個 Class C 取代以往需要使用一個 Class B 之位址浪費,可節省位址 例: /21 及 /21 由左至右比對到第 21 個bit皆相同,視為同網域

10 Subnetting 將一較大的網路區段切割成幾組較小的網路 使用於Interior Routing Protocol

11 Supernetting 由數個較小的網路區段組合成單一較大網路 使用於Exterior Routing Protocol
可減少Routing Table的Entry數 例如: / 20 ( ~ ) 將16個C級網路合成一個 /20較大網路 netid: range: ~ netmask: broadcast: 實驗2.4 Supernetting

12 Private Address 不需申請,可直接使用 不能讓 Routing Information 流到單位外的網路上
需透過位址轉換 NAT(Network Address Translation)才能對外連線 可用之 Private Address 範圍:  ~ ( /8) ~ ( /12) ~ ( /24)

13 IP Protocol Header 可藉由Network Operation Analysis中的“TCP三向交握”、“TCP傳送與接收”、“UDP傳送與接收”等工具,展開IP層的header逐一解釋

14 Version(4 bits) Header Len(4 bits)
IP Protocol 的版本,目前為IPv4,下一代為IPv6 Header Len(4 bits) IP Header 的長度(5~15),預設為5(即為5×4=20Bytes) [註:5rows,4Bytes/row] Type of Service(8 bits) (目前作為Differentiated Services,RFC 3317, RFC 2474) Precedence (3 bits):代表封包的重要性,值愈高表愈重要 D (1bit):設定0為一般延遲,設定1為低延遲(Low delay) T (1 bit):設定0為一般傳送量,設定1為高的傳送量(Throughput) R (1 bit):設定0為一般Reliability ,設定1為高的Reliability C (1 bit):設定0為一般Cost,設定為1為低Cost Unused (1 bits):未使用

15 Identification 用來識別Datagram使用,分割與依序重組 Flags
Total Length(16 bits) 總長度 (IP header + data ,576 ~ Bytes) 單位為Byte Identification 用來識別Datagram使用,分割與依序重組 Flags Bit 0: reserved, must be zero Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment. Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments. Fragment Offset

16 Fragment Offset Time to Live (TTL) 範例說明 0 ~ 8191 ( = 213 -1) 分割後封包的位移量
以8 bytes為基本位移單位 最大總資料量 = 8192 × 8 = bytes Time to Live (TTL) 封包在網路的存活時間 每經過一個Router計數器自動減一,直至0為止,便將封包丟棄(Discard) 範例說明

17 Protocol 範例說明 0:保留 1:ICMP,Internet Control Message
2:IGMP,Internet Group Management 5:ST,Stream 6:TCP,Transmission Control 8:EGP,Exterior Gateway Protocol 9:IGP,Any private interior gateway 17:UDP,User Datagram 其他請參考 rfc1700 Assigned Numbers 範例說明

18 Destination IP Address Options Data
Header Checksum IP Header 的錯誤檢查碼,將IP Header中所有16-bit的word轉為1的補數相加後,再取一的補數,此值即為Checksum值 Source IP Address 來源IP位址 Destination IP Address 目的IP位址 Options 選擇性欄位 Data 真正傳送的資料

19 IP Header Checksum計算範例
ea ddd+0385+d348+fe06=3b68a 進位的3加回b68a中,3+b68a=b68d,換成二進位為 再取其補數

20 IEEE 802 與 Ethernet

21 IEEE 802 & Ethernet 比較

22 IEEE 802 Dst MAC ( Destination MAC Address) 目的的實體位址
Src MAC (Source MAC Address) 來源的實體位址 Len (Length) 從頭到尾的長度(不含CRC)

23 802.2 LLC (Logical Link Control)
DSAP (Destination Service Access Point) SSAP (Source Service Access Point) Control(有三種類型) 802.2 SNAP (Sub-network Access Protocol) Org Code Ether Type:與乙太網路的類別同 CRC (Cyclic Redundancy Check) 錯誤檢查碼 Trailer

24 Ethernet Encapsulation

25 Dst MAC (Destination MAC Address):目的的實體位置
Src MAC (Source MAC Address):源的實體位置 Ether Type 0x0800(2048):IPv4 0x08DD(2269):IPv6 0x0806(2054):ARP 0x8035(32821):RARP Payload:上層網路層的資料封包 CRC (Cyclic Redundancy Check) 錯誤檢查碼 Trailer

26 最大傳輸單位MTU Maximum Transmission Unit
Data-link layer中對資料(payload)傳輸的最大限制 Network layer會因Data-link layer傳輸最大限制而做切割(fragment)

27 MAC Address

28 MAC Address 每張網路卡出廠時即擁有一個全世界獨一無二的位址 目的在於直接相鄰設備間的定址,適用於同一網路中
由6個 bytes 組成,例:00:10:F3:03:28:B0 MAC Layer 之位址,負責和 Physical Layer 溝通

29 MAC Address Broadcast Address Multicast Address FF:FF:FF:FF:FF:FF
01:00:5E:xx:xx:xx

30 Linux指令: ifconfig ifconfig - 網路介面控制程式 由指令及其輸出結果可看出系統之設計以及相關設定之作用
範例:ifconfig eth0 eth0 Link encap:Ethernet Hwaddr 52:54:AB:ED:6F:61 inet addr: Bcast: Mask: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:46299 errors:0 dropped:0 overruns:0 frame:189 TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:5 Base address:0xece0 重點在解釋MAC address,IP address,Subnet Mask等欄位

31 網路卡接收Packet的依據 在以下四種情況中,網路卡會擷取封包
Destination MAC Address為該網路卡的MAC Address 廣播位址(Broadcast Address) 群播位址(Multicast Address) 當網路卡在 Promiscuous Mode 時 Ethereal預設即是Promiscuous Mode

32 MAC Address 與 IP Address
各 MAC Protocol 之 MAC Address 無法統一 MAC Address 無法有任何之階層觀念 設計 IP Address 供定址使用 IP Address 的設計精神: 階層式 IPv4使用 32 Bits 位址、IPv6使用128Bits位址

33 ARP的運作機制

34 ARP Address Resolution Protocol,RFC903 作業系統之網路核心會有兩者對應之表格:ARP Table
區域網路 IP 連線之步驟: 發送者查詢 ARP Table 中是否有接收者之 MAC Address  若無,進行 ARP 查詢接收者之 MAC Address  發送者對接收者以查到的 MAC Address 發送資料 在Windows中,改IP時發同時發出arp request,尋找此IP的MAC address,假如此IP已被使用,Windows會發出alert

35 ARP的運作機制 例:Host A 欲與 Host B 做 telnet 連線前之 ARP 運作

36 ARP的運作機制(1) 進行名稱解析,解析出host B的ip為192.168.0.2
在destination. ip填上 destination mac填上FF:FF:FF:FF:FF:FF(Ethernet broadcast)

37 ARP的運作機制(2) 查詢arp table,如無此IP的資料則進行arp request(broadcast)

38 ARP的運作機制(3) Host C also receives the ARP request packet because destination MAC address is Ethernet broadcast. 然而該封包在Host C的網卡就會被drop,因為該封包的destination與自己不符

39 ARP的運作機制(4) Host B發出unicast arp reply
is at 00:E0:4C:00:00:36

40 ARP的運作機制(5) Host A收到ARP reply,將該IP與MAC address的對應加到ARP table,並開始進行連線

41 Linux指令: arp 其功能是列出系統的 ARP Table,以及設定及刪除 ARP Table 中之欄位

42 範例架構

43 IP & MAC Address 為何有需要兩個Address ( IP , MAC)? IP Address MAC Address
IP Address形成階層式架構,方便在路徑的繞徑(Routing) 不同網路,方便更改電腦的IP Address成為該網路的Domain MAC Address Ethernet網卡MAC Address前三位元組為製造商的號碼,看似有階層式架構,但購買者分佈各地,實際上卻無法形成階層架構 適用時機僅在同一網路內

44 額外補充說明

45 無連結導向(Connectionless-oriented)
在資料傳送前,並不透過事先的連線協調及建立連線才傳送資料;在資料送達對方時亦不送回確認資訊,所以效率較高,但錯誤率相對也較高 廣告郵件是一種無連結傳送,廠商將廣告傳單加上地址交由郵局寄送,但不能確定地址與收件人是否正確,也不能確定收件人是否能正確收到資料。 無連結傳送也可用來建立連結導向的傳送,在上面廣告郵件的例子中,可使用回函的方式來確認消費者是否接收到廣告郵件

46 連結導向(Connection-oriented)
在發送資料前會建立一個連結,並使用錯誤檢查等方式確保資料能夠正確無誤的傳送,如果發生錯誤會自動嘗試重傳資料 電話是一種連結導向的通訊方式,使用者必須先確定電話號碼,然後撥電話,若是無人接聽則無法建立連結,若是接聽則發話與受話端可藉由交談來確認資料正確傳遞 返回

47 進位制

48 進位制的換算 – 十進位轉二進位 139=1*27 +0*26 +0*25 +0*24 +1*23 +0*22 +1*21 +1*20

49 進位制的換算 – 十進位轉八進位 139=2*82 +1*81 +3*80

50 進位制的換算 – 十進位轉十六進位 1230=4* * *160

51 進位制的換算 – 二進位轉八、十六進位 二進位轉八進位 二進位轉十六進位 返回

52 範例說明

53 IP Fragmentation範例說明 目的:觀察Unicast與Broadcast封包運作情形及封包被切割的情形 步驟: 返回
Step1 :啟動HostA、HostB及HostC的Ethereal Step2 :使用HostA ping –c1 –s Step3 :觀察是否ping的封包被切割成兩個 返回

54 IP Header中的Protocol範例說明
範例一:可使用ping 範例二:使用UDP Step1:HostA與HostB同時啟動Ethereal Step2: HostA 啟動udpserver如下 udpserver Step3: HostB使用udpsend如下 udpsend –d –dport 9090 –m Hello Step4: 觀察protocol欄位是否為17 (0x11) 返回

55 實驗導引 實驗2.1 了解ARP運作機制 實驗2.2 Subnetting 實驗2.3 了解subnet的運作與限制
實驗2.4 Supernetting

56 實驗 2.1 了解ARP運作機制 實驗目的 瞭解arp指令 瞭解ARP table的意義 瞭解ARP table資料產生的方式

57 實驗架構圖 僅使用第零個hub所建構的網路,IP設定採用預設值,不需變動

58 Step 1:觀察ARP table Host A: 開啟 Ethereal ,interface選eth0,以觀察下列步驟之封包
arp –an ping ping 再次執行arp –an 觀察arp table的改變 分析相關封包並與ARP運作機制驗證 解釋arp –an的涵義 ARP table自動新增兩筆 Ethereal中要看到arp request(broadcast)及arp reply(unicast) (可使用Network Operation Analysis中的“ARP send”來輔助說明)

59 Step 2:手動寫入ARP table Host A: 問題與討論 返回
arp –s xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx表示MAC address(此MAC address可由上一步驟觀察ARP table得知) 再次執行arp –an,觀察ARP table的改變 問題與討論 手動寫入ARP table時,若MAC address打錯會造成什麼結果 的資料為何要消失?若不自動消失會產生什麼問題? 手動寫入ARP table有什麼好處? arp –s的涵義,xx:xx:xx:xx再次觀察ARP table只剩手動寫入的entry,自動產生的entry消失了 問題與討論 手動寫入ARP table時,若MAC address打錯則不會經arp broadcast尋找 的MAC address,可由ethereal得到驗證 以A、B電腦之間資料傳輸為例:當A電腦的ARP table中存有B電腦的MAC Address記錄時,若B電腦故障、關機或更換網路卡,A電腦將無法得知,仍會依ARP table中的記錄將 Packet 傳送出去。這樣會產生問題,因為沒有主機會回應。 因此,ARP table中的記錄必須有一定的壽命時間,超過此時間的記錄便會被刪除,下次A要送封包給B時,便會重新發ARP request,以避免此種狀況發生。 手動寫入ARP table可減少網路上broadcast封包,並略為提升連線速度(e.g.將default gateway的MAC address寫入arp table) 返回

60 實驗 2.2 Subnetting 實驗目的 使用ifconfig指令設定IP address及netmask 在一個實體網路中切割子網路
瞭解網路遮罩運算方式 瞭解“Network is unreachable”訊息的意義

61 實驗架構圖 僅使用第零個hub所建構的網路,在一個實體網路中切割出兩個子網路
進行subnetting:subnet mask,原本為 24bits改為26bits Host A, B的IP維持為預設值 Host C的IP設定為 位於另一個subnet

62 Step 1: 實驗環境設定 Host A: Host B: Host C: 三台Host分屬於兩個邏輯網路
ifconfig eth netmask Host B: ifconfig eth netmask Host C: ifconfig eth netmask 三台Host分屬於兩個邏輯網路 Host A與B位於 /26 Host C位於 /26 僅使用第零個hub所建構的網路,在一個實體網路中切割子網路( /26及 /26) 進行subnetting:subnet mask原本為 24bits改為26bits(應注意學生是否能了解192這個數字是如何運算出來的,若仍有問題時應簡單復習10進位與2進位的轉換) Host A, B的IP維持為預設值 Host C的IP設定為 目的在使Host C位於另一個subnet

63 Step 2: 測試subnets間的連線 Host A: 由Host A ping Host B及Host C 問題與討論 返回
開啟 Ethereal ,interface選eth0,以觀察下列步驟之封包 由Host A ping Host B及Host C arp –an ping ping 觀察是否有回應 再次執行於Host A, B, C分別執行arp -an 分析相關封包 問題與討論 為何由Host A ping 時,無產生任何ARP entry亦擷取不到任何ARP封包? 討論“Network is unreachable”訊息的意義 由於Host A與Host B位於同網段,因此Host A ping Host B的運作與實驗1.1相同 Host A ping Host C,在進行ARP request前,經由netmask運算出Host A與Host C位於不同網段,則不進行ARP request(ARP request的範圍僅限於同網段),該封包則交由gateway處理,若又無gateway來處理該封包,則會出現Network is unreachable訊息,即該封包無法到達其目的網路 返回

64 網路遮罩運算流程圖

65 實驗 2.3 瞭解subnet的運作 實驗目的 使用ifconfig指令設定IP address及netmask 在一個實體網路中切割子網路

66 實驗架構圖 僅使用第零個hub所建構的網路,在一個實體網路中切割出子網路( /24、 /26、 /26)

67 Step 1: 實驗環境設定 Host A: Host B: Host C: 三台Host分屬於三個邏輯網路
ifconfig eth netmask Host B: ifconfig eth netmask Host C: ifconfig eth netmask 三台Host分屬於三個邏輯網路 Host A位於 /24 Host B位於 /26 Host C位於 /26 僅使用第零個hub所建構的網路,在一個實體網路中切割子網路( /24、 /26、 /26)

68 Step 2: 測試subnets間的連線 Host A: 開啟 Ethereal ,interface選eth0,以觀察下列步驟之封包
arp -an ping ping arp –an 觀察是否有回應 分析相關封包及探討相關運作細節 A to B 通; A to C不通(得不到ICMP reply) 在ARP request方面: 根據Host A的netmask來進行運算(24bits),故Host A與Host B、C皆位於同網段,故Host A可取得Host B及Host C的ARP reply進而發出ICMP request 故arp table可查到Host B及C的資料 在ICMP reply方面 Host B: 在Host B進行網路遮罩運算,是根據Host B的netmask來進行運算(26bits),故Host B與Host A位於同網段,可進行ICMP reply Host C: 在Host C進行網路遮罩運算,是根據Host C的netmask來進行運算(26bits),故Host C與Host A位於不同網段,無法進行ICMP reply

69 Host B: 開啟 Ethereal ,interface選eth0,以觀察下列步驟之封包 arp -an
ping ping arp –an 觀察是否有回應 分析相關封包及探討相關運作細節 B to A 通; B to C不通(Network is unreachable) 在ARP request方面: 根據Host B的netmask來進行運算(26bits),故Host B與Host A位於同網段; Host B與Host C位於不同網段,故Host B可取得Host A的ARP reply進而發出ICMP request,又根據routing tale無法將封包送往 /26,故出現“Network is unreachable”訊息 ARP table僅可查到Host A的資訊 在ICMP reply方面 Host A:根據Host A的netmask來進行運算(24bits),故Host A與Host B位於同網段,可進行ICMP reply

70 Host C: 返回 開啟 Ethereal ,interface選eth0,以觀察下列步驟之封包 arp -an
ping ping arp –an 觀察是否有回應 分析相關封包及探討相關運作細節 C to A 不通; C to A不通(訊息皆是“Network is unreachable”) 在ARP request方面: 根據Host C的netmask來進行運算(26bits),故Host C與Host A位於不同網段; Host C與Host A位於不同網段,又根據routing tale無法將封包送往 /26及 /24,故出現“Network is unreachable”訊息 ARP table無任何資料 在ICMP reply方面 Host A:根據Host A的netmask來進行運算(24bits),故Host A與Host B位於同網段,可進行ICMP reply 返回

71 實驗 2.4 Supernetting 實驗目的 使用ifconfig指令設定IP及netmask 在一個實體網路中合併子網路

72 實驗架構圖 僅使用第零個hub所建構的網路,將 /24及 /24合併成 /23

73 Step 1: 設定實驗環境 Host A: Host B: Host C:
ifconfig eth netmask Host B: ifconfig eth netmask Host C: ifconfig eth netmask 不使用預設的 x、 x及 x的IP是因為在本實驗的supernetting中: x及 x是屬於同網段; x及 x是屬於同網段,易造成混淆。故本實驗的IP使用 x及 x 進行supernetting:subnet mask,原本為 24bits改為23bits(應注意學生是否能了解254這個數字是如何運算出來的,若仍有問題時應簡單復習10進位與2進位的轉換) Host C的IP設定為 目的在使測試supernetting是否成功

74 Step 2: 對supernetting進行測試
Host A: 開啟Ethereal,interface選eth0,以觀察下列步驟之封包 arp -an ping ping 觀察是否有回應,並解釋原因 皆可得到回應,表示此網路範圍已擴大 返回


Download ppt "NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作"

Similar presentations


Ads by Google