-
pep.
> -- XHTML-IM probably I laughed
-
pep.
Come on conversations, let me copy the whole message
- Maranda pats pep. consolingly.
-
Yagiza
Hello!
-
Yagiza
How do you feel about writing a XEP for file transfer via UDP?
-
SamWhited
Why UDP?
-
Zash
Isn't there a Jingle UDP transport already?
-
Zash
Might be meant for real time media I guess
-
Zash
TFTP over XMPP?
-
Link Mauve
I’ve already used it for a video game.
-
Link Mauve
But it can lose or reorder packets, you’d need an additional protocol on top of it to make it behave like TCP.
-
Link Mauve
At which point, why don’t you use TCP instead?
-
flow
Yagiza, https://xmpp.org/extensions/xep-0176.html ?
-
Yagiza
flow, yes
-
Yagiza
flow, right now it can't be used for file transfer. But we can write a XEP for it.
-
flow
Yagiza, why can't it be used for file transfer?
-
Yagiza
flow, because we need a way to provide reliability when using UDP.
-
Zash
SCTP over DTLS over UDP?
-
Zash
Like ... WebRTC?
-
SamWhited
Yagiza: what use case do you ahve for using UDP with some application level reliability stuff that you couldn't just use TCP for?
-
fippo
zash: old fashioned, quic is the next big thing ther
-
fippo
xep-0343 provides a mapping of the sdp stuff to jingle
-
Yagiza
SamWhited, when entities are behind NAT (common case) the need a relay to use TCP. Using a relay make them depend on the realy. UDP could be used directly without a relay.
-
Zash
Why isn't there a XEP for bittorrent?
-
Zash
Yagiza: DUP hole punching stuff?
-
fippo
yagiza: that is true only ~70% of the time.
-
Zash
Didn't that need an outside 3rd party anyway?
-
Link Mauve
Zash, you know I’ve wanted to write one? :D
-
Yagiza
Zash, there is no problem in finding a public STUN server over internet. There are hundreds of them. But it's a real problem to find TURN or even SOCKS5 server.
-
fippo
because those things are expensive.
-
Zash
Don't a lot of XMPP servers provide a XEP-0065 SOCKS5 proxy for this?
-
Yagiza
Zash, there are not so many people, who want to run a server, which channels are used by unknown people.
-
Zash
Yagiza: [citation needed]
-
Yagiza
Zash, yes. Nowadays it's hard to find a public working XEP-0065 server.
-
Zash
Only because everyone's using HTTP upload instead
-
fippo
because xep-65 proxies are expensive to run too?
-
Zash
Link Mauve: Do it. I think I've even got a mod_bittorrent tracker somewhere.
-
Link Mauve
Zash, but as a XEP or as a BEP, or both?
-
Zash
:D
-
Yagiza
fippo, yes. Unlike a STUN server.
-
Maranda
Yagiza: "public"?
-
Yagiza
Maranda, yes.
- Maranda has proxy65 runnin' on his service 🤔
-
Yagiza
Maranda, most of working XEP-065 servers caould be used only with accounts, registered on the server where it hosted.
-
Maranda
Ah of course
-
Yagiza
Maranda, so, they re private.
-
Zash
But then they don't get the green checkmark on https://compliance.conversations.im/
-
fippo
yagiza: stun servers cost < 1000 bytes per call.
-
Yagiza
fippo, yeah.
-
Yagiza
fippo, that's why they could be preferred over relays.
-
Maranda
Yagiza: well it would be not very *cool* to have an open socks5 proxy either tbh
-
Yagiza
Maranda, yes. And that's why it's a good idea to transfer files over UDP.
-
fippo
yagiza: that is what ice (rfc 5245 / xep-0176) does. try everything, prefer the cheapest
-
Yagiza
fippo, I didn't find a way of using UDP thru NAT without a relay described in RFC 5245.
-
fippo
yagiza: that is what stun does in that context. you gather public ips, then do holepunching. works 70% of the time
-
Zash
70% of the time it works every time
-
fippo
unless you are in chrome where it depends on the direction of the connection -- but google folks won't bother investigating :-)
-
Yagiza
fippo, hey! Don't mix srflx and relay addresses. You won't be able to establish a TCP connection with srflx candidates and UDP do not provide reliability!
-
fippo
yagiza: ice-tcp doesn't work for p2p, that is well-known.
-
Yagiza
fippo, yes! So we go back to my first sentence.
-
fippo
yagiza: FYI: i am running a hundreds of turn servers all around the world.
-
Yagiza
fippo, we need a XEP for using UDP for file transfer.
-
Zash
Oh, can you anycast such?
-
fippo
yagiza: run it over ice if you want it to work. jingle also has a raw udp mode but i doubt anyone bothers anymore
-
Yagiza
fippo, are they free to use?
-
fippo
yagiza: no.
-
Yagiza
fippo, and that's enough to think they are not exist.
-
fippo
yagiza: would you please explain that to the people sending me bills for datatransfer over their network?
-
Yagiza
fippo, why do I need that?
-
fippo
i would prefer not to pay those bills :-)
-
Yagiza
fippo, yes. That's why I tell that we need a way to perform file transfer over UDP.
-
Zash
There is no such thing as a free byte
-
fippo
yagiza: https://www.twilio.com/stun-turn/pricing -- just to give you an impression of cost. they make a good margin on that...
-
Yagiza
Zash, yes. That's why we need to save traffic thru servers. 'cause their owners do not want pay for other people's traffic.
-
Zash
Yagiza: *networks*
-
Zash
Bandwidth usage costs too
-
fippo
yes. that is why using TURN is only a fallback in ice.
-
Yagiza
fippo, yes. But it's impossible to use TCP in ICE without TURN when entities are behind their NAT's.
-
Yagiza
fippo, so once again: we need a way to perform file transfer with UDP.
-
Zash
Yagiza: Write the XEP then? :)
-
fippo
yagiza: use xep-0343 which runs over ice.
-
Yagiza
Zash, yes. That's what I suggest.
-
fippo
https://github.com/legastero/jingle-interop-demos/ -- the stanza.io demo allowed that five years ago.
-
Yagiza
fippo, thanx. I'll investigate it.
-
fippo
i wouldn't be surpised if that particular version was broken due to changes in webrtc.
-
Yagiza
fippo, but I guess relying on things like WebRTC is not a good idea at all. We can just create a simple transport protocol just to provide reliability when sending data stream over UDP.
-
fippo
yagiza: people didn't come up with RFC 5245 (or its successor) for fun.
-
Link Mauve
edhelas, have you tested Movim against these five clients, btw?
-
Link Mauve
Yagiza, another benefit of WebRTC is that you suddenly are compatible with web clients too.
-
Link Mauve
Of which there are actually quite a few already.
-
Yagiza
fippo, what do you mean?
-
fippo
yagiza: NATs are a bit more complicated to traverse than you expect
-
Yagiza
fippo, NATs are easily traversed by ICE. Do I suggest not to use ICE for NAT traversing or something?
-
fippo
yes.
-
Yagiza
fippo, please, sho me the place where I told such things.
-
fippo
if you don'T like browsers, there are libs like https://github.com/rawrtc/rawrtc or https://github.com/jlaine/aiortc/
-
fippo
yagiza: ah... i missed a "not". but you keep saying "udp" and ice is not just udp
-
Yagiza
fippo, I strongly suggest using ICE for NAT traversing. And that's why I suggest to make a XEP for file transfer over UDP.
-
fippo
yagiza: 0343 + 0234
-
fippo
(0234 can use 0176, 0343 provides datachannels for reliability)
-
Yagiza
fippo, ok. If you think WebRTC is the best way to provide reliability over UDP, let's agree on this.
-
fippo
technically what provides reliability is sctp over dtls over sctp but saying its webrtc leaves a hole for quic to sneak in :-)
-
Yagiza
I just don't like so many unfamiliar abbreviations. It suggests me that each of them add some overhead.
-
fippo
it was easier in the old days of ircs DCC
-
Yagiza
fippo, yeah. I used DCC, but never thought about how it works.
-
Ge0rG
DCC was notoriously broken with NAT. And then you had mod_conntrack_irc and then you connected to a non standard port and it was all bad again.