php面試題2-用到過的傳輸協議

1.HTTP(hyper text transport protocol):超文本傳輸協議。它是Internet上應用最爲廣泛的通信協議之一,上網用戶用到的WWW程序都需要遵守這個協議標準。如果用戶要對某個資源服務器的文件進行訪問,包括對該服務器上指定文件的瀏覽、下載、運行等,都可以通過HTTP訪問Internet上的WWW的資源。
 2. FILE:本地文件傳輸協議。是從用戶自己計算機上獲取文件的一種方法,用戶通過它可以將保存在自己硬盤上的文件顯示在導航系統的屏幕上。
  3. FTP(file transfer protocol):文件傳輸協議。該協議是從Internet上獲取文件的方法之一,它是爲用戶與文件服務器之間進行相互傳輸文件服務的。通過該協議用戶可以很方便地查看遠程服務器上的文件內容,同時還可以把所需要的內容拷貝到自己所使用的計算機上。另外一方面,如果文件服務器授權允許用戶可以用該服務器上的文件進行管理的話,用戶就可以把自己本地計算機上的內容上傳到文件服務器上,讓其他用戶共享,而且還能自由地對上面的文件進行編輯操作,例如對文件進行刪除、移動、複製、更名等。

傳輸層提供了兩種到達目標網絡的方式

傳輸控制協議(TCP):提供了完善的錯誤控制和流量控制,能夠確保數據正常傳輸,是一個面向連接的協議。
用戶數據報協議(UDP):只提供了基本的錯誤檢測,是一個無連接的協議。
特點:
1)UDP:
把數據打包
數據大小有限制(64k)
不建立連接
速度快,但可靠性低
2)TCP:
建立連接通道
數據大小無限制
速度慢,但是可靠性高
由於傳輸層涉及的東西比較多,比如端口,Socket等,都是我們做移動開發需要了解的,之後的文章中我們再具體做介紹,這裏就不講解了。

應用層做爲 TCP/IP 協議的最高層級,對於我們移動開發來說,是接觸最多的。

運行在TCP協議上的協議:
HTTP(Hypertext Transfer Protocol,超文本傳輸協議),主要用於普通瀏覽。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本傳輸協議),HTTP協議的安全版本。
FTP(File Transfer Protocol,文件傳輸協議),由名知義,用於文件傳輸。
POP3(Post Office Protocol, version 3,郵局協議),收郵件用。
SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議),用來發送電子郵件。
TELNET(Teletype over the Network,網絡電傳),通過一個終端(terminal)登陸到網絡。
SSH(Secure Shell,用於替代安全性差的TELNET),用於加密安全登陸用。
運行在UDP協議上的協議:
BOOTP(Boot Protocol,啓動協議),應用於無盤設備。
NTP(Network Time Protocol,網絡時間協議),用於網絡同步。
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),動態配置IP地址。
其他:
DNS(Domain Name Service,域名服務),用於完成地址查找,郵件轉發等工作(運行在TCP和UDP協議上)。
ECHO(Echo Protocol,迴繞協議),用於查錯及測量應答時間(運行在TCP和UDP協議上)。
SNMP(Simple Network Management Protocol,簡單網絡管理協議),用於網絡信息的收集和網絡管理。
ARP(Address Resolution Protocol,地址解析協議),用於動態解析以太網硬件的地址。

sip協議 https://www.cnblogs.com/gardenofhu/p/7299963.html

會話發起協議(SIP)是VoIP技術中最常用的協議之一。它是一種應用層協議,與其他應用層協議協同工作,通過Internet控制多媒體通信會話。

SIP - 概述
以下是有關SIP的幾點注意事項 -

SIP是用於通過因特網協議創建,修改和終止多媒體會話的信令協議。會話只不過是兩個端點之間的簡單調用。端點可以是智能電話,筆記本電腦或可以通過因特網接收和發送多媒體內容的任何設備。

SIP是由IETF(Internet Engineering Task Force)標準定義的應用層協議。它在RFC 3261中定義。

