Message Reliability over UDP

advertisement
Message Reliability over UDP
By,
Suman Bharath
Project Description
1.1 Problem
In TagCentric Software, RFID device controllers were designated as “agents”.
These agents actually communicate with the RFID devices using XML messages. In this
software, messages play a key role in communication. There is a Transport and
XMLTranslator classes providing this basic communication functionality, all of these
messages were being transferred through the network using UDP/IP protocol.
TagCentric application was designed mainly to support distributed multi-user operations.
When this TagCentric application was tested on multiple GUIs on a wireless network
there was significant loss of messages/packets. If some of these critical messages/ packets
when dropped, TagCentric may behave in an erratic or unpleasant manner. All of these
critical control messages consisted of UDP unicast and multicast messages. Since UDP is
an unreliable protocol which lacks sequencing, connection management, management of
bandwidth resources, and imposes limitations on the size of packets. protocol due to
which messages/packets were being dropped. Hence, there is a need to build reliability on
top of UDP to ensure the delivery of such critical messages.
1.2 Thesis Statement (alternatively Objective)
“Providing a reliable messaging mechanism to the RFID software and reducing
the packet loss by constructing a reliability layer over UDP”
1.3 Approach
Initially I’m planning to construct a test bed to see that the messaging is done
reliably over UDP. This would be done at the application level by keeping track of
packets sent and packets received and also the ordering of those packets. There might be
a need to assign sequence numbers to the packets.
When I did some research on the previous work done in the related areas of
making the UDP communication reliable, I was able to find couple of software’s that has
constructed a layer above UDP to make the messaging reliable which was involved more
in the gaming sites. But, all of those software’s were written in VC++. I was trying to use
similar ideas to simulate the same in Java. Until now I haven’t got much success on it.
The main reason for coding in Java is that Java allows maximum portability and
moreover the TagCentric application too was written in Java.
There are new libraries developed in java called “JeNet” (java eNet). JeNet's core
implements the eNet protocol, which allows reliable/unreliable/sequenced/unsequenced
packet sending on top of UDP.
The main features of JeNet are:





100% Java eNet port (no native libaries).
UDP based.
Reliable/unreliable and sequenced/unsequenced packet sending.
Fully interoperable with the original eNet library.
Content agnostic.



Configurable outgoing/incoming bandwidths.
Built-in ping.
Multiple channels/peer.
Download