蘋果小豬研究室
  • 首頁
  • 中譯資料
  • 網路觀念
    • OSGi 平台
    • SCTP 通訊協定簡介
      • 1 多重串流 (Multi-streaming)
      • 2 路徑多宿 (Multi-homing)
      • 3 SACK 機制
      • 4 Path MTU Discovery
      • 5 Ordered/Unordered 傳送機制
      • 6. SCTP API
      • 7. TCP 與 SCTP 通訊協定比較
      • 8. 參考文獻
    • TCP over SCTP tunnel
    • TCP 與 SCTP 協定轉換機制
    • UPnP 與 UPnP AV
  • Linux 程式設計
    • [C] 產生亂數
    • [C] Pointer and array
    • [Script] strncmp
    • [C] Linux 取得 HD 序號
    • [C] 程式範例-切割 subnet
    • C struct 的使用
    • C 目錄相關
    • const 修飾詞
    • Dangling pointer(懸置指標)
    • dnsmole
    • dos2unix 程式碼
    • Function pointer in C
    • GCC header limits.h
    • GDB 參數
    • glibc detected (double free)
    • IEEE 754 and float 範例程式
    • kernel 中的網路卡名稱與命名順序關係
    • Linux 序列埠程式設計
    • loop device 的數目
    • Perl & LWP
    • Remote Control over CGI
    • 偵測 NAT 內部主機連線狀況
    • 利用 libpcap 取得所有的網路裝置名稱
    • 取得時間
    • strncpy
    • 從應用層程式取得傳輸層 TCP 資訊
    • 於 Linux 上撰寫 daemon server 要注意的
    • 為什麼需要 & 0377
    • 研究 setsid()
    • 與 HTTP 協定有關的 RFC
    • 製作 patch 檔
    • 設計在背景執行的 Linux 程式
    • 讀取 STDIN (Standard INPUT) 範例程式
    • 關於 Linux CPU smp_affinity
    • 陣列名稱與指標
  • 網路服務推薦
    • 專案管理工具 - clickup
    • 文件大師 - gitbook
  • glibc 中文手冊
    • GNU C 函式庫常見問題(FAQ)
  • Linux 系統操作
    • /proc/sys/net/ipv4/conf/eth* 目錄中的參數
    • Linux 伺服器效能調校
    • Linux 設定網卡速度
    • Proxy ARP
    • sysrq
    • Turn off beep in Linux system
    • umask()
    • 以 ethtool 查看網路卡狀態及設定
    • 使用 nameif 修改 Linux 網路卡名稱
    • 使用 xhost
    • 利用 sed 取出檔案中某行
    • 在 bash 中設定 Proxy server
    • 在 Linux 系統呈現 dd 的進度
    • 字串取代,使用 awk & sed
    • 尋找多種副檔名
    • 常用 VIM 選項
    • 自動 CPU 調頻節能控制
    • 自動執行程式
    • 設定 Debian 預設啟動服務
    • 設定 DHCPd server
    • 透過 RS-232 操作 Linux console
    • Linux connect to serial port
  • 資訊安全
    • ARP spoofing 技術管控區網流量實例
    • dsniff
    • Linux Socket Filtering
    • Linux 系統安全管理
    • Security 資訊
    • sniffer 相關工具 - IPgrad, tcpick
    • 以 Linux 實務 ARP Spoofing
    • 將文字隱藏於 JPEG 圖檔
    • 資安工具
    • 資安相關網站
    • 限制 localhost 的 P2P 上傳流量
  • 實用工具
    • 實驗基本數據製圖指令 gnuplot
  • 交換連結
  • 網頁設定
  • 網路應用
    • 網路時光機
  • Foldng@Home
  • 文獻推薦
    • 電子書
    • 提問的智慧
    • 好書
  • 隱私政策
Powered by GitBook
On this page
Edit on GitHub
  1. 網路觀念

UPnP 與 UPnP AV

Aaron Liao

UPnP [1][2] 為1999年Microsoft所提出的架構,目的在於使設備之間能夠透過UPnP通訊協定知道彼此的存在,以達到Zero Configuration的目標,因此只要設備具備UPnP協定,當新增該設備於網路環境中時,就能夠使用與控制。UPnP規格定義了三項主要的元件,分別是CP (control point)、裝置 (Device) 與服務 (Service),CP能夠找尋到目前UPnP網路中的可用裝置,並透過UPnP協定進行控制。而一個裝置可以提供多個服務,並且提供服務的資訊給CP。而服務為UPnP 網路中最小的單位,CP透過發出動作(action)參數給服務,可修改服務的狀態變數,而服務會將修改後的狀態變數提供給所有訂閱該服務的CPs。

