欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2191|回復: 0
打印 上一主題 下一主題
收起左側

SIP協議的結構

[復制鏈接]
跳轉到指定樓層
樓主
ID:107189 發表于 2016-3-6 00:00 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
SIP是一個分層的協議,意思是說SIP協議由一組相當無關的處理層次組成,這些層次之間只有松散的關系。協議分成不同層次來描述是為了能夠更清晰的表達,在同一個小節里有功能的公共要素的交叉描述。本協議并沒有規定一個具體的實現。當我們說一個要素包含某一個層,我們的意思是這個要素復核這個層定義的規則。
不是SIP每一個要素都一定包含每一個層。此外,SIP定義的要素是邏輯上的要素,不是物理要素。一個物理的實現可以實現不同的邏輯要素,或許甚至是基于串行事務處理原理。SIP最底層的是它的語法和編碼層。編碼方式是采用擴展的Backus-Naur Form grammar(BNF范式)。完整的BNF描述在25節;第7節有簡要的SIP消息結構描述。
第二層是傳輸層。它定義了一個客戶端如何發送請求和接收應答,以及一個服務器如何接收請求和發送應答。所有的SIP要素都包含一個通訊層。第18節有通訊層的描述。
第三層是事務層。事務是SIP的基本組成部分。一個事務是客戶發送的一個請求事務(通過通訊層)發送到一個服務器事務,連同服務器事務的所有的該請求的應答發送回客戶端事務。事務層處理應用服務層的重發,匹配請求的應答,以及應用服務層的超時。任何一個用戶代理客戶端(user agent client UAC)完成的事情都是由一組事務構成的。有關事務的討論在第17節有描述。用戶代理包含一個事務層,來實現有狀態的代理服務器。無狀態的代理服務器并不包含事務層。事務層包含一個客戶元素(可以認為是一個客戶事務)和一個服務器元素(可以認為是一個服務器事務),他們都可以用一個有限狀態機來處理特定的請求。
在事務層之上是事務用戶(TU)。每一個SIP實體,除了無狀態代理,都是一個事務用戶。當一個TU發出一個請求,它首先創建一個客戶事務實例(client transaction instance)并且和請求一起發送,這包括了目標IP地址、端口號、以及發送請求的設備。TU可以創建客戶事務,也可以取消客戶事務。當客戶取消一個事務,它請求服務器終止正在處理的事務,并且回滾狀態到該事務開始前的狀態,并且產生指定的該事務的錯誤報告。這是由CANCEL請求完成的,這個請求有自己的事務,并且包含一個被取消的事務(第9節)。
SIP要素,包含,用戶代理客戶端和服務器,無狀態和有狀態代理服務器和注冊服務器,包含一個可以互相區別的核心(Cores)。Cores,除了無狀態代理服務器,都是事務用戶。UAC(用戶代理客戶端)和UAS(用戶代理服務端)的cores的行為依賴于實現,對所有的實現來說,有幾個公共的原則(第8節)。對UAC來說,這些規則約束請求的建立;對UAS來說,這些規則約束請求的處理和應答。由于注冊服務在SIP中是一個重要的角色,所以UAS處理REGISTER請求有一個特別的名字:登記員(registrar,登記服務器)。第10節描述了UAC和UAS的對REGISTER實現的core(核心)行為。第11節描述了OPTIONS的UAC和UAS的core實現,這個OPTIONS用來檢測UA的處理能力的(UA-user agent)。
在對話中,有其他的相關會被發送。一個對話是一個持續一定時間的兩個用戶之間的端到端的SIP關系。對話過程要求兩個用戶代理之間的信息是有序的而且請求被正確路由傳輸的。在這個規范中,只有INVITE請求可以用來建立會話。當一個UAC在一個對話中發出請求的時候,它不僅遵循第8節描述的一般UAC規則而且也遵循對話中的請求規則。第12節講述了對話并且討論了對話的創建和維持,以及在對話中創建一個請求。
SIP中最重要的方法就是INVITE方法,它用來在不同的參與者中創建會話使用。一個會話由一組參與者,他們之間用于交流的媒體流組成。第13節講述了這些會話的創建初始化過程,以及創建一個或一組對話。第14節講述了在對話中使用INVITE請求來改變會話的屬性。最后,第15節,講述了如何終止會話。
第8、10、11、12、13、14、15節講述了完整的UA核心(第9節描述了取消,在UA核心和代理核心中使用)。第16節講數了代理服務器,代理服務器用于在兩個UA之間做消息路由使用。
6、協議的定義
以下講述的名次對SIP有著額外的意義:
Address-of-Record: 記錄地址。一個address-of-record(AOR)是一個SIP或者SIPS URI它指向了一個具有定位服務的主機,這個主機可以把URI映射成為用戶真正物理位置的URI。通常情況下,定位服務器是通過登記服務來建立的。一個AOR經常被認為是一個用戶的”公共地址”
Back-to-Back UserAgent:背對背的用戶代理(B2BUA)是一個邏輯實體,它就像用戶代理服務器(UAS)一樣接收和處理請求。為了決定該如何應答一個請求,B2BUA就像UAC一樣工作,并且發出請求。但是它不像代理服務器(proxy),它維持對話狀態,并且參與已經建立的對話中的每一個請求。由于它是直接的UAC和UAS的串連,所以,不需要對他有額外的定義。
Call:呼叫,一個呼叫是一個非正式的術語,它是指在端點之間一個一些通訊行為,通常用于建立多媒體對話。
Call Leg: 對話的別名;在本規范中沒有使用。
Call Stateful: 如果一個代理服務器(proxy)保存一個對話的狀態(從最開始的INVITE到對話終結的BYE),那么這個代理服務器就是請求有狀態的。一個請求有狀態(call stateful)的代理服務器也一定是事務有狀態的,但是事務有狀態的不一定是請求有狀態的。
Client:客戶端。一個客戶端是一個任意的網絡元素,它發出SIP請求和接收SIP應答。客戶端可能會也可能不會和人交互。用戶代理客戶端(UAC)和代理服務器都是客戶端。
Conference: 一個包含多個參與方的多媒體會話(見后)。
Core:核心。核心定義了SIP實體的特定類別。比如定義了一個有狀態和無狀態的代理服務器,一個用戶代理或者注冊服務器(registrar)。所有的核心,除了無狀態代理服務器,都是事務用戶。
Dialog:對話,一個對話是持續一段時間的兩個UA之間的端到端的SIP關系。一個對話由SIP消息建立,就像用2xx響應INVITE請求。我們用Call identifier,local tag(本地tag),remote tag(對方tag)來標志一個對話,一個對話在RFC 2543中被正式叫做CALL LEG.
Downstream: 它是事務中的消息傳遞方向。它特指從UAC到UAS的請求流的方向,
Final Response:終結響應。一個響應終端SIP事務的應答,和事務中間的臨時響應相反。所有的2xx,3xx,4xx,5xx,6xx響應都是終結響應。
Header:頭。頭域是在SIP消息頭部用來描述這個SIP消息信息的部分。它由一堆頭域字段組成。
Header Field:頭域字段。頭域字段是在SIP消息頭域的字段。一個頭域字段可以由多個頭域字段行組成。一個頭域字段由一個頭域名和(零個或多個)頭域值組成。多個頭域值用’,’分割。某些頭域字段只能有單個值,比如結果域(result)就只能有一個值。
Header Field Value:頭域值。一個頭域值是一個單個的值,一個頭域字段可以有0個或者多個頭域值。
Home Domain:宿主機。一個提供SIP服務的主機。一般指的是在登記服務中指明的記錄地址中的URI的主機。
Informational Response:提示應答。和臨時應答一樣。
Initiator, Calling Party, Caller: 用INVITE初始一個會話(和對話)的那方。一個caller從發出INVITE請求建立對話開始,到對話終止都一直是這個角色。
Invitation: 一個INVITE請求。
Invitee,Invited User,Called Party, Callee:被叫方。收到INVITE請求并且建立會話的那方。一個被叫方從收到INVITE請求起,到終止INVITE建立的對話結束,都稱作被叫方。
Location Service: 定位服務。定位服務是用來給SIP轉發或者代理服務器確定被叫方可能的位置使用的。它包含一張綁定了address-of-record的表,被叫方可能有0到多個記錄。綁定的記錄可以通過多種渠道添加和刪除;本規范定義了REGISTER方法來更新綁定表。
Loop:環路。當請求抵達一個代理服務器,代理服務器轉發這個請求,當這個請求再次來到同一個代理服務器,就稱之為環路。當第二次抵達的時候,Request-URI中包含了上次抵達的資料,并且由于并沒有什么東西可以改變轉發的策略,這樣就導致這個請求還會再次被轉發回來。環路請求是錯誤的,所以,處理程序需要檢測和防止協議中出現的環路請求。
Loose Routing:松散路由(多謝hoxden 的解釋。一個代理服務器被稱為松散路由的解釋如下(大概的意思是說這個代理服務器只要符合路由的一些機制就可以稱作松散路由,這個機制主要是說需要遵守能夠解析負責分發請求(Request-URI)的路由頭的這個流程):A proxy is said to be loose routing if it follows the procedures defined in this specification for processing of the Route header field. These procedures separate the destination of the request (present in the Request-URI) from  the set of proxies that need to be visited along the way (present in the Route header field). A proxy compliant to these mechanisms is also known as a loose router.
Message:消息。SIP元素之間傳送的協議數據就是消息。SIP消息既可以是請求也可以是應答。
Method:方法。方法是在服務器請求處理的主要功能。方法是請求消息自身攜帶的。典型的方法就是INVITE和BYE。
Outbound Proxy:對外代理服務器。一個代理服務器接收到客戶的請求,即使它不是由Request_URI所決定的服務器。通常一個UA會手工配置一個對外的代理服務器,或者可以通過一個自動配置的協議自動配置一個。
Parallel Search: 并行搜索。并行搜索情況下,代理服務器會向多個用戶可能存在的地方發起請求,并且等待應答。同串行搜索不同的地方是,并行搜索不會等待上一個請求應答回來之后再發起下一個搜索,而是一個接一個的發起搜索請求。
Provisional Response: 臨時應答。服務器用來標志自己正在處理的應答,但是本應答并不結束一個SIP事務。1xx應答就是臨時的,其他應答標志著事務的結束。
Proxy,Proxy Server:代理、代理服務器。一個中間的實體。它本身即作為客戶端也作為服務端,為其他客戶端提供請求的轉發服務。一個代理服務器首先提供的是路由服務,也就是說保證請求被發到更加”靠近”目標用戶的地方。代理服務器對某些強制政策有用(比如,確認一個用戶是否允許建立一個呼叫等)。一個代理服務器翻譯,并且,如果有需要的話,再轉發前會重寫請求消息。
Recursion:回路、遞歸。一個客戶端,在響應請求的時候產生新的到Contract包頭域的URI請求的時候,會在3xx響應中陷入遞歸。A client recurses on a 3xx response when it generates a new request to one or more of the URIs in the Contact header field in the response.
Redirect Server:重定向服務器。一個重定向服務器是一個產生3xx應答的UAS服務器,指示客戶端連接別的URI。
Registrar: 登記員。一個登記員(登記服務器)是一個接收REGISTER請求得服務器。他把請求得信息放到定位服務器中,這樣可以讓定位服務器很方便得查找位置信息。
Regular Transaction:常規事務。凡不包含INVITE,ACK,或者CANCEL方法得事務就是常規事務。
Request: 請求。 一個由客戶端發到服務端得SIP信息,用于執行特定得功能。
Response:應答。一個由服務端發到客戶端得SIP信息。用來標志從客戶端發往服務端得請求處理得情況得。
Ringback: 回鈴音。回鈴音是一個信號音。是給呼叫方得一個信號表示被叫方正在振鈴(Ringing)。
Route Set: 路由集。路由集合是一個順序得SIP或者SIPS URI。這些URI描述了傳遞一個請求所必須經歷得代理列表。一個路由集可以是自適應得,因為包頭中包含了Record-Route(記錄路由),也可以是依賴配置得到得。
Server:服務器。一個server是一個網絡元素接收請求并且處理請求并且發送回應給請求方。典型得服務器就是代理服務器(proxies),用戶代理服務器(user agent servers),重定向服務器,登記服務器。
Sequential Search:順序查找。在順序查找中,代理服務器順序嘗試聯系地址,在處理下一個之前必須等待上一個請求已經有一個結束應答。一個2xx或者6xx系列得最終應答總是結束一個順序查找。
Session:會話。根據SDP得描述:”一個多媒體會話是一個由多媒體發送方和接受方組成得集合,并且包括在發送方和接受方之間得數據流。一個多媒體會議是一個典型得多媒體會話。”(RFC 2327[1])(一個session在SDP訂一下可以是一個或者多個RTP sessino)。在定義中,一個被叫方可以被多次邀請,被不同得呼叫方邀請,到同一個會話。在SDP中,一個會話可以被SDP用戶名,session id,網絡類型,地址類型,地址元素得一個集合串所規定。
SIP 事務:一個SIP事務是在客戶端和服務端得事件,包括了從第一個由客戶端發送到服務端得請求,到最后一個(非1xx)服務端向客戶端發出得終結應答。如果請求是一個INVITE請求,并且終結應答是一個非2xx得應答,那么事務還包括一個ACK給服務器做應答。給INVITE請求的2xx應答的ACK回應,是一個獨立的事務。
Spiral:回溯。一個回溯是指一個SIP請求,路由給一個proxy,并且轉發,但是又被路由回這個proxy,但是不同于回路(遞歸)的是,這次路由回來的請求包的包頭中,包含了不同于原請求的請求包部分,使得本次proxy決定的路由轉發與上次不同。通常,這是說,請求的Request-URI不同于上次的Request_URI。一個回溯不是一個錯誤,不同于回路(環路loop)。通常導致這樣的現象是呼叫轉發(call forwarding)。一個用戶呼叫joe@example.com。example.com代理服務器轉發請求到Joe的PC,并且Joe的pc呼叫轉移到bob@example.com。這個請求被轉發回example.com代理服務器。可是這個并不是一個環路(loop)。因為請求的目的地址變成了另一個用戶,這就是回溯,是一個合法的情況。
Stateful Proxy:有狀態的代理服務器。在邏輯上,有狀態的代理服務器就是處理一個請求的過程中,維持的一個本規范所定義的客戶端和服務端的事務狀態機。也是一個事務又狀態代理服務器(transaction stateful proxy)。具體的stateful proxy在第16節定義。一個(事務)有狀態代理服務器和一個call stateful proxy不是一回事。
Stateless Proxy:無狀態的代理服務器。在邏輯上,無狀態代理服務器在處理請求中,并不維持客戶和服務端的事務狀態機。一個無狀態的代理服務器直接轉發每一個接收到的請求和每一個接收到的響應。
Strict Routing:嚴格路由。路由處理規則如果復核RFC2543協議(and many prior work in progress versions of this RFC) 就是一個嚴格路由。在這個規則下,如果在包頭中包含Route域,那么代理服務器就會刪除Request_URI域內容。本文檔并不要求一定要有嚴格路由,本文檔只要求松散路由就可以了。支持嚴格路由的代理服務器也叫嚴格路由器。
Target Refresh Request: 目標刷新請求。一個Target Refresh Request是一個在對話中發出的請求,用來更改對話目標的請求。
Transaction User(TU):事務用戶。在transaction 層之上的協議層。TU包括了UAC 核心,UAS core,和proxy core。
Upstream:上行流。一個在事務中的消息流向方向。它是指由用戶代理服務器(UAS)發出應答到用戶代理客戶端(UAC)的消息流向方向。
URL-encoded:一串根據RFC2396-2.4節編碼的字符。
User Agent Client(UAC):用戶代理客戶端。用戶代理客戶端是一個邏輯的概念,他創建一個新請求,并且用客戶事務狀態機發送這個請求。UAC角色只在事務中存在。換句話說,UAC就是一小段代碼初始化一個請求,并且在事務中遵循UAC的規則。如果它接下來收到一個請求,那么在那個事務中,它就是作為UAS來處理請求。
UAC Core:UAC核心。在transaction和transport層之上得UAC實現的功能集合。
User Agent Server(UAS): 用戶代理服務器.UAS是一個邏輯的實體,對SIP請求做響應的。應答接受、拒絕、或者轉發對應的請求。UAS角色在事務中存在。換句話說,是響應請求的一小段軟件,在事務中作為UAS存在。如果他發出請求,那么他就在事務中作為UAC存在。
UAS Core:UAS核心。在transaction和transport層智商的UAS實現的功能集合。
User Agent(UA)。一個邏輯實體的概念,包含UAC和UAS。
UAC和UAS,就像代理服務器和轉發服務器,是在事務by事務的原理(串行事務處理)上定義的。例如,當發出一個初始化INVITE請求的時候,UA作為UAC初始化一個呼叫動作,當從被叫方接收到一個BYE請求的時候,UA作為UAS響應。類似的,同樣的代碼可以對一個請求做為proxy服務器處理,對另一個請求作為重定向服務器。
proxy,location,registrar服務器都是邏輯實體,在它們的實現中,可能是作為單個應用實現的。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表