SIP體現了客戶端 - 服務器體系結構,以及使用HTTP和URL的URL和URI 以及SMTP的文本編碼方案和頭樣式。

SIP採用SDP(會話描述協議)的幫助,它描述了用於通過IP網絡傳送語音和視頻的會話和RTP(實時傳輸協議)。

SIP可用於雙方(單播)或多方(多播)會話。

其他SIP應用包括文件傳輸,即時通訊,視頻會議,網絡遊戲,以及流多媒體分發。

下圖說明了SIP在一般方案中的適用性 -

通常,SIP協議用於兩個或多個端點之間的互聯網電話和多媒體分發。例如,一個人可以使用SIP發起對另一個人的電話呼叫,或者有人可以與許多參與者建立電話會議。

SIP協議的設計非常簡單,配置有限的命令。它也是基於文本的,所以任何人都可以讀取SIP會話中的端點之間傳遞的SIP消息。

有一些實體幫助SIP創建其網絡。在SIP中,每個網元由SIP URI(統一資源標識符)來標識,它像一個地址。以下是網絡元素 -

用戶代理
代理服務器
註冊服務器
重定向服務器
位置服務器
用戶代理
它是SIP網絡的端點和最重要的網絡元素之一。端點可以啓動,修改或終止會話。用戶代理是SIP網絡中最智能的設備或網絡元件。它可以是軟電話,手機或筆記本電腦。

用戶代理在邏輯上分爲兩部分 -

用戶代理客戶端(UAC) - 發送請求並接收響應的實體。

用戶代理服務器(UAS) - 接收請求併發送響應的實體。

SIP基於客戶機 - 服務器架構,其中呼叫者的電話充當發起呼叫的客戶端,被叫方的電話充當響應呼叫的服務器。

代理服務器
網絡元素接收來自用戶代理的請求並將其轉發給另一個用戶。

基本上代理服務器的作用就像一個路由器。

它有一些智慧來了解SIP請求,並在URI的幫助下發送它。

代理服務器位於兩個用戶代理之間。

源和目的地之間最多可以有70個代理服務器。

有兩種類型的代理服務器 -

無狀態代理服務器 - 它只是轉發收到的消息。這種類型的服務器不存儲任何呼叫或交易的信息。

有狀態代理服務器 - 這種類型的代理服務器可以跟蹤收到的每個請求和響應,並且如果需要,可以將來使用它。如果對方沒有響應,它可以重新發送請求。

註冊服務器
註冊服務器接受用戶代理的註冊請求。它可以幫助用戶在網絡中進行身份驗證。它將URI和用戶的位置存儲在數據庫中,以幫助同一域內的其他SIP服務器。

看看下面的示例,顯示SIP註冊的過程。

這裏呼叫者想要向TMC域註冊。因此,它向TMC的Registrar服務器發送REGISTER請求,並且服務器在授權客戶端時返回200 OK響應。

重定向服務器
重定向服務器接收請求,並在註冊器創建的位置數據庫中查找請求的預期收件人。

重定向服務器使用數據庫獲取位置信息,並以3xx(重定向響應)響應給用戶。我們將在本教程的後面討論響應代碼。

位置服務器
位置服務器提供有關呼叫者可能的位置到重定向和代理服務器的信息。

只有代理服務器或重定向服務器可以聯繫位置服務器。

下圖描繪了每個網絡元素在建立會話中所扮演的角色。

SIP - 系統架構
SIP被構造爲分層協議,這意味着其行爲根據一組相當獨立的處理階段來描述,只有每個階段之間的鬆散耦合。

SIP的最低層是其語法和編碼。其編碼使用增強的Backus-Naur表格語法(BNF)來指定。

第二層是傳輸層。它定義客戶端如何發送請求並接收響應,以及服務器如何接收請求並通過網絡發送響應。所有SIP元素都包含傳輸層。

接下來是事務層。事務是由客戶端事務(使用傳輸層)發送到服務器事務的請求,以及從服務器事務發送回客戶端的對該請求的所有響應。用戶代理客戶端(UAC)完成的任何任務都將使用一系列事務進行。無狀態代理不包含事務層。

