中有“UNIX网络编程”段落中的连接,他说:TCP套接字缓冲区大小也应该是MSS的偶数倍为
为了避免浪费潜在的缓冲空间,TCP套接字缓冲区大小 也应该是连接的MSS的偶数倍。某些 实现为应用程序处理此详细信息,在建立连接( TCPv2的第902页)后将套接字缓冲区大小整理为 。这是在 建立连接之前设置这两个套接字选项的另一个原因。例如,使用8,192的默认4.4BSD大小 ,并假设以太网的MSS为1460,则在建立连接 时,两个套接字 缓冲区都将四舍五入为8,760(6 x 1,460)。这不是一个关键的要求;在多个MSS之上的套接字缓冲区中的附加空间 仅仅是未使用的。
我无法想象如何“浪费潜在的缓冲空间”发生。为什么浪费?
如果缓冲区大小不是MSS的偶数倍,会发生什么情况?
任何人都可以帮我解释吗?或者有人可以提供一个例子或场景?
这段话并不是指记忆效率;它指的是TCP数据传输效率。 – 2014-09-25 16:13:28
报价并不真实地说出你的第一句话声称。这不是我见过的最好的作品,但它同时谈论两种情况:它被“某些实现”四舍五入的情况,以及它不是的情况。 – EJP 2014-09-25 23:20:09