发送一个大包与两个小包

时间:2018-10-15 05:21:08

标签: tcp server socket.io

当前,我每秒发送60个“同步”数据包到服务器A ,并且服务器A 还每秒发送60个不同的“同步”数据包到客户端。假设目前数据包延迟如下:

  • 从客户端到服务器A -平均30毫秒。
  • 服务器A 到客户端-平均35毫秒。

现在,我希望客户端与服务器B 建立连接,有时(每秒60次,也许20/10/5)发送此服务器B 其他一些数据包“不同”。将数据包同时发送到服务器 A B 会如何影响上述延迟?通常,如果我同时发送两个数据包,它们可以并行发送到服务器而不会互相干扰吗?

1 个答案:

答案 0 :(得分:0)

以60Hz发送数据包意味着每个数据包应在前一个数据包之后的16.6ms发送。如果使用1Gbps网络接口,则在此期间您最多可以发送近2MBytes(如果使用100Mbps接口,则可以发送200KBytes)的数据,因此很有可能每秒可以向服务器B发送另外60个数据包,而不会干扰发送给服务器A的数据包。

请注意如果您同时发送两个数据包,那么如果必须使用相同的网络接口,它们将不会同时退出。如果服务器具有多个CPU内核,并且每个内核的驱动程序具有不同的队列,则可以并行地将每个数据包传送到网络接口驱动程序,但是每个数据包到网络的出口将被序列化,一个接一个地发送。网络接口(至少是以太网接口)不能同时将两个数据包发送到网络。