一種鏈路級數據傳輸定界方法
2023-05-20 01:38:46 1
專利名稱:一種鏈路級數據傳輸定界方法
技術領域:
本發明涉及電信領域鏈路級數據傳輸,尤其是涉及鏈路級數據傳輸過程中的數據分組定界方法。
隨著傳輸技術的飛速發展,特別是光纖技術的廣泛應用,現在的網絡很少存在傳輸錯誤,鏈路級的誤碼率越來越低,同時鏈路傳輸速率越來越高。在這種傳輸錯誤出現概率極低的鏈路上,如果仍然採用傳統方法,使用複雜的定界機制,顯然消耗了較多傳輸資源,徒然增加了額外的傳輸開銷,同時由於定界機制的複雜性可能影響到數據的高速傳輸。目前,鏈路級通用的傳統鏈路傳輸定界方法是基於HDLC(高級數據鏈路控制)幀結構的。HDLC是鏈路級最通用的傳統鏈路傳輸協議,實際上,許多鏈路級協議基於HDLC的幀結構,如SDLC(同步數據鏈路控制)、SS#7(7號信令系統)等。
典型的HDLC幀結構如下
可以看出,整個幀中附加了許多「信息」域之外的域來控制差錯,如同步標識域、地址域、控制域等,特別是複雜的CRC計算大大降低了鏈路傳輸效率,佔用了較多的系統傳輸資源。
另外,為了保證可靠的定界,「信息」域需要在傳輸過程中進行插入/刪除來保證其中不出現同步標識,這同樣佔用系統傳輸資源、降低鏈路傳輸效率。
針對上述現有技術的問題,本發明的目的是,提供一種簡單、高效的鏈路級數據傳輸定界方法,該方法能夠較少消耗系統傳輸資源,較少影響系統數據的高效傳輸。
為達到上述目的,本發明採用的技術方案是一種鏈路級數據分組定界方法,該方法包括數據發送過程和數據接收過程,其中,數據發送過程包括以下步驟(1)初始化數據分組個數變量y=0;(2)插入X個位數為K的二進位同步編碼;(3)傳輸一個分組數據,並使y=y+1;(4)判斷數據傳輸鏈路是否空閒,如果空閒,轉上述步驟(1)繼續操作,否則繼續以下步驟的操作;(5)判斷變量Y的值是否與預定值相等,即已發送的數據分組個數是否與每次同步預定要傳輸的數據分組的個數相等,如果相等,轉上述步驟(1)繼續操作,否則轉上述步驟(3)繼續操作。
數據接收過程包括以下步驟(A)置狀態寄存器T為俘獲狀態,Y為每次同步接收的最多數據分組個數;(B)數據流順序移動一個二進位位進入位數為K移位寄存器R;(C)判斷狀態寄存器T的狀態,如果為俘獲狀態,轉下述步驟(D)繼續操作,如果為預同步狀態,轉下述步驟(F)繼續操作,如果為同步狀態,轉下述步驟(J)繼續操作;(D)判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟(E)繼續操作,否則,轉上述步驟(B)繼續操作;(E)置狀態寄存器T為預同步狀態,然後轉上述步驟(B)繼續操作;(F)繼續接收數據流K減1位,即繼續接收數據流中K-1個二進位位進入移位寄存器R;(G)判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟(H)繼續操作,否則,置狀態寄存器T為俘獲狀態,然後轉上述步驟(B)繼續操作;(H)判斷接收到的二進位同步編碼的個數是否為X個,如果是,轉下述步驟(I)繼續操作,否則,轉上述步驟(B)繼續操作;(I)置狀態寄存器T為同步狀態,然後轉上述步驟(B)繼續操作;(J)接收分組數據並判斷接收到的分組數據是否有錯誤,如果有錯誤,轉下述步驟(L)繼續操作,否則轉下述步驟(K)繼續操作;(K)判斷接收到的數據分組數是否為Y,如果已接收Y個分組,轉下述步驟(L)繼續操作,否則轉上述步驟(B)繼續操作;(L)置狀態寄存器T為俘獲狀態,然後轉上述步驟(B)繼續操作。
上面所述二進位同步編碼可以採用巴克碼、最大長度線性移位寄存器序列,即m序列等偽噪聲編碼。
從上述本發明採用的技術方案可以看出,由於本發明是在數據傳輸鏈路空閒時和僅在鏈路數據傳輸量過大時插入同步信息,不但實現簡單,而且佔用系統傳輸資源少、保證系統的數據傳輸質量,可以使傳輸資源最大限度地用於傳輸數據;同時本發明採用特定的二進位同步編碼進行分組數據的定界,使分組數據中出現同步碼的概率變小,尤其是本發明採用巴克碼、最大長度線性移位寄存器序列,即m序列等偽噪聲編碼作同步碼,使分組數據中出現同步碼的概率變得更小;另外,由於目前鏈路傳輸錯誤的概率極低,本發明放棄了傳統的錯誤校驗,進一步節省了系統的傳輸資源,進而也可以使傳輸資源最大限度地用於傳輸數據,因此本發明簡單、效率高,能夠較少消耗系統傳輸資源,較少影響系統數據的高效傳輸。
下面結合附圖和事實例對本發明作進詳細說明。
圖1是本發明的數據發送過程流程示意圖;圖2是本發明的數據接收過程流程示意圖;圖3是本發明的數據接收過程狀態示意圖。
鏈路級數據傳輸的任務,是在發送方向上,以連續位流形式發送一系列數據分組,必要時通過插入適當數量的填充碼以匹配下層的數據傳輸;在接收方向上,任務正好相反,取出輸入位流,定位分組邊界,將分組數據上傳到高層處理。然而,傳輸任務中最困難的部分是在連續位流中定位分組邊界。在位級上,一個分組是一個不定長度的位的一個序列,為了提高效率,不能象HDLC中那樣,用類似01111110這樣的二進位同步標識來標記分組(幀)的開始和結束。事實上,分組之間沒有任何標記,在這種環境下,分組的邊界識別是一個必須解決的問題。本發明採用二進位同步編碼解決數據分組的邊界識別。
如果在發送端數據流中加入一個K位二進位同步編碼,在接收端,當數據流各位進入時,使用一個K位的移位寄存器,各位從左邊進入,右邊出去,此時不斷檢查這K位,看一下它們是否是有效的二進位同步編碼,如果是,則得到了有效的二進位同步編碼,否則將一個新的輸入位插到最左端;這個過程不斷重複,直到定位了一個有效的二進位同步編碼。這樣就確定了數據分組的邊界。
採用上述方法的二進位同步編碼如果有K位寬度,那麼對於任何給定的位流,甚至是包含隨機位的位流,隨機位流偶然進入同步狀態的概率是2-k,在此概率下會不正確地檢測到二進位同步編碼。如果使用X個K位的二進位同步編碼,對於隨機位流偶然進入同步狀態的概率是2-(kx),因此,通過選擇一個足夠大的X可以使隨機位流偶然進入同步狀態的概率變得相當小,但是大的X的代價是更長時間獲取同步,因此,X的值應根據系統傳輸環境決定。
本發明的採用的方法包括數據發送過程和數據接收過程,其具體實現過程如下數據發送過程包括以下步驟參考圖1。在步驟1,初始化數據分組變量y=0;在步驟2,插入X個位數為K的二進位同步編碼;在步驟3,傳輸一個分組數據,並使y=y+1;在步驟4,判斷數據傳輸鏈路是否空閒,如果空閒,轉上述步驟1繼續操作,否則繼續以下步驟的操作;在步驟5,判斷變量Y的值是否與預定值相等,即已發送的數據分組個數是否與每次同步預定要傳輸的數據分組的個數相等,如果相等,轉上述步驟1繼續操作,否則轉上述步驟3繼續操作;上述本發明的發送過程以連續位流形式發送一系列數據分組,必要時通過插入適當數量的填充碼為同步碼以匹配下層的數據傳輸,同步碼的插入時機是在鏈路傳輸空閒時或僅在鏈路數據傳輸量過大時,為保證系統的數據傳輸質量,控制傳輸的數據分組數為一個合理的數值而插入適當數量的填充碼為同步碼。
數據接收過程包括以下步驟參考圖2。在步驟11,置狀態寄存器T為俘獲狀態,Y為每次同步接收的最多數據分組個數;在步驟12,數據流順序移動一個二進位位進入位數為K移位寄存器R;在步驟13判斷狀態寄存器T的狀態,如果為俘獲狀態,轉下述步驟14繼續操作,如果為預同步狀態,轉下述步驟16繼續操作,如果為同步狀態,轉下述步驟20繼續操作;在在步驟14判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟15繼續操作,否則,轉上述步驟12繼續操作;在在步驟15置狀態寄存器T為預同步狀態,然後轉上述步驟12繼續操作;在步驟16繼續接收數據流K減1位,即繼續接收數據流中K-1個二進位位進入移位寄存器R;在步驟17判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟18繼續操作,否則,置狀態寄存器T為俘獲狀態,然後轉上述步驟12繼續操作;在步驟18判斷接收到的二進位同步編碼的個數是否為X個,如果是,轉下述步驟19繼續操作,否則,轉上述步驟12繼續操作;在步驟19置狀態寄存器T為同步狀態,然後轉上述步驟12繼續操作;在步驟20接收分組數據並判斷接收到的分組數據是否有錯誤,如果有錯誤,轉下述步驟22繼續操作,否則轉下述步驟21繼續操作;在步驟21判斷接收到的數據分組數是否為Y,如果已接收Y個分組,轉下述步驟22繼續操作,否則轉上述步驟12繼續操作;在步驟22置狀態寄存器T為俘獲狀態,然後轉上述步驟12繼續操作。
實際中,由於同步碼必然要佔據一定的數據傳輸時間,使傳輸效率降低,因而希望同步碼短一些,而為了避免產生假同步碼,又希望同步碼長一些,為了兼顧這兩方面的要求,應該使用具有良好相關特性的同步碼,理論研究表明,採用偽噪聲碼,如巴克碼或最大長度線性移位寄存器序列,即m序列,較為適合,尤其是巴克碼。
因此,如果按照上述方法實現本發明,當用於數據分組同步的二進位同步編碼是巴克碼或最大長度線性移位寄存器序列,即m序列等偽噪聲碼時,尤其是當採用位長為11位或13位巴克碼時,會具有更加理想的效果。
下面以二進位同步編碼是3個11位的巴克碼為例對本發明作進一步的說明。參考圖1、2、3。
發送時,當傳輸鏈路初始化後或者暫時空閒時,傳輸插入至少3個11位巴克碼作為填充碼,其中數值3是根據系統環境確定的。可以連續傳輸分組,若連續傳輸有限個分組後,鏈路未出現空閒狀態,則強行插入3個11位的巴克碼。
接收時,使用如圖3的有限狀態機。使用3個狀態俘獲、預同步和同步。
在俘獲狀態,一次移一位進入移位寄存器,查找有效的巴克碼,一旦找到一個,有效狀態機切換到預同步狀態,意味著它已開始嘗試性地準備定位分組邊界,然後移入下面11位,如果上面的定界猜測是正確的話,移位寄存器現在將包含另一個有效的巴克碼;如果移位寄存器現在包含的不是另一個有效的巴克碼,那麼說明上面的定界猜測有誤,必須重新回到俘獲狀態,並且繼續逐位搜索巴克碼。另一方面,如果第二個巴克碼也是正確的,說明路子正確,可以移入另一個11位再次嘗試,以這種方式連續發現3個正確的巴克碼,此時假設已經同步,進入同步狀態,開始正確的分組的提取操作。此時,隨機位流偶然進入同步狀態的概率很小,為2-(33)。
除了在失去同步後或者在啟動時重新同步外,還需要確定何時失去同步。在連續收到多於3個幀後而沒有收到巴克碼,或者收到錯誤的幀後認為失去了同步,強制返回俘獲狀態。
權利要求
1.一種鏈路級數據分組定界方法,其特徵在於,該方法包括數據發送過程和數據接收過程,其中,數據發送過程包括以下步驟(1)初始化數據分組個數變量y=0;(2)插入X個位數為K的二進位同步編碼;(3)傳輸一個分組數據,並使y=y+1;(4)判斷數據傳輸鏈路是否空閒,如果空閒,轉上述步驟(1)繼續操作,否則繼續以下步驟的操作;(5)判斷變量y的值是否與預定值相等,即已發送的數據分組個數是否與每次同步預定要傳輸的數據分組的個數相等,如果相等,轉上述步驟(1)繼續操作,否則轉上述步驟(3)繼續操作。數據接收過程包括以下步驟(A)置狀態寄存器T為俘獲狀態,Y為每次同步接收的最多數據分組個數;(B)數據流順序移動一個二進位位進入位數為K移位寄存器R;(C)判斷狀態寄存器T的狀態,如果為俘獲狀態,轉下述步驟(D)繼續操作,如果為預同步狀態,轉下述步驟(F)繼續操作,如果為同步狀態,轉下述步驟(J)繼續操作;(D)判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟(E)繼續操作,否則,轉上述步驟(B)繼續操作;(E)置狀態寄存器T為預同步狀態,然後轉上述步驟(B)繼續操作;(F)繼續接收數據流K減1位,即繼續接收數據流中K-1個二進位位進入移位寄存器R;(G)判斷移位寄存器R的內容是否為二進位同步編碼,如果是,轉下述步驟(H)繼續操作,否則,置狀態寄存器T為俘獲狀態,然後轉上述步驟(B)繼續操作;(H)判斷接收到的二進位同步編碼的個數是否為X個,如果是,轉下述步驟(I)繼續操作,否則,轉上述步驟(B)繼續操作;(I)置狀態寄存器T為同步狀態,然後轉上述步驟(B)繼續操作;(J)接收分組數據並判斷接收到的分組數據是否有錯誤,如果有錯誤,轉下述步驟(L)繼續操作,否則轉下述步驟(K)繼續操作;(K)判斷接收到的數據分組數是否為Y,如果已接收Y個分組,轉下述步驟(L)繼續操作,否則轉上述步驟(B)繼續操作;(L)置狀態寄存器T為俘獲狀態,然後轉上述步驟(B)繼續操作。
2.根據權利要求1所述的鏈路級數據分組定界方法,其特徵在於,所述二進位同步編碼是巴克碼。
3.根據權利要求1所述的鏈路級數據分組定界方法,其特徵在於,所述二進位同步編碼是最大長度線性移位寄存器序列,即m序列。
4.根據權利要求2所述的鏈路級數據分組定界方法,其特徵在於,所述巴克碼的位長為11位或13位。
全文摘要
本發明公開了一種鏈路級數據傳輸定界方法,該方法在數據傳輸鏈路空閒時和僅在鏈路數據傳輸量過大時,插入特定的二進位同步編碼進行分組數據的定界,尤其是該方法採用巴克碼、最大長度線性移位寄存器序列等偽噪聲編碼作同步碼,使分組數據中出現同步碼的概率變得更小,同時該方法放棄了傳統的錯誤校驗,進一步節省了系統的傳輸資源,實現簡單、效率高,佔用系統傳輸資源少,能夠較少消耗系統傳輸資源,較少影響系統數據的高效傳輸。
文檔編號H04L12/56GK1288299SQ0012954
公開日2001年3月21日 申請日期2000年9月28日 優先權日2000年9月28日
發明者張國傑, 嶽儉, 鄔江興 申請人:國家數字交換系統工程技術研究中心