Responsive image
博碩士論文 etd-0723107-150518 詳細資訊
Title page for etd-0723107-150518
論文名稱
Title
應用多媒體代理伺服器於VoIP之NAT穿透服務與負載平衡之設計與實作
Design and Implementation of a Load Balance Mediaproxy for VoIP NAT Traversal
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
69
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2007-07-05
繳交日期
Date of Submission
2007-07-23
關鍵字
Keywords
多媒體代理伺服器、網路電話
VoIP, MediaProxy, NAT
統計
Statistics
本論文已被瀏覽 5672 次,被下載 0
The thesis/dissertation has been browsed 5672 times, has been downloaded 0 times.
中文摘要
隨著網路的普及和無線通訊技術的提升,VoIP 變的越來越炙手可熱。由於每一個網路電話都需要一個IP 位元址,因此在建立VoIP 平台時,會遇到IP 位址不足的問題。目前解決此問題最常見的方法是,使用一台NAT 轉換器來轉換IP 位址,使NAT 內部的主機可以跟NAT 外部主機相互通訊,但是NAT 卻造成了VoIP 相關應用程式無法正常的運作。
本文將介紹在VoIP 上如何使用SIP 運作原理,使兩個SIP Client 端可以連線通訊,和說明NAT 的四種型態,並討論如何用STUN、ICE、RTP Relay Server、UPnP、TURN 穿透NAT,在分析過這五種穿透NAT 所有的優缺點後,我們發現,使用RTP Relay Server 是最簡單也較容易被接受的,但是使用RTP Relay Server 穿透NAT 的最大缺點是,原本點對點的連線方式就變成要由第三方伺服器去幫忙做轉傳RTP 的封包,當使用者過多時,勢必造成轉傳伺服器的負擔,導致通話品質下降,因此我們用python 改寫RTP Relay Server 的程式,使其可以透過SNMP去觀察轉傳伺服器上的網路卡封包流量,當伺服器上的流量到達了一個上限值,就由別台的伺服器去做轉傳封包,以維持良好的通訊品質。
Abstract
The network and the wireless communication technology are all pervasive and growing. VoIP is very popular in recent years. Every IP phone requires a public IP address, but there are no enough public IP addresses. At present to solve this problem is use a NAT (Network Address Translation). NAT is a technology used for broadband connections which allows multiple devices to share one connection for accessing the Internet. The disadvantage is that Peer to Peer VoIP applications do not work behind NAT without settings.
In this thesis, I introduce how to realize the VoIP by SIP operations which enables two SIP clients to communicate each other. Later, I explain five kinds of NAT and the SIP traversal over NAT, such as STUN, ICE, RTP Relay Server, UPnP and TURN. We found RTP Relay Server is the most easy and acceptable. The major disadvantage of using a RTP Relay Server is that the media will have to travel via a third party, the relay server, on the Internet. The quality of the phone call may be affected by the relay server. Therefore, I rewrite RTP Relay Server application in python to let it be able to use SNMP to measure whether the network flow is over the threshold. When the loading on the server is over than it will bear, the server will
reject the connection. Then, this connection will be dispatched to another relay server to maintain a good communication quality.
目次 Table of Contents
1.研究動機....................................................................................................................1
2.VoIP 簡介...................................................................................................................2
2.1.VoIP 通訊協定...............................................................................................3
3.SIP 概論與介紹.........................................................................................................3
3.1.SIP 組成元件.................................................................................................4
3.1.1.User Agents......................................................................................5
3.1.2.Proxy Server....................................................................................5
3.1.3.Redirect Server..............................................................................5
3.1.4.Registrar Server............................................................................6
3.2.SIP 運作的概念.............................................................................................6
4.SIP 的NAT 穿越方法.................................................................................................7
4.1.NAT 的運作原理.............................................................................................8
4.2.NAT 的類型.....................................................................................................9
4.2.1.Full Cone NAT..................................................................................9
4.2.2.Restricted Cone NAT......................................................................9
4.2.3.Port Restricted Cone NAT..........................................................10
4.2.4.Symmetric NAT................................................................................11
4.3.NAT 對SIP 應用造成的阻礙.......................................................................12
4.4.SIP 的NAT 穿越解決方案...........................................................................13
4.4.1.STUN (Simple Traversal of UDP Through NATs)....................13
4.4.2.TURN (Traversal Using Relay NAT)..........................................13
4.4.3.UPnP (Universal Plug and Play)..............................................14
4.4.4.RTP Relay Server..........................................................................15
4.4.5.ICE (Interactive Connectivity Establishment)..................16
4.5.優缺點分析與比較......................................................................................19
5.MediaProxy 於VoIP 之NAT 穿透服務與負載平衡之設計與實作.......................20
5.1.MediaProxy..................................................................................................20
5.2.MediaProxy 架構.........................................................................................21
5.2.1.Proxy Dispatcher..........................................................................21
5.2.2.Proxy Relay Server......................................................................22
5.3.MediaProxy 的運作方式.............................................................................23
5.4.MediaProxy 可能遇到的問題.....................................................................24
5.5.利用SNMP 解決所遇到的問題....................................................................25
5.6.實作環境與效能量測..................................................................................30
5.6.1.OpenSER 核心和module..................................................................30
5.6.2.MediaProxy......................................................................................31
5.6.3.MediaProxy 提供的參數.................................................................31
5.6.4.MediaProxy 提供的功能.................................................................32
5.6.5.SIP Express Media Server..........................................................33
5.6.6.SEMS 設計方法.................................................................................34
5.6.7.sems.conf 的參數...........................................................................35
5.6.8.openser.cfg 的主要部分...............................................................36
5.6.9.openser.cfg 中的訊息處理程式...................................................37
5.6.10.實作環境........................................................................................38
5.6.11.設定openser.cfg.........................................................................39
5.6.12.MediaProxy Relay Server 效能觀察方式.................................45
5.6.13.利用Web 介面觀察所有的Relay Server 的狀況......................46
5.6.14. mediaproxy.ini 設定參數.........................................................46
5.6.15.測試MediaProxy Relay Server 效能上限值............................48
6.實作的設計與架構..................................................................................................49
7.結論..........................................................................................................................55
參考文獻......................................................................................................................56
附錄..............................................................................................................................58
Netlink................................................................................................................58
1.Introduction..........................................................................................58
2.Netlink Socket API..............................................................................58
3.Sending a Netlink Message................................................................58
4.Kernel-Space Netlink APIs................................................................59
5.ADM5120 的LED 控制...............................................................................60
6.Closing a Netlink Socket from the Kernel..................................61
MediaProxy Requirements................................................................................61
1.pyrad module 安裝方式.........................................................................61
2.MySQL-python 安裝方式.........................................................................61
參考文獻 References
[1] Douglas R. Mauro,Kevin J. Schmidt “Essential SNMP”, January 2003
[2] D. Harrington, R. Presuhn, B. Wijnen “An Architecture for Describing SNMP Management Frameworks”, RFC 2571, April 1999
[3] K. McCloghrie, M. Rose, ”Management Information Base for Network Management of TCP/IP-based internets:MIB-II” ,RFC 1213,March 1991
[4] J. Rosenberg, J. Weinberger, C. Huitema, R. Mahy ” Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)”, RFC 3486, March 2003
[5] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, E. Schooler ” SIP: Session Initiation Protocol”, RFC 3261, June 2002
[6] M. Handley and V. Jacobson, “SDP: Session Description Protocol”, RFC-2327, April 1998.
[7] P. Srisuresh, M. Holdgree, “IP Network Address Translator (NAT) Terminology and Considerations”, RFC-2663, August 1999.
[8] M. Handley and V. Jacobson, “SDP: Session Description Protocol”, RFC-2327, April 1998.
[9] A. Gulbrandsen, P. Vixie, L. Esibov ” A DNS RR for specifying the location of services (DNS SRV)”, RFC 2782, February 2000
[10] D.Senie, ” Network Address Translator (NAT)-Friendly Application Design Guidelines”, RFC 3235, January 2002
[11] iptel.org SIP Server:SIP Express Router, http://www.iptel.org/ser/
[12] ag-projects.com:MediaProxy, http://www.ag-projects.com/MediaProxy.html
[13] Python, http://www.python.org/
[14]Python Library Reference, http://docs.python.org/lib/
[15]Net-SNMP, http://net-snmp.sourceforge.net/
[16] OpenSER:the Open Source SIP Server, http://openser.org/
[17] Python SNMP framework, http://pysnmp.sourceforge.net/
[18] J. Rosenberg “Interactive Connectivity Establishment (ICE)”,draft-ietf-mmusic-ice-13.txt, January 2007
[19] B. Ford, P. Srisuresh, D. Kegel ”Peer-to-Peer (P2P) communication across middleboxes”, draft-ford-midcom-p2p-01.txt, October 2003
[20]NAT Traversal for Multimedia over IP Services, http://www.newport-networks.com/whitepapers/nat-traversal1.html
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內校外均不公開 not available
開放時間 Available:
校內 Campus:永不公開 not available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 3.137.221.163
論文開放下載的時間是 校外不公開

Your IP address is 3.137.221.163
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code