C++ Winsock客户端延迟与服务器延迟不成正比

C++ Winsock客户端延迟与服务器延迟不成正比,c++,networking,asynchronous,network-programming,winsock2,C++,Networking,Asynchronous,Network Programming,Winsock2,我有一个客户机,它将1GB的数据以4MB的块发送到Winsock服务器。客户端和服务器应用程序使用构建在Winsock2之上的库,并使用IOCP线程 对于每一个4MB传输,服务器都会做一些工作,并将响应发送回客户端 客户端使用重叠套接字IO发送256个这样的4MB请求 问题:当服务器上的DoWork()立即返回时,整个过程只需9秒即可完成;但是当DoWork()需要500毫秒时,整个1GB传输过程需要130秒 客户端延迟不应该与服务器延迟成比例吗?也就是说,如果服务器完成其工作需要500毫秒,

我有一个客户机,它将1GB的数据以4MB的块发送到Winsock服务器。客户端和服务器应用程序使用构建在Winsock2之上的库,并使用IOCP线程

对于每一个4MB传输,服务器都会做一些工作,并将响应发送回客户端

客户端使用重叠套接字IO发送256个这样的4MB请求

问题:当服务器上的
DoWork()
立即返回时,整个过程只需9秒即可完成;但是当
DoWork()
需要500毫秒时,整个1GB传输过程需要130秒


客户端延迟不应该与服务器延迟成比例吗?也就是说,如果服务器完成其工作需要500毫秒,那么整个过程不应该在9.5秒内完成吗?导致运行时间不成比例增加的潜在瓶颈是什么?

(245块*500毫秒)/1000=122秒。与您应该期望的不一致?这项工作似乎是串行的,而不是并行的:)只是一些简单的数学运算。忘记任何TCPIP传输时间。256*500ms=128s。似乎你所看到的就在奈特堡。和半秒钟的处理时间相比,数据传输可以忽略不计。如果所有256个数据块同时发送,那么您的处理似乎不是并行进行的啊,这是有道理的。代码必须在某个地方串行调用DoWork()。我来检查一下。谢谢