摘要:通信工程師傳輸與接入鏈路操作過程:數(shù)據(jù)鏈路層的操作分為三個(gè)階段:鏈路建立、信息傳輸和鏈路斷開。
1.鏈路操作過程
數(shù)據(jù)鏈路層的操作分為三個(gè)階段:鏈路建立、信息傳輸和鏈路斷開。
1) 鏈路建立
DTE通過發(fā)送連續(xù)的標(biāo)志(F)來表示它能夠建立數(shù)據(jù)鏈路。
原則上DTE或DCE都可以啟動(dòng)數(shù)據(jù)鏈路的建立,但通常是由DTE啟動(dòng)的。在開始數(shù)據(jù)鏈路建立之前,DCE或DTE都應(yīng)當(dāng)啟動(dòng)鏈路斷開過程,以確保雙方處于同一階段。DCE還能主動(dòng)發(fā)起DM響應(yīng)幀,要求DTE啟動(dòng)鏈路建立過程。
以DTE發(fā)起過程為例。如圖7.8所示,DTE通過向DCE發(fā)送置異步平衡方式(SABM)命令啟動(dòng)數(shù)據(jù)鏈路建立過程,DCE接收到后,如果認(rèn)為它能夠進(jìn)入信息傳送階段,將向DTE回送一個(gè)UA響應(yīng)幀,數(shù)據(jù)鏈路建立成功; DCE接收到后,如果它認(rèn)為不能進(jìn)入信息傳送階段,它將向DTE回送一個(gè)DM響應(yīng)幀,數(shù)據(jù)鏈路未建立。
為了區(qū)分DCE主動(dòng)發(fā)送的要求DTE啟動(dòng)建鏈的DM幀和作為對DTE發(fā)來的SABM的否定證實(shí)的DM幀,一般要求SABM命令幀置P=1,DCE的響應(yīng)幀UA或DM的F bit為1。這樣根據(jù)收到DM的F bit是否為1即可知道其含義,從而做出不同的處理。
2) 信息傳輸
當(dāng)鏈路建立之后,就進(jìn)入信息傳輸階段,在DTE和DCE之間交換I幀和S幀。雙方都可以通過I幀開始發(fā)送用戶數(shù)據(jù),幀的序號從0開始。I幀的N(S)和N(R)字段是用于支持流量控制和差錯(cuò)控制的序號。LAPB在發(fā)送I幀序列時(shí),會(huì)按順序?qū)λ鼈兙幪枺⑿蛱柗旁贜(S)中,這些編號以8還是128為模,取決于使用的是3 bit序號還是7 bit序號。N(R)是對接收到的I幀的確認(rèn)。有了N(R),LAPB就能夠指出自己希望接收的下一個(gè)I幀的序號。
S幀同樣也用于流量控制和差錯(cuò)控制。其中,接收就緒(RR)幀通過指出希望接收到的下一個(gè)幀來確認(rèn)接收到的最后一個(gè)I幀。在接收端無I幀發(fā)送時(shí)就需要使用RR幀。接收未準(zhǔn)備就緒(RNR)幀和 RR幀一樣,都可用于對I幀的確認(rèn),但它同時(shí)還要求對等實(shí)體暫停I幀的傳輸。當(dāng)發(fā)出RNR的實(shí)體再次準(zhǔn)備就緒之后,會(huì)發(fā)送一個(gè) RR。REJ的作用是指出最后一個(gè)接收到的I幀已經(jīng)被拒絕,并要求重發(fā)以N(R)序號為首的所有后續(xù)I幀。
3) 鏈路斷開過程
鏈路斷開過程是一個(gè)雙向的過程,任何一方均可啟動(dòng)拆鏈操作。這既可能是由于LAPB本身因某種錯(cuò)誤而引起的中斷,也可能是由于高層用戶的請求。以DTE發(fā)起為例,如圖7.9所示,若DTE要求斷開鏈路,它向DCE發(fā)送DISC命令幀,DCE若原來處于信息傳輸階段,則用UA響應(yīng)幀確認(rèn),即完成斷鏈過程;若DCE原來已經(jīng)處于斷開階段,則用DM響應(yīng)幀確認(rèn)。基于和建鏈同樣的考慮,要求DISC命令幀置P=1,其對應(yīng)的響應(yīng)幀UA或DM置F=1。拆鏈后要通知第三層用戶,說明該連接已經(jīng)中止。所有未被確認(rèn)的I幀都會(huì)丟失,而這些幀的恢復(fù)工作則由高層負(fù)責(zé)。
4) 鏈路恢復(fù)
鏈路恢復(fù)指的是在信息傳送階段收到協(xié)議出錯(cuò)幀或者FRMR幀,即遇到無法通過重發(fā)予以校正的錯(cuò)幀時(shí),自動(dòng)啟動(dòng)鏈路建立過程,使鏈路恢復(fù)初始狀態(tài),兩端發(fā)送的I幀和S幀的N(S)和N(R)值恢復(fù)為零。
5) 鏈路層控制操作舉例
鏈路層的功能是保證I幀的正確傳輸,而I幀的傳輸控制是通過幀的順序編號和確認(rèn)、鏈路層的窗口機(jī)制和鏈路傳輸定時(shí)器等功能來實(shí)現(xiàn)的。
(1) 幀的確認(rèn)。在每個(gè)I幀中,既有N(S),又有N(R),因此I幀一方面可以表示自己所發(fā)送幀的序號,另一方面可以對對方的幀進(jìn)行確認(rèn)。如果有I幀發(fā)送,通常都是用I幀確認(rèn);如果要對對方的幀進(jìn)行確認(rèn),而自己又沒有需要發(fā)送的數(shù)據(jù),則采用S幀(RR或RNR)來進(jìn)行確認(rèn)。I幀和S幀中的N(R)表示編號為N(R)-1及以前的幀均已正確接收。為了提高傳輸效率,可以在連續(xù)接收多個(gè)I幀之后,對于順序號正確的多個(gè)I幀進(jìn)行一次確認(rèn),確認(rèn)幀的N(R)等于正確接收的最后一個(gè)幀的N(S)加1。幀的確認(rèn)過程的例子如圖7.10(a)所示。
圖7.10(b)顯示了有忙狀態(tài)存在的情況。導(dǎo)致這種狀態(tài)的原因可能是由于接收端處理I幀的速度不如I幀數(shù)據(jù)到達(dá)的速度快。此時(shí)接收端緩存器會(huì)填滿,它不得不使用RNR命令幀來要求發(fā)送端停止發(fā)送I幀。當(dāng)忙狀態(tài)清除后,DTE返回一個(gè)RR幀,這時(shí)來自DCE的I幀傳輸可以繼續(xù)進(jìn)行。
(2) 鏈路層窗口。在數(shù)據(jù)鏈路上對信息流進(jìn)行控制,經(jīng)常采用的方法是滑動(dòng)窗口(Sliding Window)控制。窗口控制的主要作用是在數(shù)據(jù)鏈路上限制發(fā)送幀的最大數(shù)目。
采用窗口控制協(xié)議時(shí),要求通信的兩節(jié)點(diǎn)設(shè)置窗口,這種窗口實(shí)質(zhì)上是一個(gè)緩沖區(qū),采用循環(huán)隊(duì)列的方式。發(fā)送端的發(fā)送窗口用于保存已發(fā)送但未確認(rèn)的幀,在發(fā)送一個(gè)幀的同時(shí),將該幀存入緩沖區(qū),當(dāng)收到相應(yīng)的確認(rèn)后再從緩沖區(qū)中清除。接收端的接收窗口則指示準(zhǔn)備接收的幀的序號。發(fā)送端每發(fā)送一幀,就在緩沖區(qū)中保存一幀,當(dāng)緩沖區(qū)滿時(shí),發(fā)送端不能繼續(xù)發(fā)送幀。在接收到確認(rèn)信號以后,已證實(shí)的幀從緩沖區(qū)中清除,則又可以進(jìn)行后續(xù)幀的傳輸。
鏈路層窗口是由系統(tǒng)參數(shù)K定義的,它表示DTE或DCE可以發(fā)送的未被證實(shí)的順序編號I幀的最大數(shù)量,也稱為窗口尺寸。K的最小值為“1”,最大值為“模數(shù)-1”(對于模8的情況即為“7”)。對于模 8的情況,I幀的順序編號總是由0~7這8個(gè)數(shù)字循環(huán),我們可以把窗口看作是由一個(gè)圓的連續(xù)的八等分扇面組成,如圖7.11所示。每個(gè)1/8圓代表一個(gè)序號,并按順時(shí)針方向編號,圖中我們假定窗口尺寸K=3,最后接收到的I幀或S幀的N(R)=6,表示發(fā)送的編號為5及以前的幀已正確接收。我們把最后收到的幀的N(R)號作為窗口下沿,則窗口的上沿=N(R)+K-1=0(模8)(注意:此N(R)是接收到的幀的N(R),而不是發(fā)送幀中的N(R)),表示可以發(fā)送的I幀的編號是6、7、0。如果現(xiàn)在編號為 6、7的I幀已經(jīng)發(fā)送,則還可以繼續(xù)發(fā)送編號為0的I幀。
當(dāng)發(fā)送的I幀的N(S)等于窗口的上沿時(shí)即停止發(fā)送(相當(dāng)于窗口關(guān)閉),待接收到新的I幀或S幀,N(R)大于上一次的N(R),則窗口的下沿按順時(shí)針方向移到新的N(R)(例如N(R)=7),而窗口的上沿也同時(shí)按順時(shí)針方向移動(dòng)(例如上沿=1),此時(shí)又可以繼續(xù)發(fā)送N(S)=1的I幀了。
以上我們討論的是一個(gè)方向上的傳輸。實(shí)際上,在LAPB中,DTE和DCE之間是進(jìn)行雙向通信的,即每端都有兩個(gè)窗口,一個(gè)用于發(fā)送,一個(gè)用于接收,因此,在每個(gè)I幀中,都既有N(S),又有N(R),一方面表示自己所發(fā)送幀的序號,一方面要對對方的幀進(jìn)行確認(rèn)。
在接口兩側(cè)的DTE和DCE中都有窗口機(jī)制,它并不是一種特別的硬設(shè)備,而是實(shí)現(xiàn)I幀傳輸?shù)捻樞蚩刂频倪壿嬤^程。
利用窗口機(jī)制可以獲得許多重要的功能,具體如下:
(1) 有效地提高了線路的信息傳輸效率。如果我們發(fā)送一個(gè)I幀,等待對方給予確認(rèn)之后才決定是繼續(xù)發(fā)送下一個(gè)幀還是重發(fā)剛發(fā)過的幀,這樣在線路上將會(huì)有許多空閑的時(shí)間,線路傳輸能力不能得到充分的利用。我們采用窗口機(jī)制,允許發(fā)送多個(gè)未被確認(rèn)的幀,這樣在等待對已發(fā)送幀的確認(rèn)的時(shí)候,線路仍然可以發(fā)送下一個(gè)幀,使線路的傳輸能力得到了充分的發(fā)揮。
(2) 保證了信息傳輸?shù)恼_性。窗口機(jī)制和幀的順序編號密切結(jié)合,對于接收到的幀的確認(rèn),除了根據(jù)幀檢驗(yàn)(FCS)結(jié)果給予肯定或否定確認(rèn)之外,嚴(yán)格檢查幀的順序號的正確性,防止漏幀或重幀現(xiàn)象的發(fā)生,保證了信息傳輸?shù)陌踩浴?br/>(3) 窗口機(jī)制為DCE和DTE提供了非常有效的流量控制手段。DCE或 DTE可以通過停止或延緩發(fā)送確認(rèn)幀的辦法,停止或延緩對方I幀的發(fā)送,達(dá)到控制信息流量的目的。
編輯相關(guān)推薦:
通信工程師備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題