Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/debugger.php on line 99

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/debugger.php on line 108

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/file.php on line 96

Deprecated: Non-static method Debugger::invoke() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/debugger.php on line 574

Deprecated: Non-static method Debugger::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/debugger.php on line 574

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/core.php on line 226

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 99

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 386

Deprecated: Non-static method Configure::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 324

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 145

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/cache/file.php on line 89

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 657

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 677

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 678

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 684

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 685

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 690

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 489

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 287

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 515

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 523

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 230

Deprecated: Non-static method Configure::corePaths() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1128

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 924

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/dispatcher.php on line 471

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/dispatcher.php on line 703

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 861

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/router.php on line 173

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/controller.php on line 312

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/controller.php on line 750

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/component.php on line 240

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/component.php on line 242

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/view/view.php on line 744

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 68

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 134

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 142

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 360

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 685

Deprecated: Non-static method Router::getNamedExpressions() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 303

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 187

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 174

Deprecated: Non-static method Router::connect() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/routes.php on line 34

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 202

Deprecated: Non-static method Router::connect() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/routes.php on line 39

Deprecated: Non-static method Router::parse() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 305

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 401

Deprecated: Non-static method Configure::listObjects() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 593

Deprecated: Non-static method Configure::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 160

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 163

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 494

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 498

Deprecated: Non-static method App::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 828

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1140

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 308

Deprecated: Non-static method Inflector::classify() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 310

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 465

Deprecated: Non-static method Inflector::singularize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 465

Deprecated: Non-static method Inflector::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 370

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 353

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 354

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 355

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 311

Deprecated: Non-static method Router::prefixes() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 150

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 388

Deprecated: Non-static method Router::setRequestInfo() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 161

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 628

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 335

Deprecated: Non-static method Set::merge() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 373

Deprecated: Non-static method Set::normalize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/component.php on line 186

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/component.php on line 202

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/security.php on line 53

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/components/session.php on line 67

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 128

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 132

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 134

Deprecated: Non-static method Security::inactiveMins() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 156

Deprecated: Non-static method Security::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/security.php on line 65

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/security.php on line 66

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 156

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 157

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 438

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 485

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 746

Deprecated: Non-static method ClassRegistry::addObject() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 276

Deprecated: Non-static method ClassRegistry::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/class_registry.php on line 176

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/class_registry.php on line 177

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 789

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 893

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 726

Deprecated: Non-static method Overloadable::overload() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1029

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/session.php on line 59

Deprecated: Non-static method Inflector::variable() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 650

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 477

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 477
M-Channel - MChannel
Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 354

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 358

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 661

M-Channel

What is M-Channel?

On top of the routing protocols we have developed a channel which enables flexible group communication over mobile ad-hoc networks: the MChannel. The main characteristic of the MChannel is that users can send messages to a single member or to all the members in the group even if they are not in range. In consequence, a MChannel is bound to a single group, so if we want to communicate in two groups, we should create two different channels.

When we designed the GC middleware for Manet settings we had to cope with three main issues: group membership, failure detection and flow control.


Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 438

Group Membership: GC toolkits like JGroups maintain membership and failure detection pinging frequently or using keep-alives to all members in the JChannel. Whereas this approach works fine in local area networks, it can severely harm the overall MANET network creating unnecessary traffic. This happens because JGroups is unaware of the multi-hop nature of the medium. Our approach is to provide a lightweight group membership protocol that directly benefits from the group information of the OMOLSR multicast tree. In our case, membership changes in OMOLSR are injected as JGroup membership events to the protocol stack.

Failure Detection: As explained before, failure detection implies pings or keep-alives to all group members. Again, this works in flat groups, but it causes a real burden in a multi-hop network. Our solution is to rely on the JOLSR topology detection algorithms. jOLSR is already checking the availability of nodes and continuously repairing the topology graph. Because of that, it is optimal to benefit from this information to detect leaving parterns of failing nodes. It is nonsense to duplicate the communication overhead if jOLSR is already doing that job in an efficient and decentralized way.

Flow Control: Sending messages to the network without any flow control causes congestion and degrades the network throughput. This is even worse in a multi-hop network where throughput decays as the number of hops increases. In fact, throughput degradation due to hop count has been well studied by Gupta et al. JGroups already provides a simple flow control protocol based on a credit system. Each sender has a number of credits (bytes to send) and when the credits have been exhausted, the sender blocks. Each receiver also keeps track of how many credits it has received from a sender. When credits for a sender fall below a threshold, the receiver sends more credits to the sender. Again, the existing algorithm does not take into account the underlying multi-hop setting so data flows are not optimized for the underlying network. We have modified the JavaGroup FC (flow control) protocol to benefit from topology information. Our strategy is to assign credits to nodes in different proportions depending if they are at one hop, two hops or more. We assign credits to nodes in a proportion that depends in its decay of throughput due to the multi-hop setting. The closest node (one hop) will obtain more credits whereas distant nodes (more hops) will get less tickets. With this decision we aim to adjust the flow to the available throughput between nodes.

Apart from these functionalities, the MChannel could offer more complex services in order to build MANET applications: quality of service (QoS) considering multiple parameters at a time (bandwidth, battery, CPU,...) to perform routing, hence providing adaptive middleware; scoped multicast delivery enabling TTL parameters related to MANET routing hops. In this way, multicast messages could be restricted to a certain groups of (closer) nodes; and MANET anycast services enabling filtering of events in nodes.

We believe that the definition of these services could help to build a useful library for collaborative MANET applications. Thanks to the simplicity of our communication middleware for MANETs, we believe that many future applications could use it and benefit from its services. We offer a working prototype, with clear APIs, and integrated in a existing well-known group communication middleware (Jgroups). Finally, the interesting point is that our middleware is self-contained: we do not rely on any installed MANET transport protocol. In our case, the application creates the MANET network.

MChannel

Valid CSS 2.1

Valid XHTML 1.0 Transitional


Deprecated: Non-static method Configure::corePaths() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1184

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1186

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1187