1. 程式人生 > >常見的網絡協議

常見的網絡協議

ssl協議 輸入 很快 不可 主機 地址 分塊 釋放 遠程登錄

一、OSI模型

名稱 層次 功能

物理層 1 實現計算機系統與網絡間的物理連接

數據鏈路層 2 進行數據打包與解包,形成信息幀

網絡層 3 提供數據通過的路由

傳輸層 4 提供傳輸順序信息與響應

會話層 5 建立和中止連接

表示層 6 數據轉換、確認數據格式

應用層 7 提供用戶程序接口

(1)物理層——Physical
這是整個OSI參考模型的最低層,它的任務就是提供網絡的物理連接。所以,物理層是建立在物理介質上(而不是邏輯上的協議和會話),它提供的是機械和電氣接口。主要包括電纜、物理端口和附屬設備,如雙絞線、同軸電纜、接線設備(如 網卡等)、RJ-45接口、串口和並口等在網絡中都是工作在這個層次的。
物理層提供的服務包括:物理連接、物理服務數據單元順序化(接收物理實體收到的比特順序,與發送物理實體所發送的 比特順序相同)和數據電路標識。

(2)數據鏈路層——DataLink
數據鏈路層是建立在物理傳輸能力的基礎上,以幀為單位傳輸數據,它的主要任務就是進行數據封裝和數據鏈接的建立。 封裝的數據信息中,地址段含有發送節點和接收節點的地址,控制段用來表示數據連接幀的類型,數據段包含實際要傳輸 的數據,差錯控制段用來檢測傳輸中幀出現的錯誤。 數據鏈路層可使用的協議有SLIP、PPP、X.25和幀中繼等。常見的集線器和低檔的交換機網絡設備都是工作在這個層次上,Modem之類的撥號設備也是。工作在這個層次上的交換機俗稱“第二層交換機”。
具體講,數據鏈路層的功能包括:數據鏈路連接的建立與釋放、構成數據鏈路數據單元、數據鏈路連接的分裂、定界與同步、順序和流量控制和差錯的檢測和恢復等方面。

(3)網絡層——Network
網絡層屬於OSI中的較高層次了,從它的名字可以看出,它解決的是網絡與網絡之間,即網際的通信問題,而不是同一網段內部的事。網絡層的主要功能即是提供路由,即選擇到達目標主機的最佳路徑,並沿該路徑傳送數據包。除此之外,網絡層還要能夠消除網絡擁擠,具有流量控制和擁擠控制的能力。網絡邊界中的路由器就工作在這個層次上,現在較高檔的交換機也可直接工作在這個層次上,因此它們也提供了路由功能,俗稱“第三層交換機”。
網絡層的功能包括:建立和拆除網絡連接、路徑選擇和中繼、網絡連接多路復用、分段和組塊、服務選擇和流量控制。

(4)傳輸層——Transport
傳輸層解決的是數據在網絡之間的傳輸質量問題,它屬於較高層次。傳輸層用於提高網絡層服務質量,提供可靠的端到端的數據傳輸,如常說的QoS就是這一層的主要服務。這一層主要涉及的是網絡傳輸協議,它提供的是一套網絡數據傳輸標準 ,如TCP協議。
傳輸層的功能包括:映像傳輸地址到網絡地址、多路復用與分割、傳輸連接的建立與釋放、分段與重新組裝、組塊與分塊 。

根據傳輸層所提供服務的主要性質,傳輸層服務可分為以下三大類:
A類:網絡連接具有可接受的差錯率和可接受的故障通知率(網絡連接斷開和復位發生的比率),A類服務是可靠的網絡服務,一般指虛電路服務。
C類:網絡連接具有不可接受的差錯率,C類的服務質量最差,提供數據報服務或無線電分組交換網均屬此類。
B類:網絡連接具有可接受的差錯率和不可接受的故障通知率,B類服務介於A類與C類之間,在廣域網和互聯網多是提供B類服務。

網絡服務質量的劃分是以用戶要求為依據的。若用戶要求比較高,則一個網絡可能歸於C型,反之,則一個網絡可能歸於B型甚至A型。例如,對於某個電子郵件系統來說,每周丟失一個分組的網絡也許可算作A型;而同一個網絡對銀行系統來說則只能算作C型了。

(5)會話層——Senssion
會話層利用傳輸層來提供會話服務,會話可能是一個用戶通過網絡登錄到一個主機,或一個正在建立的用於傳輸文件的會話。
會話層的功能主要有:會話連接到傳輸連接的映射、數據傳送、會話連接的恢復和釋放、會話管理、令牌管理和活動管理 。

(6)表示層——Presentation
表示層用於數據管理的表示方式,如用於文本文件的ASCII和EBCDIC,用於表示數字的1S或2S補碼表示形式。如果通信雙方用不同的數據表示方法,他們就不能互相理解。表示層就是用於屏蔽這種不同之處。
表示層的功能主要有:數據語法轉換、語法表示、表示連接管理、數據加密和數據壓縮。

(7)應用層——Application
這是OSI參考模型的最高層,它解決的也是最高層次,即程序應用過程中的問題,它直接面對用戶的具體應用。應用層包含用戶應用程序執行通信任務所需要的協議和功能,如電子郵件和文件傳輸等,在這一層中TCP/IP協議中的FTP、SMTP、POP等協議得到了充分應用。

二、協議層次

網絡中常用協議以及層次關系

技術分享圖片

網絡層:IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議
傳輸層:TCP協議與UDP協議;
應用層:FTP、HTTP、TELNET、SMTP、DNS等協議

HTTP協議

HTTP是一個屬於應用層的面向對象的協議基於tcp,由於其簡捷、快速的方式,適用於分布式超媒體信息系統,全稱是Hypertext Transfer Protocol(超文本傳輸協議),而且它是屬於上面的層次模型的應用層。

HTTPS協議

HTTPS是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

FTP協議

  文件傳輸協議

  主要功能是完成從一個系統到另一個系統完整的文件拷貝。同時,它也是一個應用程序。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的服務器相連,訪問服務器上的大量程序和信息。

  FTP工作原理如下:

   與大多數互聯網服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶機與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。

   FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。

   PORT(主動)方式的連接過程是:客戶機向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶機在命令鏈路上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。於是服務器從20端口向客戶機的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。

   PASV(被動)方式的不同點在於:當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。於是客戶機向服務器的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。

   兩種方式的命令鏈路連接方法是一樣的。

  FTPS協議

  安全文件傳輸協議

FTPS協議在它的下層使用了SSL/TLS 傳輸層協議,可以對控制信息和數據通道進行加密。FTPS可以有多種使用方法,最常見的模法稱為顯式FTPS(Explicit FTPS)。在顯式FTPS的模式下,客戶與服務器的端口21相連接,並且啟動一個普通的非加密的FTP會話,然後,客戶請求TLS(Trasport Layer Security)傳輸層安全機制——進行SSL/TLS協議規定的握手、數字證書認證、建立加密的命令通道和數據通道。通道建立後,任何敏感的數據就可以在命令/數據通道中被加密而傳輸了。(有關SSL/TLS認證和加密的詳細內容請參看《晨曦》2005年12期文章“SSL協議及其應用”。)

  FTPS僅僅是FTP協議的一個擴展,因而它得到大部分服務器的支持,並且由於它和FTP使用同一個端口,在用戶的防火墻上就沒有必要再開另外的端口了。

TCP/IP協議組

TCP/IP協議(傳輸控制協議)由網絡層的IP協議和傳輸層的TCP協議組成。
IP層負責網絡主機的定位,數據傳輸的路由,由IP地址可以唯一的確定Internet上的一臺主機。
TCP層負責面向應用的可靠的或費可靠的數據傳輸機制,這是網絡編程的主要對象。

TCP

TCP,即傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接前,TCP連接都將被一直保持下去。斷開連接時服務器和客戶端均可以主動發起斷開TCP連接的請求。
TCP是一個面向連接的保證可靠的傳輸協議。通過TCP協議,得到的是一個順序的無差錯的數據流。發送方和接收方的成對的兩個Socket之間必須建立連接,以便在TCP協議的基礎上進行通信,當一個Socket(通常都是Server Socket)等待建立連接時,另一個Socket可以要求進行連接,一旦這兩個Socket連接起來,它們就可以進行雙向數據傳輸,雙方都可以進行發送和接收操作。
TCP的適用情況:
TCP發送的包有序號,對方收到包後要給一個反饋,如果超過一定時間還沒收到反饋就自動執行超時重發,因此TCP最大的優點是可靠。一般網頁(http)、郵件(SMTP)、遠程連接(Telnet)、文件(FTP)傳送就用TCP
TCP在網絡通信上有極強的生命力,例如遠程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數據被可靠地傳輸。但是可靠的傳輸是要付出代價的,對數據內容正確性的檢驗必然占用計算機的處理時間和網絡的帶寬,因此TCP傳輸的效率不如UDP高。

