【发布时间】:2010-11-18 22:09:11
【问题描述】:
我已经搜索过,但找不到以下内容:
Process1 通过 TCP 套接字传输数据。进行传输的代码是(伪代码)
//Section 1
write(sock,data,len);//any language.Just write data
//Section 2
写入后的Process1可以在第2节继续,但这并不意味着数据已经传输完毕。 TCP 可以缓冲数据以供以后传输。
现在 Process2 与 Process1 同时运行。两个进程都尝试同时发送数据。 IE。两者都将具有上述代码。
问题1:如果两个进程同时将数据写入 TCP 套接字,数据最终将如何通过 IP/OS 通过线路传输?
a) Process1 的所有数据后跟 Process2 的所有数据(或反向),即一些 FIFO 顺序?
或
b) 来自 Process1 和 Process2 的数据将由 IP 层(或操作系统)通过网络进行多路复用,并“同时”发送?
问题 2: 例如,如果我添加了延迟,我是否可以确定来自 2 个进程的数据是通过网络串行发送的(例如,Process1 的所有数据后跟 Process2 的所有数据)?
更新:
Process1 和 Process2 不是父子。他们也在不同的套接字上工作
谢谢
【问题讨论】:
标签: language-agnostic networking network-programming tcp