搜尋此網誌

2013年6月25日 星期二

研究所時期作品: 實現基於PR-SCTP協定的快速語音視訊IP串流在行動無線網絡之間的嵌入式平台 (2011/08 完成第一版)

X86平台上的網路視訊電話

程式功能解說

語音與影像傳送的資料流與週邊裝置的關係
實現在Embedded system(ARM平台:Mini2440)上的網路視訊電話
作品簡易說明:
  傳統在x86架構的PC上使用網際網路Video/Voice over IP (VVoIP)應用,傳輸層通訊協定採用TCPUDP是有不錯的表現。但是如果將VVoIP實現在ARM-Based嵌入式平台之無線網路環境, VVoIP的通話連線效能遭受到一些侷限性的問題。例如TCP通訊協定無法達成即時性的封包傳遞效能,而UDP通訊協定封包傳遞常常會發生封包的遺失、重複、或順序錯置等等問題。IETF所提出的串流控制傳輸協定Stream Control Transmission Protocol(SCTP)提供了幾個很好的特性。
SCTP:
1.          Multi-homing這個特性使一個端點可以擁有多個網路IP,可以更容易的在不同的IP的切換;並且可以動態的加入新的網路位址到連線中,也可以動態的由連線中移除某一個網路位址。當主要線路(primary path)發生擁塞時,在使用者可以忍受的時間內,切換到另一個可以使用的線路,使得使用者可以繼續通話,而不會有所查覺線路中斷。
2.          Multi-streaming:透過多個虛擬的通道,來同時傳遞不同的封包,並且當其中任一種封包遺失時,並不會影響到其它封包的傳遞,因而達到更好的效能。
3.          PR-SCTPPR-SCTPSCTP的延伸,它定義了不完全可靠度傳輸(partial reliable)的新服務。採用PR-SCTP通訊協定的優勢,就是當不重要的封包因延遲或遺失的時候,來不及在接收端接收,可以將那些封包忽略掉,而持續進行後面其他封包的傳送或接收,因此可以達成即時性封包傳輸的效能。

  透過以上這些特性,使得我們很容易透過SCTP來完成多個網路之間移動,並不會讓使用者查覺資料傳送中的中斷,還可達成在不同基地台之間無縫式換手連線,實現即時性視訊語音網路電話。
在不同基地台之間無縫式換手連線


國科會計畫第一階段先在Linux下參照SCTP的幾點特性來實作一影像語音通話程式,第二階段則是修改部分程式碼再編譯成ARM平台上的程式。

部分早期程式碼來自以下Open Project: IHU (一支Open Source Code的VoIP程式)
使用技術或工具:Linux
(ubuntu)、Qtopia/QtE、PR-SCTP協定、OpenCV、
       Qmake、arm-none-linux-gnueabi-4.4.3、C語言、
       Embedded System(ARM platform: Mini2440)
國科會編號:NSC99-2220-E-390-002

OpenFoundry: http://of.openfoundry.org/of/projects/1717
說明手冊以及Source Code都在OpenFoundry裡,有興趣的人再去下載學習。
程式碼授權:OSI: GNU Affero General Public License v3 (AGPL3)

沒有留言:

張貼留言