php面試題二之用到過的傳輸協議

來源:互聯網
上載者:User

這篇文章介紹的內容是關於php面試題二之用到過的傳輸協議,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

1.HTTP(hyper text transport protocol):超文字傳輸通訊協定 (HTTP)。它是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,超文字傳輸通訊協定 (HTTP)),主要用於普通瀏覽。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文字傳輸通訊協定 (HTTPS)),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,網域名稱服務 (DNS)),用於完成地址尋找,郵件轉寄等工作(運行在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(統一資源識別項)來標識,它像一個地址。以下是網路元素 -

使用者代理程式
Proxy 伺服器
註冊伺服器
重新導向伺服器
位置伺服器
使用者代理程式
它是SIP網路的端點和最重要的網路元素之一。端點可以啟動,修改或終止會話。使用者代理程式是SIP網路中最智能的裝置或網路元件。它可以是軟電話,手機或膝上型電腦。

使用者代理程式在邏輯上分為兩部分 -

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

使用者代理程式伺服器(UAS) - 接收請求並發送響應的實體。

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

Proxy 伺服器
網路元素接收來自使用者代理程式的請求並將其轉寄給另一個使用者。

基本上Proxy 伺服器的作用就像一個路由器。

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

Proxy 伺服器位於兩個使用者代理程式之間。

源和目的地之間最多可以有70個Proxy 伺服器。

有兩種類型的Proxy 伺服器 -

無狀態Proxy 伺服器 - 它只是轉寄收到的訊息。這種類型的伺服器不儲存任何呼叫或交易的資訊。

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

註冊伺服器
註冊伺服器接受使用者代理程式的註冊請求。它可以協助使用者在網路中進行身分識別驗證。它將URI和使用者的位置儲存在資料庫中,以協助同一域內的其他SIP伺服器。

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

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

重新導向伺服器
重新導向伺服器接收請求,並在註冊器建立的位置資料庫中尋找請求的預期收件者。

重新導向伺服器使用資料庫擷取位置資訊,並以3xx(重新導向響應)響應給使用者。我們將在本教程的後面討論響應代碼。

位置伺服器
位置伺服器提供有關呼叫者可能的位置到重新導向和Proxy 伺服器的資訊。

只有Proxy 伺服器或重新導向伺服器可以聯絡位置伺服器。

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

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

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

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

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

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

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

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

發送到Proxy 伺服器的INVITE請求負責啟動會話。

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

Proxy 伺服器在位置伺服器中搜尋Bob的地址。擷取地址後,進一步轉寄INVITE請求。

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

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

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

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

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

BYE直接從Alice到Bob繞過Proxy 伺服器。

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

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

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

SIP梯形
代理如何協助一個使用者與另一個使用者串連?讓我們在的協助下找出。

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

當來電者發起呼叫時,將向Proxy 伺服器發送INVITE訊息。Proxy 伺服器收到INVITE後,嘗試藉助DNS伺服器解析受理者的地址。

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

入站Proxy 伺服器聯絡位置伺服器以擷取使用者註冊的被叫方地址資訊。

從位置伺服器擷取資訊後,將呼叫轉寄到其目的地。

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

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

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

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

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

這些被稱為METHODS的SIP請求使SIP訊息可行。

方法可以被認為是SIP請求,因為它們請求由另一使用者代理程式或伺服器採取的特定動作。

方法被分為兩種類型 -

核心方法

擴充方法

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

邀請
INVITE用於啟動與使用者代理程式的會話。換句話說,INVITE方法用於在使用者代理程式之間建立媒體會話。

INVITE可以在郵件內文中包含主叫方的媒體資訊。

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

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

在已建立的對話方塊內發送的INVITE被稱為re-INVITE。

Re-INVITE用於更改會話特性或重新整理對話方塊的狀態。

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

複製代碼

INVITE sips:Bob@TMC.com SIP/2.0    Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9    Max-Forwards: 70    From: Alicesips:Alice@TTP.com;tag = 1234567    To: Bobsips:Bob@TMC.com   Call-ID: 12345601@192.168.2.1   CSeq: 1 INVITE    Contact: sips:Alice@client.ANC.com    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請求,可以由呼叫者或被叫方發送以終止會話。它不能由Proxy 伺服器發送。BYE請求通常路由端到端,繞過Proxy 伺服器。BYE不能發送到待處理的INVITE或未建立的會話。註冊 REGISTER請求執行使用者代理程式的註冊。該請求由使用者代理程式發送到註冊伺服器。REGISTER請求可以轉寄或代理,直到它到達指定域的權威註冊商。它在正在註冊的使用者的To頭中攜帶AOR(記錄地址)。REGISTER請求包含時間段(3600sec)。一個使用者代理程式可以代表另一個使用者代理程式發送REGISTER請求。這被稱為第三方註冊。這裡,From標籤包含代表To標題中標識的方提交註冊的方的URI 。取消 CANCEL用於終止未建立的會話。使用者代理程式使用此請求取消之前發起的未決呼叫嘗試。它可以由使用者代理程式或Proxy 伺服器發送。CANCEL是逐跳請求,即它通過使用者代理程式之間的元素,並接收下一個有狀態元素產生的響應。ACK ACK用於確認對INVITE方法的最終響應。如果INVITE不可用,則ACK始終沿著INVITE.ACK的方向包含SDP主體(媒體特性)。ACK可能不會用於修改已經在初始INVITE中發送的媒體描述。接收ACK的有狀態代理必須確定ACK應該向下遊轉寄到另一個代理或使用者代理程式。對於2xx響應,ACK是端到端的,但對於所有其他最終響應,它在涉及有狀態代理時基於逐跳的工作。OPTIONS OPTIONS方法用於向使用者代理程式或Proxy 伺服器詢問其功能並發現其當前的可用性。對請求的響應列出了使用者代理程式或伺服器的功能。代理從不產生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被正常接收響應,以指示該訊息已在其目的地被遞送。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.