《計算機網絡原理》(謝希仁)筆記——第三章

爲本人觀看韓立剛老師視頻所做筆記與總結!下面爲視頻連接:

https://www.bilibili.com/video/av10921041/?from=search&seid=733222547867341420


第三章:數據鏈路層

基本概念:

數據鏈路層使用的信道主要有一下兩種類型:

點對點信道:一對一

廣播信道:一對多(集線器),必須使用專用的共享信道協議來協調這些主機的數據發送

 

鏈路:一條點到點的物理線段,中間沒有任何其他節點

              一條鏈路只是一條通路的一個組成部分

數據鏈路:除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路

              現在最常用的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件

              一般的適配器都包括了數據鏈路層和物理層這兩層的功能

 

數據鏈路層傳送的是幀

幀由網絡層的IP數據報加上幀頭和幀尾構成

 

 

 

三個基本問題:

(1)     封裝成幀

 加上幀首部和幀尾部:用來確定幀的界限

MTU:最大傳輸單元(指除了幀首部和幀尾部的數據部分)(以太網爲1500字節)

接收端只有都收到幀開始符合幀結束符才完整,否則就扔掉

 

 

(2)     透明傳輸:指對於發送者和接收者來說,不知道中間曾經增加過轉義字符

字節填充:幀首部(SOH)和幀尾部(EOT)一般爲不可打印字符,數據內容一般爲可打印字符,若數據內容中出現用於表示幀首部和幀尾部的字符,在SOH和EOT前面加上ESC的acsii碼(其十六進制爲1B),若出現ESC,也在其前面增加ESC字符,當接收端的數據鏈路層向網絡層傳輸數據時,則須刪除轉義字符(ESC),若出現連續兩個轉義字符,則刪除前面一個。

 

(3)     差錯控制

傳輸過程中可能會產生比特差錯:1變成0,0變成1

在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率爲誤碼率BER(Bit Error Rate)

誤碼率與信噪比有很大的關係

 

爲了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須採用各種差錯檢測措施

 

方法之一:循環冗餘檢驗(CRC)(計算重點)(CRC是獲得FCS的一種方法):

1.對要發送的數據左移n爲,實質是乘以2n

2.得到後的數據除以事先選定好的長度爲(n+1)爲的除數,捨去商,保留n位餘數(FCS,即幀檢驗序列),將n位餘數填充到步驟1中填充的0中

接收端接收到數據後,用數據對事先約定的除數進行模2除法,若餘數爲0,則認爲數據傳輸無差錯,若餘數不爲0,由於不知道錯誤與發生在上面地方,不能糾正,捨棄數據

 

