一、OSI七層協議
OSI(Open System interconnection)開放系統互相連線模型參考模型
ISO(International Standards Organization)國際標準組織
1、物理層
機械效能:介面的型狀,尺寸的大小,引腳的數目和相片順序等。
電氣效能:介面規定訊號的電壓、電流、阻抗、波形、速率及平衡特性等。
工程規範:介面引腳的意義、特性、標準。
工作方式:確定資料位元流的傳輸方式,如:單工、半雙工或全雙工系統。
物理層協議有:
美國電子工業協會(EIA)的RS232,RS422,RS423,RS485等;
國際電報電話諮詢委員會(CCITT)的X.25、X.21等;
物理層的資料單位是位(BIT),典型裝置是集線器HUB。
2、鏈路層
鏈路層屏蔽傳輸介質的物理特徵,使資料可靠傳送。
內容包括介質存取控制、串連控制、順序控制、流量控制、差錯控制和仲裁協議等。
鏈路層協議有:
協議有面向字元的通訊協議(PPP)和面向位的通訊協議(HDLC)。
仲裁協議:802.3、802.4、802.5,即:
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token
Bus、Token Ring
鏈路層資料單位是幀,實現對MAC地址的訪問,典型裝置是交換器Switch。
3、網路層
網路層管理串連方式和路由選擇。
串連方式:虛電路(Virtual Circuits)和資料報(Datagram)服務。
虛電路是連線導向的(Connection-Oriented),資料通訊一次路由,通過會話建立的一條
通路。
資料報是非串連的(Connectionless-Oriented),每個資料報都有路由能力。
網路層的資料單位是包,使用的是IP地址,典型裝置是路由器Router。
這一層可以進行流量控制,但流量控制更多的是使用第二層或第四層。
4、傳輸層
提供端到端的服務。可以實現流量控制、負載平衡。
傳輸層資訊包含連接埠、控制字和校正和。
傳輸層協議主要是TCP和UDP。
傳輸層位於OSI的第四層,這層使用的裝置是主機本身。
5、會話層
會話層主要內容是通過會話進行身分識別驗證、會話管理和確定通訊方式。
一旦建立串連,會話層的任務就是管理會話。
6、展示層
展示層主要是解釋通訊資料的意義,如代碼轉換、格式變換等,使不同的終端可以表示。
還包括加密與解密、壓縮與解壓縮等。
7、應用程式層
應用程式層應該是直接面向使用者的程式或服務,包括系統程式和使用者程式,
例如www、FTP、DNS、POP3和SMTP等都是應用程式層服務。
資料在發送時是資料從應用程式層至物理層的一個打包的過程,
接收時是資料從物理層至應用程式層的一個解包的過程,
從功能角度可分為三組,1、2層解決網路通道問題,3、4層解決傳輸問題,5、6、7層處
理對應用進程的訪問。
從控制角度可分為二組,第1、2、3層是通訊子網層,第4、5、6、7層是主機控制層。
二、TCP/IP 協議簇
TCP/IP(Transmission Control Protocol/Internet Protocol)已成為一個事實上的工業
標準。
TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇。
TCP/IP協議簇分為四層,IP位於協議簇的第二層(對應OSI的第三層),TCP位於協議簇的第
三層(對應OSI的第四層)。
TCP和IP是TCP/IP協議簇的中間兩層,是整個協議簇的核心,起到了承上啟下的作用。
1、介面層
TCP/IP的最低層是介面層,常見的介面層協議有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
2、網路層
網路層包括:IP(Internet Protocol)協議、ICMP(Internet Control Message Protocol)
控制報文協議、ARP(Address Resolution Protocol)地址轉換協議、RARP(Reverse ARP)反向
地址轉換協議。
IP是網路層的核心,通過路由選擇將下一跳IP封裝後交給介面層。IP資料報是無串連服務
。
ICMP是網路層的補充,可以回送報文。用來檢測網路是否通暢。
Ping命令就是發送ICMP的echo包,通過回送的echo relay進行網路測試。
ARP是正向位址解析通訊協定,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向位址解析通訊協定,通過MAC地址確定IP地址。比如無盤工作站和DHCP服務。
3、傳輸層
傳輸層協議主要是:傳輸控制通訊協定TCP(Transmission Control Protocol)和使用者資料報協
議UDP(User Datagram rotocol)。
TCP是連線導向的通訊協定,通過三向交握建立串連,通訊時完成時要拆除串連,由於TCP
是連線導向的所以只能用於點對點的通訊。
TCP提供的是一種可靠的資料流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠
性。TCP還採用一種稱為“滑動視窗”的方式進行流量控制,所謂視窗實際表示接收能力,用
以限制發送方的發送速度。
UDP是面向不需連線的通訊協議,UDP資料包括目的連接埠號碼和源連接埠號碼資訊,由於通訊不需要
串連,所以可以實現廣播發送。
UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出丟包現象,實際應用中要求
在程式員編程驗證。
4、應用程式層
應用程式層一般是面向使用者的服務。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是檔案傳輸通訊協定,一般上傳下載用FTP服務,資料連接埠
是20H,控制連接埠是21H。
Telnet服務是使用者遠程登入服務,使用23H連接埠,使用明碼傳送,保密性差、簡單方便。
DNS(Domain Name Service)是網域名稱解析服務,提供網域名稱到IP地址之間的轉換。
SMTP(Simple Mail Transfer Protocol)是簡易郵件傳輸通訊協定,用來控制信件的發送、中
轉。
POP3(Post Office Protocol 3)是郵局協議第3版本,用於內送郵件。
資料格式:
資料幀:幀頭+IP資料包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校正字)
IP資料包:IP頭部+TCP資料資訊 (IP頭包括源和目標主機IP地址、類型、生存期等)
IP資料資訊:TCP頭部+實際資料 (TCP頭包括源和目標主機連接埠號碼、順序號、確認號、校
驗字等)
三、TCP串連的建立
1、TCP串連通過三向交握完成。
client首先請求串連,發一個SYN包;Server收到後回應SYN_ACK包;Client收到後再
發ACK包。即:
Client Server
SYN ---> 收
<--- SYN+ACK
ACK ---> 收
established表示建立狀態,當某端發出資料包後收到了回應則進入established狀態。
在TCP/IP串連時,如果兩端都是established狀態,則握手成功,否則是無串連或半聯結狀
態。
2、通訊端Socket
通訊端Socket由協議、IP地址和連接埠號碼組成,通訊端表示一路通訊,一般是一個服務,如
www服務是TCP的80連接埠,Telnet是TCP的23連接埠。
四、IP地址劃分
1、IP地址分類
IP地址有四個段,包括網路標識和主機標識兩部分:netid+hostid。
IP地址應用分為A、B、C三類,D、E類是保留和專用的。
Class A 0******* xxxxxxxx xxxxxxxx xxxxxxxx
Class B 10****** ******** xxxxxxxx xxxxxxxx
Class C 110***** ******** ******** xxxxxxxx
Class D 1110**** ******** ******** ********
Class E 1111**** ******** ******** ********
2、地址區間
址址類 地址區間
網路數 主機數
A 類 1.0.0.1~126.255.255.254 27-2=126
224-2=16777214
B 類 128.0.0.1~191.255.255.254 214-2=16382
216-2=65534
C 類 192.0.0.1~223.255.255.254 221-2=2097150
28-2=254
D 類 224.0.0.1~239.255.255.255 228=268435456
0
E 類 240.0.0.1~255.255.255.255 228=268435456
0
3、特殊地址
主機地址全0表示為一個網路地址。
主機地址全1表示為對應網路的廣播位址。
全0的IP地址:0.0.0.0,表示本機地址,只在啟動過程時有效。
全1的IP地址255.255.255.255,表示本地廣播(有的軟體不支援)。
私人地址:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
127.0.0.0網路是迴環網路loopback,用於本機測試。例如:
ping 127.0.0.1 是測試本機網卡是否工作正常。
4、子網路遮罩
子網路遮罩用來區分網路地址和主機地址,標準的子網路遮罩為:
A 類: 1.0.0.1~126.255.255.254 netmask:255.0.0.0
B 類:128.0.0.1~191.255.255.254 netmask:255.255.0.0
C 類:192.0.0.1~223.255.255.254 netmask:255.255.255.0
子網路遮罩和IP地址的“與”運算得出對應的網路地址。
如果將子網路遮罩“1”的位元增加則網路地址數增加,形成子網。相當於網路的分隔。
如果將子網路遮罩“1”的位元減小則網路地址數減少,形成超網。相當於網路的彙總。