數據鏈路層的定義
對數據鏈路層有對上的網絡層接口. 對下提供物理層的接口.
定義合適的傳輸差錯率
對傳輸流進行管理, 以免快速的傳輸的數據被淹沒. 比如發送端發送信號太快, 接受方接受速度較慢, 此時數據鏈路層就需要提供一定的功能解決這個問題
物理層上傳輸的基本單元是比特, 將其變成一個連續的信號或者信號傳輸. 在鏈路層將數據轉換為一塊一塊的進行傳輸, 每一塊叫做一個數據幀, 傳輸的基本單元叫做數據幀
數據鏈路層功能
將網絡層數據 加上一定的校驗, 使得數據成為一個可靠的數據
相連
兩臺計算機之間有物理介質連接
物理鏈路
兩個節點之間有一個真正的物理節點, 這邊有一個物理層, 那邊有一個物理層, 這邊的二進制比特串可以傳到那邊的物理層.
數據鏈路
通過數據鏈路協議實現數據的可靠傳輸, 兩個數據鏈路層之間就形成了一個數據鏈路, 并且數據的傳輸有正確性保證.
數據鏈路層服務
1. 無確認無連接
在數據傳輸前不用建立數據鏈路收到數據幀不需要給對方一個確認消息
2. 有確認無連接
在數據發送前不需要建立連接, 即不需要建立數據鏈路, 但是對方收到一個數據時必須給發送方發送一個確認消息. 適用于信號傳輸速度延時較長的
3. 有確認有連接
在數據發送之前必須向對方主機打招呼, 必須建立一條完整的數據鏈路, 當對方接收到數據后, 也必須向發送方發送一個確認消息, 例如電話
數據的可靠傳遞
1. 將傳輸信息合成一個幀
(1)字符計數法
每一個幀的首部為幀的長度, 后面為幀的內容. 比如在發送一個幀為 1 2 3 4 時, 此時在幀的首部加上一個 5, 此時接收方接受到這個幀是 5 1 2 3 4, 此時接受方就認為收到的幀的長度是5, 它就再往后接受四個字節的數據幀
這種方法數據幀的長度一旦被誤讀, 則會產生不可收拾的錯誤
(2)帶字符填充的首尾界填充
在發送一個數據幀的時候, 給數據幀的首部和尾部加上一個特殊的字符 7E 表示幀的結束和開始, 數據幀的內容用是 ASCII 可顯示字符, 但是當數據幀中本來就有一個數據對應的字符是 7E 的時候, 此時傳輸數據幀的時候就在數據 7E 前加上一個 1B, 當接受方接受數據的時候發現數據幀中有一個 1B 的字符, 此時再向后檢測, 此時發現后面是一個 7E, 這是就將 1B 去除, 這樣就達到了數據的準確收發.
(3)帶位填充的首尾標志法
用 01111110 作為幀頭和幀為的標志, 在發送的時候如果幀的內容是中有 6 個連續的 1 的時候, 此時當傳輸到第 6 個 1 的時候就在第五個1后面插入一個 0, 此時就不會出現數據幀的錯誤,接收端在接受的時候對整個幀進行檢測, 如果發現了 5 個 1 后面的第六個二進制數是一個 0, 此時就說明它是在發送端發送的時候加上去的, 此時接受方就將這個 0 去掉, 如果對幀的二進制在進行從頭到尾的掃描時, 發現了有 6 個連續的 1 , 此時就說明這是真的結束標識, 這樣就完成了一個幀的準且發送和接受.
(4)物理層編碼違例法
用連續的高電平或者連續的低電平表示真的開始和結束