由下至上為1至7層,分別為:
應用層(Application layer)
表示層(Presentation layer)
會(huì )話(huà)層(Session layer)
傳輸層(Transport layer)
網(wǎng)絡(luò )層(Network layer)
數據鏈路層(Data link layer)
物理層(Physical layer)
其中上三層稱(chēng)之為高層,定義應用程序之間的通信和人機界面。什么意思呢,就是上三層負責把電腦能看懂的東西轉化為你能看懂的東西,或把你能看懂的東西轉化為電腦能看懂的東西。
下四層稱(chēng)之為底層,定義的是數據如何端到端的傳輸(end-to-end),物理規范以及數據與光電信號間的轉換。
下面一層一層的來(lái)說(shuō)明:
應用層,很簡(jiǎn)單,就是應用程序。這一層負責確定通信對象,并確保由足夠的資源用于通信,這些當然都是想要通信的應用程序干的事情。
表示層,負責數據的編碼、轉化,確保應用層的正常工作。這一層,是將我們看到的界面與二進(jìn)制間互相轉化的地方,就是我們的語(yǔ)言與機器語(yǔ)言間的轉化。數據的壓縮、解壓,加密、解密都發(fā)生在這一層。這一層根據不同的應用目的將數據處理為不同的格式,表現出來(lái)就是我們看到的各種各樣的文件擴展名。
會(huì )話(huà)層,負責建立、維護、控制會(huì )話(huà),區分不同的會(huì )話(huà),以及提供單工(Simplex)、半雙工(Half
duplex)、全雙工(Full duplex)三種通信模式的服務(wù)。我們平時(shí)所知的NFS,RPC,X
Windows等都工作在這一層。
傳輸層,負責分割、組合數據,實(shí)現端到端的邏輯連接。數據在上三層是整體的,到了這一層開(kāi)始被分割,這一層分割后的數據被稱(chēng)為段(Segment)。三次握手(Three-way
handshake),面向連接(Connection-Oriented)或非面向連接(Connectionless-Oriented)的服務(wù),流控(Flow
control)等都發(fā)生在這一層。
網(wǎng)絡(luò )層,負責管理網(wǎng)絡(luò )地址,定位設備,決定路由。我們所熟知的IP地址和路由器就是工作在這一層。上層的數據段在這一層被分割,封裝后叫做包(Packet),包有兩種,一種叫做用戶(hù)數據包(Data
packets),是上層傳下來(lái)的用戶(hù)數據;另一種叫路由更新包(Route update
packets),是直接由路由器發(fā)出來(lái)的,用來(lái)和其他路由器進(jìn)行路由信息的交換。
數據鏈路層,負責準備物理傳輸,CRC校驗,錯誤通知,網(wǎng)絡(luò )拓撲,流控等。我們所熟知的MAC地址和交換機都工作在這一層。上層傳下來(lái)的包在這一層被分割封裝后叫做幀(Frame)。
物理層,就是實(shí)實(shí)在在的物理鏈路,負責將數據以比特流的方式發(fā)送、接收。
二.網(wǎng)絡(luò )協(xié)議
IP(Internet Protocol 網(wǎng)際協(xié)議)連接兩個(gè)節點(diǎn)。每個(gè)節點(diǎn)都由一個(gè)32位地址來(lái)標識。當發(fā)送消息時(shí),IP協(xié)議從較高級的協(xié)議(TCP或UDP)接受消息,并添加包含有關(guān)目標主機信息的IP報頭。
TCP(傳輸控制協(xié)議),TCP要求在發(fā)送數據之前必須打開(kāi)連接。服務(wù)器應用程序必須執行一個(gè)稱(chēng)作被動(dòng)打開(kāi)(passive open)的操作,以利用一個(gè)已知的端口號創(chuàng )建一個(gè)連接,這時(shí),服務(wù)器并不是對網(wǎng)絡(luò )進(jìn)行呼叫,而是偵聽(tīng)并等待引入的請求??蛻?hù)應用程序必須執行一個(gè)主動(dòng)打開(kāi)(active open),為此,它向服務(wù)器應用程序發(fā)送一個(gè)同步序列號(SYN)以標識連接??蛻?hù)應用程序可以將動(dòng)態(tài)端口號作為本地的端口使用。服務(wù)器必須向客戶(hù)發(fā)送一個(gè)確認(ACK)以及服務(wù)器的序列號(SYN),隨后,客戶(hù)恢復一個(gè)ACK,這樣就建立連接了。如果在收到ACK之前發(fā)送方已經(jīng)超時(shí),則消息將被放到重發(fā)隊列中以再次發(fā)送。
UDP(用戶(hù)數據報協(xié)議),UDP是一個(gè)速度很快的協(xié)議,因為它僅僅指定了數據傳輸所需要的最低機制,它的缺點(diǎn),消息接收順序不確定,第一個(gè)發(fā)送的消息可能最后一個(gè)被接到。消息可能丟失,也可能同時(shí)接收到2個(gè)相同的消息。在發(fā)送多播和廣播時(shí),我們通常不希望從每個(gè)節點(diǎn)都返回一個(gè)確認,這樣將使服務(wù)器超負荷,并且網(wǎng)絡(luò )負荷變大,所以在這個(gè)情況下使用UDP協(xié)議是很好的選擇。
ICMP(Internet控制消息協(xié)議)是一個(gè)控制協(xié)議,IP設備用來(lái)向其他的IP設備通知網(wǎng)絡(luò )中的活動(dòng)和錯誤。如果沒(méi)有TCP協(xié)議,則IP并不是一個(gè)可靠的協(xié)議,并且沒(méi)有確認,沒(méi)有數據的錯誤控制功能(只有一個(gè)報頭校驗和),也不能重新傳輸。ICMP消息在IP報頭的內部發(fā)送,ICMP消息來(lái)發(fā)送的類(lèi)型:響應和響應回復,目標不可達和重定向,超時(shí)。在用PING命令時(shí)會(huì )發(fā)送4個(gè)ICMP消息。
IGMP(Internet組管理協(xié)議)是IP協(xié)議的一個(gè)擴充,必須由IP模塊來(lái)實(shí)現。多播應用程序使用IGMP,利用IGMP消息發(fā)送對某個(gè)多播地址的一組成員請求,這樣就能夠注冊某條多播消息,也可以使用IGMP取消成員的關(guān)系。
FTP(File Transfer Protocol 文件傳輸協(xié)議)用于將文件復制到服務(wù)器,反之亦然。他還能列舉服務(wù)器上的文件和目錄。他是一個(gè)基于TCP的應用層協(xié)議,FTP命令封裝在TCP消息的TCP數據塊中。
HTTP(Hypertext Transfer Protocol 超文本傳輸協(xié)議)HTTP是一個(gè)可靠的協(xié)議,這通過(guò)使用TCP來(lái)實(shí)現,HTTP具有:緩存、客戶(hù)應用程序身份識別、支持各種MIME格式的不同附件等。
HTTPS(SSL上的HTTP)如果需要與WEB服務(wù)器交換機密數據,則可以使用HTTPS,SSL(Secure Socket Layer 安全套接字層),SSL在TCP之上,他使用一個(gè)公鑰/私鑰原理來(lái)交換保密的對稱(chēng)密鑰,用一個(gè)對稱(chēng)密鑰來(lái)加密消息。想要支持HTTPS,WEB服務(wù)器必須安裝一個(gè)證書(shū),HTTPS默認端口是443。
SMTP(Simple Mail Transfer Protocol 簡(jiǎn)單郵件傳輸協(xié)議)是一個(gè)用于發(fā)送和接受郵件消息的協(xié)議。SMTP不允許我們從郵件服務(wù)器讀取消息,為此需要使用POP3或者IMAP協(xié)議。
POP3(Post Office Protocol 郵局協(xié)議)是為斷開(kāi)環(huán)境設計的。利用POP3,客戶(hù)可以訪(fǎng)問(wèn)服務(wù)器,并獲取服務(wù)器為其所保留的消息。
IMAP(Internet Message Access Protocol Internet消息訪(fǎng)問(wèn)協(xié)議)用來(lái)訪(fǎng)問(wèn)郵件服務(wù)器上的郵件,IMAP客戶(hù)可以有脫機模式,這時(shí)可以在本地機器上對郵件進(jìn)行操作。IMAP使客戶(hù)能夠對遠程郵箱進(jìn)行操作,就像是本地操作郵箱一樣。
NNTP(Network News Transfer Protocol 網(wǎng)絡(luò )新聞傳輸協(xié)議)是一個(gè)用于提交,中繼和獲取消息的應用層協(xié)議,該協(xié)議提供了能夠訪(fǎng)問(wèn)新聞服務(wù)器并且從中獲取選定消息的客戶(hù)應用程序,并且還支持服務(wù)器到服務(wù)器的消息傳輸。
SNMP(Simple Network Management Protocol 簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議)可以對網(wǎng)絡(luò )上的設備進(jìn)行管理。SNMP的目的在于利用性能問(wèn)題和故障觸發(fā)的警報來(lái)有效的管理設備,并且允許對設備進(jìn)行配置。與網(wǎng)絡(luò )設備相關(guān)聯(lián)的SNMP代理將有一個(gè)MIB(Management Information Base 管理信息庫)數據庫,它將面向對象的方式包含了該設備的可管理信息。SNMP客戶(hù)通過(guò)發(fā)送SNMP GET 請求來(lái)訪(fǎng)問(wèn)數據庫中的信息,用SNMP SET 請求配置MIB數據庫。
Telnet協(xié)議,該協(xié)議使我們能夠利用用戶(hù)身份驗證連接到一個(gè)遠程系統,然后從一個(gè)控制臺環(huán)境遠程調用命令。
聯(lián)系客服