740 likes | 899 Views
創新 網路通訊實驗教學解決方案. NetGuru by NetSmooth Corporation. PART I TCP/IP 通訊協定深入剖析 / 以 NetGuru 實作. 第二章 IP Address 與 MAC Address 之涵意. Overview. Internet Protocol IEEE 802 與 Ethernet MAC address ARP 運作機制 實驗導引 實驗 2.1 了解 ARP 運作機制 實驗 2.2 Subnetting 實驗 2.3 了解 Subnet 的運作與限制
E N D
創新 網路通訊實驗教學解決方案 NetGuru by NetSmooth Corporation PART I TCP/IP通訊協定深入剖析/以NetGuru實作 第二章 IP Address 與 MAC Address 之涵意
Overview • Internet Protocol • IEEE 802與Ethernet • MAC address • ARP運作機制 • 實驗導引 • 實驗2.1 了解ARP運作機制 • 實驗2.2 Subnetting • 實驗2.3 了解Subnet的運作與限制 • 實驗2.4 Supernetting
概述 • IP (Internet Protocol )通訊協定定義於 RFC 791 • 網際網路所使用的網路層通訊協定,負責傳送資料到指定位址,但並不確認資料是否正確傳達,是一種無連結(Connectionless)的通訊協定 • 負責做 Packet 路徑選擇(Routing), Packet 分割(Fragmentation)及重組 (Re-assembly)
分級IP Address • Internet Protocol Version 4 • 用來辨別裝置或主機唯一的識別碼,適用於不同網路間定址 • 由 32 Bits 組成,可有 232 = 4,294,967,296 個位址 • 由網路位址及主機位址兩部分組成 • 依照網路位址和主機位址的分配,分成五種 Class: 進位制與轉換
Netmask • 目的:對IP Address分類,以判定所屬網路號碼netid • 例:192.168.1.96 / 27
名詞介紹 • netid • 每一組IP位址的第一個IP位址,即為該組IP位址的網路號碼(netid) • 例:192.168.1.0 / 24 -> 192.168.1.0 • broadcast • 每一組IP位址的最後一個IP,即為該組IP位址的廣播位址(broadcast) • 例:192.168.1.0 / 24 -> 192.168.1.255
不分級IP Address - CIDR • Classless Inter-Domain Routing • 使用 CIDR 即可代表數個 Class C 取代以往需要使用一個 Class B 之位址浪費,可節省位址 • 例: 222.77.235.0/21 及 222.77.237.0/21 222.77.235.0 11011110.1001101.11101011.0 222.77.237.0 11011110.1001101.11101101.0 由左至右比對到第 21 個bit皆相同,視為同網域
Subnetting • 將一較大的網路區段切割成幾組較小的網路 • 使用於Interior Routing Protocol • 例如:172.16.0.0 / 16可將一個B級網路分成256個較小網路172.16.0.0 / 24 172.16.1.0 / 24 172.16.2.0 / 24. . .172.16.255.0 / 24 實驗2.2 Subnetting 實驗2.3 了解subnet的運作與限制
Supernetting • 由數個較小的網路區段組合成單一較大網路 • 使用於Exterior Routing Protocol • 可減少Routing Table的Entry數 • 例如:203.100.64.0 / 20(203.100.64.0 ~ 203.100.79.255)將16個C級網路合成一個203.100.64.0/20較大網路 • netid:203.100.64.0 • range:203.100.64.0 ~ 203.100.79.255 • netmask:255.255.240.0 • broadcast:203.100.79.255 實驗2.4 Supernetting
Private Address • 不需申請,可直接使用 • 不能讓 Routing Information 流到單位外的網路上 • 需透過位址轉換 NAT(Network Address Translation)才能對外連線 • 可用之 Private Address 範圍: • 10.0.0.0 ~ 10.255.255.255(10.0.0.0/8) • 172.16.0.0 ~ 172.31.255.255(172.16.0.0/12) • 192.168.0.0 ~ 192.168.255.255(192.168.0.0/24)
Version(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):未使用
Total Length(16 bits) • 總長度 (IP header + data ,576 ~ 65535 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
Fragment Offset • 0 ~ 8191 ( = 213 -1) • 分割後封包的位移量 • 以8 bytes為基本位移單位 • 最大總資料量 = 8192 × 8 = 65536 bytes • Time to Live (TTL) • 封包在網路的存活時間 • 每經過一個Router計數器自動減一,直至0為止,便將封包丟棄(Discard) 範例說明
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 http://www.ietf.org/rfc/rfc1700.txt 範例說明
Header Checksum • IP Header 的錯誤檢查碼,將IP Header中所有16-bit的word轉為1的補數相加後,再取一的補數,此值即為Checksum值 • Source IP Address • 來源IP位址 • Destination IP Address • 目的IP位址 • Options • 選擇性欄位 • Data • 真正傳送的資料
IP Header Checksum計算範例 4500+0030+9ea4+4000+8006+3ddd+0385+d348+fe06=3b68a 進位的3加回b68a中,3+b68a=b68d,換成二進位為1011 0110 1000 1101 再取其補數0100 1001 0111 0010
IEEE 802 • Dst MAC ( Destination MAC Address)目的的實體位址 • Src MAC (Source MAC Address)來源的實體位址 • Len (Length)從頭到尾的長度(不含CRC)
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
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
最大傳輸單位MTU • Maximum Transmission Unit • Data-link layer中對資料(payload)傳輸的最大限制 • Network layer會因Data-link layer傳輸最大限制而做切割(fragment)
MAC Address • 每張網路卡出廠時即擁有一個全世界獨一無二的位址 • 目的在於直接相鄰設備間的定址,適用於同一網路中 • 由6個 bytes 組成,例:00:10:F3:03:28:B0 • MAC Layer 之位址,負責和 Physical Layer 溝通
MAC Address • Broadcast Address • FF:FF:FF:FF:FF:FF • Multicast Address • 01:00:5E:xx:xx:xx
Linux指令: ifconfig • ifconfig - 網路介面控制程式 • 由指令及其輸出結果可看出系統之設計以及相關設定之作用 • 範例:ifconfig eth0eth0 Link encap:Ethernet Hwaddr 52:54:AB:ED:6F:61inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128UP 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
網路卡接收Packet的依據 • 在以下四種情況中,網路卡會擷取封包 • Destination MAC Address為該網路卡的MAC Address • 廣播位址(Broadcast Address) • 群播位址(Multicast Address) • 當網路卡在 Promiscuous Mode時 • Ethereal預設即是Promiscuous Mode
MAC Address 與 IP Address • 為何不使用 MAC Address 為定址方法? • 各 MAC Protocol 之 MAC Address 無法統一 • MAC Address 無法有任何之階層觀念 • 設計 IP Address 供定址使用 • IP Address 的設計精神: • 階層式 • IPv4使用 32 Bits 位址、IPv6使用128Bits位址
ARP • Address Resolution Protocol,RFC903 • 作業系統之網路核心會有兩者對應之表格:ARP Table • 區域網路 IP 連線之步驟: • 發送者查詢 ARP Table 中是否有接收者之 MAC Address • 若無,進行 ARP 查詢接收者之 MAC Address • 發送者對接收者以查到的 MAC Address 發送資料
ARP的運作機制 例:Host A欲與 Host B 做 telnet 連線前之 ARP 運作
Linux指令: arp • 其功能是列出系統的 ARP Table,以及設定及刪除 ARP Table 中之欄位 實驗2.1 瞭解ARP運作機制
IP & MAC Address • 為何有需要兩個Address ( IP , MAC)? • IP Address • IP Address形成階層式架構,方便在路徑的繞徑(Routing) • 不同網路,方便更改電腦的IP Address成為該網路的Domain • MAC Address • Ethernet網卡MAC Address前三位元組為製造商的號碼,看似有階層式架構,但購買者分佈各地,實際上卻無法形成階層架構 • 適用時機僅在同一網路內
無連結導向(Connectionless-oriented) • 在資料傳送前,並不透過事先的連線協調及建立連線才傳送資料;在資料送達對方時亦不送回確認資訊,所以效率較高,但錯誤率相對也較高 • 廣告郵件是一種無連結傳送,廠商將廣告傳單加上地址交由郵局寄送,但不能確定地址與收件人是否正確,也不能確定收件人是否能正確收到資料。 • 無連結傳送也可用來建立連結導向的傳送,在上面廣告郵件的例子中,可使用回函的方式來確認消費者是否接收到廣告郵件
連結導向(Connection-oriented) • 在發送資料前會建立一個連結,並使用錯誤檢查等方式確保資料能夠正確無誤的傳送,如果發生錯誤會自動嘗試重傳資料 • 電話是一種連結導向的通訊方式,使用者必須先確定電話號碼,然後撥電話,若是無人接聽則無法建立連結,若是接聽則發話與受話端可藉由交談來確認資料正確傳遞 返回
進位制的換算 – 十進位轉二進位 139=1*27 +0*26 +0*25 +0*24 +1*23 +0*22 +1*21 +1*20
進位制的換算 – 十進位轉八進位 139=2*82 +1*81 +3*80
進位制的換算 – 十進位轉十六進位 1230=4*162 +12*161 +14*160