1. 程式人生 > >SIP穿越NAT的rport機制

SIP穿越NAT的rport機制


具體的RFC文件參見RFC3581。

RPORT機制:

  1. 客戶端需要在top most via上帶上rport引數
  2. 服務端發現via中有rport引數時,將此via中加入received引數和rport引數,引數帶的值分別是服務端看到的訊息來源地址和埠(如果有NAT等地址轉換裝置,則即為轉換後的IP和port)。
  3. 當有需要傳送的響應時,按照rport中的埠傳送SIP 響應。也就是說IP和埠均完全遵照從哪裡來的,發回哪裡去的原則。(如果沒有rport欄位時,服務端的策略是IP使用UDP包中的地址,即從哪裡來回哪裡去,但是埠使用的via中的埠)

RFC文件中的例子:

客戶端傳送INVITE形如:

INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 10.1.1.1:4540;rport;branch=z9hG4bKkjshdyff
服務端收到後根據自己所得到的源地址和埠,重寫via,如有必要新增自己的via轉發
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bKkjsh77
Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988;branch=z9hG4bKkjshdyff
當需要給此請求傳送響應時,發往received,rport兩個引數記錄的IP和PORT。NAT裝置再把發往轉換後地址
192.0.2.1的包發往10.1.1.1地址。

SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988;branch=z9hG4bKkjshdyff

相關推薦

SIP穿越NAT的rport機制

具體的RFC文件參見RFC3581。 RPORT機制: 客戶端需要在top most via上帶上rport引數服務端發現via中有rport引數時,將此via中加入received引數和rport引數,引數帶的值分別是服務端看到的訊息來源地址和埠(如果有NAT等地址轉換裝置,則即為轉換後的IP和p

SIP穿越NAT SIP穿越防火墻-SBC

和源 消息 alt spl sim 連接建立 穿透 creat nec FireWall&NAT FireWall是一種被動網絡安全防衛技術,位於網絡的邊界。在兩個網絡之間運行訪問控制策略。防止外部網絡對內部信息資源的非法訪問,也能夠阻止特定

SIP穿越NAT&FireWall解決方案

SIP從私網到公網會遇到什麼樣的問題呢? 包的地址轉換。 SIP訊息裡面的SIP地址轉換。 SIP訊息裡面的SDP中的RTP地址轉換。  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:

[轉]SIP穿越NAT&FireWall解決方案

SIP從私網到公網會遇到什麼樣的問題呢? 1. 包的地址轉換。 2. SIP訊息裡面的SIP地址轉換。 3. SIP訊息裡面的SDP中的RTP地址轉換。 網路現存結構複雜,SIP服務提供商並不一定是NETWORK提供商,很難要求客戶只能使用某種方式的NAT&

為什麼說POW+POS混合共識機制,更有利於穿越熊市?

眼看著BTC價格在6000左右橫盤,不斷消耗市場的耐心,行情已然達到冰點,但幣圈並沒有因此而平靜,最近,BitPico宣稱要對BCH發動51%攻擊,在Twitter上BitPico晒出了對BCH發動持續攻擊的截圖,並寫道BCH的開發者根本不知道BCH的網路有多麼不堪一擊。這已

微信網頁授權獲取用戶信息等機制

json 開發者 userinfo 技術分享 nal amp 分隔 response unionid 參考官方文檔 https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 1.用戶進入授權

字符設備之poll機制

range his ssi movl -o 是把 sys ack timespec poll機制作用:相當於一個定時器。時間到了還沒有資源就喚醒進程。 主要用途就是:進程設置一段時間用來等待資源,假設時間到了資源還沒有到來,進程就立馬從睡眠狀態喚醒不再等待。當

繞過chrome的彈窗攔截機制

eww ajax請求 出發 btn 發的 沒有 ces 攔截 click 在chrome的安全機制裏面,非用戶觸發的window.open方法,是會被攔截的。舉個例子: var btn = $(‘#btn‘); btn.click(function () { //

Android安全機制介紹

backup 可能 mbed 集合 應用程序 linux用戶 內存空間 bin 實施 Android的安全機制包含下面幾個方面: ? 進程沙箱隔離機制。 ? 應用程序簽名機制。 ? 權限聲明機制。 ? 訪問控制機

C++差分隱私的指數機制的一種實現方法

list and span 機制 namespace stdio.h int class ++ #include <iostream> #include<stdio.h> #include<stdlib.h> #include<m

Java多線程機制

tro wid 機制 bsp 多核 idt http log 任務 Java 中的多線程簡介 1. 並發與並行的區別:   二者之間的區別在於,並發指的是一個處理器同時處理多個任務,並行指的是多個處理器或者是多核的處理器同時處理多個不同的任務. 2. 並發是邏輯上的同時發生

一個極其高效的虛擬機內存冗余消除機制:UKSM

穩定版 評測 內核 基礎 程序 cpu占用 projects kvm虛擬機 pos Linux內核機制KSM(Kernel Samepage Merging)能合並KVM虛擬機之間相同內存的頁面,被CentOS, RHEL之類的服務器內核廣泛采用,但是其速度很慢。UKSM(

反射機制的理解

java反射機制的理解以前學過很長時間反射機制,很是不理解?今天終於看到一本書講的很詳細。所有反射機制都是通過一個類叫做Class來實現:讓我看看書上是怎麽介紹的ClassClass是java.lang包中的類,該類的實例用來封裝對象運行時的狀態。當一個類被加載且創建對象時,和該類相關的一個類型為Claas的

2.2.2 加入factory機制

func nds extends 能夠 rand 並且 spa 屬於 style 上一節給出了一個只有driver、使用UVM搭建的驗證平臺。嚴格來說這根本就不算是UVM驗證平臺,因為UVM的特性幾乎一點都沒有用到。像上節中my_driver的實例化及drv.main_ph

$apply方法(觸發臟檢查機制

oct -1 alt module img rip ++ bsp area $swatch監聽方法 <!DOCTYPE html> <html><head lang="en"> <meta charset="UTF-8"&

linux下select/poll/epoll機制的比較

解決方案 socket 下一步 linux 操作系統 select、poll、epoll簡介epoll跟select都能提供多路I/O復用的解決方案。在現在的Linux內核裏有都能夠支持,其中epoll是Linux所特有,而select則應該是POSIX所規定,一般操作系統均有實現sele

Java的異常機制

上班 錯誤 跟蹤 spa ring 代碼混合 返回值 err cat 一.什麽是異常:非正常的,不同尋常的,不是語法錯誤。 生活中,醫生說你身體某個部位異常,該部位和正常相比,有點不同功能可能受損。 張三開車去上班,正常情況下,順利到達公司 非正常情況下,車子壞了,走路去公

Oracle SCN機制解析

丟失 self pen 必須 發出 span system 幫助 不同的 SCN(System Chang Number)作為oracle中的一個重要機制,在數據恢復、Data Guard、Streams復制、RAC節點間的同步等各個功能中起著重要作用。理解SCN的運作機制

AssetBundle管理機制(下)

資源加載 應該 卸載 針對性 idt current ntc ims nor ◆◆◆◆ AssetBundle卸載 內存分析 在上圖中的右側,我們列出了各種內存物件的卸載方式: ● 場景物件(GameObject):這類物件可通過Destr

AssetBundle管理機制(上)

atlas strong img rem byte das let atl 由於 AssetBundle內存管理機制 接上期AssetBundle打包的講解,我們今天為大家繼續探秘AssetBundle,從管理機制的角度出發,談談