UPnP 裝置間溝通的運作流程可分六個步驟,依序為:(1)Addressing (2)Discovery (3) Description (4)Control (5)Eventing (6) Presentation,分別描述如下:

(1) Addressing:

UPnP裝置在加入網路時,會要求取得一組網路位址,因此會先透過DHCP client發出DHCP Discovery訊息探測網路上是否有DHCP伺服器,並且向DHCP伺服器請求一組位址,若網路上沒有DHCP伺服器,則裝置將利用Auto IP自行產生一組IP位址。

(2) Discovery:

當裝置取得位址,會透過週期性的群播 (Multicast) discovery訊息來自我介紹,訊息內容包含了裝置本身的資訊與所包含的服務,所以CP就能夠透過discovery訊息得知有新的裝置提供服務。若加入網路的裝置是CP,則是透過單次群播搜尋網路中有興趣的裝置,並且得知該裝置所提供的服務。如果CP需要使用該裝置的服務,則會利用discovery訊息的內容向裝置取得XML格式的Description。

(3) Description:

CP透過裝置的discovery訊息內容取得描述裝置資訊與服務的XML檔案。

(4) Control:

透過description階段取得裝置與服務之描述檔。

(5) Eventing:

當有CP控制某個裝置並改變了該裝置中的服務狀態,該裝置需要通知已與它註冊的CPs。

(6) Presentation:

若裝置提供控制的網頁介面,則CP能夠透過此介面控制裝置。

UPnP AV

UPnP AV [3] 基於UPnP架構對於影音傳輸所規範的標準,UPnP AV定義了CP (Control Point) 與裝置(Device)之間的互動模式。UPnP AV架構如圖所示, UPnP AV的定義中包含三項元件,分別是(a) CP (b) MS (Media Server) (c) MR (Media Renderer),以下分別對三者進行描述:

(a) CP為協調與設定MS及MR的運作,當設定完成時,MS與MR會依照CP的設定建立連線,CP通常具備使用者介面,使用者透過此介面來設定控制MS與MR。

(b) MS主要為提供影音內容,透過家庭網路分享影音資料,使用者可以透過CP得知MS內的多媒體資料,MS可以是錄放影機、DVD撥放器、衛星/電纜接收器、CD撥放器或MP3撥放器等,MS設備上包含三種服務:CDS (Content Directory Service)、CMS (Connection Manager Service) 與AVT (AV Transport Service)。CP透過CDS服務瀏覽或搜尋MS所提供的影音目錄,其中的browse( )動作 (action)可以讓 CP得到影音內容相關的詳細資料,包含檔名、作者、檔案大小、影音的內容、影音傳輸協定與內容格式。CP 透過CMS通知MS準備一個即將開始的傳輸,若MS具有影音傳輸的服務,則透過動作回覆CP一個影音傳輸服務的識別碼(Instance ID),用以識別多個影音傳輸服務的instance,每一個影音傳輸服務的instance 代表一個由MS到MR之間連線 (connection),當CP要結束一個連線時,可以透過CMS的Connection Complete()動作釋放連線。AVT提供CP可以控制影音資料播放的動作,如停止播放、暫停播放、取得影片播放時間、設定影片播放時間等。

(c) MR為播放影音資料的設備,CP透過RCS (Rendering Control Service) 提供的動作控制MR撥放這些影音內容,包含設定畫面明亮度、對比、及調整音量等。

如上圖所示,影音資料的內容由MS所提供,CP透過CDS服務的browse() 動作取得MS影音目錄,並透過AVT 服務將影音的URI通知MR,而CP也是透過AVT服務控制MR影音播放、暫停、停止等動作,至於影音資料的傳輸則是由MR透過Out-of-Band的方式與MS傳輸,影音資料的傳輸不會透過CP轉送。

參考文獻

[1] Universal Plug and Play, http://www.upnp.org/.

[2] UPnP Forum, UPnP Device Architecture 1.0, 2003.

[3] UPnP Forum, “UPnP AV Architecture v1.0”.

PreviousTCP 與 SCTP 協定轉換機制NextLinux 程式設計

Last updated 2 years ago

UPnP AV架構圖