Phd networking projects omnet++

Phd networking projects omnet++ research scholars did their research mostly on the following discussed two networks. In which, we discuss about the basics of network as well as coding part also. The networks are,

  • Cognitive radio network.
  • Green cellular network.

Cognitive radio network:

  • Cognitive radio (CR) is the enabling technology for supporting dynamic spectrum access: the policy that addresses the spectrum scarcity problem
  • CR is widely regarded as one of the most promising technologies for future wireless communications.

Research challenges on CRN:

  • Application and standardization
  • Radio resource allocation
  • Spectrum marketing
  • Phy-layer spectrum sensing
  • Mac-layer spectrum sensing etc

Future research challenges:

  • Cognitive relaying
  • Cooperative sensing
  • Cognitive MIMO

Cognitive cycles of cognitive radios are:

  • Spectrum sensing
  • Spectrum sharing
  • Spectrum mobility
  • Spectrum decision.

These four are the cognitive radio cycles.

Phd networking projects omnet++
[code lang="js"]
void CRN::handleMessage(cMessage *msg)
{
    if(msg == apptimer)
    {
        puState = "Tx";
        delete msg;  apptimer = NULL;
        dataMsg *msg = new dataMsg("PUSTART");
        msg->setKind(PUSTART);
        msg->setProposedChannel(puChannel);
        msg->setSource(0);

        broadcast(msg);
        scheduleEot();
        LOG("Sending PUSTART. Starting Data transmission.");
        std::string display = "i=device/antennatower,"+puColor+",40";
        this->getParentModule()->setDisplayString(display.c_str());
    }
    else if (msg == eot)  // Signal end of PU transmission
    {
        puState = "IDLE";
        delete msg; eot = NULL;
        dataMsg *puEnd = new dataMsg("PUEND");
        puEnd->setKind(PUEND);
        puEnd->setProposedChannel(puChannel);
        broadcast(puEnd);

        setTimer();  // Schedule another PU transmission.
        LOG("Sending PUEND. Data transmission done.");
        this->getParentModule()->setDisplayString("i=device/antennatower");
    }
}
void CRN::broadcast(dataMsg *msg)
{
    for ( int x=0; x<gateSize("radio"); x++) { dataMsg *copy = (dataMsg *) msg->dup();
           send(copy, "radio$o", x);
    }
    delete msg;
}
[/code]

Green cellular network:

  • Energy efficiency in cellular networks is called as green cellular network.
  • It is a growing concern for cellular operators to not only maintain profitability, but also to reduce the overall environment effects
  • The interest of researchers in an innovative new research area called “green cellular networks”.

Measuring greenness metrics:

  • Economic benefits like energy cost
  • Increased battery life in mobile devices
  • Co2 emission
  • Data center efficiency
  • ECR-Weight
  • Power usage efficiency
  • Energy consuming rate etc

Trade-offs of energy efficiency:

  • Balancing bandwidth utilized
  • Balancing average end-to-end delay
  • Balancing deployment cost
  • Balancing achievable rate etc

Research on green cellular network:

  • Designing of low energy spectrum sensing
  • Cross layer design and optimization
  • Energy efficient resource management
  • Uncertainty issues
  • Energy-Aware MAC & green routing etc.
Phd networking projects omnet++
[code lang="js"]
class Energy : public cObject
{
  public:
    // LIFECYCLE
    Energy(double e = 250) : cObject(), mEnergy(e) {};

    // OPERATIONS
    double  GetEnergy() const        { return mEnergy; }
    void    SetEnergy(double e)      { mEnergy = e; }
    void    SubtractEnergy(double e) { mEnergy -= e; }

  private:
    // MEMBER VARIABLES
    double mEnergy;

};
int InetSimpleBattery::registerDevice(cObject *id, int numAccts)
{
    for (unsigned int i = 0; i<deviceentryvector.size(); i++)="" if="" (deviceentryvector[i]-="">owner == id)
            error("device already registered!");
    if (numAccts < 1)
    {
        error("number of activities must be at least 1");
    }

    DeviceEntry *device = new DeviceEntry();
    device->owner = id;
    device->numAccts = numAccts;
    device->accts = new double[numAccts];
    device->times = new simtime_t[numAccts];
    for (int i = 0; i < numAccts; i++)
    {
        device->accts[i] = 0.0;
    }
    for (int i = 0; i < numAccts; i++)
    {
        device->times[i] = 0.0;
    }

    EV<< "initialized device "  << deviceEntryVector.size() << " with " << numAccts << " accounts" << endl;
    deviceEntryVector.push_back(device);
    return deviceEntryVector.size()-1;
}
[/code]