c - tcp_cork 和 tcp_nodelay 是否有助于提高 c 中套接字编程的性能

标签 c sockets

我的文件系统中有小文件和大文件(8k 到 100 GB)的组合。我需要使用 c 中的套接字编程通过 1GB 的网络(具有 4 个套接字)传输它们,以使用大部分网络。

我设置了选项 tcp_cork 和 tcp_nodelay 来提高性能(MB/s)。但是无论是否设置这些选项,我都看不出有什么显着差异。 在什么场景下这两个选项会有用。我们传输的 mask 真的是 block 吗?

最佳答案

TCP_NODELAY 可能会有所帮助,因为它将使 Linux 能够立即发送后续数据包,而不是等待 ACK

但是,这个问题之前已经得到解决,任何现代 FTP 或 HTTP 服务器都会提供接近最佳可实现的传输吞吐量。

关于c - tcp_cork 和 tcp_nodelay 是否有助于提高 c 中套接字编程的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941430/

相关文章:

c - 点亮 STM32F103C8T6 上的 LED

C 隐式声明与内部函数声明不同

c - Cortex-M4F MCU 启动中关键部分的内存屏障

c - 从实模式切换到保护模式后远跳

C# 将十六进制字符串发送到 tcp 套接字

C# NetworkStream 数据丢失

python - python socket.sendall 成功返回是什么意思?

c - 如何查找 IPv6 套接字的scope_id

c - 多连接Web服务器C

Linux内核编程中捕获TCP数据包