計算機網絡,網絡接口層

不僅是記錄我的半吊子基礎知識,也是一次再學習,不敢保證都對

前言

  我們就開始聊一聊TCP/IP體系結構每一層的作用,舉個常見的例子,我作爲一個新手目前寫代碼用的是HTTP協議,它位於應用層,它的下一層運輸層是用的TCP協議,運輸層的下一層,網絡層用的是IP協議。我們說的定位IP地址啥的,就是這個意思。這麼一說,好像實質上TCP/IP只有最上面的三層,那網絡接口層是幹什麼的?
  爲了能將概念講明白,我們把網絡接口層分成兩層來了解,分別是數據鏈路層,物理層。畫個圖就明白了。書上說這是綜合OSITCP/IP的優點,這樣既簡潔又能將概念闡述清楚。
在這裏插入圖片描述

物理層

  物理層是幹什麼的呢?一是爲了計算機之間能夠互相連接,怎麼連接呢?那方式就很多了,銅線啊,電纜啊,光纖啊,無線電啊等等這些不都是用來連接的。二來就是傳輸比特流——bit不就是0或者1嘛,比特流就是一長串的0101010010101001。反正我們是看不懂的。
  專家們把傳送信息的這個通道抽象出來一個概念叫做信道,信道的概念就大了,銅線,電路,光纖可以叫做信道,但是信道不能叫做電路。
  計算機之間的通信包含一條發送信道和一條接收信道。你想啊,我們要是每臺計算機之間都有這麼兩條信道,那全世界這麼多臺計算機,得多少條,剪不斷理還亂。所以,專家們又弄出來一個信道複用技術,讓多臺計算機共享信道。這樣一來,就有一個複用器,這多臺計算機把比特流發給複用器,複用器通過這個共享信道發到目的地,接收端使用一個分用器,發給不同的計算機。

數據鏈路層

  物理層只負責傳輸比特流,那把這麼一長串比特流傳輸過去,誰知道這都是啥啊。所以呢,數據鏈路層就是將比特流封裝一下,比如這幾位比特代表啥,那幾位比特代表啥,這個過程就叫做封裝成幀,幀是一個數據單位,是數據鏈路層的一個基本單位,每一幀的比特流代表一個意義。
  封裝成幀:就是在一段數據的前後添加標記,代表首部和尾部。這樣接收端就可以識別一段比特流的開始與結束。首部編碼稱作SOH(Start Of Hearder),尾部編碼叫做EOT(End Of Transmission)。它們也是用一串的00000001來表示,那這樣就出現了一個問題,假如傳輸的比特流裏有這些標記怎麼辦?比如這樣SOH 0101010101 EOT 01010100101 EOT,在一串比特流裏,真正的結束符之前出現了結束符怎麼辦?這就涉及到了數據鏈路層的另一個作用:透明傳輸
  專家們總是起一些令人疑惑的概念,如果不瞭解的話,就看透明傳輸這個詞,還真不知道這是啥意思。其實是這麼個意思,就是一串比特流中如果出現了SOH或者EOT,那就當它是透明的,看不見。有這個東西,但是我看不見。這就叫做透明傳輸
  透明傳輸:怎麼進行透明傳輸呢?就是用轉義符ESC,它也是一串00011011這樣的比特流。這樣一來,如果比特流中間出現了幀首尾編碼,就把它轉義一下,就像這樣SOH 0101010101 ESC EOT 01010100101 EOT,這不就可以了嘛。我們又有疑問,一串比特流中也出現了轉義符怎麼辦,那就給轉義符也轉義唄,就像這樣SOH 0101010101 ESC ESC 01010100101 EOT。這是不是就很像我們日常寫代碼的那種轉義符\n \t這樣,我們要輸出\就得用\\
  除了上面兩個作用,數據鏈路層還有個作用就是差錯檢測。比如我們在傳輸過程中,被雷劈了,被伽馬射線射中了,出現了差錯怎麼辦,這就用到了差錯檢測。比如用奇偶校驗碼啊,循環冗餘校驗碼CRC啊。這裏就不細說了。

結尾

  這樣,物理層與數據鏈路層就共同組成了TCP/IP的網絡接口層。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章