【求助】問一個FTP port的問題..困擾已久..
FTP運作是以TCP21為command channel
及TCP20為data channel。
-----------------------------------------------------
在同網域內([COLOR=Navy]都是172.17.17.0/24內的電腦[/COLOR])
我架server於A電腦
client為B電腦
今天我在B電腦[COLOR=Navy]用IE,用主動模式連過去...[/COLOR]netstat -n下的狀況顯示為
Local Address Foreign Address
A:21 .............. B:3975
A:21 .............. B:3976
-----------------------------------------------------ok~到這都沒問題
當我開始用B電腦抓檔案下來時...
netstat -n下的狀況顯示為
Local Address Foreign Address
A:21 .............. B:3975
A:21 .............. B:3976
A:3416............. B:4000 <-------?
----------------------------------------------------
不是TCP20為data channel嗎?為何會是3416port呢?
為何我試下載檔案~都從沒看過20 port出現過呢?
(我用主動模式喔..)
thx~~
回覆: 【求助】問一個FTP port的問題..困擾已久..
[QUOTE=nopy]如果某個 Port 已經被某一個 Process 註冊要負責處理該 Port 的新進連線 ([b]Listen[/b]),
則該 Port 就無法再被其他 Process 重複 Listen
否則作業系統會不曉得把該 Port 新進的連線丟給誰處理
不同的 Process 是可以共用同一個 Port 傳輸資料,
但是不能同時註冊負責同一個 Port 的新連線需求
[/QUOTE]
nopy兄 打擾了!!
想請教 網路的觀念
web server 是使用 port:80 來服務client端
client端 使用 隨機的port 跟 server的80 port 溝通
所以 server 從頭到尾 就只使用 port 80 回應給 client 端
也就是說 : 使用 同一個port 是可以服務 n 個 client 嗎?
好奇的是 80 port 在 listen中 接受 client的詢問, 還可以同時用同一個port 回應client嗎 ?
請 nopy 指教一下
回覆: 【求助】問一個FTP port的問題..困擾已久..
[QUOTE=cappella]nopy兄 打擾了!!
想請教 網路的觀念
web server 是使用 port:80 來服務client端
client端 使用 隨機的port 跟 server的80 port 溝通
所以 server 從頭到尾 就只使用 port 80 回應給 client 端
也就是說 : 使用 同一個port 是可以服務 n 個 client 嗎?
好奇的是 80 port 在 listen中 接受 client的詢問, 還可以同時用同一個port 回應client嗎 ?[/QUOTE]
你的問題答案都是 "YES",我在前面回覆中有提到:
區別每個連線的是五個數值(5-tuple),包含
[LIST][*]通訊協定 (TCP or UDP)[*]本地端 IP[*]本地端 Port Number[*]遠端 IP[*]遠端 Port Number[/LIST]
只要上面任一個數值不一樣,就是不同的 connection (連線),
系統就有辦法辨別出來讓不同的程式去處理、同時分別收送資料
不過同一個 IP/Port 只能有一個程式去 Listen 而已,因為這時連線還沒建立
如果會寫程式,請參考 Richard Stevens 的 UNIX Network Programming