Followup - JTAlert receives message from multicast but doesn't send which
makes sense.  So gotta' get Laurie to expose the addresses and port.

73

Mike W9MDB

 

 

From: Bill Somerville [mailto:g4...@classdesign.com] 
Sent: Wednesday, July 29, 2015 10:30 AM
To: wsjt-devel@lists.sourceforge.net
Subject: Re: [wsjt-devel] UDP messages dropped

 

On 29/07/2015 16:19, Michael Black wrote:
Hi Mike,

Actually just tested and looks like JTAlert is doing multicast too.  So I'll
see about tracking this with him.

That can't be so if you cannot change the server address, multicast will
only work with a multicast group address as it requires cooperation from the
NIC and any routers in the network path.

Beware of running multiple servers on the same host without multicast
addressing, in that case each datagram will only be delivered to one
application and appear dropped to the other(s).



I watched his system for a while and didn't see interspersed JT9's but I'll
watch close next time.

Gotta' get some activity on the bands to see this I think.  I'll watch my
own system but can't say I've noticed this (and not sure I would have either
since I wasn't looking for it).

Was really obvious on his systems since he doesn't have many JT9's and they
were all missing from JTAlert.

 

I'm not sure of the underlying logic which causes UDP reordering.  I went
through an argument with a banking software firm many years ago having to
inform them that TCP wasn't a guaranteed protocol which they though it was
and they were blaming our software for dropping transactions when it wasn't
our fault at all and they finally had to add another layer of ACK/NAK to the
transactions to ensure end-to-end integrity even over dropped connections.

UDP reordering usually requires a complex network of routers (the Internet
usually) it can happen if a router fails, has to retry or, decides a lower
cost path is possible. Not really relevant to our application although
WSJT-X doesn't make any assumptions about where on the Internet the UDP
server lives.



 

Thanks and I'll let you know the results.

 

73

Mike W9MDB

73
Bill
G4WJS.



 

From: Bill Somerville [mailto:g4...@classdesign.com] 
Sent: Wednesday, July 29, 2015 10:08 AM
To: wsjt-devel@lists.sourceforge.net
Subject: Re: [wsjt-devel] UDP messages dropped

 

On 29/07/2015 15:58, Michael Black wrote:
Hi Mike,

Actually he's running a Flex 3000 and an 8-core machine.

Interesting, is it possible he has set CPU affinity. Maybe it was just that
all the JT9 decodes took longer than the longest JT65 decode but that is
fairly unusual.




JTAlert doesn't currently allow setting the IP address so it's not
multi-cast.  I'll see if about getting that done though.

It's not quite as simple as setting the address, a multicast server has to
join the group as well.




Side-by-side is good idea.

And a sequence number does take a step towards TCP but is still not a bad
idea so you can at least detect dropped packets.  People could be using this
now and not know they are missing decodes.

Datagrams can also be delivered out of order so it gets complicated fast.
Anyway on a loopback connector neither out of order delivery nor dropped
datagrams should happen unless the receiver is really slow about responding
to received datagrams.

I would really prefer to see confirmation that datagrams are really going
missing by using message_aggregator before we start changing code.




73

Mike W9MDB

73
Bill
G4WJS.




 

From: Bill Somerville [mailto:g4...@classdesign.com] 
Sent: Wednesday, July 29, 2015 9:47 AM
To: wsjt-devel@lists.sourceforge.net
Subject: Re: [wsjt-devel] UDP messages dropped

 

On 29/07/2015 15:37, Michael Black wrote:
Hi Mike,

Testing JTAlert 2.6.10 beta with WSJTX 5728 on a friend's setup.

20M came alive yesterday and we observed JTAlert missing, for example, ALL
of the JT9 decodes (which were bunched at the end of his Band Activity
window).

If all the JT9 decodes are together I assume the CPU in use has only one or
two cores as the MT decoding doesn't seem to be active.





It was random.frequently all the JT9's were missed, and sometimes some
random others, sometimes all of them were OK.

So it appears to be some timing issue.

 

UDP is also known as "Unreliable Data Protocol" but it shouldn't drop
packets very frequently (if at all) on a local network connection.

Can you verify the same behaviour using message_aggregator? I don't know if
JTAlert is multicast compliant but if it is you could use 239.255.0.1 as an
address and have JTAlert and message_aggregator both receiving the messages
in parallel for a double verification. Dropped datagrams on a loopback
connector are very unlikely.





 

So.to help trace this down can we add a 1-byte rolling sequence number to
the Decode message?  That would help the client detect any dropped packets.

That is missing the point of UDP!





 

Is the access to the socket write from WSJT-X multi-threaded between JT65
and JT9?  Not sure what behavior might in that case.

The UDP messages are sent from the main GUI thread, there are no MT
implications.





 

73

Mike W9MDB

73
Bill
G4WJS.

 

------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to