这只是一个普遍的问题。
在TCP / IP中,当你在两点之间建立连接时,你会进行3次握手。
每次更改源端口和/或目标端口时,是否必须重新执行此操作?
我可以说你建立了从ip A到ip B和源端口s到源端口d的连接。现在您要将数据包从源端口s发送到新的源端口e。你还要在这里建立另一个连接吗?
或者,您是否只在第一次遇到IP地址时建立连接?
感谢他们
答案 0 :(得分:1)
TCP中的连接由4元组(source-ip,source-port,destination-ip,destination-port)标识。因此,连接到同一台计算机上的其他端口需要您建立新的TCP连接。
考虑通过NAT和其他路由技巧,可以将对同一IP地址上不同端口的请求转到不同的机器上。
答案 1 :(得分:0)
连接在两对特定的IP:端口之间。每个对等连接对象都存储此信息,因此当您将数据发送到连接的端点时,此信息用于形成IP数据包。如果您需要连接到另一个IP或端口,则无法更改此信息,因此您需要重新建立连接。
答案 2 :(得分:0)
“每次更改源端口和/或目标端口时,是否必须重新执行此操作?”是。请参阅this维基百科文章。这背后的原因是不同的IP地址通常识别网络上的不同主机,不同的TCP端口通常识别不同的应用程序或同一应用程序的不同功能。
答案 3 :(得分:0)
TCP连接是服务器套接字(IP和端口)与客户端套接字(IP和端口)之间的网络流服务。任何更改此套接字对的任何元素的尝试都意味着先前的连接被破坏,并且需要建立新的连接才能继续流式传输。