我想知道如果在TCP連接建立中,每個大小爲2^16字節的單獨緩衝區都分配給單獨的TCP連接以分離服務器?用於TCP連接的緩衝區
0
A
回答
0
是的,單獨的緩衝區分配給發送和接收。最初保留的內存量取決於默認配置,如果應用程序使用set_sockopt()選擇不同的大小。隨着傳出/傳入數據包數量的增加,最初的保留內存也會增加。
在Linux上,可以使用foll sysctl讀取/修改默認值。
sudo sysctl -a | grep tcp | grep的MEM
net.ipv4.tcp_mem = 191133 254845 16777216
net.ipv4.tcp_rmem = 4096 16384 777216
net.ipv4.tcp_wmem = 4096 16384 16777216
您可以使用setsockopt( )用SO_SNDBUF和SO_RCVBUF從應用程序修改它。
0
是的,沒有。當然有兩個緩衝區,發送和接收,但大小取決於平臺,並且可以由應用程序修改。
+0
我懷疑當客戶端與不同的服務器建立TCP連接時,是否爲每個大小爲2^16的服務器分配不同的緩衝區? –
相關問題
- 1. TCP接收緩衝區
- 2. TCP連接錯誤「沒有可用的緩衝區空間」
- 3. Java,Netty,TCP和UDP連接集成:沒有可用於UDP連接的緩衝區空間
- 4. Winsock TCP應用程序緩衝區
- 5. 緩衝區caache用於符號鏈接
- 6. tcp/ip套接字的接收緩衝區大小
- 7. tcp緩衝區中的多條消息
- 8. Python的TCP緩衝區溢出
- 9. 關於python中的緩衝區接口
- 10. 使用TCP接收緩衝區作爲多媒體應用程序的緩衝區
- 11. 最佳緩衝區大小 - TCP
- 12. recvfrom最大緩衝區TCP/IP
- 13. 如何解碼TCP緩衝區數據
- 14. 閱讀TCP數據包緩衝區
- 15. Node.js TCP服務器輸入緩衝區
- 16. C#TCP服務器緩衝區
- 17. 在tcp中,每個連接有一個接收緩衝區?或者所有的連接共享一個緩衝區?
- 18. 關閉/關閉對TCP接收緩衝區的影響
- 19. openssl接受連接使用我的緩衝區
- 20. emacs:非連續緩衝區
- 21. 連續填充緩衝區
- 22. 扭曲緩衝器滿中的TCP連接
- 23. 沒有填充接收緩衝區的UDP緩衝區溢出?
- 24. 發送緩衝區和接收緩衝區的使用和區別(txb&rxb)
- 25. 讀取TCP緩衝
- 26. C - 填充TCP套接字發送緩衝區
- 27. 這個tcp套接字代碼如何處理rx緩衝區?
- 28. TCP RST會導致主機丟棄接收緩衝區嗎?
- 29. TCP套接字緩衝區和數據溢出
- 30. TCP套接字程序發送一個緩衝區。
我懷疑當客戶端與不同服務器建立TCP連接時,是否爲每個大小爲2^16的服務器分配不同的緩衝區? –
是的,它的確如此。在Linux上它默認爲2^16,但它也是可配置的。這些緩衝區是每個TCP連接,而不管它是否在同一臺服務器上。另請注意,分配的緩衝區不僅用於存儲數據。它也用於存放skbuff和其他一些東西。 – Akhil
謝謝......這清除了我的懷疑 –