如果应用程序打开2个TCP套接字,那么它们之间是否会维护有序属性?

Joe*_*oey 0 javascript sockets networking tcp websocket

如果我有一个Javascript应用程序并行打开2个websockets,它们都在同一个端口上的同一个主机:

var socket1 = io.connect(host);
var socket2 = io.connect(host);
Run Code Online (Sandbox Code Playgroud)

然后我将每个数据发送到应用程序中的相同功能:

socket1.on("data", function(e) {doStuff(e);});
socket2.on("data", function(e) {doStuff(e);});
Run Code Online (Sandbox Code Playgroud)

每个套接字是否只对自己强制执行有序属性,还是对整个应用程序强制执行?例如,如果发送到socket1的数据包丢失,socket2是否仍然能够接收和处理未来的TCP数据包而无需等待重新传输数据包到socket1?

Ros*_*son 5

两个插座完全独立.无论丢失和重传,在一个连接上发送的数据都不会对另一个连接产生影响.具体来说,TCP用于数据完整性的序列号空间特定于(addr1,port1,addr2,port2)的四元组.