Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - QNX4 UDP question: (1 Item)
   
QNX4 UDP question  
Hi!

 

My understanding is that the QNX4 TCP/IP stack is based on 4.3 BSD.  I've
tried searching the Internet for freely-downloadable BSD networking source
code of approximately the same vintage as 4.3 BSD (e.g. the Berkeley
Networking Release 1 code) in order to answer my question, but I've come up
short.  So I'll ask here.

 

Suppose I create a single SOCK_DGRAM (i.e. UDP) socket, bound to a
particular UDP port number and the wildcard IP address (INADDR_ANY).  Now
suppose I call sendto() to send one or more messages to a particular
destination IP address and port number - let's call it Destination A.
Suppose Destination A is unreachable for some reason (it crashed or there's
a dead network link along the way).  Now suppose I also call sendto() on the
same socket to send messages to a different destination IP address on a
different IP (sub)net - let's call it Destination B.  Let's suppose that I
have two ethernet interfaces on my QNX host and that the IP routing and
various IP addresses are such that the routes to Destination A and
Destination B are via separate ethernet interfaces.  Let's suppose that
Destination B is indeed successfully reachable even though Destination A is
not.  Will the packets that I sent to Destination A interfere in any way
(e.g. head-of-line blocking) with the packets I'm sending to Destination B?
For example, might the packets to Destination B be delayed slightly (or
not-so-slightly) due to the QNX networking stack having temporarily queued
one or more outgoing packets for Destination A (e.g. while awaiting an ARP
reply)?

 

I suspect that I can avoid any possibility of this problem by using two
separate sockets, each bound to the appropriate outgoing ethernet interface.
I was just wondering whether that was overkill.  I.e. might a single
wildcard socket be sufficient anyway?

 

Many thanks if anyone knows a definitive answer here.

 

 

Thanks again!

 

Walt