Author Topic: Reliable UDP  (Read 1253 times)

0 Members and 1 Guest are viewing this topic.

Offline mpaganini

  • Serf
  • *
  • Posts: 20
  • Cookies: 1
    • View Profile
Reliable UDP
« on: September 23, 2015, 12:35:46 am »
hello folks, someone are using some version of the reliable UDP? Since currently there is no standard, as it was thought to make it happen and with what restrictions apply?  :)

Offline HTH

  • Official EZ Slut
  • Administrator
  • Knight
  • *
  • Posts: 395
  • Cookies: 158
  • EZ Titan
    • View Profile
Re: Reliable UDP
« Reply #1 on: September 23, 2015, 02:27:22 am »
Generally if i need reliable UDP I just use TCP... but im sure someone will chime in here :p
<ande> HTH is love, HTH is life
<TurboBorland> hth is the only person on this server I can say would successfully spitefuck peoples women

Offline xor

  • Peasant
  • *
  • Posts: 59
  • Cookies: 32
    • View Profile
Re: Reliable UDP
« Reply #2 on: September 23, 2015, 03:14:36 am »
UDP was never made to be reliable. If you want reliability, use TCP, reliability is built in.
That said, if you want to make your own bloated version of UDP that has reliability you may want to code some of the following features:

 - Packet numbering / sequencing - UDP packets arrive out of order, so you can either hard code only sending the next packet when you receive an acknowledgement that it has arrived, or you can put a sequence number and have the receiver rebuild the packets.

 - Delivery acknowledgement (ACK) - server sends an ACK that the message was received. Also remember that the server may send an ACK, but the client may not get it, so you could be stuck receiving a packet that you already have because the client doesn't get your message saying that you received it.

 - Resend timeout - resend the packet if you didn't receive an ACK for it after a while, you'll obviously want to limit this otherwise your protocol would be vulnerable to being abused in a DDoS attack.

 - Packet checksums - make sure the data integrity is kept, otherwise don't ACK the packet and wait for it to be sent again.

 - Packet length prefixes - easier for the server to determine how much data you sent.


Easily said... just use TCP for reliability.

Offline flowjob

  • Knight
  • **
  • Posts: 327
  • Cookies: 46
  • Pastafarian
    • View Profile
Re: Reliable UDP
« Reply #3 on: September 23, 2015, 01:30:06 pm »
hello folks, someone are using some version of the reliable UDP? Since currently there is no standard, as it was thought to make it happen and with what restrictions apply?  :)

There's a fairly old experimental standard:
https://tools.ietf.org/html/rfc908
https://tools.ietf.org/html/rfc1151

As well as a slightly more recent draft:
https://tools.ietf.org/html/draft-ietf-sigtran-reliable-udp-00

And there's Lossless UDP from the TOX project:
https://github.com/irungentoo/toxcore/wiki/Lossless-UDP
https://wiki.tox.im/index.php/Lossless_UDP
Quote
<phil> I'm gonna DDOS the washing machine with clothes packets.
<deviant_sheep> dont use too much soap or youll cause a bubble overflow

Offline mpaganini

  • Serf
  • *
  • Posts: 20
  • Cookies: 1
    • View Profile
Re: Reliable UDP
« Reply #4 on: September 24, 2015, 01:52:49 am »
thanks for your answers.

Just for clarification, the entire subnet will be working with a reliable UDP: no derogation is possible.

Unfortunately "https://wiki.tox.im/index.php/Lossless_UDP" is offline.
 :)

Offline ram1r3z0

  • Serf
  • *
  • Posts: 29
  • Cookies: 2
    • View Profile
Re: Reliable UDP
« Reply #5 on: September 26, 2015, 04:34:01 pm »
Reliable UDP is TCP... or you will do it on higher layer eitherway

Offline mpaganini

  • Serf
  • *
  • Posts: 20
  • Cookies: 1
    • View Profile
Re: Reliable UDP
« Reply #6 on: October 04, 2015, 06:37:35 pm »
The "TCP/IP" protocol is very difficult to be able to certify (guideline DO-178B).

Infact, the DO-178B, Software Considerations in Airborne Systems and Equipment Certification , is a guideline dealing with the safety of safety-critical  software used in certain airborne systems.

For this reason it is preferred to use the UDP/IP, or the version R-UDP.

I found this interesting contribution

Offline hondo

  • NULL
  • Posts: 2
  • Cookies: 0
    • View Profile
Re: Reliable UDP
« Reply #7 on: October 07, 2015, 04:38:05 am »
I'm suprised nobody mentioned QUIC (quick udp internet connections). It's part of the chromium project.

It's built on top of UDP but is more similar to TCP since it provides a reliable connection.

General info:
https://www.chromium.org/quic

You can test out a client/server:
https://www.chromium.org/quic/playing-with-quic

Some VPN clients have implemented the protocol, IPVanish for example.