# comatose # # COmprehensive MAc TaxonOmy databaSE # Available features # ================== features: # XXX ? access: name: Channel access # aka carrier-sense? access.contention: name: Contention access.token-passing: name: Token-passing access.polling: name: Polling access.reservation: name: Reservation # XXX ? access.rtscts: name: RTS/CTS # XXX: static schedule access.carriersense: name: Carrier sense topology: name: Topology topology.singlehop: name: Single-Hop description: MAC relies on upper layers to transmit packet to out-of-range stations topology.multihop: name: Multi-Hop description: MAC transports data through multiple hops # bluetooth for example? topology.clustered: name: Clustered description: topology.centralized: name: Centralized description: Star application: name: Intended applications application.wsn: name: Wireless Sensor Network application.vanet: name: Vehicular mobile ad hoc network application.console: name: Serial console time: name: Time model time.synchronized: name: Synchronized description: Node’s clocks have to be synchronized time.discrete: name: Discrete time.continuous: name: Continuous power: name: Powersave mechanisms power.dutycycling: name: Duty-cycling # XXX Is this a powersave mechanism? power.lpl: name: Low-power listening reliability: name: Reliability machanisms # unreliable is default reliability.retransmission: name: Retransmission description: Packets will be acked/nacked and retransmitted reliability.channel-hopping: name: Channel hopping description: reliability.ecc: name: Error correcting codes realtime: name: Real-time features realtime.guaranteed: name: Guaranteed realtime.probabilistic: name: Probabilistic channels: name: Channel usage channels.single: name: Single channels.multi: name: Multi routing: name: Routing routing.multicast: name: Multicast routing.unicast: name: Unicast routing.broadcast: name: Broadcast initiation: name: Transmission initiation initiation.sender: name: Sender initiation.receiver: name: Receiver deployment: name: Deployment deployment.static: name: Static description: Nodes at fixed/planned positions deployment.adhoc: name: Ad-hoc description: # XXX figure out where to put these other: name: Other features other.qos: name: QoS # todo # ^^^^ # suriyachai2012: # Performance Objectives: Energy (no, n/a, duty-cycling), delay (node-to-node/end-to-end decrease/probalistic guarantee/guarantee), reliability (no, node-to-node/end-to-end increase/guarantee) # Assumptions: Deployment, Topology, Network Pattern, Cross-Layer Support, Transceiver # gummalla: # Architecture: Distributed (Collision avoidance, random access), Centralized (random access, guaranteed access, hybrid access) # jurdak2004: # Channels (single, multiple), Topology (single-hop, multi-hop, clustered, centralized), Transmission initiation (sender/receiver), Power efficient, Traffic load/scalabiliy, Range # demirkol2006: time sync needed, comm pattern support (all, convergecast), type (csma, np-csma, tdma/csma, csma/ca, tdma) adaptivity (good, weak) # mo2008 (only multichannel mac): dedicated control channel, common hopping, split phase, parallel rendezvous # kumar2014: fixed, demand, hybrid assignment, random access; design # considerations: node deployment (topology?), control packet overhead, time # synchronization (local/global), slot scheduling, duty-cycling, multi-channel, # cross-layer support, channel utilization, node priority, collision avoidance # Main classes are: energy-efficient, qos-aware, real-time # several: hard- vs soft real-time # pip: coordinated (tdma)/uncoordinated (tdma), centralized/distributed, # single/multichannel, connection-oriented/-less # old # ^^^ # Slot assignment strategies # -------------------------- # fixed: fixed (time/freq/…) slot assignment # slot-reservation: nodes reserve slots for data-transmissions. While # the actual data-transfer is collision-free the reservation is not # token-passing: # polling: # Topology # -------- # centralized # cluster # single-hop: mac layer relies on higher layers to transmit packet to out-of-range stations # multi-hop # rtscts: rts/cts/data/ack slot reservation mechanism # distributed: Distributed access control # backoff: Uses exponential backoff in case of collisions # carriersense: Station senses medium before sending # synchronized: A synchronized clock is required # fixed-slotsize: You name it. algos: alohap: name: Pure ALOHA description: Non-slotted ALOHA related: [alohas] ref: [aloha] # Uses ECC? (parity bit) features: time.continuous: application.console: access.contention: alohas: name: Slotted ALOHA related: [alohap] description: ALOHA with discrete time slots features: time.discrete: csma1p: name: 1-persistent CSMA related: [csmanp] ref: [csma] #features: [backoff, carriersense] csmanp: name: Nonpersistent CSMA related: [csma1p] ref: [csma] #features: [backoff, carriersense] csmapp: name: p-persistent CSMA ref: [csma] description: IEEE 802.11 uses refinement #features: [backoff, carriersense, discrete-time] features: time.discrete: csmaca: abbrv: CSMA/CA #features: [backoff, carriersense] dfwmac: name: DFWMAC # related to ieee 802.11 # class bitmap bitmap: name: basic bit-map method slotted: true carrierSense: false? collisions: false #ref: [tanenbaum] # class token # class binary countdown btma: name: Busy Tone Multiple Access abbrv: BTMA ref: [btma] ribtma: name: Receiver Initiated Busy Tone Multiple Access abbrv: RI-BTMA ref: [ribtma] isma: name: Idle Sense Multiple Access # or: Idle Signal Multiple Access ??? abbrv: ISMA collisions: true ref: [isma] iisma: abbrv: I-ISMA name: Idle Signal Multiple Access for Integrated services ref: [iisma] risma: name: Reservation Idle Sense Multiple Access abbrv: R-ISMA collisions: true ref: [risma] sisma: name: Slotted Idle Sense Multiple Access abbrv: S-ISMA collisions: true ref: [sisma] rap: name: Randomly Addressed Polling abbrv: RAP ref: [rap] # base station polls nodes for random number (multiple times), sorts # them and polls the nodes in that order, collisions can occur features: access.polling: reliability.retransmission: rrap: name: Reserved Randomly Addressed Polling abbrv: RRAP related: [rap] collisions: true ref: [rrap] grap: name: GRAP abbrv: GRAP related: [rap] collisions: true ref: [grap] grapr: name: GRAP-R ref: [grap] grapo: name: GRAPO related: [rap] collisions: true ref: [grapo] rama: name: Resource Auction Multiple Access abbrv: RAMA ref: [rama] # Base station has list of free resources, nodes trying to reserve # resource send their id, digit by digit to base station, that # broadcasts the highest number it received. Nodes whose digit is lower # drop out. At the end of the auction a winner is announced. features: time.discrete: time.synchronized: frama: name: fair resource assignment multiple access abbrv: F-RAMA ref: [frama] zhang: name: Zhang’s Proposal collisions: false ref: [zhang] dtmp: name: Disposable Token MAC Protocol abbrv: DTMP ref: [dtmp] # Base station polls node (i.e. node received token), if no data to be # sent on either side -> timeout, node->bs: can be sent immediately, # bs->node: indicated by token features: time.continuous: access.polling: topology.centralized: routing.unicast: deployment.static: acampora: name: Acampora’s Proposal collisions: false ref: [acampora] prma: name: Packet Reservation Multiple Access abbrv: PRMA ref: [prma] related: [raloha, saloha] # Time slots grouped into frames, successful transmission of packet # (ALOHA contention) reserves slot for next frame until node does not # use it any more (slot empty). features: time.discrete: access.contention: access.reservation: topology.centralized: routing.unicast: frma: name: Frame Reservation Multiple Access abbrv: FRMA ref: [frma] prmapp: name: PRMA++ ref: [prmapp] cprma: name: Centralized PRMA abbrv: C-PRMA ref: [cprma] maca: name: Multiple Access with Collision Avoidance abbrv: MACA ref: [maca] related: [csma/ca, btma] # Stations overhear RTS/CTS and inhibit their transmission, random # waiting on collisions, no carrier sense, slot time is duration of RTS # packet, “time multiplexed btma with one channel” features: channels.single: time.discrete: topology.singlehop: access.contention: macaw: abbrv: MACAW ref: [macaw] #features: [rtscts] related: [maca] fama: name: Floor Acquisition Multiple Access abbrv: FAMA ref: [fama] ieee80211: name: IEEE 802.11 # no ref? related: [macaw, csmaca, carriersense, backoff, discrete-time, rtscts] eynpma: name: EY-NPMA # mac protocol of hiperlan # ref: etsi hiperlan specs macabi: name: MACA By Invitation abbrv: MACA-BI ref: [macabi] related: [maca] features: initiation.sender: fprp: name: A Five-Phase Reservation Protocol abbrv: FPRP ref: [fprp] pamas: name: Power Aware MultiAccess protocol with signaling related: [maca] ref: [pamas] #features: [multichannel, rtscts, busytone] features: channels.multi: bluetooth: name: Bluetooth markowski: name: Markowski ref: [markowski] hrma: name: Hop-reservation multiple access abbrv: HRMA ref: [hrma] #features: [adhoc, discrete-time, slot-reservation, collision-free, multichannel] features: application.adhoc: time.discrete: mcsma: name: multichannel CSMA abbrv: MCSMA ref: [mcsma] ps-dcc: name: Power-Save Distributed Contention Control abbrv: PS-DCC ref: [psdcc] rima-sp: name: RIMA-SP ref: [rimasp] adapt: name: ADAPT ref: [adapt] rra-isa: name: RRA-ISA ref: [rraisa] dqruma: name: Distributed-Queuing Request Update Multiple Access abbrv: DQRUMA ref: [dqruma] mascara: name: Mobile Access Scheme based on Contention and Reservation for ATM abbrv: MASCARA ref: [mascara] dsapp: name: Dynamic Slot Assignment++ abbrv: DSA++ ref: [dsapp] cata: name: Collision Avoidance Time Allocation abbrv: CATA ref: [cata] # XXX: incomplete features: time.discrete: jin: name: Jin ref: [jin] ieee802153: name: IEEE 802.15.4 # base layer for zigbee trama: name: traffic-adaptive medium access protocol abbrv: TRAMA ref: [trama] #features: [discrete-time, distributed] features: time.discrete: nama: name: Node-Activation Multiple Access abbrv: NAMA ref: [nama] smac: name: Sensor MAC abbrv: S-MAC #features: [rtscts] ref: [smac] tmac: name: Timeout MAC abbrv: T-MAC related: [smac] #features: [rtscts] ref: [tmac] dsmac: name: DS-MAC related: [smac] ref: [dsmac] march: name: Multiple Access with ReduCed Handshake abbrv: MARCH ref: [march] #features: [adhoc] richdp: name: receiver-initiated channel-hopping with dual polling abbrv: RICH-DP ref: [richdp] #features: [adhoc] srmapa: name: Soft Reservation Multiple Access with Priority Assignment abbrv: SRMA/PA ref: [srmapa] # XXX incomplete features: access.contention: # nodes content for access and – if granted – remain in control of their slot (aka soft reservation, distributed) access.reservation: topology.adhoc: # does the mac layer actually do multihop? topology.multihop: time.discrete: dcapc: name: Dynamic channel assignment with power control abbrv: DCA-PC ref: [dcapc] #features: [adhoc] gpc: name: Generic power-controlled protocol abbrv: GPC ref: [gpc] #features: [adhoc] vbs: name: Virtual base stations abbrv: VBS ref: [vbs] #features: [adhoc] dpcalp: name: Distributed Power Control with Active Link Protection abbrv: DPC/ALP ref: [dpcalp] #features: [adhoc] lal: name: Lal’s proposal ref: [lal] #features: [lal] gridb: abbrv: GRID-B ref: [gridb] #features: [adhoc] mcmac: name: Multi-Code MAC abbrv: MC MAC ref: [mcmac] #features: [adhoc] wca: name: Weighted clustering algorithm abbrv: WCA ref: [wca] #features: [adhoc] dbtma: name: Dual Busy Tone Multiple Access abbrv: DBTMA ref: [dbtma] #features: [adhoc] mmac: name: Multi-Hop RTS MAC abbrv: MMAC ref: [mmac] #features: [adhoc] dprma: abbrv: D-PRMA ref: [dprma] #features: [adhoc] dprma2: abbrv: D-PRMA ref: [dprma2] macapr: name: Multiple Access Collision Avoidance with Piggyback Reservations abbrv: MACA/PR #features: [qos, discrete-time, slot-reservation, rtscts, adhoc] ref: [macapr] dps: name: Distributed Priority Scheduling abbrv: DPS #features: [rtscts, adhoc] ref: [dps] # XXX not complete features: deployment.adhoc: topology.multihop: other.qos: dwop: name: Distributed Wireless Ordering Protocol abbrv: DWOP #features: [adhoc] ref: [dwop] fdma: abbrv: FDMA #features: [fixed] tdma: abbrv: TDMA #features: [discrete-time, fixed] cdma: abbrv: CDMA #features: [fixed] ymac: abbrv: Y-MAC #features: [discrete-time, carriersense, broadcast, unicast, multichannel] ref: [ymac] desynctdma: abbrv: DESYNC-TDMA related: [tdma] ref: [desynctdma] leach: name: Low-Energy Adaptive Clustering Hierarchy abbrv: LEACH related: [tdma] #features: [discrete-time] ref: [leach] # no info available #leachc: # abbrv: LEACH-C lmac: abbrv: LMAC name: Lightweight Medium Access Control #features: [discrete-time, distributed] ref: [lmac] mlmac: abbrv: MLMAC name: Mobile LMAC related: [lmac, tdma] #features: [distributed, discrete-time] ref: [mlmac] pmac: name: Pattern MAC abbrv: PMAC related: [tdma] ref: [pmac] rmac: name: Routing-Enhanced MAC abbrv: RMAC related: [smac] ref: [rmac] dmac: abbrv: DMAC name: Data-Gathering MAC ref: [dmac] wisemac: name: Wireless Sensor MAC abbrv: WiseMAC ref: [wisemac] rimac: name: Receiver-Initiated MAC abbrv: RI-MAC ref: [rimac] zmac: name: Zebra MAC abbrv: Z-MAC #features: [discrete-time, distributed] related: [csma, tdma] ref: [zmac] mhmac: abbrv: MH-MAC name: Mobility Adaptive Hybrid MAC #features: [discrete-time] ref: [mhmac] ginmac: name: GinMAC # for “real-time” stuff, 1s cycle time #features: [centralized, discrete-time] ref: [ginmac] related: [tdma] features: time.discrete: time.synchronized: # off-line dimensioning, exclusive slots access.reservation: realtime.guaranteed: # via dedicated slots reliability.retransmission: deployment.planned: topology.multihop: tsmp: abbrv: TSMP # used by wirelesshart, not just layer 2 though name: Time Synchronized Mesh Protocol ref: [tsmp] #features: [synchronized, multichannel, centralized] aimrp: name: Address-light, integrated MAC and routing protocol abbrv: AIMRP ref: [aimrp] features: application.wsn: xmac: abbrv: X-MAC ref: [xmac] features: # actually: duty-cycled wsn application.wsn: # from kumar2014 qosmac: abbrv: QoS-MAC # kumar2014 calls it qos-mac ref: [qosmac] pedamacs: abbrv: PEDAMACS name: Power Efficient and Delay Aware MAC for Sensor Networks ref: [pedamacs] ermac: abbrv: ER-MAC name: Emergency Response MAC ref: [ermac] prioritymac: # 4 qos classes, tdma with preemption name: PriorityMAC ref: [priomac] features: application.iwsan: # access to the medium is contended for AM1/2, with exponential # backoff access.contention: access.carriersense: # AM3/4 use dedicated time slots access.reservation: other.qos: initiation.sender: time.discrete: time.synchronized: realtime.probabilistic: hymac: name: HyMAC ref: [hymac] features: realtime.guaranteed: # TDMA _and_ FDMA channels.multi: application.wsn: # out-of-band sync time.synchronized: time.discrete: # both, reserved and contended slots access.reservation: access.contention: topology.multihop: bmac: name: Berkeley MAC abbrv: B-MAC ref: [bmac] rtlink: abbrv: RT-Link ref: [rtlink] features: realtime.guaranteed: access.reservation: time.synchronized: time.discrete: energy.dutycycling: topology.multihop: mmsn: abbrv: MMSN ref: [mmsn] alert: name: Alert ref: [alert] sift: name: Sift ref: [sift] rrmac: abbrv: RRMAC ref: [rrmac] features: access.reservation: application.wsn: time.discrete: time.synchronized: realtime.guaranteed: topology.multihop: # centralized assignment of time slots with deadline scheduling topology.centralized: # retransmissions are contended! reliability.retransmission: watteyene: name: Watteyene’s proposal ref: [watteyene] # XXX incomplete features: realtime.guaranteed: application.wsn: vts: name: Virtual TDMA for Sensors abbrv: VTS ref: [vts] rrr: name: Resilent Round Robin abbrv: RRR ref: [rrr] # XXX not complete features: application.wsn: energy.dutycycling: pwmac: abbrv: PW-MAC name: Predictive-Wakeup MAC ref: [pwmac] # XXX incomplete features: # asynchronous energy.dutycycling: initiation.receiver: reliability.retransmission: # ? access.contention: omac: abbrv: O-MAC ref: [omac] # from the mac alphabet soup mumac: abbrv: μ-MAC ref: [mumac] # XXX incomplete features: time.discrete: channels.single: # contention period + contention-free period access.contention: access.reservation: amac: abbrv: A-MAC ref: [amac] ailmac: name: Adaptive, Information-centric and lightweight MAC abbrv: AI-LMAC ref: [ailmac] bitmac: abbrv: BitMAC ref: [bitmac] bma: name: Bit-map assisted MAC abbrv: BMA ref: [bma] bpmac: abbrv: BP-MAC # no ref available? # paper at: http://www.ejse.org/Archives/Fulltext/2009/Special/2009SP4.pdf bpsmac: name: Backoff Preamble Sequential MAC abbrv: BPS-MAC ref: [bpsmac] buzzbuzz: name: BuzzBuzz ref: [buzzbuzz] cmac: abbrv: C-MAC ref: [cmac] ccmac: name: Correlation-based Collaborative MAC abbrv: CC-MAC ref: [ccmac] cmac2009: name: Convergent MAC abbrv: CMAC ref: [cmac2009] cmacchowdhury2009: abbrv: CMAC ref: [cmacchowdhury2009] crankshaft: name: Crankshaft ref: [crankshaft] csmamps: name: Minimum Preamble Sampling CSMA abbrv: CSMA-MPS ref: [csmamps] woo2001: # there doesn’t seem to be a name name: Woo’s proposal ref: [woo2001] dwmac: name: Demand Wakeup MAC abbrv: DW-MAC ref: [dwmac] e2mac: abbrv: E^2-MAC name: Energy-efficient MAC ref: [e2mac] emmac: abbrv: EM-MAC name: Efficient Multichannel MAC ref: [emmac] emacs: abbrv: EMACs name: EYES MAC ref: [emacs] fmac: abbrv: f-MAC ref: [fmac] flama: abbrv: FLAMA name: Flow-aware Medium Access ref: [flama] funneling: name: Funneling-MAC ref: [funneling] gmac: name: Gateway MAC abbrv: G-MAC ref: [gmac] hmac: abbrv: HMAC name: Hybrid MAC ref: [hmac] iamac: abbrv: IAMAC name: Interference Avoidance MAC ref: [iamac] mclmac: name: Multi-Channel Lightweight MAC abbrv: MC-LMAC ref: [mclmac] features: channels.multi: # high-throughput application.wsn: time.discrete: time.synchronized: # distributed ad-hoc assignment access.reservation: topology.multihop: routing.broadcast: mfp: abbrv: MFP name: Micro-Frame Preamble ref: [mfp] mixmac: abbrv: MiX-MAC ref: [mixmac] # no paper/citation available #mrmac: # same here #nanomac: pact: abbrv: PACT name: Power aware clustered TDMA ref: [pact] pcm: abbrv: PCM name: Power Control MAC ref: [pcm] guo2001: name: Guo’s proposal ref: [guo2001] # cannot find the position-enabled mac (pmac) elhoiydi2002: name: El-Hoiydi’s proposal ref: [elhoiydi2002] qmac2006: abbrv: Q-MAC ref: [qmac2006] qmac2005: abbrv: Q-MAC name: QoS-aware MAC ref: [qmac2005] # cannot find qos-oriented mac (qmac) miller2005: name: Miller’s proposal ref: [miller2005] ticer: abbrv: TICER name: Transmitter Initiated Cycled Receiver ref: [tricer] ricer: abbrv: RICER name: Receiver Initiated Cycled Receiver ref: [tricer] rlmac: abbrv: RL-MAC name: Reinforced Learning MAC ref: [rlmac] rmacXXX: abbrv: RMAC ref: [rmacXXX] rmac2006: abbrv: RMAC name: Reliable MAC ref: [rmac2006] samac: abbrv: SA-MAC name: Spectrum agile MAC ref: [samac] scp: abbrv: SCP name: Scheduled Channel Polling ref: [scp] seesaw: name: SEESAW ref: [seesaw] smacs: abbrv: SMACS name: Self-Organizing Medium Access Control for Sensor Networks ref: [smacs] sotp: abbrv: SOTP name: Self-Organized TDMA Protocol ref: [sotp] sstdma: abbrv: SS-TDMA name: Self-Stabilizing MAC ref: [sstdma] # stem does not seem to be a mac protocol tamac: abbrv: TA-MAC name: Traffic adaptive MAC ref: [tamac] trawmac: abbrv: TRACMAC name: Traffic aware MAC ref: [trawmac] umac: abbrv: U-MAC ref: [umac] pereira2007: name: Pereira’s proposal ref: [pereira2007] arisha2002: name: Arisha’s proposal ref: [arisha2002] tmmac: abbrv: TMMAC ref: [tmmac] features: channels.multi: routing.broadcast: time.synchronized: time.discrete: # not 100% collision-free! access.reservation: power.dutycycling: deployment.adhoc: pip: name: Packets in Pipe abbrv: PIP ref: [pip] features: channels.multi: topology.centralized: topology.multihop: time.discrete: time.synchronized: power.dutycycling: # bulk-transfer in wsn application.wsn: access.reservation: carley: name: Carely’s proposal ref: [carley] # XXX incomplete features: time.synchronized: time.discrete: burstmac: abbrv: BurstMAC ref: [burstmac] dozer: abbrv: Dozer ref: [dozer]