天天看點

OSI與TCP/IP各層的結構與功能,都有哪些協定五層協定的體系結構

前言:從今天開始後續會不斷更新計算機網絡的一些非常重要的知識,可能很多人都不知學計算機網絡有什麼用,我想說的是它真的比較重要,像咱們學校隻要是學計算機這個專業都要學習這門課程。另外大家要是去一些像bat,阿裡,蘑菇街,騰訊….這樣的大公司面試的話,tcp/ip知識也是必不可少的。我每次發的文章就是面試經常會涉及的問題。

osi的七層體系結構概念清楚,理論也很完整,但是它比較複雜而且不實用。在這裡順帶提一下之前一直被一些大公司甚至一些國家政府支援的osi失敗的原因:

(1),osi的專家缺乏實際經驗,他們在完成osi标準時缺乏商業驅動力

(2),osi的協定實作起來過分複雜,而且運作效率很低

(3),osi制定标準的周期太長,因而使得按osi标準生産的裝置無法及時進入市場(20世紀90年代初期,雖然整套的osi國際标準都已經制定出來,但基于tcp/ip的網際網路已經搶先在全球相當大的範圍成功運作了)

(4),osi的層次劃分不太合理,有些功能在多個層次中重複出現

學習計算機網絡時我們一般采用折中的辦法,也就是中和osi和tcp/ip的有點,采用一種隻有五層協定的體系結構,這樣既簡潔又能将概念闡述清楚。

OSI與TCP/IP各層的結構與功能,都有哪些協定五層協定的體系結構

結合網際網路的情況,自上而下地,非常簡要的介紹一下各層的作用。

應用層的任務是通過應用程序間的互動來完成特定網絡應用。應用層協定定義的是應用程序(程序:主機中正在運作的程式)間的通信和互動的規則。對于不同的網絡應用需要不同的應用層協定。在網際網路中應用層協定很多,如域名系統dns,支援網際網路應用的http協定,支援電子郵件的smtp協定等等。我們把應用層互動的資料單元稱為封包。

域名系統是網際網路的一項核心服務,它作為可以将域名和ip位址互相映射的一個分布式資料庫,能夠使人更友善的通路網際網路,而不用去記住能夠被機器直接讀取的ip數串。(百度百科)例如:一個公司的web網站可看作是它在網上的門戶,而域名就相當于其門牌位址,通常域名都使用該公司的名稱或簡稱。例如上面提到的微軟公司的域名,類似的還有:ibm公司的域名是www.ibm.com、oracle公司的域名是www.oracle.com、cisco公司的域名是www.cisco.com等。

超文本傳輸協定(http,hypertext transfer protocol)是網際網路上應用最為廣泛的一種網絡協定。所有的www檔案都必須遵守這個标準。設計http最初的目的是為了提供一種釋出和接收html頁面的方法。(百度百科)

運輸層的主要任務就是負責向兩台主機程序之間的通信提供通用的資料傳輸服務。應用程序利用該服務傳送應用層封包。“通用的”是指并不針對某一個特定的網絡應用,而是多種應用可以使用同一個運輸層服務。由于一台主機可同時運作多個線程,是以運輸層有複用和分用的功能。所謂複用就是指多個應用層程序可同時使用下面運輸層的服務,分用和服用相反,是運輸層把收到的資訊分别傳遞上面應用層中的相應程序。

運輸層主要使用以下兩種協定:

1,傳輸控制協定tcp(transmisson control protocol)–提供面向連接配接的,可靠的資料傳輸服務,其資料 傳輸的機關是封包段

2,使用者資料協定udp(user datagram protocol)–提供無連接配接的,盡最大努力的資料傳輸服務(不保證資料傳輸的可靠性),其資料傳輸的機關是使用者資料報

網絡層負責為分組交換網上的不同主機提供通信服務。在發送資料時,網絡層把運輸層産生的封包段或使用者資料報封裝成分組和包進行傳送。在tcp/ip體系結構中,由于網絡層使用ip協定,是以分組也叫ip資料報,簡稱資料報。

這裡要注意:不要把運輸層的“使用者資料報udp”和網絡層的“ip資料報”弄混。另外,無論是哪一層的資料單元,都可籠統地用“分組”來表示。

網絡層的另一個任務就是選擇合适的路由,使源主機運輸層所傳下來的分株,能通過網絡層中的路由器找到目的主機。

這裡強調指出,網絡層中的“網絡”二字已經不是我們通常談到的具體網絡,而是指計算機網絡體系結構模型中第三層的名稱.

網際網路是由大量的異構(heterogeneous)網絡通過路由器(router)互相連接配接起來的。網際網路使用的網絡層協定是無連接配接的網際協定(intert prococol)和許多路由選擇協定,是以網際網路的網絡層也叫做網際層或ip層。

資料鍊路層通常簡稱為鍊路層。兩台主機之間的資料傳輸,總是在一段一段的鍊路上傳送的,這就需要使用專門的鍊路層的協定。在兩個相鄰節點之間傳送資料時,資料鍊路層将将網絡層交下來的ip資料報組裝程幀,在兩個相鄰節點間的鍊路上傳送幀。每一幀包括資料和必要的控制資訊(如同步資訊,位址資訊,差錯控制等)。

在 接收資料時,控制資訊使接收端能夠知道一個幀從哪個比特開始和到哪個比特結束。這樣,資料鍊路層在收到一個幀後,就可從中提出資料部分,上交給網絡層。

控制資訊還使接收端能夠檢測到所收到的幀中有誤差錯。如果發現差錯,資料鍊路層就簡單地丢棄這個出了差錯的幀,以避免繼續在網絡中傳送下去白白浪費網絡資源。如果需要改正資料在鍊路層傳輸時出現差錯(這就是說,資料鍊路層不僅要檢錯,而且還要糾錯),那麼就要采用可靠性傳輸協定來糾正出現的差錯。這種方法會使鍊路層的協定複雜些。

在實體層上所傳送的資料機關是比特。

實體層的作用是實作相鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸媒體和實體裝置的差異。使其上面的資料鍊路層不必考慮網絡的具體傳輸媒體是什麼。“透明傳送比特流”表示經實際電路傳送後的比特流沒有發生變化,對傳送的比特流來說,這個電路好像是看不見的。

在網際網路使用的各種協定找那個,最重要和最著名的就是tcp/ip兩個協定。現在人們經常提到的tcp/ip并不一定單指tcp和ip這兩個具體的協定,而往往表示網際網路所使用的整個tcp/ip協定族。

大家如果對osi七層協定體系結構感興趣的話可以看一下這篇文章:

<a href="http://blog.csdn.net/yaopeng_2005/article/details/7064869">http://blog.csdn.net/yaopeng_2005/article/details/7064869</a>

繼續閱讀