sip方法options允許乙個ua來查詢另外乙個ua或者proxy伺服器的能力。這個提供個客戶端乙個手段來查詢服務端支援的方法,內容型別,擴充套件,codecs等等。這些都不用」ringing」對方。比如,在客戶端試圖在invite請求頭中增加乙個請求字段選項的時候,它並不知道對方uas能否支援這個選項,它就可以用options來查詢一下uas,通過檢查options返回的supported頭域,就可以知道是否支援這個選項。所有的ua都必須支援options方法。
options請求的目標是用request-uri指明的,這個既可以是乙個ua也可以是乙個sip伺服器。如果options指向乙個proxy伺服器,request-uri設定成為乙個沒有使用者部分(userpart)的,類似register請求中的request-uri一樣。或者,一台伺服器收到乙個options請求並且max-forwards頭域值是0的時候,它就需要響應這個請求而不需要關心request-uri的內容。
這個機制就像http/1.1一樣。這個機制可以用來實現類似」traceroute」功能來通過發出一系列的有著增量max-forwards頭域的options請求來檢查每乙個途徑節點的能力。
就像對一般ua機制來說,如果options沒有應答,transaction層能夠返回乙個超時錯誤。這個可能標誌著對方無法到達因此無響應。options請求可以作為建立會話的一部分,用來查詢對方的能力使用,這樣在後續對話中可以使用雙方相容的方式。
構造options請求
contact頭域在options請求中可以存在,也可以不存在。
accept頭域應當包含在請求中,用來標誌uac希望接收應答中的訊息體的型別。通常情況下,這個設定成為ua的多**相容能力,比如sdp(應用/sdp)格式。
對於乙個options請求的應答是假定是在原請求中的request-uri範圍內的。但是,僅當乙個options請求作為建立對話的一部分而傳送的時候,後續的請求應當由收到並且響應這個options請求的伺服器進行處理。(就是說如果在建立會話的時候使用options請求,那麼options之後的這些請求都應該由這個options查詢的伺服器處理,這樣才能保證使用的特性和options查詢出來的能力是一樣的)
請求:options sip: [email protected]
via: sip/2.0/udp pc33.atlanta.com;branch=z9hg4bkhjhs8ass877
max-forwards: 70
to:
from: alice ;tag=1928301774
call-id: a84b4c76e66710
cseq : 63104 options
content-length: 0
應答:
mysql報文格式 Mysql 報文格式
mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...
mysql報文格式 Mysql 報文格式
mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...
TCP報文格式 UDP報文格式 MAC幀格式
tcp和udp的區別 1 tcp是面向連線的,而udp是無連線的 2 tcp提供可靠服務,而udp不提供可靠服務,只是盡最大努力交付報文 3 tcp面向位元組流,tcp把資料看成一串無結構的位元組流,而udp是面向報文的 udp資料報 ip頭部 ip資料報 4 tcp有擁塞控制,udp沒有擁塞控制 ...