2008/03/28 TCP/IP 1
OSI七層協定與TCP/IP
OSI七層協定的特色:
Z 分層堆疊,每層的任務是可以獨立的
Z 架構嚴謹,程式撰寫較不容易
Z 是一種標準,具有指導的意味。
TCP/IP協定
Z 僅分四層,架構較為鬆散
2008/03/28 TCP/IP 3
TCP/IP 的發展沿革
1960年代末期:由美國國防部尖端研究企畫署(DARPA) 開發出一套名為ARPANET的網路架構
1980:由ARPANET發展成為TCP/IP協定
1983:TCP/IP協定取代ARPANET網路架構,並將 TCP/IP稱為Internet
1980年代中期:學術機構的BSD Unix內建TCP/IP的通 訊協定技術
1980年代末期:TCP/IP已可被各主要作業系統所支援
1990年代:Internet上的應用被廣泛開發,如1993年的 WWW協定OSI與TCP/IP模型的比較
應用層 表現層 會談層
傳輸層
網路層
應用層
傳輸層
網路層
OSI七層協定模型 TCP/IP協定模型
HTTP FTP SMTP POP3 Telnet NFS
TCP UDP
IP ICMP
相關協定與硬體
2008/03/28 TCP/IP 5
廣域網路(WAN)的PPP協定
Point-to-Point Protocol的任務
Z 提供實體層與鏈結層的功能
Z 可將數據機(modem)當成網路卡來使用
Z 透過撥接取得IP後連線到Internet
Z PPP的特色:
可支援多種協定,如TCP/IP、NetBEUI、IPX/SPX等
可進行撥接身份的驗證(authentication)
可進行連線協商(negotiation)與設定(configuration)廣域網路(WAN)的ISDN
Integrated Services Digital Network
Z 利用現有的電話線路來高速傳遞訊息之技術
Z 傳輸速率比數據機高,但花費比專線低
Z ISDN同樣以撥接達成連線,但連線兩端需有 ISDN數據機
Z 一般速率可達 64Kbps
2008/03/28 TCP/IP 7
廣域網路(WAN)的ADSL
Asymmetric Digital Subscriber Line
Z 利用電話線路中的高頻部分來達成網路連線
Z 其上行/下行的頻寬並不相等,故稱為非對稱數位
用戶迴路
區域網路(LAN)的乙太網路
透過廣播來傳遞訊框
Z
乙太網路的區域網路中,主要利用 MAC 訊框Z
MAC 訊框的標頭(header)重點在目標/來源卡號Z
MAC 網卡卡號佔有 6bytesZ
MAC 卡號不可跨路由2008/03/28 TCP/IP 9
鏈結層的 ARP協定
Address Resolution Protocol
Z
解析 MAC 與 IP 的對應Z
Linux 下可透過『 arp –n 』檢查Z
每部主機都有 ARP table,記錄動態的ARP資訊網路層的IP
Internet Protocol 封包表頭
2008/03/28 TCP/IP 11
IP 的組成
共 32 bits ,分四組十進位的數字組成Z 00000000.00000000.00000000.00000000Æ0.0.0.0
Z 11111111.11111111.11111111.11111111Æ255.255.255.255
網域ID與主機ID(Net ID & host ID)192.168.0.0~192.168.0.255
11000000.10101000.00000000.00000000Æhost全為0(第一個IP) 11000000.10101000.00000000.11111111Æhost全為1(最後的IP)
|---Net_ID---|-host--|
Z
同一網域內的機器,可直接傳送資料封包Z
不同網域的機器,則需透過路由器(router)代為傳送IP網段
同一IP網段的特色
Z
必須是在『同一個物理網段』之內;Z
同一網域的任何主機,可以透過廣播取得 MAC 與 IP 的對應表 (利用 arp 指令可以查詢到!);Z
同一個網段內,Net ID 是不變的,而 Host ID 則是不 可重複Z
Host ID 在二進位的表示法當中,不可同時為 0 也不2008/03/28 TCP/IP 13
IP的分類
A,B,C class 的網域分類:
Z
以二進位說明 Net ID 第一個數字的定義:A Class : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>開頭是 0
|--net--|---host---|
B Class : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>開頭是 10
|---net---|---host---|
C Class : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==>開頭是 110
|---net---|-host--|
Z
以十進位說明 Network 的定義: A Class : 0.xx.xx.xx ~ 126.xx.xx.xx
B Class : 128.xx.xx.xx ~ 191.xx.xx.xx
C Class : 192.xx.xx.xx ~ 223.xx.xx.xx
127.0.0.0 這個網域被作為系統的內部迴圈(loopback)測試網
路!
IP網域的定義:Netmask
Netmask, 子遮罩網路(也有翻譯成子網路遮 罩等等)
Z
可用來規範『網域』的區間Z
Netmask 就是 Net ID 均為 1, 而 Host ID均為 0 時Z
ex> 192.168.0.0~192.168.0.255 這個 C Class 的 netmask 就是 255.255.255.0
IP: 11000000.10101000.00000000.00000001 Æ192.168. 0.1
2008/03/28 TCP/IP 15
IP網域的定義:Netmask
網域或 IP 的表示法:
Z network IP / netmask (or bits)
Z 192.168.0.0/255.255.255.0
Z 192.168.0.0/24
Z 務必以 32 bits 來思考~
子網域的切分
若將 192.168.0.0/24 再細分為兩個子網域?Z Network1:11000000.10101000.00000000.00000000 Æ192.168. 0.0
Z Network2:11000000.10101000.00000000.10000000 Æ192.168. 0.128
Z Netmask :11111111.11111111.11111111.10000000 Æ255.255.255.128
Z Network1:192.168.0. 0~192.168.0.127 (192.186.0.0/25)
Z Network2:192.168.0.128~192.168.0.255 (192.168.0.128/25)
思考:Z
說明 192.168.100.30/26 的相關網路參數:
IP: 192.168.100.30
Netmask: 255.255.255.192
2008/03/28 TCP/IP 17
IP 的種類
Public IP (可直接連上 Internet )
Private IP(不可與 Internet 交換路由, 需 NAT)
Z A Class:10.0.0.0 - 10.255.255.255
Z B Class:172.16.0.0 - 172.31.255.255
Z C Class:192.168.0.0 - 192.168.255.255
網路層的route概念
路由(route):
Z
相同網域的電腦可透過廣播傳送封包Z
不同網域的電腦,則資料封包將透過:
經由:本機的路由設定傳送到本網域的路由器
經由:本網域的路由器自己的路由設定,傳送到下一 個路由器
持續傳送到目的地。2008/03/28 TCP/IP 19
網路層的route概念
Linux 路由狀態的觀察
利用 route 可查閱路由設定,如:
[root@localhost ~]# route -n Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
2008/03/28 TCP/IP 21
基本網路的 IP 參數
一組成功可連上 Internet 的網路設定需要:
Z
IPZ
networkZ
netmaskZ
broadcastZ
gateway ( router ) 可利用指令:
Z
ifconfig 來查閱 MAC 與 IP 的設定值Z
arp 查閱MAC與IP的對應表,或設定靜態 MAC 對應表Z
route 查詢目前的路由狀態;網路層的ICMP協定
Internet Control Message Protocol
Z
ICMP 是一個錯誤偵測與回報的機制,最大的功能就是可 以確保我們網路的連線狀態,與連線的正確性!Z
ICMP 本身並沒有傳送的能力,需要藉由 IP 來進行傳送Z
指令 ping 為重要的使用 ICMP 封包的指令Z
若設定防火牆,並非所有的 ICMP 都要關閉,容易發生 問題~2008/03/28 TCP/IP 23
ICMP封包的類型
使用 ping 檢測網路狀態
ttl:每經過一個結點就會減一2008/03/28 TCP/IP 25
傳輸層的 TCP 封包協定
Port 的功能
TCP 封包的 port 由應用程式所開啟
透過此 port 可讓該應用程式提供服務
Server端
Z 透過伺服器軟體啟動固定的埠口
Z 常見的服務與埠號定義於 /etc/services
Client端
2008/03/28 TCP/IP 27
可靠的TCP傳輸機制
Socket Pair
主從架構(Server/Client)常見的網路連線
Z 需要有以下的重要表頭資料
來源 IP
來源 Port
來源協定 (TCP/UDP)
目標 IP
目標 Port2008/03/28 TCP/IP 29
傳輸層的UDP封包
表頭資料較少,可容納的Data較多
不需透過三向交握,速度較快
常用於類似即時通訊軟體的封包格式中常見 port number 與協定
2008/03/28 TCP/IP 31