只要除數位數足夠多,那麼檢測不到的差錯的概率就很小(當同

 

(模2運算:可以理解爲逢2進位,但進位捨去,保留餘數,實質爲按位異或運算)

 

這樣數據鏈路層只負責沒有差錯的接收,若包傳輸錯誤,則丟掉,數據鏈路層不要求重傳,程序層次(發送端和接收端的應用程序)要求重傳

 

CRC只能做到無差錯接受:即接受的都是對的,但是要做到「可靠傳輸」,還要加上確認和重傳(考慮幀重複,幀丟失,幀亂序),CRC是無比特差錯,而不是無傳輸差錯檢測機制

 

OSI/RM模型認爲:數據鏈路層要做到無傳輸差錯,但這只是理想情況

 

 

兩種情況下的數據鏈路層:

1.使用點對點信道的數據鏈路層(PPP協議)

點到點線路:用戶通過電話線使用PPP協議直接連到ISP

PPP協議:因特網的正式標準

使用撥號電話線接入因特網,身份驗證,欠費,分配IP地址等可以記賬的形式,現不使用撥號上網

 

PPP協議從上到下分爲三個小協議:

網絡控制協議(NCP):協商IP地址

鏈路控制協議(LCP):負責身份驗證,驗證是否欠費

高級數據鏈控制協議(HDLC):

 

PPP協議的兩種分裝方法:

(1)傳輸的是字節

PPP協議幀格式:

 

7E:(01111110)代表開始和結尾

FF:代表目標地址(由於是點對點,目標地址沒有用,所以FF是固定的)

03:固定的

協議:2個字節,用來表示信息部分是哪種類型的數據

信息部分:透明傳輸:

若出現7E,則變成7D,5E

若出現7D,則變成7D,5D

若出現ASCII中的控制字符(即數值小於0x20的字符),在前面增加7D用於轉義

FCS:幀檢驗序列

 

(2)傳輸的是比特流

PPP如果傳比特流(不是8的倍數(1字節爲8bit)),則用零比特填充方法實現透明傳輸:只要發現有5個連續的1,則填入一個0,這樣就不會出現開始和結束標識符(7E(01111110))

 

 

PPP協議使用小和確認機制:

簡單

不保證網絡層傳輸的也是可靠的

FCS可保證無差錯接受

 

PPP協議的工作狀態:

建立物理連接:用戶撥號接入ISP,路由器的調制解調器對撥號做出確認

建立數據鏈路層連接:PC機想路由器發送一系列LCP分組(封裝成多個PPP幀)

建立網絡層配置:分組和響應來選擇一些PPP參數,NCP給PC機房分配臨時額IP地址,使PC機成爲因特網的一個主機

通信完畢:

NCP釋放網絡層協議收回IP地址

LCP釋放鏈路層連接

釋放物理層連接

 

 

 

2.使用廣播信道的數據鏈路層(載波監聽 多點接入/碰撞檢測的機制運行)

局域網特點:網絡爲一個單位所有,且地理範圍和站點數目均有限,具有廣播功能

 

共享通信媒體:鏈路爲所有計算機所共享

靜態劃分信道:在任意兩臺計算機之間都要建立信道(不方便)

頻分複用

時分複用

波分複用

碼分複用

動態媒體介入控制(多點接入)

隨機接入(一接就通)(以太網採用)

受控接入,如多點線路探詢,或輪詢(現很少用)

 

以太網:

最初的以太網是將許多計算機都連接到一根總線上。當初認爲這樣的鏈接方法及簡單又可靠,因爲總線上沒有源器件

 

舉例:一條總線上的計算機A向計算機B發送是數據,實際上所有計算機都會接受到數據,但只有計算機B會處理數據(MAC地址)(可通過抓包工具獲取數據)

 

優點:不用劃分信道

缺點:同一時間只能有一條信道使用(即同時只能有兩臺計算機之間互傳數據)

 

以太網使用CSMA/CD(載波監聽 多點接入/碰撞檢測的簡寫)協議

載波監聽:每一個站在發送數據之前先利用電子技術檢測總線上是否有其他計算機發送的數據信號,如果有,則暫時不發送數據,一面發生碰撞

多點接入:許多計算機以多點接入的方式連接在一根總線上

碰撞檢測:計算機邊發送數據邊檢測信道上額信號電壓大小,

當幾個站同時在總線上發送數據時,總線上的信號電壓擺幅增大,從而可以檢測到,發生碰撞時,總線上傳輸的信號嚴重失真且無法恢復,此時應停止發送避免浪費網路資源

 

使用CSMA/CD協議額以太網不能進行全雙工通信只能進行半雙工通信

每個站在發送數據之後額一小段時間內,存在着遭遇碰撞的可能信,這種發送的不確定性是的整個以太網的平均通信量遠小於以太網的最高數據率

 

爭用期:2τ = 51.2μs(兩倍的端到端的往返時延)

經過爭用期這段時間還沒有檢測到碰撞,可以保證這次發送不會發送碰撞

2τ:對於10Mb/s的以太網來說可以發送512bit,即64字節

最短有效幀長:64字節,以太網規定凡長度小於64字節的幀都是由於衝突而異常中止的無效幀

 

二進制指數類型退避算法(CSMA/CD協議實現的):

發生碰撞的站在停止發送數據後,要推遲一個數據時間才能再發送數據

(1)基本確定時間:一般取值爭用期2τ

(2)定義參數k:k=Min[重傳次數,10]

(3)從整數集合[0,1,2…(2k-1)]中隨機地取出一個數,記爲r,重傳時延爲r倍的基本退避時間

(4)當重傳16場仍不能成功是即丟棄該幀,並向高層報告

 

以太局域網(以太網)

概述:

以太網的兩個標準:1.DIX Ethernet V2(實際所使用的標準)和IEEE的802.3(口頭稱呼)(兩個標準差別很小)

局域網(以太網)的兩個子層:

邏輯鏈路控制LLC子層:(現在因被簡化,不使用LLC協議)

媒體接入控制MAC子層:與接入到傳輸媒體有關的內容都放在MAC子層

 

以太網提供的服務是不可靠的交付,因出現差錯而丟棄幀時,差錯的糾正是由高層來決定

拓撲:

發展:粗同軸電纜——細同軸電纜——(無屏蔽)雙絞線 (都是由於價格問題才改變)

每個站需要使用兩對雙絞線,分別用於發送和接收

此時拓撲方式就從傳統的總線式變成星形(此時有集線器(hub),但現在使用的是交換機)

集線器:一臺計算機發送數據,所有的計算機都可以收到,集線器是使用電子器件來模擬實際電纜線的工作,此時的系統實質還是總線網,仍然使用CSMA/CD協議,集線器工作在物理層     

信道利用率:

發送一幀的平均時間:一個幀從開始發送,經過可能發送的碰撞後,將再次重傳數次,知道發送成功且信道轉爲空閒(即再經過τ時間是的信道上無信號)爲止

 

參數a:a=τ/T0(想要a越小,以太網長度不能太長,幀長不能太短)

 

理想情況下信道利用率的最大值(不發生碰撞):

 

MAC層:

每個網卡有一個唯一的MAC地址(48位二進制,前24位代表廠家,後24位廠家指定)

MAC地址==硬件地址==物理地址==適配器地址==適配器標識符EUI-48

 

可以人工指定一個MAC地址,即不使用網卡的MAC地址(MAC地址衝突不會報錯,也不通)

 

適配器(網卡)從網絡上每接收到一個MAC幀就首先用硬件檢查Mac幀中的MAC地址,從而決定是否處理

單播幀:一對一

廣播幀:一對全體(目標地址:全1(48位))

多播幀:一對多(目標地址由IP構造)

 

以太網:曼徹斯特編碼(只要有開始標誌就可以,當後面不再變化時則表示幀結束)

 

無效的MAC幀:丟掉,以太網不負責重傳,應用層負責重傳丟棄的幀

(1)幀的長度不是整數字節

(2)FCS有差錯

(3)數據(IP數據報)的長度不在46——1500字節之間

(4)有效的MAC幀長度不在64(6+6+2+46+4)——1518字節之間

 

幀間最小間隔爲9.6μs,相當於96bit的發送時間,(一個站在檢測到總線開始空閒後,還要等待9.6μs菜呢鞥再次發送數據),這樣做是爲了站將剛剛接收到的數據處理掉,做好接收下一幀的準備

 

 

 

 

擴展以太網:效率不高(衝突域),連的計算機越多效率越低,一般不超過30臺

此時出現網橋,網橋有學習功能(現很少使用網橋,多使用交換機

計算機1,2,3之間的通信和4,5,6之間的通信可以同時進行(如圖),使衝突域增加,效率提高:

 

透明網橋:是一種即插即用設備,,其標準是IEEE的802.10

即局域網上的站點並不知道所發送的幀將經過哪幾個網橋,網橋對各站點來說是看不見的

 

 

 

交換機:當網橋的接口足夠多時,每個接口將不再接集線器,而是接交換機,此時就是交換機,完全沒有衝突域(安全),也無法抓包連在同一臺交換機上的計算機通信的數據

如果說交換機是10M指的是每一個接口熟慮爲10M(端口帶寬是獨享的)

如果計算機接在交換機上,可以設置成全雙工(即同時收發)

 

交換機的生成樹算法

 

若交換機與計算機之間連成環,只要計算機發一條廣播,則此廣播將被無限轉發,浪費網絡資源,只有樹狀結構沒有環,所以要連成樹狀結構

 

 

MAC地址小的交換價優先選爲根

對於交換機來說,非根的交換機的接口中,離根近(遠近看帶寬)的被選爲根端口

對於線來說,離根近的一段被選爲指定端口

剩下的爲非指定端口(阻斷端口)(相當於拔掉網線)

集線器不參與生成樹

如圖:在交換機A與交換機C之間的線路上,一段通一段不通,在線路中間可以接一臺集線器,再接計算機,此時可以通

 

 

 

 

 

 

LAN和VLAN:

一個交換機連上計算機稱爲一個網段,計算機可以查看一個網段上其他計算機的共享資源

 

局域網(LAN):一個網段稱爲一個局域網(因爲要接在同一臺計算機上,因此是以位置劃分的)

虛擬局域網(VLAN):以邏輯劃分的局域網(想怎麼分怎麼分)

 

VLAN的幹道鏈路:可以跑多個VLAN的數據(統計時分複用(加標記))

一條線路如果要訪問多個VLAN,要配置成幹道鏈路

如果只訪問一個VLAN,則配置成訪問鏈路

 

 

 

 

 

高速以太網:100BASE-T(100Mb/s)之前爲10BASE-T

全雙工——無衝突——不用使用CSMA/CD協議

但MAC幀格式仍然爲802.3標準

最短幀長度不變

一個網段的最大電纜長度減小爲100m

幀間時間間隔從原來的9.6μs改爲0.96μs

接口有存儲轉發功能(多條數據則排隊)

 

 

 

 

 

建網3層模型:

計算機——接入層交換機——匯聚層交換機——核心層交換機——路由器——連入Internet

 

 

 

交換機上實現接入安全(數據鏈路層安全):

交換機的接口可以設置只能接某一個固定的MAC地址(換一臺計算機接這條網線則不通)

也可以在交換機上設置若上網的計算機超過某個數量則不通