線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2002
推到 Plurk!
推到 Facebook!

請問如何在NAT之下,讓語音連線建立

缺席
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-25 16:04:58 IP:61.220.xxx.xxx 未訂閱
各位大大 如題,小弟碰到一個問題,若pc在有NAT的router之後,使用ICQ,AIM,MSN 等一些即時聊天軟體時,都不能建立語音交談連線,逛過一些網站都得不 到有效的解決方法,所以想請問是否有人做過這一方面的程式,提供參考 的解決之道或資料..
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-25 16:24:41 IP:203.73.xxx.xxx 未訂閱
引言: 各位大大 如題,小弟碰到一個問題,若pc在有NAT的router之後,使用ICQ,AIM,MSN 等一些即時聊天軟體時,都不能建立語音交談連線,逛過一些網站都得不 到有效的解決方法,所以想請問是否有人做過這一方面的程式,提供參考 的解決之道或資料..
JerryKuo 你好:
(1)我並沒有做過這方面的程式,所以,只能就我所知道的告訴你
(>    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-25 16:50:46 IP:211.23.xxx.xxx 未訂閱
NAT裡是不是有個叫DMZ的東東要設定啊~~ 速不速呢~~ 答錯了~~不要打我~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-25 17:31:31 IP:61.220.xxx.xxx 未訂閱
Thanks Pao      說出來很不好意思,我本身就是在維護NAT的,之前有 >
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-25 18:03:29 IP:61.218.xxx.xxx 未訂閱
我想你需要的是取得那些Service 所使用的Port 在DOS 視窗下有個指令Netstat 可以得知目前在你的電腦上正在使用的協定與port    你可以觀察,看看是那些port 在傳送語言…等相關資料,你再將其開放 試試看 ----------------------------------
C:\Documents and Settings\DAVID>netstat    Active Connections      Proto  Local Address          Foreign Address                        State
  TCP    david:1032             localhost:3402                         TIME_WAIT
  TCP    david:3404             localhost:1032                         TIME_WAIT
  TCP    david:1052             baym-cs56.msgr.hotmail.com:1863        ESTABLISHED
  TCP    david:1054             knight.fcu.edu.tw:http                 CLOSE_WAIT
  TCP    david:1091             202-39-43-241.HINET-IP.hinet.net:1755  ESTABLISHED
  TCP    david:2457             61-218-122-234.HINET-IP.hinet.net:ftp  CLOSE_WAIT
  TCP    david:2518             baym-sb52.msgr.hotmail.com:1863        ESTABLISHED
  TCP    david:3403             61-218-122-234.HINET-IP.hinet.net:pop3 TIME_WAIT
  TCP    david:3406             g.msn.com:http                         TIME_WAIT
  TCP    david:3407             baym-sb65.msgr.hotmail.com:1863        ESTABLISHED
  TCP    david:3408             svcs.microsoft.com:http                TIME_WAIT
  TCP    david:3410             165.193.214.6:http                     CLOSE_WAIT    
發表人 - ddy 於 2003/03/25 18:07:21
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-25 18:44:33 IP:61.220.xxx.xxx 未訂閱
傳訊息 : 使用的都是同一個port1,也就是初始port1,在這地方NAT都能支援 互傳檔案 : 各家軟體使用不同的方式建立傳輸 第一種:先傳到server再轉傳給對方,不過這很少人會用,這樣server 會很危險,我猜應該也不可行. 第二種:大部分都用這一種,就是雙方協議開port2傳輸,此時port2就 是動態的,所以使用ALG,在router 建立一個port mapping session,這樣檔案能經由port2傳輸檔案 語音連線 : 就比較複雜,必需經過兩次的協議,開port3建立連線,這地方又分好 幾種,略-.-..抱歉 這是我用sniffer看到的結果...不過我的結果還是:..無計可施..
tender
初階會員


發表:23
回覆:90
積分:37
註冊:2002-09-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-29 20:13:25 IP:211.75.xxx.xxx 未訂閱
hi OB & everyone Wait & Sorry !!    What is NAT ,LAG??< >< >
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-31 09:51:53 IP:61.220.xxx.xxx 未訂閱
NAT(network address translation)是定義於RFC 1631, 它是在 router 中進行一個更換 IP header 的動作, 讓更多台電腦能"共用"一個IP 連上 Internet 的技術.這項技術的發展主要是因應於32 bits的實體位址不敷使用, 為了讓32 bit的位址可以再繼續沿用, 所以才有NAT,IPv6..等新技術的產生, NAT是其中最簡易又能有效解決位址不夠的方法,許多的 router 目前有都有支援 NAT 這項功能,也就是俗稱IP 分享器。大概的方法: 三台電腦各分配三個私有ip(ip1,ip2,ip3), router是一台有實體ip(Gip)的伺服器,三台電腦接在router之後端。在internet上,外界的client只看得到Gip,看不到ip1,ip2,ip3。而三台電腦與外界連線時,依照原來的方式傳送封包給要連線的外界client, 為了讓對方能回傳得回來,封包經過router時,會把source ip改成Gip,如此對方才傳得回來。在這裡有一個問題,如何分辨封包是給ip1, ip2, ip3呢? 答案:使用tcp header中的 port區分,每個私有ip與外界連線時,都會先開一個port, listen對方的回應, 而router收這封包就會建立一個port mapping session table,允許外界封包可以由此進入, router根據封包的port分配給各個私有ip。這樣的router有很多好處: 1.建立一個網域,只需要少數的Gip,因應不敷使用的Gip 2.外界只看得到Gip,而不能直接存取內部的私有ip 3... 上述只簡單的講解NAT,其實還有NAPT(network address & port translation),bi-direction NAT,更詳細的請參照rfc 1631 ALG(application layer gateway):顧名思義ALG跟應用層有關,舉個最簡單的例子:FTP ,一般我們要連線FTP SERVER,都是經過PORT 21與SERVER溝通建立連線,有NAT功能的ROUTER能根據IP,TCP HEADER開放PORT 21,讓封包進出,可是當要傳輸檔案時,CLIENT和FTP SERVER會另外建立一個檔案傳輸埠,這個PORT是有雙方協議而得,協議資訊藏於封包的資料,而不是檔頭區,所以ROUTER不能知道要開放什麼PORT,雖然CLIENT開放PORT 1,但ROUTER不開放MAPPING PORT, 則永遠不能建立連線,因為傳回的封包在ROUTER就被當做不知名的東西丟掉,所以ALG就是為解決NAT這一項缺點,根據封包的資料區,找出PORT值,命令ROUTER開放,使得資料順利傳輸。因為每個應用軟體若要額外開PORT,而PORT值都藏於不同的地方,所以每個應用軟體都直接要有一個ALG。
tender
初階會員


發表:23
回覆:90
積分:37
註冊:2002-09-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-31 15:35:00 IP:211.75.xxx.xxx 未訂閱
請問,如果每個應用軟體都有一個ALG,那讓router開一個mapping port 的動作 是server 做還是client 做呢??    那我們要開發網路程式的話,不就還要聯ALG一起做進去呢,如果真的是, 為什麼我們只要原件拉一拉就輕鬆完成了呢??    < >< >
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-31 16:36:49 IP:61.220.xxx.xxx 未訂閱
我可能沒有講得很清楚,抱歉 1.NAT,ALG是在ROUTER做的,我想這ROUTER可以比做是一台SERVER 2.並不是每個應用程式都需要ALG,NAT這個演算法也是近幾年才廣為使用於ROUTER,讓更多電腦能共用一個實體IP,節省實體IP的使用量。所以在之前發展出的應用軟體,並沒有考慮到會有NAT的出現,使得如果應用程式支援直接資料對傳,讓兩個CLIENT端可以互傳檔案,這兩個CLIENT協議出檔案互傳的額外PORT,這個額外開的PORT和原先建立的連結埠並不一樣,所以ROUTER並不會允許資料由這個PROT進出,所以有ALG出現解決NAT這方面的問題。 就我寫過和看過的ALG就有好幾種,ICQ,AIM,SIP,MSN,IRC,...等這些應用 程式都是很受歡迎的,這些軟體大部都是先在一台聊天server上聊天,一旦兩個CLIENT要互傳檔案,只要其中之一個CLIENT是透過NAT ROUTER連線,在他這端開了一個PORT,告訴對方他的IP和PORT,對方根據他傳來的資料,做一個連線動作給IP和PORT,但這個IP是NAT ROUTER之後私有IP,INTERNET上沒有這個IP,所以連線資料一定送不到,為了使NAT ROUTER都能在這些程式下正常運作,才會有這方面的ALG加在ROUTER之中,把開PORT的CLIENT所以傳出去的連線資料IP,改成ROUTER的IP,並開啟PORT MAPPING讓對方回應的資料得以進出。 NAT問題的發生,是在於網路應用程式功能,如果應用程式沒有需要額外開PORT傳輸資料,就不會發生連線失敗的情形,也不用ALG去解決。有的應用程式會直接把額外開的PORT設死,這樣只要在ROUTER設定VIRTURL SERVER或是DMZ就可以解決NAT的問題。 NAT的問題以前是在ROUTER用ALG來解決,現在"好像"可以直接在應用程式解決,加上UPNP,但我對它不太了解。^^
yckuo
高階會員


發表:55
回覆:389
積分:238
註冊:2003-03-07

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-04 17:13:28 IP:61.221.xxx.xxx 未訂閱
您好: 請參考這篇文章 http://www.microsoft.com/WindowsXP/pro/techinfo/deployment/natfw/natwinmes.asp 若您的 netmeeting 對像固定的話,弄個 vpn 就方便多了. yckuo
------
yckuo
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-04 18:38:35 IP:61.220.xxx.xxx 未訂閱
THX. yckuo 根據那篇文章,對於UPNP,我又更加了解一些 我把問題縮小,每個聊天程式的語音連線都不一樣 大部分語音連線的通訊協定都有跡可尋,一般有名 的有SIP,MGCP,H.232...等,VOIP大都使用這些通訊 協定,而MSN就是用SIP建立語音連線,不過AIM和ICQ 的語音通訊協定都找不到來源說明,都不在上面舉 例之中,想請問有沒有人知道AIM和ICQ的語音連線是 用什麼PROTOCOL.
系統時間:2024-03-29 17:18:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!