Outline
Introduction
IP Address & MAC Address
TCP/UDP/ICMP
IP Gateway, Network Mask, TTL
Routing Protocol
Network Address Translation (NAT)
Domain Name System (DNS)
Dynamic Host Configuration Protocol (DHCP) / Asymmetric Digital Subscriber Line (ADSL)
HyperText Transfer Protocol (HTTP) Protocol
Virtual Private Network (VPN)
1. IP address and Mac address
IP (Internet Protocol )通訊協定 定義於RFC 791
網際網路所使用的網路層(network layer)通訊 協定,負責傳送資料到指定位址,但並不確認資 料是否正確傳達,是一種無連結
(Connectionless)的通訊協定。
負責做封包(Packet)路徑選擇(Routing),
Packet 分割(Fragmentation)及重組(Re- assembly)
Max packet size: 65535 Bytes
無連結導向(Connectionless-oriented)
在資料傳送前,並不透過事先的連線協調及建立 連線才傳送資料;在資料送達對方時亦不送回確 認資訊,所以效率較高,但錯誤率相對也較高
廣告郵件是一種無連結傳送,廠商將廣告傳單加 上地址交由郵局寄送,但不能確定地址與收件人 是否正確,也不能確定收件人是否能正確收到資 料。
無連結傳送也可用來建立連結導向的傳送,在上
面廣告郵件的例子中,可使用回函的方式來確認
消費者是否接收到廣告郵件
連結導向(Connection-oriented)
在發送資料前會建立一個連結,並使用錯誤檢查 等方式確保資料能夠正確無誤的傳送,如果發生 錯誤會自動嘗試重傳資料
電話是一種連結導向的通訊方式,使用者必須先
確定電話號碼,然後撥電話,若是無人接聽則無
法建立連結,若是接聽則發話與受話端可藉由交
談來確認資料正確傳遞
1.1 IP address
Internet Protocol Version 4 (IPv4)
用來辨別裝置或主機唯一的識別碼由32 Bits 組 成,即共可有2
32= 4,294,967,296 個位址
由網路位址(network addr)及主機位址(host addr)兩部分組成
依照網路位址和主機位址的分配,分成五種Class:
1.1.1 Classless InterDomain Routing (CIDR)
CIDR是節省Class B位址的一個變通措施
使用CIDR 即可代表數個Class C 取代以往需要 使用一個Class B 之位址浪費,可節省位址
以一個IP 位址和一個代表Bits 的數字組成
例: 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 個Bits 相同,視為同網域
network mask: 11111000 → 248
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
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
1.1.2 Private address
RFC 1918
不需申請,可直接使用
不能讓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/16)
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
1.2 IP protocol header
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): QOS參數
(目前作為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
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
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 Protocol
其他請參考 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 6
0 e
f
8 4
3 d
5 8
3 0
d d
d 3
6 0
0 8
0 0
0 4
4 a
e 9
0 3
0 0
0 0
5 4
1.3 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 eth0
eth0 Link encap:Ethernet Hwaddr 52:54:AB:ED:6F:61
52:54:AB:ED:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.89 210.34.6.127210.34.6.127 Mask:255.255.255.128255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 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
網路卡接收Packet的依據
在以下四種情況中,網路卡會擷取封包
Destination MAC Address為該網路卡的MAC Address
廣播位址(Broadcast Address)
群播位址(Multicast Address)
當網路卡在 Promiscuous Mode 時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位址
1.3.2 Address A Resolution R Protocol P (ARP)
Address A Resolution R Protocol,RFC903 P
作業系統之網路核心會有兩者對應之表格:ARP Table
區域網路 IP 連線之步驟:
發送者查詢 ARP Table 中是否有接收者之 MAC Address
若無,進行 ARP 查詢接收者之 MAC Address
發送者對接收者以查到的 MAC Address 發送資料
ARP的運作機制(1)
ARP的運作機制 (2)
ARP的運作機制 (3)
ARP的運作機制 (4)
ARP的運作機制 (5)
Linux指令: arp
其功能是列出系統的 ARP Table,以及設定及
刪除 ARP Table 中之欄位
範例架構
IP & MAC Address
為何有需要兩個Address ( IP , MAC)?
IP Address
IP Address形成階層式架構,方便在路徑的繞徑階層式架構 (Routing)
不同網路,方便更改電腦的IP Address成為該網路的 Domain
MAC Address
Ethernet網卡MAC Address前三位元組為製造商的號 碼,看似有階層式架構,但購買者分佈各地,實際上 卻無法形成階層架構
適用時機僅在同一網路內