二、物理層與數據鏈路層

物理層

  介於因特網的分層架構,所以對於每一層的作用必然是我們學習的重點。而物理層作爲因特網的最低層,它的作用就是連接物理主機並傳輸比特流。傳輸比特流大致分爲兩種方式:電話交換與分組交換。這兩種方式的區別是如何爲網絡流量分配傳輸線路

電路交換

  採用這種方式傳輸數據必須有 建立連接 – 傳輸數據 – 斷開連接的過程。但是由於因特網上傳輸數據具有突發性,並不是平均每個時間都有數據在傳輸,因此當沒有數據傳輸卻仍然佔據着線路,這是對資源的極大浪費,因此這種方式很少採用。

分組交換

  另外一種方式就是分組交換。我們可以把因特網看作是N條線路連接起來的網絡,電路交換的問題就是當從主機A傳輸數據到主機B需要經過X、Y、Z三條線路時,數據僅在線路X上傳輸時,線路Y、Z也是被佔用無法被其他傳輸過程使用的,而分組交換是當數據在X上傳輸時,Y、Z仍然可以服務於其他數據傳輸過程。分組交換的核心思想就是存儲轉發,其最重要的設備就是路由器,當網絡層的分組經過路由器時,路由器會將其存儲下來,然後查找自身的轉發表再選擇合適的線路轉發出去。
  所以總結一下:物理層的作用就是傳輸二進制流。

數據鏈路層

  數據鏈路層位於物理層之上,網絡層之下,它負責將網絡層的數據報(分組)封裝成幀,便於傳輸,除此之外,它還提供了透明傳輸差錯檢測的功能,可以發現,它是爲網絡層服務的。
在這裏插入圖片描述
封裝成幀
  記住,在網絡上傳輸的永遠是0101101100這樣的二進制數據流,但是爲什麼我們在網絡的不同分層上有不同的叫法呢?因爲在網絡中傳輸的數據其實都是以分組(IP數據報)爲單位進行傳輸的。雖然各層傳輸的都是二進制流,但是它們之間還是有區別的,在網絡層,傳輸的數據叫作IP數據報分組。因爲在網絡層傳輸時網絡層協議(其實協議就是軟件)會在傳輸層傳下來的數據包前面加上特定的協議信息組成IP數據報,而在數據鏈路層,在不同的協議下傳輸的數據也會加上不同的協議信息。如下面的圖所示:
在這裏插入圖片描述
而爲了讓物理層能夠在比特流中識別一個幀,我們需要在IP數據報前面加上幀首部和幀尾部。所謂的幀尾部和幀首部其實就是分割不同幀的標誌— 即確定幀的界限。ASCII碼中有33個字符是不可打印的,它們都可以作爲控制字符。

透明傳輸
  我們在網絡中傳輸的不僅僅是文本,還有視頻、音頻等二進制數據,那麼如果我們傳輸的數據中出現了控制字符怎麼辦?因特網的前輩們相出的方法是當在傳輸的數據部分出現控制字符時,在其前面加上轉義字符,即告知轉義字符後面的數據需要轉義,並不是真正的幀結束和開始標記。如果傳輸的數據中還有轉義字符,那麼就在轉義字符前面再加上轉義字符。這樣子實現了傳輸控制字符的功能即透明傳輸。

