localhost上的套接字是否可以接收来自先前连接的数据包?

时间:2016-01-09 03:14:16

标签: sockets tcp localhost

localhost上的TCP套接字是否有可能从先前的连接接收数据包?如果是这样,则任何假定不会发生这种情况的程序都会被破坏。特别是,任何假定localhost上的套接字永远不会从它应该连接的对等体以外的任何数据接收任何数据的程序都会被破坏。

编辑:我知道这不是假设的。但是,如果前一个套接字在TIME_WAIT中的时间不够长,我认为可能会发生。我正在处理的应用程序要求永远不会发生在localhost上 - 否则,它会受到任意代码执行漏洞的影响。

2 个答案:

答案 0 :(得分:2)

如果您没有使用TIME_WAIT设置,并将其保留为默认值,则它是最大段生命周期(MSL)的两倍,因此不可能是先前的段连接到网络的持续时间足够长,以便通过同一端口上的新套接字接收。

TCP随机化初始序列号的事实是另一种防御。陈旧段的序列号极不可能适合当前的接收窗口。

答案 1 :(得分:-1)

不,TCP套接字是基于连接的。

  

连接后,TCP套接字只能发送和接收   远程机器。这意味着每个都需要一个TCP套接字   客户在您的申请中。

Source