- 博客(2)
- 收藏
- 关注
原创 严重的数据包碎片化、高延迟或数据丢失的场景下,Tcp传输如何保证消息可靠
然而,重要的是理解TCP作为一个可靠的传输协议,其设计目标是确保数据的有序性和完整性。因此,虽然理论上Tag和Length的信息可能不会同时到达,但在实际应用中,这种分离情况极其罕见,特别是对于连续的数据片段(Tag、Length、Value)。在这种情况下,假设对于传输的是Tlv的数据格式(Tag、Length、Value)确实可能出现先收到Tag,过了一段时间才收到Length的情况。通过这种方式,服务端不仅能够处理乱序的数据包,还能通过序列号判断数据的连续性和完整性,提高了系统的健壮性。
2024-06-21 11:23:03 612
原创 Tcp粘包半包问题(现实场景举例帮助理解)
假设我们要发送一条包含用户ID的报文,其中:- Tag: `0x01` 表示这是一个用户ID消息。- Length: `0x04` 表示Value字段长度为4字节。- Value: `0x31323334` 表示实际的用户ID数据,即字符串"1234"的ASCII码。整个报文在二进制形式下看起来像这样(十六进制表示):``````
2024-06-20 10:59:28 907
SocketTool4
2024-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人