SIP 的幾個概念

2022-01-12 12:24:54 字數 1921 閱讀 4015

sip協議初學者必須明白的幾個重要概念

一、 sip協議的分層結構

sip是乙個分層結構協議,它的行為根據一組平等獨立的處理階段來描述,每一階段之間只是松耦合。

sip的最底層是語法和編碼。它的編碼使用增強backus-nayr形式語法(bnf)來規定。

第二層是傳輸層,定義了網路上客戶機與伺服器傳送請求和接收響應的方式,所有的sip元素包含傳輸層。

第三層是事務層。事務是sip的基本元素。事務層具有客戶機組成部分(稱為客戶機事務)和伺服器組成部分(稱為伺服器事務),乙個事務由客戶機事務傳送給伺服器事務的請求(使用傳輸層),以及伺服器事務傳送對應該請求的響應組成。

事務層之上的層為事務使用者(tu)。當乙個tu希望傳送請求時,生成乙個客戶機事務例項並向它傳遞請求和ip位址、埠和用來傳送請求的傳輸機制。

二、sip 幾個重要引數:

如下三個值相同代表同乙個dailog(會話)

call-id

form tag

to tag

2) branch值相同,代表同乙個 transaction(事務)

branch

3) cseq

cseq

其生存域是乙個會話。用於將乙個會話中的請求訊息序列化,以便用於重複訊息、「遲到」訊息的檢測,響應訊息與相應請求訊息的匹配等。包含兩部分:乙個32位的序列號,乙個請求方法。

通常在會話開始時確定乙個初始值,其後再傳送訊息時將該值加1。主叫方與被叫叫各自維護自己的cseq序列,互不干擾,這有點像tcp/ip中ip包的序列號。

乙個響應訊息有與其對應的請求訊息相同的cseq值。

【注意】sip中cancel訊息與ack訊息總是比較特殊。cancel訊息的cseq中的序列號總是跟其要cancel的訊息的相同,而對於ack訊息:如果它所要確認的是invite請求的non-2xx響應,則ack訊息的cseq中的序列號與對應invite請求的相同;如果是2xx響應,則不同,此時ack被當作乙個新的事務。

三、 dialog:對話,乙個對話是持續一段時間的兩個ua之間的端到端的sip關係。乙個對話由sip訊息建立,就像用2xx響應invite請求。我們用call identifier,local tag(本地tag),remote tag(對方tag)來標誌乙個對話,乙個對話在rfc 2543中被正式叫做call leg.

dialog(會話) 會話是兩個uas(user agent) 之間持續一段時間的端到端(peer-to-peer)的sip 關係. 乙個會話由乙個call-id, 乙個local tag 和 乙個remote tag來標識.會話過去也叫做 "call leg".

call-id,local tag,remote tag 三者值相同,代表同乙個dailog

四、 transaction(事務) 事務發生於客戶端和伺服器端之間,包含從客戶端發出請求給伺服器,到伺服器響應給客戶端的最終訊息(non-1xx message)之間的所有訊息. 如果請求是乙個"invite"訊息,並且最終的響應是乙個non-2xx訊息,那麼該事務包含乙個"ack"響應訊息.如果伺服器的響應是乙個2xx訊息,那麼,隨後的ack是乙個單獨的事務.

branch引數含義 branch值相同代表同乙個transaction事務系列

branch是乙個事務id(transaction id),用於區分同乙個client所發起的不同transaction。

對於遵循rfc3261規範的實現,這個branch引數的值必須用magic cookie」z9hg4bk」打頭. 其它部分是對「to, from, call-id頭域和request-uri」按一定的演算法加密後得到。

根據本標準產生的branch id必須用」z9h64bk」開頭。這7個字母是乙個亂數cookie(定義成為7位的是為了保證舊版本的rfc2543實現不會產生這樣的值),這樣伺服器收到請求之後,可以很方便的知道這個branch id是否由本規範所產生的(就是說,全域性唯一的)

sip裡面的幾個概念,會話 事務

transaction 事務是指乙個請求訊息以及這個請求對應的所有響應訊息的集合 對於invite事務來講,除包含invite請求和對應的響應訊息外,在非成功響應的情況下,還包括ack請求。via頭中的branch引數能夠唯一確定乙個事務。branch值相同,代表同乙個 transaction 事務...

SIP 基本的Header 概念

本文對sip 訊息中from,contact,via,record route 和route 字段進行詳細的解釋,便於大家對sip信令進行分析和排錯 from 如果乙個sip訊息中沒有contact或者record route頭域,那麼callee就會根據from頭域產生後續的request。比如 ...

SIP基本概念

sip協議中,比較有特點的就是sip事務了。那麼想要理解sip事務的概念,我們還需要了解sip請求的一些內容。sip事務的概念 乙個sip請求以及由它觸發的一系列應答 包括臨時應答和乙個最終應答 sip請求有6種 invite,ack,options,bye,cancel,register sip請...