使用公用IP时,为什么UDP工作而TCP不工作?

时间:2019-05-17 11:14:28

标签: sockets tcp udp nat

我正在学习NAT遍历并进行实验。这两个主机都在我学校的同一子网中。当我使用专用地址时,TCP和UDP通讯均正常工作。但是,当我使用公共地址时,只有UDP起作用。

我使用STUN获取使用UDP的公共地址。 NAT类型为全锥状,因此在使用公共地址时应该可以使用。我使用套接字模块编写了四小段python代码。它们是udpsender.py,udpreceiver.py,tcpsender.py和tcpreceiver.py。因此,在使用UDP时,无论我让发送方将消息发送到接收方的私有地址还是公共地址,接收方都始终会收到。但是使用TCP时,接收者只能在发送者发送到私有地址时接收。

我想我的代码没有错。可能是因为UDP和TCP之间的差异以及NAT的设置。 那么在使用公共地址时如何使TCP正常工作?

0 个答案:

没有答案