|Subject:||Re: [lwip-users] ?==?utf-8?q? UDP-based reliable bulk data transfer|
|Date:||Wed, 26 Apr 2017 00:23:38 +0200|
On 4/25/2017 3:16 AM, pupkin wrote:
> 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?
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?
Klos Technologies, Inc.
lwip-users mailing list
|[Prev in Thread]||Current Thread||[Next in Thread]|