hdlc的一幀信息包括以下幾個(gè)場(chǎng)(field),如表1所示,所有場(chǎng)都是從最低有效位開始傳送。
hdlc幀格式
標(biāo)志
地址場(chǎng)
控制場(chǎng)
信息場(chǎng)
校驗(yàn)場(chǎng)
0x7e
可變
可變
可變
2byte
hdlc協(xié)議規(guī)定,所有信息傳輸必須以一個(gè)標(biāo)志字符開始,且以同一個(gè)字符結(jié)束。這個(gè)標(biāo)志字符是01111110,稱為標(biāo)志場(chǎng)(f)。從開始標(biāo)志到結(jié)束標(biāo)志之間構(gòu)成一個(gè)完整的信息單位,稱為一幀(frame)。所有信息是以幀的形式傳輸?shù)?,而?biāo)志字符提供了每一幀的邊界。接收端可以通過搜索“01111110”來探知幀的開頭和結(jié)束,以此建立幀同步。
在標(biāo)志場(chǎng)之后,有一個(gè)地址場(chǎng)a(address)和一個(gè)控制場(chǎng)c(control)。地址場(chǎng)用來規(guī)定與之同行的從站的地址。控制場(chǎng)可規(guī)定若干個(gè)命令。a場(chǎng)可以為任意長(zhǎng)度,c場(chǎng)為8位或16位。
跟在控制場(chǎng)之后的是信息場(chǎng)i(information)。信息場(chǎng)包含有需要傳送的數(shù)據(jù),也稱數(shù)據(jù)場(chǎng)。并不是每一幀都需要有信息場(chǎng)。當(dāng)信息場(chǎng)為0時(shí),則這一幀主要是控制命令。
緊跟在信息場(chǎng)之后的2個(gè)字節(jié)是校驗(yàn)場(chǎng)。校驗(yàn)場(chǎng)稱為fc(frame check)場(chǎng),校驗(yàn)序列fcs(frame check sequence)。除了標(biāo)志場(chǎng)和自動(dòng)插入的“0”位外,所有的信息都參加crc計(jì)算。通過校驗(yàn)場(chǎng)來檢錯(cuò)/糾錯(cuò),如果超出檢錯(cuò)/糾錯(cuò)范圍之外的多為錯(cuò)誤,那么則不會(huì)被校驗(yàn)發(fā)現(xiàn)。
幀類型
hdlc的幀分成3種類型,分別是信息幀(i-幀)、監(jiān)控幀(s-幀)和無編號(hào)幀(u-幀)。若控制字段的第一個(gè)比特為0,則該幀為信息幀;若前兩個(gè)比特為10,則表示監(jiān)控幀;若為11,則為無編號(hào)幀。其中信息幀和監(jiān)控幀提供差錯(cuò)控制和流量控制,用于完成數(shù)據(jù)鏈路控制的主要功能。
信息幀
信息幀用于傳送有效數(shù)據(jù),通常簡(jiǎn)稱i-幀。在信息幀的控制字段中的n(s)用于用于存放發(fā)送幀序號(hào),以使發(fā)送方不必等待確認(rèn)而連續(xù)發(fā)送多幀。n(r)用于存放接收方下一個(gè)預(yù)期要接收的幀的序號(hào),n(s)和n(r)均為3位二進(jìn)制編碼,可取值0~7。
監(jiān)控幀
監(jiān)控幀用于差錯(cuò)控制和流量控制,通常簡(jiǎn)稱s幀。s幀不帶信息字段,只有6個(gè)字節(jié)。s幀的控制字段的第三、四位為s幀類型編碼,共有四種不同編碼,分別表示:
00-接收就緒(rr),由主站或從站發(fā)送。主站可以使用rr型s幀來輪詢從站,即希望從站傳輸編號(hào)為n(r)的i幀,若存在這樣的幀,便進(jìn)行傳輸;從站也可用rr型s幀來作響應(yīng),表示從站希望從主站那里接收的下一個(gè)i幀的編號(hào)是n(r)。
01-拒絕(rej),由主站或從站發(fā)送,用以要求發(fā)送方對(duì)從編號(hào)為n(r)開始的幀及其以后所有的幀進(jìn)行重發(fā),這也暗示n(r)以前的i幀已被正確接收。
10-接收未就緒(rnr),表示編號(hào)小于n(r)的i幀已被收到,但目前正處于忙狀態(tài),尚未準(zhǔn)備好接收編號(hào)為n(r)的i幀,這可用來對(duì)鏈路流量進(jìn)行控制。
11-選擇拒絕(srej),它要求發(fā)送方發(fā)送編號(hào)為n(r)單個(gè)i幀,并暗示它編號(hào)的i幀已全部確認(rèn)。
3)無編號(hào)幀
無編號(hào)幀其控制字段中不包含n(s)和n(r),簡(jiǎn)稱u幀。u幀用于提供對(duì)鏈路的建立、拆除以及多種控制功能,但是當(dāng)要求提供不可靠的無連接服務(wù)時(shí),它有時(shí)也可以承載數(shù)據(jù)。