一.數據鏈路層服務網絡
1. 概述編碼
(1)術語spa
·主機和路由器:結點blog
·鏈接相鄰結點的通訊信道:鏈路(有線、無線、局域網)路由
·鏈路層數據分組:幀同步
(2)數據鏈路層主要任務:經過一條鏈路從一個結點向另外一個物理鏈路直接相連的相鄰結點傳送數據報基礎
2. 鏈路層服務原理
(1)組幀軟件
·封裝數據報構成數據幀,加首部和尾部路由器
·實現幀同步:從比特流中識別數據幀,一般在數據幀首位增長特殊比特串,經過填充轉譯辨別該比特串是否屬於數據
(2)鏈路接入
·若是是共享介質,須要解決信道接入(多個結點使用同一段鏈路)
·幀首部中的MAC地址,用於標識幀的源和目的(不一樣於IP地址)
(3)相鄰結點間可靠交付
·在低誤碼率的有線鏈路上不多采用(如光纖)
·高誤碼率的無線鏈路中須要可靠交付
(4)流量控制:協調相鄰的發送結點和接收結點
(5)差錯檢測
·信號衰減和噪聲會引發差錯
·接收端檢測到差錯後通知發送端重傳或直接丟棄
(6)差錯糾正:接收端直接糾正比特差錯
(7)全雙工和半雙工通訊控制:鏈路兩端結點同時(交替)雙向傳輸
3. 具體實現
(1)鏈路層在網絡適配卡或芯片中實現
(2)連接主機的系統總線由硬件、軟件與固件組成
二.差錯編碼
1. 基本原理:在數據基礎上增長冗餘信息,D -> DR,R爲差錯檢測與糾正比特
2. 分類
(1)分組碼:線性、非線性
(2)卷積碼
3. 檢錯能力:不保證100%可靠
(1)漢明距離:對應兩個比特的不一樣位,編碼集的漢明距離位=爲集中任兩比特漢明距離的最小值
(2)檢錯碼
·若編碼集的漢明距離ds = r + 1,則該差錯編碼能夠檢測r位的差錯
·舉例:編碼集{0000, 0101, 1010, 1111}漢明距離ds = 2,可100%檢測1比特差錯
(3)糾錯碼
·若編碼集的漢明距離ds = 2r + 1,則該差錯編碼能夠糾正r位的差錯
·舉例:編碼集{000000, 010101, 101010, 111111}漢明距離ds = 3,可糾正1比特差錯,如100010糾正爲101010
4. 奇偶校驗碼
(1)1比特校驗位:檢測奇數位差錯,50%
(2)二維奇偶校驗:檢測奇數位差錯、部分偶數位差錯,糾正同一行/列的奇數位差錯
5. Internet校驗和
(1)發送端:將數據劃分爲16位的二進制整數序列,補碼求和,高位加回,取反放入分組校驗和字段
(2)接收端:相同方法計算,取反全0,不取反全1,不然有錯
6. 循環冗餘校驗碼(CRC):檢錯能力更強大的差錯編碼
(1)將數據比特D視爲一個二進制數
(2)選擇一個r+1位的比特模式G(生成比特模式)
(3)目標:選擇r位的CRC比特R,知足:
·<D, R> 恰好能夠被G整除,即模2
·接收端檢錯:利用G除<D, R>,若是餘式全0則無錯
·能夠檢測全部突發長度小於r+1位的差錯
(4)普遍應用於實際網絡
(5)舉例: