OMNET MULTICAST PROJECTS

OMNET MULTICAST PROJECTS transmission method  one device communicates with several devices in a single transmission.A multicast address is a single IP data packet set that represents a network host group. Multicast addresses are available to process datagram’s or frames intended.

Different Ranges of multicast address:

Multicast address ranges from the 224.0.0.0 to 239.255.255.255. IPV4-reserved address for multicast

  • 224.0.0.0: based address reserved
  • 224.0.0.1: Used for all multicasting host groups
  • 224.0.0.2: Used for all subnet routers
  • 224.0.0.5 and 224.0.0.6: Used by Open Shortest Path First, an interior gateway protocol for all network segment routing information.

Procedures involved in setting multicast network:

  • Routers in the network’s are multicast enabled
  • Configurations of multicast network is also support multicast enabled.
  • Select the address you’ll use for your multicast
Architecture of MULTICAST routing PROJECTS
Architecture of MULTICAST routing PROJECTS

Algorithm involved in multicast routing protocol:

  • Reverse path multicasting.
  • Flooding.
  • Core-based tree.
  • Spanning trees.
  • Truncated reverse path broadcasting.
  • Reverse path broadcasting etc.

Many different algorithm can be implemented for multicast routing protocol projects depending upon requirement of your projects.,

Sample Output video representing Omnet++ Multicasting Projects 

Sample Omnet++ code for Multicast routing Protocol

void MULTICAST::processEchoReply(MULTICASTMessage *reply)
{
    IPv4ControlInfo *ctrl = check_and_cast<IPv4ControlInfo*>(reply->removeControlInfo());
    PingPayload *payload = check_and_cast<PingPayload *>(reply->decapsulate());
    payload->setControlInfo(ctrl);
    delete reply;
    long originatorId = payload->getOriginatorId();
    PingMap::iterator i = pingMap.find(originatorId);
    if (i != pingMap.end())
        send(payload, "pingOut", i->second);
    else
    {
        EV << "Received ECHO REPLY has an unknown originator ID: " << originatorId << ", packet dropped." << endl;
        delete payload;
    }
}

void MULTICAST::sendEchoRequest(PingPayload *msg)
{
    cGate *arrivalGate = msg->getArrivalGate();
    int i = arrivalGate->getIndex();
    pingMap[msg->getOriginatorId()] = i;

    IPv4ControlInfo *ctrl = check_and_cast<IPv4ControlInfo*>(msg->removeControlInfo());
    ctrl->setProtocol(IP_PROT_MULTICAST);
    MULTICASTMessage *request = new MULTICASTMessage(msg->getName());
    request->setType(MULTICAST_ECHO_REQUEST);
    request->encapsulate(msg);
    request->setControlInfo(ctrl);
    sendToIP(request);
}