事務層上面的層稱爲事務用戶。除了無狀態代理之外,每個SIP實體都是一個事務用戶。

下圖顯示了SIP會話的基本呼叫流程。

以下是對上述呼叫流程的逐步說明 -

發送到代理服務器的INVITE請求負責啓動會話。

代理服務器發送100 嘗試立即響應呼叫者(Alice)以停止INVITE請求的重新發送。

代理服務器在位置服務器中搜索Bob的地址。獲取地址後,進一步轉發INVITE請求。

此後,Bob手機生成的180 振鈴(臨時響應)返回給愛麗絲。

鮑勃拿起手機後一個200 OK響應很快產生。

一旦200 OK到達Alice,Bob 從Alice 收到一個ACK。

同時,會話建立,RTP數據包(會話)從兩端開始流動。

會話結束後,任何參與者(Alice或Bob)都可以發送一個BYE請求來終止會話。

BYE直接從Alice到Bob繞過代理服務器。

最後,Bob發送200 OK響應來確認BYE,會話終止。

在上述基本呼叫流程中,可以使用三個事務(標記爲1,2,3)。

完整的呼叫(從INVITE到200 OK)稱爲對話Dialog。

SIP梯形
代理如何幫助一個用戶與另一個用戶連接?讓我們在下圖的幫助下找出。

圖中所示的拓撲結構稱爲SIP梯形圖。該過程發生如下 -

當呼叫方發起呼叫時,將向代理服務器發送INVITE消息。代理服務器收到INVITE後,嘗試藉助DNS服務器解析受理者的地址。

在獲得下一個路由之後,呼叫者的代理服務器(代理1,也稱爲出站代理服務器)將INVITE請求轉發給作爲被呼叫者的入站代理服務器(代理服務器2)的被呼叫者的代理服務器。

入站代理服務器聯繫位置服務器以獲取用戶註冊的被叫方地址信息。

從位置服務器獲取信息後,將呼叫轉發到其目的地。

一旦用戶代理知道他們的地址,他們可以繞過呼叫,即直接通話。

SIP消息有兩種類型 - 請求和響應。

請求的開始行包含定義請求的方法,以及定義要發送請求的請求URI。

類似地,響應的開始行包含響應代碼。

請求方式
SIP請求是用於建立通信的代碼。爲了補充它們,SIP響應通常指示請求是成功還是失敗。

這些被稱爲METHODS的SIP請求使SIP消息可行。

方法可以被認爲是SIP請求,因爲它們請求由另一用戶代理或服務器採取的特定動作。

方法被分爲兩種類型 -

核心方法

擴展方法

核心方法
有六種核心方法,如下所述。

邀請
INVITE用於啓動與用戶代理的會話。換句話說,INVITE方法用於在用戶代理之間建立媒體會話。

INVITE可以在郵件正文中包含主叫方的媒體信息。

如果INVITE已經接收到成功響應(2xx)或已經發送ACK,則會話被認爲是建立的。

成功的INVITE請求在兩個用戶代理之間建立對話,直到發送BYE才能終止會話。

在已建立的對話框內發送的INVITE被稱爲re-INVITE。

Re-INVITE用於更改會話特性或刷新對話框的狀態。

邀請示例
以下代碼顯示了INVITE如何使用。

複製代碼
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alicesips:[email protected];tag = 1234567
To: Bobsips:[email protected]
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: sips:[email protected]
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: …

v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000
複製代碼

BYE
BYE是用於終止既定會話的方法。這是SIP請求,可以由呼叫者或被叫方發送以終止會話。

它不能由代理服務器發送。

BYE請求通常路由端到端,繞過代理服務器。

BYE不能發送到待處理的INVITE或未建立的會話。

註冊
REGISTER請求執行用戶代理的註冊。該請求由用戶代理髮送到註冊服務器。

REGISTER請求可以轉發或代理,直到它到達指定域的權威註冊商。

它在正在註冊的用戶的To頭中攜帶AOR(記錄地址)。

REGISTER請求包含時間段(3600sec)。

一個用戶代理可以代表另一個用戶代理髮送REGISTER請求。這被稱爲第三方註冊。這裏,From標籤包含代表To標題中標識的方提交註冊的方的URI 。

取消
CANCEL用於終止未建立的會話。用戶代理使用此請求取消之前發起的未決呼叫嘗試。

它可以由用戶代理或代理服務器發送。

CANCEL是逐跳請求,即它通過用戶代理之間的元素,並接收下一個有狀態元素生成的響應。

ACK
ACK用於確認對INVITE方法的最終響應。如果INVITE不可用,則ACK始終沿着INVITE.ACK的方向包含SDP主體(媒體特性)。

ACK可能不會用於修改已經在初始INVITE中發送的媒體描述。

接收ACK的有狀態代理必須確定ACK應該向下游轉發到另一個代理或用戶代理。

對於2xx響應,ACK是端到端的,但對於所有其他最終響應,它在涉及有狀態代理時基於逐跳的工作。

OPTIONS
OPTIONS方法用於向用戶代理或代理服務器詢問其功能並發現其當前的可用性。對請求的響應列出了用戶代理或服務器的功能。代理從不生成OPTIONS請求。

擴展方法
訂閱
用戶代理使用SUBSCRIBE建​​立訂閱,以獲取有關特定事件的通知。

它包含一個Expires頭字段,指示訂閱的持續時間。

期限過後,訂閱將自動終止。

訂閱在用戶代理之間建立一個對話。

您可以在到期時間之前通過在對話框內發送另一個SUBSCRIBE來重新訂閱。

用戶訂閱將收到200 OK。

用戶可以使用Expires值0(零)發送另一個SUBSCRIBE方法來取消訂閱。

通知
用戶代理使用NOTIFY來獲取特定事件的發生。通常,當訂戶和通知程序之間存在訂閱時,NOTIFY將在對話框內觸發。

如果通知程序接收到,每個NOTIFY將獲得200 OK響應。

NOTIFY包含指示事件的事件頭字段和指示訂閱的當前狀態的subscriptionstate頭字段。

始終在訂閱的開始和結束時發送NOTIFY。

發佈
PUBLISH被用戶代理用於向服務器發送事件狀態信息。

當有多個來源的事件信息時,PUBLISH是非常有用的。

PUBLISH請求類似於NOTIFY,除了它不在對話框中發送。

PUBLISH請求必須包含Expires頭字段和Min-Expires頭字段。

參考
REFER由用戶代理用於引用另一個用戶代理來訪問對話框的URI。

REFER必須包含Refer-To標題。這是REFER的強制標題。

REFER可以在對話框內部或外部發送。

A 202 Accepted將觸發REFER請求,指示其他用戶代理已經接受引用。

信息
INFO由用戶代理使用,以向其已經建立媒體會話的另一用戶代理髮送呼叫信令信息。

這是一個端到端的請求。

代理將始終轉發INFO請求。

UPDATE
如果會話未建立,則UPDATE用於修改會話的狀態。用戶可以使用UPDATE更改編解碼器。

如果會話建立,則使用重新邀請來更改/更新會話。

PRACK
PRACK用於確認接收到可靠的臨時響應轉移(1XX)。

一般來說,PRACK在接收到包含RSeq可靠序列號和supported:100rel 頭的臨時響應時由客戶端生成。

PRACK在race頭部中包含(RSeq + CSeq)值。

PRACK方法適用於所有臨時響應,除了100嘗試響應,這是永遠不可靠的運輸。

PRACK可能包含消息體; 它可以用於提供/答覆交換。

信息
它用於使用SIP發送即時消息。IM通常由參與文字會話的參與者實時交換的短消息。

MESSAGE可以在對話框內或對話框外發送。

MESSAGE的內容作爲MIME附件在郵件正文中載入。

一個200 OK被正常接收響應,以指示該消息已在其目的地被遞送。

發佈了157 篇原創文章 · 獲贊 140 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章