2What is Mixnet and Why? INET: wired and wireless protocols MiXiM: mobile and fixed wireless networksMixnet: using both MiXiM and INETINET: Network layer and aboveMiXiM: NIC and mobilityThe INET Framework contains models for several wired and wireless networking protocols, including UDP, TCP, IP, IPv6, Ethernet, , and many others.MiXiM is created for mobile and fixed wireless networks (wireless sensor networks, body area networks, ad-hoc networks, etc.). It offers detailed models of radio wave propagation, interference estimation, radio transceiver power consumption and wireless MAC protocols (e.g. Zigbee).Since MiXiM concentrates on providing very detailed models of wireless network interface cards it does not provide very sophisticated upper layers (network layer, application layer, etc.). Fortunately these are the layers for which the INET framework provides a lot of very detailed modules. So the idea of Mixnet is to bring INET and MiXiM together to be able to use the wireless NICs from MiXiM together with the upper network stack from INET.
3What Mixnet can(not) do? MiXiM NIC with INET IP stackINET APPMiXiM mobility modulesINET non-wireless NICsBoth blackboard modulesINET wireless modulesExchange info between both blackboardsINET calls it NotificationBoard. Much simpler than blackboard. It only relays events, not storing anything on the blackboard.you can NOT yet exchange information between the blackboard modules of both frameworks
4Prerequisites inet4mixnet http://github.com/mixim/inet4mixnet MiXiM sourceforge.net/projects/miximInet4mixnet is just a branch of INET framework. It gets rid of INET’s wireless related modules.
5Mixnet Modules MixnetBridge MixnetWorldUtility Connects INET network layer with MiXiM NICMixnetWorldUtilityMapping between INET and MiXiM MAC addressesBlackboardBoth are INET<->MiXiM compatible classes.Mapping an INET’s MAC address for a NIC with a MiXiM’s MAC address for the same NIC.
6MixnetBridge Registers NIC in INET’s ift Converts INET control info to MiXiM control infoForwards lower msgConverts MAC addresses between INET and MiXiMStores MAC address pairs to MixnetWorldUtilityMixnetBridge’s lower gates connect to MiXiM NICs, and its upper gates are connected to INET network layer.It registers the NIC connected to its lowerGateOut in INETs interface table.It removes control info from INET network layer and converts it to MiXiM control info.It adds INET MiXiM MAC address pairs to MixnetWorldUtility (blackboard). It can convert INET destination address to MiXiM destination address.
8Mixnet Nodes IEEE802.11 nodes IEEE802.15.4 nodes These hosts are examples on how a host with INET network stack can be equipped with mobility- and wireless-modules from MiXiM.
9IEEE NodesIt contains an INET network stack and a MiXiM NIC (connected by the MixnetBridge module) as well as a mobility-module from MiXiM.Modules notify each other about event changing by using NotificationBoard. Routing table changes, interface status changes, wireless handovers, etc.NotificationBoard for INETUtility which uses BlackBoard for MiXiMCannot exchange info between each other.
10IEEE Nodesa MiXiM NIC, a battery module from MiXiM which is used by the NIC.
11Network Layer IP: Implements IP protocol ICMP: Relies on IP to send error msg, query msg. ping tool, traceroute.IGMP:Establish multicast group memebershipARP:Converts IP address to MAC addressErrorHandling:Error notification from other modulesTo send packets over IP, the module should attach an IPControlInfo to the packet, then send it.IP maps different protocols to its gate indice when delivering packets to higher layer.Internet Control Message Protocol sends error msgs, can also be used to relay query msgs.Internet Group Management Protocol, used by hosts and adjacent routers to establish multicast group membership.ICMP for unicast communication, IGMP for multicast.Address Resolution Protocol for IPv4 and IEEE byte MAC address.ARP used over broadcast interfaces only. Check interface table isBroadcast() flag.Error handling handles error notifications that arrive from other protocol modules.
12Mixnet Example: Ad Hoc Network ConnectionManager:Coordinates connection between all nodes.Calculates max interference distance.World:Map INET MiXiM MAC addressGet PG sizeCheck connection managerConfigurator:Configure IP addresses and routing tables.Host:IEEE hostsConfigurator only run once at initializationAssign IP addresses to hosts and routers. All hosts and routers in the same network. Assign same address to all interfaces of a router.Discover network topology and calculate shortest paths.Add shortest paths to the routing tables.
134-Stage Initialization WorldUtility: get pg sizeRegister interfaces in InterfaceTableMixnetBridge:Map input output gatesRegister MAC address pairRoutingTable:NF statusInput gates to upper layer modules.Output gates to lower layer modules.Register INET<->MiXiM MAC address pairs with MixnetWorldUtility module.
144-Stage Initialization RoutingTable:Create per-interface IPv4 data structuresRead RoutingTable file & interface configurationSet RouterIdWorldUtility: check connection managerSet data rate, IP address, Netmask, etc.
154-Stage Initialization Configurator:Configures IP addresses and routing tables for a flat networkAssign IP addresses to hosts & routersCalculate shortest pathsAdd routes to routing tables"flat" means that all hosts and routers will have the same network address.Configurator runs only once at the beginning of simulation.Same address for all interfaces of a router.Discover network topology and calculate shortest paths for each node and add routes to routing tables.
164-Stage Initialization RoutingTable:Configure RouterIdUpdate routesChoose highest interface address as routerId.
17Interface Table Table of network interfaces Protocol-independent properties onlyKeeps the table of network interfaces, modules are registered with interfaces in initialization stage 0.This table only contains protocol-independent properties of interfaces.IP or IPv6 specific per-interface data (address etc) are kept in routing table and routing table6.
18RoutingTable RouterId empty for hosts Loopback address as RouterId for routersFor hosts, routerId should be empty.For routers, which have a routerId set, the loopback address be set to routerId.When RouterId is set to “auto”, the highest interface address will be chosen as routerId.
20SumoBot Two SumoBot Robots wrestling. BASIC Stamp microcontroller Line sensors detect borderIR sensors detect opponent’s positionBreadboard on top, can extend appsRS232 to communicate with hostCompatible RF transceiver, plug to breadboard$239.99/set + $39.99/transceiver
21iRobot Create USB communication Can store 100 open interface commands 30 built-in sensors25 pin expansion portC++ programming$ eachPossible to wire the previous RF transceiver to iRobot CreateCan add parts to the slot