差錯檢測
  在因特網中傳輸的數據因爲各種現實原因,難免會出錯,那麼我們怎麼知道我們接收到的數據就是原來發送的數據呢?這個就是在鏈路層來解決這個問題,即差錯檢測。差錯檢測有很多種實現方式,這裏講一種最常見的,即循環冗餘校驗(CRC)。下面介紹其基本思想:
  假設要傳輸一個k位的比特流,在其後加上n位的幀校驗碼組成(k+n)位進行傳輸,然後在接收端用這個(k+n)位的數據除以一個除數,看餘數是否爲0,如果不爲0就代表數據傳輸過程中出現差錯。那麼那個幀校驗碼是如何得到的?首先,我們選擇一個合適的除數(它的選擇其實有點複雜),假設是m位的,那麼我們在原來要傳輸的數據k後面加上m-1個0得到新數據n,然後用n/m得到一個餘數,這個餘數就是幀校驗碼。原數據加上幀校驗碼傳輸到達目的地時又除以約定的除數,如果餘數不爲0則代表傳輸出錯。 注意:數據鏈路層實現的是差錯檢測,而不是可靠傳輸,可靠傳輸是傳輸層實現的功能。

  在數據鏈路層,有兩種常用的信道類型,一是點對點信道,二是廣播信道。在這兩種不同的信道上通信使用的是不同的傳輸協議,即PPP協議CSMA/CD協議。對於PPP協議來說,其實現的功能用戶與ISP進行通信,這裏只是提一下,感興趣的小夥伴自己可以查閱資料,推薦《TCP/IP詳解卷一》。對於CSMA/CD協議,我們需要好好看一看。

局域網的數據鏈路層
  在局域網(根據網絡大小區分)中,以太網是應用最爲廣泛的通信技術,它使用的都是廣播信道。常見網絡拓撲結構有如下幾種:
在這裏插入圖片描述
除此之外,IEEE 802委員會將局域網的數據鏈路層分成兩層:

  1. 邏輯鏈路控制LLC層
  2. 媒體接入控制MAC層
    在這裏插入圖片描述
    但實際上大多數網卡(適配器)上都只實現了MAC層,因此我們後面對局域網的數據鏈路層的討論也只會侷限於MAC層。
    上面提到了網卡。對於這種設備很有必要介紹一下:它是我們計算機想要上網的必要設備,大致可分爲有線網卡和無線網卡,它在出廠時就會被分配一個獨一無二的48位(6字節)的MAC地址。注意:網卡是有過濾功能的,它會對每次接收到的數據幀進行檢查,如果發現其目的地址不是自身或者幀本身傳輸出錯,則會丟掉不作處理
    在這裏插入圖片描述
    家庭局域網
      可以看到家庭局域網是星型結構。
    在這裏插入圖片描述
    CSMA/CD協議
      它是用於總線拓撲結構之上的一種協議,即載波監聽和碰撞監測。其基本思想是:在主機發送數據前或發送數據中都需要監測信道,看是否有其他主機同時在發送數據,如果是,則取消這次數據的發送,等待隨機時間後再次發送。實際上星型網絡拓撲結構從邏輯上來看也是總線類型的拓撲結構。

以太網的MAC層
  我們重點需要學習以太網MAC層上傳輸的數據幀的格式,如下圖所示:
在這裏插入圖片描述
以太網層的任務:
  把來自網絡層的IP數據報加上特定的首部和尾部組成數據幀,然後傳給物理層;另外解析來自物理層的數據幀並進行過濾,剝除數據幀的幀首部和幀尾部取出IP數據報交給網絡層
  看上圖,數據幀的幀首部有6字節的源地址、6字節的目的地址和2字節的協議類型標識,另外幀尾部有4字節的幀校驗序列。源地址即表明此數據幀上次所經過設備的MAC地址,而目的地址表示此數據幀要交付的目標設備的MAC地址。而2字節的類型表示數據部分傳輸的是哪種協議的數據報,常見的有IP數據報、ARP請求和應答數據報。如下圖:
在這裏插入圖片描述
特別需要注意的是:數據幀的數據部分是有長度限制的:其必須是 [46, 1500] 之間。爲什麼需要限制數據幀的大小呢?個人觀點是:網絡層傳輸分組是基於存儲轉發的機制實現的,如果數據幀太大,勢必會導致路由器因緩存區滿而丟掉一部分數據包,導致網絡傳輸效果差;另外一點,過大的數據幀傳輸也會消耗更多的時間,導致佔據信道時間過長,進而導致另外一部分數據長時間無法轉發導致響應率低的問題。

由於數據從一個主機到另一個主機的傳輸勢必需要經過網絡層,因此這裏不介紹數據傳輸的過程,等下一篇文章再討論。

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