gpt4 book ai didi

tcp - 如何确定应该通过 TCP 连接推送多少数据?

转载 作者:可可西里 更新时间:2023-11-01 02:47:11 26 4
gpt4 key购买 nike

我现在正在一个 TCP 服务器上工作,我想知道我应该通过连接推送多少数据。问题是,如果我发送大量数据(例如 10 MB)但连接速度很慢(例如 64 kBit/秒),会发生什么情况?数据会保留在操作系统的缓冲区内,还是会被推送到互联网并在某种互联网提供商服务器中进行缓冲?测量传输速率是否有意义,以仅推送连接可以处理的数据量?

最佳答案

TCP 通常是在假设缓冲将发生在任意位置的情况下构建的。一些将在您自己的应用程序中(当写入调用阻塞时),一些将在操作系统中,一些在途中的路由器中,一些在接收器的操作系统中(在应用程序读取数据之前)。

如果您写入大量数据并且链接速度慢得多,您的应用程序将被阻塞,因为操作系统缓冲区的大小有限。如果您不想这样做,则需要使用非阻塞 API 并根据需要返回服务套接字。

如果您关心延迟,那么 TCP 不适合,它会尝试优化带宽和公平性。

如果您尝试仅在写入端测量传输速度,您会得到一个有偏差的结果,因为前几兆字节会在操作系统和路由器排队时飞逝而过,然后一切都会变慢,就像爬行一样接近实际速度,但会抖动很多。我看不出这样做的真正充分理由。

关于tcp - 如何确定应该通过 TCP 连接推送多少数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745298/

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