SS7之MTP2介紹

 

原文出自http://hi.baidu.com/sunwater007/item/ba73d44fff1963efa5c06693

 

MTP Level 2 爲在鏈路上傳送的消息提供了準確、安全的點到點傳輸,Level 2 提供了流量控制、消息順序確認及檢錯功能。當信令鏈路上發生錯誤時,若干消息會被重新傳送。

MTP2消息格式如下:

 

圖-MTP 消息格式

MTP2消息格式分爲三種:消息信令單元MSU, 鏈路狀態信令單元LSSU, 鏈路填充單元FISU。其中MSU是真正傳輸上層的信令消息的;LSSU是用來通知鏈路對端自己的狀態改變信息(比如block住一條鏈路),SF域用來標明當前狀態;FISU用來填充鏈路空閒時刻(沒有消息傳送),此外還能用來糾錯。

MSU, LSSU, FISU消息單元從前向後每個域解釋如下:

F(Flag of Synchronization):同步標誌。

填充” 0111 1110”,它用來標識上一個消息單元的結束,一個新的消息的開始。爲了避免信令單元裏同樣存在” 0111 1110”,從而引起混亂,協議規定,在信令傳輸過程發送端每遇到”11111”就增加一個“0”,接收端一旦發現”11111”,便刪除後面的”0”,這樣便能保證不能出現的假的同步標誌。

 

BSN(Backward Sequence Number):後向序列號。

後向序列號(BSN)用於信令單元的接受證實,向對端信令點確認相應信令單元已正確接受。 BSN中就是其證實接受的信令單元的序列號。它是利用MSU“捎帶”發送確認信息,這點和TCP發送ACK不一樣。

 

BIB(Backward Indicator Bit): 後向指示位

後向指示位(BIB) 當被置位時即向對端指示了一個負(錯誤)的證實信號。

 

FSN(Forward Sequence Number): 前向序列號

前向序列號(FSN)是信令單元的序列號。接收端受到這個FSN後,將會填入到接收端的BSN字段,這樣就形成了一個發送-確認的關係。

 

FIB(Forward Indicator Bit): 前向指示位

FIB和BIB一樣用於出錯時恢復之用。當一個信令單元準備傳送時,信令點將其FSN(forward sequence number) 加1 (FSN = 0..127),同時CRC (cyclic redundancy check)也重新計算並加在前向消息之後。當接受到消息後,接受端首先校驗CRC碼,然後將其FSN號複製入準備向源端發送的下個後向消息的BSN字段。如果CRC校驗正確,後向消息即被髮送;如果校驗出錯,在發後向消息之前,信令點會將BIB置位以表示一個負(錯誤)指示。源點接受到這個負指示標誌後,它會將從出錯的消息序列號開始的所有消息重新傳送,並且這些消息的FIB爲1。

由於7 bit 的FSN 的值是0~127,所以信令點在接受到第一個證實消息前,能連發最多128個消息。BSN 號指示了對端正確接受的最後一個消息的序列號,它證實了序列號BSN之前的所有消息已正確接受。如果信令點在收到消息其BSN=5之後又收到消息BSN=10(而且BIB未置位),則後個消息表示了FSN從6到9的消息也都正確接受了。

BSN, BIB, FSN, FIB四個字段構成了MTP2 幀的糾錯重傳功能。

 

LI (Length Indicator): 這個字段有兩個作用:一個是指示當前幀裏包含數據的長度,另外一個是用長度的值來判定幀的類型。

如果LI=0,那麼此幀是FISU;如果LI=1或2的話,那麼此幀是LSSU;如果LI>2,那麼此幀是MSU。由於LI的長度是6,所以LI最大值爲63.

如果幀裏淨載荷(payload)的值小於63,那麼裏面的值就是淨載荷的長度;如果淨載荷是63,那麼代表的意義是消息的長度等於或大於63(最多273 字節)。信令單元長度最大爲279字節: 273 字節 (數據) + 1 字節 (flag) + 1 字節(BSN + BIB) + 1字節 (FSN + FIB) + 1字節 (LI + 2 bits spare) + 2 字節 (CRC)。

SIO(service indicator Octet)

MSU中的業務消息段SIO 由4 bit子業務字段和 4bit業務指示組成。FISU和LSSU並不含有SIO。子業務字段subservice field 中,Network Indicator用來標明國內或國際消息,Spare Bits在北美用來標識消息優先級(0~3,3級別最高), 消息優先級只在網絡擁塞發生時使用,並不影響正常時消息傳送時的順序,在網絡發生擁塞時,低優先級的消息會被丟棄,如信令鏈路測試消息比呼叫建立消息具有更高的優先級;在歐洲這個字段空閒。

業務指示Service Indicator 表示MTP上層使用者類別(如圖 6),依此對SIF中的數據進行解碼。如下圖所示:

 


圖-MTP2 SIF 格式

SIF(Signaling Information Field):信令消息正文段。它包含了真正的上層的用戶數據以及路由信息,接收端對消息的解析是根據SIO裏的SI來判斷對應的消息種類。

CK (check bits),又叫CRC(Cyclic Redundancy Check),它用來糾正對傳輸時產生的錯誤進行檢錯及糾錯的。

在LSSU消息了,SF(status Field)字段用來標明信令端的狀態變化值,它只用了低三位,其他部分爲0,如圖所示。


圖-MTP2 SF格式

 

參考資料列表,請參看:
http://hi.baidu.com/sunwater007/blog/item/d9ebf900349c0b08738da5e7.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章