UDP

UDP,即用戶數據報協議,是一個無連接的簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報前不用在客戶端和服務器之間建立一個連接,且沒有超時重發等機制,固而傳輸速度很快。
UDP是一種面向無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網路上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間已經內容的正確性都是不能被保證的。
UDP的適用情況:
UDP是面向消息的協議,通訊時不需要建立連接,數據的傳輸自然是不可靠的,UDP一般多用於多點通訊和實時的數據業務,比如語音廣播、視頻、QQ、TFTP(簡單文件傳送)、SNMP(簡單網絡管理協議)、RTP(實時傳送協議)RIP(路由信息協議,如報告股票市場,航空信息)、DNS(域名解釋)。註重速度流暢。
UDP操作簡單,而且僅需要較少的監護,因此通常用於局域網高可靠性的分散系統中client/server應用程序。例如視頻會議系統,並不要求音頻視頻數據絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會更合理一些。


TCP與UDP的區別:
1.TCP是可靠的,通過數據校驗保證發送和接收到的數據是一致的;UDP是不可靠的,發送一串數字分組(1,2,3)可能接收到時就變成(1,0,0)了,做UDP連接時需要自己做數據校驗。
2.TCP數據是有序的,以什麽順序發送的數據,接收時同樣會按照此順序;UDP是無序的,發出(1,2,3),有可能按照(1,3,2)的順序收到。應用程序必須自己做分組排序。
3.TCP因為建立連接、釋放連接、IP分組校驗排序等需要額外工作,速度較UDP慢許多。TCP適合傳輸數據,UDP適合流媒體。
4.UDP比TCP更容易穿越路由器防火墻。

Telnet協議

遠程登錄服務協議

它的基本功能是,允許用戶登錄進入遠程主機系統。通過遠程登錄,我們允許用戶在遠地機器上建立一個登錄會話,然後通過執行命令來實現更一般的服務,就像在本地操作一樣。這樣,我們便可以訪問遠地系統上所有可用的命令,並且系統設計員不需提供多個專用的服務器程序。

  Telnet協議是TCP/IP協議族中的一員,應用Telnet協議能夠把本地用戶所使用的計算機變成遠程主機系統的一個終端。

  它提供了三種基本服務:

  1)Telnet定義一個網絡虛擬終端為遠地系統提供一個標準接口。客戶機程序不必詳細了解遠地系統,他們只需構造使用標準接口的程序;

  2)Telnet包括一個允許客戶機和服務器協商選項的機制,而且它還提供一組標準選項;

  3)Telnet對稱處理連接的兩端,即Telnet不強迫客戶機從鍵盤輸入,也不強迫客戶機在屏幕上顯示輸出。

   然而事情總是具有兩重性的,Telnet在為用戶提供遠程登錄服務的同時,也為黑客侵入服務器系統提供了方便。因此,在WindowsNT操作系統提供的Telnet服務中設置了安全認證機制,即NTLM(WindowsNT LAN Manager)。這是一種基於挑戰/響應驗證的機制。其工作流程是這樣的:

  1、客戶端首先在本地加密當前用戶的密碼成為密碼散列;

  2、客戶端向服務器發送自己的帳號,這個帳號是沒有經過加密的,明文直接傳輸;

  3、服務器產生一個16位的隨機數字發送給客戶端,作為一個 challenge(挑戰);

  4、客戶端再用加密後的密碼散列來加密這個 challenge ,然後把這個返回給服務器。作為 response(響應);

  5、服務器把用戶名、給客戶端的challenge 、客戶端返回的 response 這三個東西,發送域控制器;

  6、域控制器用這個用戶名在 SAM密碼管理庫中找到這個用戶的密碼散列,然後使用這個密碼散列來加密 challenge;

  7、域控制器比較兩次加密的 challenge ,如果一樣,那麽認證成功。

  詳細了解認證:NTLM認證協議及SSPI的NTLM實現

  更多協議了解:網絡中常用的各種協議(針對TCP/IP協議組)

常見的網絡協議