tcp连接哪个更快?

tcp连接哪个更快?,tcp,boost-asio,Tcp,Boost Asio,一个简短的问题: 我使用boost:asio(tcp)通过网络发送数据。哪一个更快:使用流缓冲区,还是手动分割并发送数据包 特别是,如果要传输的数据大小通常超过100mb,该怎么办 谢谢 你越是想得过多,你就越会阻碍TCP的工作,它的性能也就越差。只需使用尽可能大的缓冲区来流式传输数据。“更快”可以表示两种不同的含义: 最小延迟。这意味着最小化客户端生成和接收数据包之间的时间。在这种情况下,在具有TCP_节点延迟选项的套接字上手动生成数据包“更快” 最大化带宽速度。这意味着您希望以最大Mb/s的

一个简短的问题:

我使用boost:asio(tcp)通过网络发送数据。哪一个更快:使用流缓冲区,还是手动分割并发送数据包

特别是,如果要传输的数据大小通常超过100mb,该怎么办


谢谢

你越是想得过多,你就越会阻碍TCP的工作,它的性能也就越差。只需使用尽可能大的缓冲区来流式传输数据。

“更快”可以表示两种不同的含义:

  • 最小延迟。这意味着最小化客户端生成和接收数据包之间的时间。在这种情况下,在具有TCP_节点延迟选项的套接字上手动生成数据包“更快”

  • 最大化带宽速度。这意味着您希望以最大Mb/s的速度传输数据(例如文件)。在这种情况下,最好禁用TCP_节点延迟并发送数据


  • 现在谈谈boost::asio。这是为了最小化延迟,您也可以设置TCP_节点延迟选项()。为了获得最大的总传输速度,最好关闭此选项并使用streambuffer,或者通过native_handle()获取本机句柄并在其上使用sendfile(在这种情况下,需要做更多的工作以使其“良好”异步)。

    感谢您的回复。我想我要走缓冲路线。谢谢。这回答了我关于性能的许多问题。我将设置TCP_节点并使用streambuffer。