Frame Control

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