什么是TCP连接中的“积压”?

什么是TCP连接中的“积压”?,第1张

什么是TCP连接中的“积压”?

注意:答案的框架没有使用Python的任何背景知识,但是,这些问题与要回答的语言无关。

这些 排队的连接是 什么?

简而言之,backlog参数指定队列将保留的未决连接数。

当多个客户端连接到服务器时,服务器会将传入的请求保留在队列中。客户端排列在队列中,服务器在队列成员前进时一一处理它们的请求。这种连接的性质称为排队连接。

对客户的要求有什么不同吗?(我的意思是,运行时所在的服务器与运行时所在

socket.listen(5)
的服务器
socket.listen(1)
在接受连接请求或接收数据方面是否有所不同?)

是的,两种情况都不同。第一种情况只允许将5个客户端安排到队列中;而在backlog = 1的情况下,队列中只能保留1个连接,从而导致其他连接请求的丢弃!

为什么最小值为零?不应该至少是1吗?

我不了解Python,但是根据C的源代码,积压参数0可能允许套接字接受连接,在这种情况下,侦听队列的长度可以设置为实现定义的最小值。

有优先值吗?

这个问题没有明确的答案。我要说的是,这取决于应用程序的性质,以及硬件配置和软件配置。再次,根据来源,

BackLog
默默地限制为1到5(含)之间(同样根据C)。

此积压仅是为TCP连接定义的,还是也适用于UDP和其他协议?

没有。请注意,对于未连接的数据报套接字(UDP),不需要listen()或accept()。这是使用未连接的数据报套接字的好处之一!

但是,请记住,然后还有基于TCP的数据报套接字实现(称为TCPDatagramSocket),它们具有backlog参数。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5629642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存