socket TCP协议接收大文件时recv的buffer设置多少合适

你的接收缓冲区具体指的是哪种?
tcp协议栈中的接收缓冲区还是recv()中用到的缓冲区?

tcp协议栈中的接收缓冲区需要用setsockopt()的SO_RCVBUF来设置。系统默认的缓冲区大小一般来说就够用了。设置太大没什么用,网卡速度也是有限的,就算1000Mbps的网卡,除去以太网帧、ip帧头、tcp帧头等,实际的传输率也就是70、80MB/s。接收满64k差不多1ms,对于现代的cpu来说,根本不是事。也就是说,根本到不了64k的时候,就可以把缓冲区中的数据取走

你可能感兴趣的:(socket TCP协议接收大文件时recv的buffer设置多少合适)