gpt4 book ai didi

linux unix套接字与tcp套接字发送缓冲区大小

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:33 25 4
gpt4 key购买 nike

我正在比较当套接字是 tcp 和 unix 套接字时发送调用可以传输多少字节。

对于 unix 域套接字,这个数字总是 219264,但是对于 TCP,这个数字要高得多。为什么会有这种差异?两个程序都在同一台机器上执行

注意:套接字是非阻塞模式

检查缓冲区大小,这些是值

unix 域套接字

receive buffer size =212992
send buffer size =212992

TCP套接字

receive buffer size =1062000
send buffer size =2626560

谁能解释一下为什么会有这种差异?

最佳答案

tcp 缓冲区用于已发送但尚未被另一端确认的包,以及已被乱序接收并在呈现给应用程序之前等待延迟包到达的包。当然,只要消费应用程序不read()数据,包也会留在缓冲区中。

在 UNIX 套接字上,等待 ACK 的包或包的顺序不是问题,因此缓冲区可以更小。

关于linux unix套接字与tcp套接字发送缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57455692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com