This paper investigates how to support multicasting in wireless ad hoc networks without throttling the dominant unicast flows.
Unicast flows are usually congestion-controlled with protocols like TCP.
However, there are no such protocols for multicast flows in wireless ad hoc networks, and multicast flows can therefore cause severe congestion and throttle TCP-like flows in these environments.
Based on a cross-layer approach, this paper proposes a completely localized scheme to prevent multicast flows from causing severe congestion and the associated deleterious effects on other flows in wireless ad hoc networks.
The proposed scheme combines the layered multicast concept with the routing-based congestion avoidance idea to reduce the aggregated rate of multicast flows when they use excessive bandwidth on a wireless link.
Our analysis and extensive simulations show that the fully localized scheme proposed in this paper is effective in ensuring the fairness of bandwidth sharing between multicast and unicast flows in wireless ad hoc networks
OBJECTIVE To support multicasting in wireless ad hoc networks without congestion as like unicast flows.
Multicast Congestion control, the receiver of the worst congestion level is selected as the representative and transmission rate of the sender is adjusted to TCP throughput of the representative. This approach has high scalability and TCP friendliness. However, when this approach is applied in wireless communications, wireless-caused packet loss will cause to frequent change of the representative.
On-Demand Multicast Routing Protocol is a protocol for routing multicast and unicast traffic throughout Ad-hoc wireless mesh networks.
This suffers from a route acquisition delay, although it helps reduce network traffic in general. To help reduce the problem of this delay, some implementations send the first data packet along with the route discovery packet.
Because some links may be asymmetric, the path from one node to another is not necessarily the same as the reverse path of these nodes.
TESTING UNIT TESTING: Unit testing is conducted to verify the functional performance of each modular component of the software. Unit testing focuses on the smallest unit of the software design (i.e.), the module. The white-box testing techniques were heavily employed for unit testing.
INTEGRATION TESTING: Integration testing is a systematic technique for construction the program structure while at the same time conducting tests to uncover errors associated with interfacing. i.e., integration testing is the complete testing of the set of modules which makes up the product. The objective is to take untested modules and build a program structure tester should identify critical modules. Critical modules should be tested as early as possible.
SYSTEM TESTING: Testing is performed to identify errors. It is used for quality assurance. Testing is an integral part of the entire development and maintenance process. The goal of the testing during phase is to verify that the specification has been accurately and completely incorporated into the design, as well as to ensure the correctness of the design itself.
References  E.M. Royer and C.E. Perkins, “Multicast Operation of the Ad Hoc On-Demand Distance Vector Routing Protocol,” Proc. ACM MobiCom ’99, pp. 207-218, Aug. 1999.  S.-J. Lee, M. Gerla, and C.-C. Chiang, “On-Demand Multicast Routing Protocol,” Proc. IEEE Wireless Comm. and Networking Conf. (WCNC ’99), pp. 1298-1304, Sept. 1999.  I. Rhee, N. Balaguru, and G. Rouskas, “MTCP: Scalable TCPLike Congestion Control for Reliable Multicast,” Proc. IEEE INFOCOM ’99, pp. 1265-1273, Mar. 1999.  L. Rizzo, “PGMCC: A TCP-Friendly Single-Rate Multicast Congestion Control Scheme,” Proc. ACM SIGCOMM ’00, Aug. 2000.