1. 程式人生 > >協議棧CheckList

協議棧CheckList

smtp 我們 相關 傳輸層協議 子郵件 因此 流量 同步 doc

協議?何謂協議?協議是用來幹什麽的?

與人類活動進行對比即可理解協議,因為我們無時無刻不在執行協議!

舉一個典型交互過程:

  人類協議(至少說是好的行為方式)要求一方首先進行問候(張三對李四“你好”),以開始與另一個人的通信。對“你好”的典型響應是返回一個“你好”的報文。李四用一個熱情的“你好”進行響應,隱藏著一種指示,表明張三能夠繼續向李四進行詢問了。對最初的“你好”的不同響應(例如“不要煩我”“我不會說中文”或一些不合時宜的回答)也許表明了一個勉強的或者不能繼續進行的通信。在此情況下,按照人類協議,張三也許不能繼續向李四發送報文了。(註意在我們人類協議中,有我們發送的特定報文,也有我們根據接收到的應答報文或其他時間采取的動作,例如在某個時間內沒有回答)。顯然,這些報文的發送和接收或其他事件的出現時所采取的動作,這些在一個人類協議中起到了核心作用。如果人類適用不同的協議(例如,如果一個人講禮貌,而另一個人不講禮貌,或另一個人明白時間概念,而另一個人不知道),該協議就不能互動通信,因而不能完成部分工作。而在網絡中這個道理是成立的。即為了完成一項工作,要求兩個(或多個)通信實體運行相同的協議。

  而定義一個協議的關鍵元素是:一個協議定義了兩個或者多個通信實體之間交換的報文格式和次序,以及報文發送和/或接受一條報文或其他時間所采取的動作。

如今,各類協議在網絡中被執行,因此,做一個CheckList,先上大綱:

技術分享圖片

                    五層因特網協議棧

應用層:

  應用層是網絡應用程序及他們的應用層協議存留的地方。因特網的應用層包括許多協議,例如HTTP(它提供了Web文檔的請求和傳送),SMTP(它提供了電子郵件報文的傳送)。

   應用層協議分布在多個端系統上,一個端系統中的應用程序使用協議與另一個端系統中的應用程序交換信息的分組。我們將這種位於應用層的信息分組稱之為報文。

傳輸層:

  因特網的傳輸層在應用程序端點之間傳送應用層報文。在因特網中,有兩個傳輸層協議,即TCP、UDP,利用其中的任一個都能傳輸應用層報文。TCP向它的應用程序提供了面向連接的服務(長連接)。這種服務包括了應用層報文向目的地的確保傳遞和流量控制(即發送方和接收方速率匹配)。TCP也將長報文劃分為短報文,並提供擁塞控制機制,因此當網絡擁塞時,源抑制其傳輸速率。UDP協議向它的應用程序提供無連接服務。這是一種不提供不必要服務,沒有可靠性,沒有流量控制,也沒有擁塞機制。

網絡層:

  因特網的網絡層負責將稱為數據報的網絡層分組從一臺主機移動到另一臺主機。在一臺源主機中的因特網運輸層協議(TCP或UDP)想網絡層遞交運輸層報文段和目的地址,就像通過郵政服務寄信件時提供一個目的地址一樣。

  因特網的網絡層包括著名的IP協議,該協議定義了在數據報中的各個字段以及端系統和路由器如何作用於這些字段。僅有一個IP協議,所有具有網絡層的因特網組件必須運行IP協議。因特網的網絡層也決定路由的路由選擇協議。它使得數據報根據該路由從源傳輸到目的地。因特網具有許多路由選擇協議。因特網是一個網絡的網絡,在一個網絡中,其網絡管理者能夠運行所希望的任何路由選擇協議。盡管網絡層包括了IP協議和一些路由選擇協議,但通常把它簡單地成為IP層,這反映了IP是將因特網連接在一起的粘合劑這樣的事實。

鏈路層:

  因特網的網絡層通過源和目的地之間的一些類路由器路由數據報。為了將分組從一個節點(主機或路由器)移動到路徑上的下一個節點,網絡層必須依靠該鏈路層的服務。特別是在每個節點,網絡層將數據報下傳給鏈路層,鏈路層沿著路徑將數據報傳送給下一個節點,在下個節點,鏈路層數據將數據報上傳給網絡層。

  由鏈路層提供的服務取決於應用於該鏈路的特定鏈路層協議。例如,某些協議基於鏈路提供可靠傳遞,從傳輸節點跨域一條鏈路到接收節點。值得註意的是,這種可靠的傳遞服務不同於TCP的靠靠傳遞服務,TCP提供從一個端系統到另一個端系統的可靠交付。鏈路層的例子包括以太網,WIFI和電纜接入網的DOCSIS協議。因為數據報從源到目的地傳送通常需要經過幾條鏈路,一個數據報可能被沿途不同鏈路上的不同鏈路層協議處理。例如,一個數據報可能被一段鏈路上的以太網和下一段鏈路上的PPP所處理。網絡層將受到來自每個不同的鏈路層協議的不同服務。

物理層:

  雖然鏈路層的任務是將整個幀(鏈路層分組稱為幀)從一個網絡元素移動到臨近的 網絡元素,而物理層的任務是將該幀中的一個一個比特從一個節點移動到下一個節點。在這層中的協議仍然是鏈路相關的,並且進一步與該鏈路(如雙絞銅線,單模光纖)的實際傳輸媒體相關。例如,以太網具有許多物理層協議:一個是關於雙絞銅線的,另一個是關於同軸電纜的,還有一個是關於光纖的等等。在每種場合中,跨越這些鏈路移動一個比特是以不同的方式進行的。

技術分享圖片

                        OSI模型

  與因特網協議棧五層協議多出了表示層和會話層。(具體歷史原因不計)

表示層:

  使通信的應用程序能夠解釋交換數據的含義。這些服務包含數據壓縮,數據描述以及數據加密等。

會話層:

  提供了數據交換定界和同步功能,包括了建立檢查點和恢復方案的方法。

技術分享圖片

                協議棧封裝“信息”過程

協議棧CheckList