Tcp 轻量级应用程序级确认

Tcp 轻量级应用程序级确认,tcp,message,messaging,Tcp,Message,Messaging,什么是经验证的轻量级应用程序级方法来保证消息的传递?我读了一些关于使用序列号和确认收到这些序列号的书,但是可能有更好的方法吗?当前传输是tcp,但这可能会改变。我可以给您一个例子,说明它如何适用于XMPP协议 移动应用程序使用TCP作为它的传输,并且在某些情况下可能会丢失消息(例如,连接问题等) 因此,他们提出了一个单独的XEP,称为流管理 双方使用附加的简单软件包进行交换:r和a。 整个流程如下所示: <!-- User A sends a message to User B -->

什么是经验证的轻量级应用程序级方法来保证消息的传递?我读了一些关于使用序列号和确认收到这些序列号的书,但是可能有更好的方法吗?当前传输是tcp,但这可能会改变。

我可以给您一个例子,说明它如何适用于XMPP协议

移动应用程序使用TCP作为它的传输,并且在某些情况下可能会丢失消息(例如,连接问题等)

因此,他们提出了一个单独的XEP,称为流管理

双方使用附加的简单软件包进行交换:
r
a
。 整个流程如下所示:

<!-- User A sends a message to User B -->
<message from='userA@example.net/churchyard'
     to='userB@example.com'
     xml:lang='en'>
  <body>Hello</body>
</message>


<!-- then User A requests an acknowledgment from User B whether he received a message or not -->
<r xmlns='urn:xmpp:sm:3'/>

<!-- User B answeres with an acknowledgment package and a count how many packages he received -->
<a xmlns='urn:xmpp:sm:3' h='1'/>

你好

因此,这并不是什么神奇的东西,它只是一个额外的数据交换,以确保它的所有交付正确。我想您也可以采用类似的方法。

为什么要更改tcp?对于部署平台,堆栈是否太大?你不想要拥塞控制吗?问题实际上是关于消息接收保证,应用程序级别的确认。[这回答了需要应用程序级别确认的问题。我正在寻找实现。