计算机网络(八)-数据链路层-帧封装
一.數據鏈路層
1.1 基本概念
- 結點:主機、路由器
- 鏈路:網絡中兩個結點之間的物理通道,鏈路的傳輸介質主要有雙絞線、光纖和微波。分為有線鏈路和無線鏈路。
- 數據鏈路:網絡中兩個結點之間的邏輯通道,把實現控制數據傳輸協議的硬件和軟件加到鏈路上就構成數據鏈路。
- 幀:鏈路層的協議數據單元,封裝網絡層數據報。
數據鏈路層負責通過一條鏈路從一個結點向另一個物理鏈路直接的相鄰結點傳送數據報。
1.2 功能概述
數據鏈路層在物理層提供服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠的傳輸到相鄰結點的目標機網絡層,其主要作用是加強物理層傳輸原始比特流的功能,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數據鏈路,使之對網絡層表現為一條無差錯的鏈路。
功能
- 為網絡層提供服務。
無確認無連接服務,有確認無連接服務,有確認面向連接的服務。 - 鏈路管理,即連接的建立、維持、釋放(用于面向連接的服務)。
- 組幀。
- 流量控制。
- 差錯控制(幀錯/位錯)。
二.封裝成幀和透明傳輸
封裝成幀
2.1 封裝成幀:就是在一段數據的前后添加首部和尾部,這樣就構成了一個幀。接收端在接收到物理層上交的比特流后,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束。
2.2 首部和尾部包含許多的控制信息,他們的一個重要作用:幀定界(確定幀的界限)。
2.3 幀同步:接收方應當能從接收到的二進制比特流中區分出幀的起始和終止。
2.4 組幀的四種方法:
- 字符計數法
- 字符(節)填充法
- 零比特填充法
- 違規編碼法
透明傳輸
2.5 透明傳輸是指不管所傳輸數據是什么樣的比特組合,都應當能夠在鏈路上傳送。因此,鏈路層就“看不見”有什么妨礙數據傳輸的東西。
2.6 當所傳數據中的比特組合恰巧與某個控制信息完全一樣時,就必須采取適當的措施,使接收方不會將這樣的數據誤認為是某種控制信息,這樣才能保證數據鏈路層的傳輸是透明的。
三.組幀方法介紹
3.1 字符計數法
- 幀首部使用一個計數字段(第一個字節,8位)來標明幀內字符數。
- 若第一個自己發生錯誤,這后面每幀都將錯誤。
3.2 字符填充法
- 數據部分可以出現一些與控制信息相同的比特,導致數據截斷丟失,因此需要在數據部分中添加轉義字符,接收方接收到數據在剔除轉義字符和首部、尾部就能還原數據。
3.3 零比特填充法
- 首部和尾部添加 01111110(6個1)
- 在發送端,掃描數據部分,只要連續5個1,就立即填入一個0,避免了和首部尾部標識符的沖突。
- 在接收端收到一個幀時,就先找到首部和尾部(標志字段)確定邊界,再用硬件對比特流進行掃描,發現連續五個1時,就把后面的0刪除。
- 保證了透明傳輸:在傳送的比特流中可以傳送任意比特組合,而不會引起對幀邊界的判斷錯誤。
3.4 違規編碼法
- 由于字節計數法中Count的脆弱性(其值若有錯誤將導致災難性后果) 及字符填充實現上的復雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違規編碼法。
總結
以上是生活随笔為你收集整理的计算机网络(八)-数据链路层-帧封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络复习 数据链路层】3.6.5
- 下一篇: 读取BMP格式数据