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