簡體   English   中英

linux unix sockets vs tcp sockets發送緩沖區大小

[英]linux unix sockets vs tcp sockets send buffer size

我正在比較套接字是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的包或包的順序不是問題,因此緩沖區可以較小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM