是否有可能在不丢失连接的情况下丢失 WebSocket 中的消息?

问题描述 投票:0回答:1

我在所有地方查找有关 WebSocket 可靠性和交付保证的信息,都说它通过 TCP 运行,这意味着丢失的数据包将自动重新发送。

但是,当我使用 Burp 进行测试并删除传出消息时,客户端对此没有反应。连接不会断开,新消息可以正确发送和接收。

我想了解应用程序是否以某种方式未处理存在的错误,或者这些是否是 Burp 中 drop 函数如何工作的细节。

一般来说,当连接保持打开状态并且新消息继续传送时,是否有可能出现单个消息无法到达服务器的情况?如果没有,当我在 Burp 中使用“drop”功能时会发生什么?

我看到这个问题Websocket框架是否有可能无法到达?,和我的很相似,但是没有相关答案。

websocket tcp burp
1个回答
0
投票

TCP 不会重新发送丢失的数据包,但会重新发送在 TCP 级别未确认的数据。这次重发不是同一个数据包,但可以组合成一个尚未发送数据的新数据包。

当您使用 Burp 时,您有两个独立的 TCP 连接 - 一个在客户端和 Burp 之间,另一个在 Burp 和服务器之间。 TCP 将确保每个 TCP 连接上的数据不会丢失。但 TCP 并不关心 Burp 在这两个独立 TCP 连接之间中继数据时是否删除数据或操纵数据。

© www.soinside.com 2019 - 2024. All rights reserved.