如果我telnet兩個不同的服務器在我的電腦相同的端口,一個會完成,直到另一個完成?傳出端口一次只允許一個傳出連接?網絡端口IO
網絡端口IO
回答
它們是分開的,由本地TCP端口號區分,每個出站連接都不同。
http://www.tcpipguide.com/free/t_TCPIPClientEphemeralPortsandClientServerApplicatio.htm
服務器響應客戶端;他們不主動與他們聯繫。因此,客戶端不需要使用保留的端口號。 ...要知道發送答覆的位置,服務器必須知道客戶端正在使用的端口號。這由客戶端作爲請求中的源端口提供,然後由服務器用作發送答覆的目標端口。客戶端進程不使用衆所周知的或註冊的端口。而是爲每個客戶端進程分配一個臨時端口號供其使用。這通常稱爲臨時端口號。
源端口和目標端口是有區別的。遠程服務器可能使用相同的端口,但它們是不同的目標host1:80 host2:80。
每個連接將使用不同的源地址localhost:random_port。
有線流量的tcpdump或wireshark捕獲將顯示標記有源地址和目標地址以及端口的TCP網絡數據包,以便網絡流量具有返回路徑。
你是說,即將離任的港口會與所選擇的不同,實際上是隨機的? – user217631 2009-12-10 21:59:39
所以實際上host1:80和host2:80不會互相影響,對吧? – user217631 2009-12-10 22:01:15
您無法控制本地傳出端口。到遠程主機的流量不會相互影響,因爲它們各自在不同的出站端口上發送。 src:localhost:34567 dst:host1:80; src localhost:34568 dst:host2:80; – 2009-12-10 22:19:34
- 1. haskell網絡io hgetline
- 2. git端口 - 網絡要求
- 3. Android/Java慢速網絡IO
- 4. Erlang:如何知道哪個進程佔用網絡端口並執行IO
- 5. VESA通過IO /端口
- 6. IO完成端口和OpenSSL
- 7. 網絡 - 通過發送端口
- 8. C#中的專用網絡端口
- 9. Docker Compose不公開網絡端口
- 10. 計算機網絡端口地址
- 11. Apache Spark網絡端口配置
- 12. 碼頭網絡端口綁定
- 13. c上的網絡端口偵聽器#
- 14. 通過網絡訪問GPSD端口2947
- 15. ErrorsMetricbeat和collectd監控網絡IO
- 16. C#異步網絡IO和OutOfMemoryException
- 17. 如何模擬IO /網絡類?
- 18. 並行化IO Bound(網絡)ForEach循環
- 19. Perl IO :: Socket :: SSL:connect:網絡無法訪問
- 20. 使用憑證的網絡IO
- 21. 可觀察網絡IO解析
- 22. 多網絡請求&網絡客戶端
- 23. Communicateur通過網絡與客戶端的串行端口
- 24. 爲Mac OS X IO完成端口
- 25. AVR IO端口不能是全局的
- 26. c#並行IO完成端口
- 27. CPU IO端口如何工作?
- 28. IO完成端口:WSARecv()如何工作?
- 29. 流星和插座IO端口
- 30. 端口在錯誤的網絡接口上收聽
所以如果我說telnet xxx.xx.xxx.xxx 80,實際的本地tcp端口號會不同於80? – user217631 2009-12-10 22:06:26
這是正確的。你只指定了'telnet'的目的地。您的操作系統爲您選擇一個隨機出站端口,並且您的源地址來自您的網絡接口。 – 2009-12-10 22:40:49