[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] ?==?utf-8?q? UDP-based reliable bulk data transfer

From: Patrick Klos
Subject: Re: [lwip-users] ?==?utf-8?q? UDP-based reliable bulk data transfer
Date: Tue, 25 Apr 2017 18:50:23 -0400
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 4/25/2017 6:23 PM, Nenad Pekez wrote:
Hi Patrick,

did you actually port one of these 2 proposed protocols to your embedded system or implemented your own UDP reliable protocol? Also, did you get bitrates close to 100Mb?

The point I was trying to make was that you barely need to do anything to make a dedicated link reliable. Some people may disagree, but I ran a raw frame test for hours without loss. That indicates to me that the link itself is quite reliable. Adding a sequence number, window and ACK mechanism can be done quite simply. I was also saying that it would be a simple protocol to implement, but I haven't implemented it myself (at least not as a high speed data transfer protocol).

We had ENET on our device for other reasons, but have since removed it and replaced it with a simpler "reliable UDP protocol" we wrote ourselves.

Patrick Klos
Klos Technologies, Inc.

On 4/25/2017 3:16 AM, pupkin wrote:
> Greetings,
> I need to send large quantities of data reliably from a Zynq-based device to
> a PC.
> I'm looking for a data transfer protocol which can get as close as possible > to wire speed on a dedicated 1Gb ethernet link. It would be nice although
> not strictly required it it worked over arbitrary internet connections.
> Currently I'm considering either porting http://enet.bespin.org/ or
> http://udt.sourceforge.net/ to lwIp or rolling my own UDP-based protocol. I
> will need support for zero-copy with scatter-gather DMA.
> Has anyone done this before? Any suggestions?
> Regards
> VP

For what it's worth, I've done some tests on a dedicated 100Mb link and
they are quite reliable. I suspect the same could be said about a
dedicated 1Gb link? I ran a test once on a dedicated link between an
embedded system and a Windows computer with no lost packets for hours
(maybe even overnight - I forget the exact details).

That means that you should be able to implement a high speed UDP based
transfer protocol with very little overhead to make it "reliable". I
would bet that creating a "window" of UDP packets (with sequence
numbers) will do what you want with the receiver sending back an ACK of
sorts for every so many packets or if it sees a sequence number missing.

I'm not sure about the zero-copy scatter-gather support - you'll
probably just have to try it. The lwIP stack might scan your pbuf and
decide to copy the packet to a single buffer pbuf depending on the
capabilities of the ethernet interface. Even so, your Zynq processor
will probably be able to handle the copies faster than a 1Gb link could
transfer the data?

Good luck!

Patrick Klos
Klos Technologies, Inc.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]