-
Notifications
You must be signed in to change notification settings - Fork 11
The protocol's interface for unreliable transport #186
Comments
//cc @lgierth |
libp2p isnt really sure how to handle unreliable protocols in general. It makes a large number of assumptions about all of its transports being reliable (in the TCP, receive all the packets in order meaning of the word). Adding unreliable transports to ipfs would mean rethinking how various aspects of the protocol work, crypto for example would need to change, we currently use a stream cipher that requires reliable ordered packets. The identify handshake also would need different logic, getting that info exchanged is required for the proper functioning of the node, so we would want a way to 'upgrade' temporarily to a reliable connection (retransmits, etc) and then back down for other comms. |
@theobat exactly what @whyrusleeping said. tl;dr; IPFS wouldn't work over a straight UDP socket, which is an unreliable transport. However, a way to make it work is to upgrade the UDP socket with some kind of Congestion Window to add reliability to the flow, like UDT or uTP do, however, we don't have that 'Congestion Window' stand alone module implemented. Let us know if the question still resides :D |
We even have code for the uTP transport in go-ipfs but due to some bugs it is disabled by default. |
@Kubuxu it would be helpful to point to those threads when referencing that there are bugs, so that people that find this issue can also know if the bugs are 'solved' by the time they find this. |
I don't remember what was the bug and I don't think there is an issue for that. |
I'm actually not certain at this point the bugs were from utp. We need to On Sun, Oct 9, 2016, 18:46 Jakub Sztandera [email protected] wrote:
|
Thank you all for your answers: another discussion/issue about this here. |
This issue was moved to https://discuss.ipfs.io/t/the-protocols-interface-for-unreliable-transport/400 |
Hi @diasdavid ,
Not sure about this sentence in the libp2p specs :
I don't think I understand properly what this means so could anyone throw a simple explanation ? (What I think it means is : there is no spec defined for how to handle in the ipfs p2p protocols the absence of a transport protocol in a multi address path... ). More specifically what does unreliable means in this context ?
The text was updated successfully, but these errors were encountered: