Framing(訊框分割)
將資料流(多個連續的frame)透過辨識符號分開
常見有以下方法
character count(字元計數)
較少使用
在frame第一個字元記錄該frame的字元數
ex:
51234
第1個字元為5,表示該frame共有5個
Start and end bytes(with byte stuffing),位元組導向/字元導向
ex:sentinel approach(崗哨法)
Start and end flags(with bit stuffing),位元導向
應用:HDLC
1將開始和結束用01111110做記錄
2每個frame中,若出現連續5個1則自動差入一個0
ex:
0110111111101
會變成
011111100110111110110101111110
由實體層辨識
應用:sonet
…
Error Detection
使用redundancy(冗位)概念增加額外的位元以便在目的地偵測錯誤
常見序列傳輸錯誤有
frame error(資料框錯誤)
receive overrun error(接收逾越錯誤)
parity check error(同位檢查錯誤)
…
錯誤控制常用原理有
parity check
redundancy check
Hamming Code
parity check(同位檢查)
適用於非同步傳輸
原理:增加一個parity bit檢查資料是否有誤
依parity bit要用奇偶數分為
odd parity check(奇數同位檢查)
even parity check(偶數同位檢查)
依計算方法可分為
VRC(vertical redundancy check,垂直重覆檢查),近端用,一般的parity check,檢查列的parity bit
LRC(lognitudinal redundancy check,水平重覆檢查),檢查行的parity bit
two-dimensional parity(二維同位),檢查列和行的parity bit,可明確指出錯誤發生地方
Redundancy Check(重覆檢查)
適用於同步傳輸
方法
1使用算術函數對資料進行計算得到錯誤檢查碼
2錯誤檢查碼會隨資料一起傳送到接收方,在由接收方使用相同算術函數對資料進行計算得錯誤檢查碼
3若錯誤檢查碼與傳送方一樣表示資料正確
可分為
CRC
checksum:將資料加總後取補數
Hamming Code(漢明碼)
具有部份錯誤更正能力
在資料中加入額外parity check bit,並使用hamming distance(漢明距離)
應用
設計在實體層讓資料鏈結層用
VRC
LRC
CRC
應用在tcp,udp
checksum
……………….
CRC(Cyclic Redundancy Check,循環重覆檢查)
和FCS很像,遠端用
常見CRC有CRC-8、CRC-16、CRC-32
CRC位元寬度越長,偵錯效果越好,但要多花時間傳送CRC碼
CRC計算公式: R= D*2^r / G
R:CRC位元
D:資料位元
G:產生器,不同版本的CRC,產生器會不同
r:CRC位元的寬度,可從G推算,ex:G=1001,則r=3
ex:
G=1011,r=3,D=11010011101100
計算過程如下
11010011101100 000 <— input right padded by 3 bits (2^3)
1011 <— divisor(G)
01100011101100 000 <— result (G xor D*2^3 )
-1011 <— divisor(G)
00111011101100 000
—1011
00010111101100 000
—-1011
00000001101100 000
———-1011
00000000110100 000
———–1011
00000000011000 000
————-1011
00000000001110 000
————–1011
00000000000101 000
—————-101 1
=================
00000000000000 100 <— remainder (R)
……………………………………….
Error Recovery
當傳輸時發生錯誤,傳送端重新傳送的機制
主要有以下兩種
FEC(forward error correction,前進式錯誤更正)
two-dimensional parity check
ARQ(automatic repeat request,自動重覆要求)
可分為
stop-and-wait method (一般近距離傳輸使用)
go-back automatic repeat request
select-repeat automatic repeat request