首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP与端口连接

TCP与端口连接
EN

Server Fault用户
提问于 2012-02-01 01:43:26
回答 2查看 721关注 0票数 -1

在两个不同主机上的两个端口之间,多个TCP连接可以同时处于活动状态吗?请回答。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-02-01 01:56:17

如果您想知道是否有可能从两个客户端系统打开套接字到服务器,其中相同的源端口和扩展端口恰好相同,那么是的,这是可能的。

代码语言:javascript
复制
# connections as seen by server
src_ip       sce_port  dest_ip      dest_port
192.168.1.5  1234      192.168.1.1  1234
192.168.1.4  1234      192.168.1.1  1234

套接字由(源地址+源端口+目标地址+目标端口)标识。两个目的地地址将是不同的,因此一切都会正常工作。

但是,在现实世界中,这种情况不太可能发生,因为源端口通常是从一个端口范围中选择的,这些端口可以在传出连接中使用。

代码语言:javascript
复制
# connections as seen by server you would most likely see in the real world
src_ip       sce_port  dest_ip      dest_port
192.168.1.5  49345     192.168.1.1  1234
192.168.1.4  51284     192.168.1.1  1234

如果您询问具有单个IP地址的单个系统是否可以从相同的源address+port打开两个连接到同一个目标address+port,则答案是否定的。当应用程序的第二个实例试图绑定到该源address+port组合时,它将得到一个错误。

代码语言:javascript
复制
# cannot happen/invalid, client can't bind
src_ip       sce_port  dest_ip      dest_port
192.168.1.4  1234      192.168.1.1  1234
192.168.1.4  1234      192.168.1.1  1234
票数 5
EN

Server Fault用户

发布于 2012-02-01 01:57:43

TCP连接由端口/地址元组跟踪:

192.168.101.24:61213 <--> 192.168.105.50:80

该连接在双方都被跟踪,这就是网络堆栈用来确定实际连接的内容。正因为如此,这个元组可以有一个和唯一的连接。这就是为什么连接的发起者对它的一半使用“临时”端口的原因,这样它就可以打开到远程端的多个连接。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/355640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档