Udp considerations, Function code list – Delta RMC101 User Manual
Page 4
DMCP User Guide
Page 4 of 9
October 23, 2001
UDP Considerations
DMCP is designed to work over either TCP or UDP. However, because UDP does not
support retrying packets and does not guarantee that packets will arrive in the order sent,
a couple of additional issues should be considered. However, if used correctly, UDP will
give higher performance than TCP and gives the user better control over timeouts, so
advanced users may want to do the following:
•
If IP packets are routed between networks, as opposed to be limited to a single
network, they can arrive at the target out of order from when they are sent. TCP
sequences the data before passing it to the application data, but UDP does not.
Therefore, for UDP you must use the SeqNum field in the DMCP header to match
responses with requests. Typically you will increment the SeqNum field in each new
request.
•
If a packet is lost, then eventually the client must decide to retry the packet. The
client should use the DMCP response packet as the positive acknowledgement and a
timeout as a negative acknowledgement. Therefore, the client must be designed such
that it handles the case in which the response from the RMC is lost or delayed and
that response comes back after the retry is sent. Therefore, two replies would come in
a row. The client must discard the second unexpected reply.
Function Code List
Four function codes are currently defined for use outside Delta:
0x10
Read Device Registers (little Endian)
0x11
Write Device Registers (little Endian)
0x12
Read Device Registers (big Endian)
0x13
Write Device Registers (big Endian)
These function codes will be described below in numerical order.