Artur Hefczyc opened 1 decade ago
|
|
Replaced by XEP-0198 stream management implementation: #1474 |
Type |
New Feature
|
Priority |
Normal
|
Assignee | |
RedmineID |
911
|
Version |
tigase-server-5.2.1
|
Estimation |
80h
|
Issue Votes (0)
Watchers (0)
To ensure packets are never just lost, a simple protocol for packet delivery must be implemented. This extension must work for all connection types, that is: c2s, s2s and external component. This is supposed to be a low-level extension, support for this extension may show up in stream features but it may not show up in service discovery features.
This extension is designed only to confirm that the packet has been successfully transmitted over the network connection. It says nothing about delivery to a final destination. The motivation behind the extension is to resolve problem with packets lost due to unreliable TCP/IP connections, mainly on mobile networks.
The initial plan is that it works in a following way:
Sender sends a packet such like this one:
If packet delivery confirmation is required, it should add req payload like this:
So the resulting packet sent through the network connection looks like this:
Receiver responds with ACK
The ACK means that the packet has been successfully transmitted over the network connection only. It says nothing about delivery to a final destination.
In response the other side of the connection sends a simple ack XML element:
It means packet with id int_number has been successfully transmitted over the network connection.