| <!DOCTYPE html><html lang="en-us" > |
| |
| |
| |
| |
| |
| |
| |
| <head> |
| |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="generator" content="Source Themes Academic 4.8.0"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <meta name="author" content="Fraunhofer FOKUS"> |
| |
| |
| |
| |
| |
| |
| <meta name="description" content="The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places."> |
| |
| |
| <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/"> |
| |
| |
| |
| |
| |
| |
| |
| <meta name="theme-color" content="#68145C"> |
| |
| |
| |
| |
| |
| <script src="/mosaic/js/mathjax-config.js"></script> |
| |
| |
| |
| |
| |
| |
| |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.8.6/css/academicons.min.css" integrity="sha512-MCWBwPSput2UWNwyznVFLbD2iUc1e5VsdD1zahsWVzkDSUzyHhMZ4kCS3wgYSRm0mU+glwD/Q9lSJrDPwbUL2A==" crossorigin="anonymous"> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-1/css/all.min.css" integrity="sha512-ZYg+hQvLlM0W9C3P6vTpes5LmJ66G2EsroxDNzwD6qiulckldb29eD9I672HL2X+LH5nRhY1sQqZLJGB+aUUPg==" crossorigin="anonymous"> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-light"> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-dark" disabled> |
| |
| |
| |
| |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" integrity="sha512-TmDwFLhg3UA4ZG0Eb4MIyT1O1Mb+Oww5kFG0uHqXsdbyZz9DcvYQhKpGgNkamAI6h2lGGZq2X8ftOJvF/XjTUg==" crossorigin="anonymous" async></script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" integrity="" crossorigin="anonymous" async></script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i%7CRoboto+Mono&display=swap"> |
| |
| |
| |
| |
| |
| |
| <link rel="stylesheet" href="/mosaic/css/academic.css"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <link rel="manifest" href="/mosaic/index.webmanifest"> |
| <link rel="icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_32x32_fill_lanczos_center_2.png"> |
| <link rel="apple-touch-icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_192x192_fill_lanczos_center_2.png"> |
| |
| <link rel="canonical" href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <meta property="twitter:card" content="summary"> |
| |
| <meta property="og:site_name" content="Eclipse MOSAIC"> |
| <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/"> |
| <meta property="og:title" content="Simple Network Simulator (SNS) | Eclipse MOSAIC"> |
| <meta property="og:description" content="The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg"> |
| <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us"> |
| |
| |
| <meta property="article:published_time" content="2020-06-30T00:00:00+01:00"> |
| |
| <meta property="article:modified_time" content="2020-06-30T00:00:00+01:00"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <title>Simple Network Simulator (SNS) | Eclipse MOSAIC</title> |
| |
| </head> |
| |
| <body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-simulators page-network_simulator_sns "> |
| |
| <aside class="search-results" id="search"> |
| <div class="container"> |
| <section class="search-header"> |
| |
| <div class="row no-gutters justify-content-between mb-3"> |
| <div class="col-6"> |
| <h1>Search</h1> |
| </div> |
| <div class="col-6 col-search-close"> |
| <a class="js-search" href="#"><i class="fas fa-times-circle text-muted" aria-hidden="true"></i></a> |
| </div> |
| </div> |
| |
| <div id="search-box"> |
| |
| <input name="q" id="search-query" placeholder="Search..." autocapitalize="off" |
| autocomplete="off" autocorrect="off" spellcheck="false" type="search"> |
| |
| </div> |
| |
| </section> |
| <section class="section-search-results"> |
| |
| <div id="search-hits"> |
| |
| </div> |
| |
| </section> |
| </div> |
| </aside> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <nav class="navbar navbar-expand-lg navbar-light compensate-for-scrollbar" id="navbar-main"> |
| <div class="container"> |
| |
| |
| <div class="d-none d-lg-inline-flex"> |
| <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a> |
| </div> |
| |
| |
| |
| <button type="button" class="navbar-toggler" data-toggle="collapse" |
| data-target="#navbar-content" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> |
| <span><i class="fas fa-bars"></i></span> |
| </button> |
| |
| |
| |
| <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none"> |
| <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a> |
| </div> |
| |
| |
| |
| |
| <div class="navbar-collapse main-menu-item collapse justify-content-start" id="navbar-content"> |
| |
| |
| <ul class="navbar-nav d-md-inline-flex"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/about"><span>About</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/about_deprecated"><span>About (Deprecated)</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/news"><span>News</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link active" href="/mosaic/docs"><span>Documentation</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/tutorials"><span>Tutorials</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/download"><span>Download</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="nav-item"> |
| <a class="nav-link " href="/mosaic/community"><span>Community</span></a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </div> |
| |
| <ul class="nav-icons navbar-nav flex-row ml-auto d-flex pl-md-2"> |
| |
| <li class="nav-item"> |
| <a class="nav-link js-search" href="#" aria-label="Search"><i class="fas fa-search" aria-hidden="true"></i></a> |
| </li> |
| |
| |
| |
| |
| |
| <li class="nav-item "> |
| <a href="https://github.com/eclipse/mosaic" target="blank"> |
| <i class="fab fa-github" aria-hidden="true"></i> |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| |
| </div> |
| </nav> |
| |
| |
| |
| |
| <div class="container docs"> |
| <div class="row flex-xl-nowrap"> |
| <div class="col-12 col-md-3 col-xl-3 docs-sidebar"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <form class="docs-search d-flex align-items-center"> |
| <button class="btn docs-toggle d-md-none p-0 mr-3" type="button" data-toggle="collapse" data-target="#docs-nav" aria-controls="docs-nav" aria-expanded="false" aria-label="Toggle section navigation"> |
| <span><i class="fas fa-bars"></i></span> |
| </button> |
| |
| |
| <input name="q" type="search" class="form-control" placeholder="Search..." autocomplete="off"> |
| |
| </form> |
| |
| <nav class="collapse docs-links" id="docs-nav"> |
| |
| |
| |
| |
| |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/getting_started">Getting Started</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/getting_started/">Download</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/getting_started/run_mosaic/">Run Eclipse MOSAIC</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/run_simulations">Run Simulations</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/run_simulations/">Run a single simulation</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/visualization">Visualization</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/">WebSocket Visualizer</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/filevis/">File Visualizer</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/itef/">ITEF</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/phabmap/">PHABMap</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/simulators">Simulators</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/">Overview</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/traffic_simulator_phabmacs/">Traffic - PHABMACS</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/network_simulator_omnetpp/">Network - OMNeT++</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/network_simulator_ns3/">Network - ns-3</a> |
| </li> |
| |
| <li class="active"> |
| <a href="/mosaic/docs/simulators/network_simulator_sns/">Network - SNS</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/network_simulator_cell/">Network - Cell</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/application_simulator/">Application Simulator</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/environment_simulator/">Environment Simulator</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/battery_simulator/">Battery Simulator</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/building_scenarios">Building Scenarios</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/building_scenarios/">Simulation Scenarios</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/building_scenarios/scenario_convert/">Scenario Convert</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/building_scenarios/scenario_configuration/">Additional Scenario Configuration</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/develop_applications">Create Applications</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/develop_applications/">Basics</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/develop_applications/communication/">V2X Communication</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/develop_applications/event_scheduler/">Event Scheduling</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/develop_applications/road_traffic/">Scenario Database</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/extending_mosaic">Extending Eclipse MOSAIC</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/">Core Concepts</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/simulator_coupling/">Simulator Coupling</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/interactions/">Interactions</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/application_ambassador_details/">Application Ambassador</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/sumo_ambassador_details/">Sumo Ambassador</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/omnetpp_details/">OMNeT++ Federate</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| |
| </nav> |
| |
| </div> |
| |
| |
| <div class="d-none d-xl-block col-xl-2 docs-toc"> |
| <ul class="nav toc-top"> |
| <li><a href="#" id="back_to_top" class="docs-toc-title">Contents</a></li> |
| </ul> |
| |
| <nav id="TableOfContents"> |
| <ul> |
| <li><a href="#configuration">Configuration</a></li> |
| <li><a href="#transmission-logic">Transmission Logic</a> |
| <ul> |
| <li><a href="#topocasts">TopoCasts</a></li> |
| <li><a href="#geocasts">GeoCasts</a></li> |
| </ul> |
| </li> |
| <li><a href="#transmission-models">Transmission Models</a> |
| <ul> |
| <li><a href="#simpleadhoctransmissionmodel"><code>SimpleAdhocTransmissionModel</code></a></li> |
| <li><a href="#sophisticatedadhoctransmissionmodel"><code>SophisticatedAdhocTransmissionModel</code></a></li> |
| </ul> |
| </li> |
| <li><a href="#accessing-sns-functionality-from-your-applications">Accessing SNS-functionality from your applications</a></li> |
| </ul> |
| </nav> |
| |
| |
| </div> |
| |
| |
| <main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main"> |
| |
| <article class="article"> |
| |
| <div class="docs-article-container"> |
| <h1>Simple Network Simulator (SNS)</h1> |
| |
| <div class="article-style"> |
| <p>The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the |
| transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions |
| in certain places. Those abstractions will be discussed later on.</p> |
| <h2 id="configuration">Configuration</h2> |
| <p>The SNS offers some configurability regarding the way transmissions are simulated.</p> |
| <p><strong>Main Configuration:</strong></p> |
| <table> |
| <thead> |
| <tr> |
| <th style="text-align:left">Parameter</th> |
| <th style="text-align:left">Description</th> |
| <th style="text-align:left">type</th> |
| <th style="text-align:left">Default Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td style="text-align:left"><code>maximumTtl</code></td> |
| <td style="text-align:left">Defines the upper bound for the amount of hops a message can make. (Note: messages can have individual <code>ttl</code>’s)</td> |
| <td style="text-align:left">int</td> |
| <td style="text-align:left"><code>10</code></td> |
| </tr> |
| <tr> |
| <td style="text-align:left"><code>singlehopRadius</code></td> |
| <td style="text-align:left">Fallback radius to be used for transmission, if no radius is defined in the <code>AdhocConfiguration</code></td> |
| <td style="text-align:left">double</td> |
| <td style="text-align:left"><code>509.4</code></td> |
| </tr> |
| <tr> |
| <td style="text-align:left"><code>singlehopDelay</code></td> |
| <td style="text-align:left">A delay configuration for the direct communication between two nodes. ( |
| <a href="/mosaic/docs/extending_mosaic/delay_models/">See here</a>)</td> |
| <td style="text-align:left">Delay</td> |
| <td style="text-align:left">`ConstantDelay |</td> |
| </tr> |
| <tr> |
| <td style="text-align:left"><code>singlehopTransmission</code></td> |
| <td style="text-align:left">This contains the transmission configurations for <code>lossProbability</code> and <code>maxRetries</code>.</td> |
| <td style="text-align:left">CTransmission</td> |
| <td style="text-align:left">n/a</td> |
| </tr> |
| <tr> |
| <td style="text-align:left"><code>adhocTransmissionModel</code></td> |
| <td style="text-align:left">A class extending <code>AdhocTransmissionModel</code>, this will decide the logic for transmissions.</td> |
| <td style="text-align:left">AdhocTransmissionModel</td> |
| <td style="text-align:left"><code>SimpleAdhoc TransmissionModel</code></td> |
| </tr> |
| </tbody> |
| </table> |
| <blockquote> |
| <p>On default the SNS will use the <code>SimpleAdhocTransmissionModel</code> with a <code>ConstantDelay</code> using 0 as delay. This means it usually |
| makes sense to specify the <code>AdhocTransmissionModel</code> explicitly and use a more realistic <code>Delay</code>. |
| <strong>Example Configuration:</strong></p> |
| </blockquote> |
| <pre><code class="language-json">{ |
| "maximumTtl": 20, |
| "singlehopRadius": 300.5, |
| "singlehopDelay": { |
| "type": "SimpleRandomDelay", |
| "steps": 5, |
| "minDelay": "1.5 ms", |
| "maxDelay": "2.5 ms" |
| }, |
| "singlehopTransmission": { |
| "lossProbability": 0.0, |
| "maxRetries": 0 |
| }, |
| "adhocTransmissionModel": { |
| "type": "SimpleAdhocTransmissionModel", |
| "simpleMultihopDelay": { |
| "type": "GammaRandomDelay", |
| "minDelay": "10 ms", |
| "expDelay": "30 ms" |
| }, |
| "simpleMultihopTransmission": { |
| "lossProbability": 0.1, |
| "maxRetries": 2 |
| } |
| } |
| } |
| </code></pre> |
| <h2 id="transmission-logic">Transmission Logic</h2> |
| <p>SNS differentiates between two types of Ad hoc transmissions, geographically- and topologically-scoped transmissions, which |
| generally are abbreviated with <em>GeoCast</em> and <em>TopoCast</em> respectively.<br> |
| GeoCasts are limited to <em>BroadCasts</em>. Accordingly, there is no explicit addressing |
| of receivers (other than 255.255.255.255), instead a destination area is specified. However, GeoCasts allow for multihop forwarding.<br> |
| TopoCasts on the other hand use means of IPv4 addressing to transmit messages. Since the SNS was not build to simulate transmissions using complex topology-constructs, TopoCasts |
| are limited to transmissions with a single hop. However, TopoCasts support <em>BroadCasts</em> and <em>UniCasts</em> (we are omitting Anycasts). |
| Most transmissions in the Ad hoc domain will be some form of Broadcast, meaning every reachable entity is eligible to |
| receive a message.<br> |
| The flowchart below tries to explain how different types of messages are handled internally.</p> |
| <pre><code class="language-mermaid">graph TD |
| id1[V2X-Transmission] |
| id2{Transmission Type} |
| id1-->id2 |
| id3{Broadcast<br/>or Unicast?} |
| id4{Broadcast?} |
| id2-->|TopoCast|id3 |
| id2-->|GeoCast|id4 |
| id5([Simulate TopoCast using<br/>singlehop configuration.]) |
| id3-->|Yes|id5 |
| id6{Simple transmission<br/>model?} |
| id4-->|Yes|id6 |
| id7([Simulate transmission using<br/>simpleMultihopDelay.]) |
| id6-->|Yes|id7 |
| id8{Sender directly able to reach<br/>destination area?} |
| id6-->|No|id8 |
| id9([Flooding in destination area]) |
| id8-->|Yes|id9 |
| id10([Greedy Forwarding to reach area,<br/>then flooding in destination areay.]) |
| id8-->|No|id10 |
| </code></pre> |
| <!--- |
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="596" viewBox="-0.5 -0.5 596 607" content="<mxfile host="Electron" modified="2020-07-06T10:48:36.527Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="l4Q-Cp_AUSgKvp2rzn64" version="12.4.2" type="device" pages="1"><diagram id="9cMP8hRPBYysTayQNTAi" name="Page-1">7Vvblps2FP0aP5qlCwL8OJek7epKV1cnaTOPjNHYJBhRIWdm+vWVQBgLaTB2jZMm+MXW0QXQ2dpb5wjP8M3m+SceF+t3LKHZDIHkeYZvZwhBGEbyS1leaksQktqw4mmiG7WGu/Qfqo1AW7dpQkujoWAsE2lhGpcsz+lSGLaYc/ZkNntkmXnVIl5Ry3C3jDPb+leaiHVtjQBo7T/TdLXWVw6bik3ctNWGch0n7GnPhN/M8A1nTNS/Ns83NFNz10xL3e/tK7W7++I0F0M6/Hq/+rTOil9uE579QePoU/jhaY71zX2Js61+4Csh6KYQ0nhVFJzFy3War2SJx3m5ScsyZXnlA2WisraaZxrP0I0yr6mqfZsxlljdPD0R4qWZXM62eULVDcIZvn5ap4LeFfFS1T5JOElbnKWrXBaX8ikpVwa+1CAhQBbXYpPp7ln8QLNrxhPKb1jGZOPbnOV0VxMvP6+qC3ZqH9Ms65pYLhrTDGFQfaS9FJx9pq4aPY2UC/r8qoPgzu1yuVC2oYK/yCa6QwB8j4QkQHqB6AVDAl1+auEHfe23tQE9jXqN+NXuCi0q5A8NjCNAAi2M/Ik+zt8bgDjasd+R41AYeVFgOA07fIYcPgvG8plv+czyEc2TK0WQanVlsfTjUk4HfU7FR2kBHtGle+0l9ftWPTFoCi9NIZd3vNdJFe/369puVanpdw4InOhvmlis3/G2nCq25Ut6eF2ImK+o6GkXudGzhw3igEZj4zSLRfrFvF0XXvQVfmdpLlpwQijBSRZ7HwOoaEHMEeun1oPsy0lnXBRZoIe4M1Y9M9ZYFaB3E3E6xomF8fesYDdxKY7E+oT0A0iPBiIdol6iBB7GIDQwM4eRxZQjrgZMbNSeugJ8aI8VDlsB7VhNQ/b4WNJRVknkUIIgExpSxjIJ/t6ypmJeVrusK9lgUTy3dfLXSn2b8g/evxS0GVfeZj103dLeHKzZ5mFbDt3xfU87hQX0kG/u76Bjr7AgHsIX3OEtLIzIez+eSOFEpOci0n4cAU9SGTJh5F+SR1GguE+O1nxMVofBqbsKBz9/g5wK7ZDoWFKFwMWq1zLgTpZq4eG3E50eolPfDzwAgig0GXXHsHtrISBeCO3lMFr8BZGFkNa32rEPvPEp47btQ57ugDB5vOkQKI9jiHwdzEQHPQ+Bgwaj0fxuByXHaegUeA8IvNFQGQ3caLqMSPrYFEloYvXkuKPSSNB+wv5xR47Csa2F97S0QC/XvHCRk6IDSXTZla7YpEmi+lxzKsUyfqj6K/wU6gGqRyLXM3KrEHUIpINw/hqSX2UrfdKgb222S/DvI7mHG17ltrkMjwMfG86co7Mgcd7sDi+wNQosONylm628fRkfgiTl6pBGLl0zfNyW9WmB+sromhX1PD+mqy2XDz6dHRzSRdKri9h1hnDRfDR0pSEG6eKJGneKnv7vdXFoRhouvqYuOlLHiJwaMB6Z3h5ZDJG9/ZvEsIcQ+sQQ+UE3V3wW+EHkNXLYHLF6F9RHO9d2dOoAulIHH0paCeimyNSPd9tMpEpIp0TCgEQCJh4gViIBO8LJKPSCSyYSkP2GhotRxtHOH0c5FwOV8wCQgAckajqsBSwQjSmuhHgLM9LE3XPZoeIKca+44q5ofwOZWWRHo0eFH4o9d9Q5xSDHkCiGnRjEJFPflZu7aAzShBwXj0GGn4v9ODyK3Vi6UGZuYZGkjzqwOxdJDjy+OhsB2m9+/cYsmE8BiGaD3gAkjDrHmmcBn4xYiYmROfYWyBxmRIXEDhY8EIBkaU7nzTqsQxA5zRLYtWvAkBdG7iS1SozJR3yoAhTjDeKEliLNK5Wd6feJzxW3fEcKS1Do+Rh03xB2Kiv0PbSwCXS0gy9k530dvDPJ63+S12btHpRXDHqBJMkN+tDMEUMbRKPmAKUCgz3RNJnWRyeGLNjOLfrwGwxTwq+0Ff1xQvrBawV91WS4JHO5FW0Pc81dKelid3BeHPXuSoeuibPh3T7+mfLiPczQy9xh6J8FenOIJEbMnajvkehiO1E7Fb73x7FOiibNndvEKSfTCxcfq5wMCXY5GZNdRvxrmSy2/22sEdP+QRS/+Rc=</diagram></mxfile>" onclick="(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1&edit=_blank');}}})(this);" style="cursor:pointer;max-width:100%;max-height:607px;"><defs><filter id="dropShadow"><feGaussianBlur in="SourceAlpha" stdDeviation="1.7" result="blur"/><feOffset in="blur" dx="3" dy="3" result="offsetBlur"/><feFlood flood-color="#3D4574" flood-opacity="0.4" result="offsetColor"/><feComposite in="offsetColor" in2="offsetBlur" operator="in" result="offsetBlur"/><feBlend in="SourceGraphic" in2="offsetBlur"/></filter></defs><g filter="url(#dropShadow)"><rect x="448.58" y="530" width="140" height="70" rx="35" ry="35" fill="none" stroke="#000000" pointer-events="all"/><g transform="translate(449.5,537.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="137" height="54" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 137px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Attempt Approaching ransmission to reach area, then Flooding ransmission.</div></div></foreignObject><text x="69" y="33" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="122.86" y="0" width="120" height="60" rx="9" ry="9" fill="none" stroke="#000000" pointer-events="all"/><g transform="translate(133.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="97" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 99px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">V2X-Transmission</div></div></foreignObject><text x="49" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">V2X-Transmission</text></switch></g><path d="M 182.86 60 L 182.86 93.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 182.86 98.88 L 179.36 91.88 L 182.86 93.63 L 186.36 91.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 159.05 152.5 L 65.51 206.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 60.97 209.44 L 65.27 202.9 L 65.51 206.8 L 68.78 208.95 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(60.5,169.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="46" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">TopoCast</div></div></foreignObject><text x="23" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">TopoCast</text></switch></g><path d="M 182.86 100 L 230.48 135 L 182.86 170 L 135.25 135 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(144.5,128.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="76" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 76px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 9px">Transmission Type</font></div></div></foreignObject><text x="38" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 206.67 152.5 L 317.15 207.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 321.86 209.5 L 314.03 209.54 L 317.15 207.18 L 317.14 203.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(262.5,169.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">GeoCast</div></div></foreignObject><text x="22" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">GeoCast</text></switch></g><path d="M 322.86 210 L 355.72 240 L 322.86 270 L 290.01 240 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(296.5,233.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="51" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 51px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 10px">Broadcast?</font></div></div></foreignObject><text x="26" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 60 210 L 110 250 L 60 290 L 10 250 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(32.5,229.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="40" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 55px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Broadcast<br />or<br />Unicast?</div></div></foreignObject><text x="28" y="26" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 60 290 L 60 323.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 60 328.88 L 56.5 321.88 L 60 323.63 L 63.5 321.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(33.5,296.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Yes</div></div></foreignObject><text x="10" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Yes</text></switch></g><rect x="0" y="330" width="120" height="60" rx="30" ry="30" fill="none" stroke="#000000" pointer-events="all"/><g transform="translate(1.5,332.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" height="54" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 117px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Simulate direct transmission using singlehop configuration.</div></div></foreignObject><text x="59" y="33" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 322.86 270 L 322.86 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 322.86 308.88 L 319.36 301.88 L 322.86 303.63 L 326.36 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(323.5,283.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Yes</div></div></foreignObject><text x="10" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Yes</text></switch></g><path d="M 322.86 310 L 366.67 340 L 322.86 370 L 279.06 340 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(280.5,326.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="84" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 84px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="font-size: 11px">Use simple Multihop?</font></div></div></foreignObject><text x="42" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 300.96 355 L 225.27 406.42" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 220.93 409.37 L 224.75 402.54 L 225.27 406.42 L 228.68 408.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(244.5,368.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="18" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Yes</div></div></foreignObject><text x="9" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Yes</text></switch></g><rect x="160" y="410" width="120" height="60" rx="30" ry="30" fill="none" stroke="#000000" pointer-events="all"/><g transform="translate(161.5,412.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" height="54" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 117px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Simulate direct transmission using simpleMultihop configuration.</div></div></foreignObject><text x="59" y="33" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 344.76 355 L 423.25 406.51" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 427.64 409.39 L 419.87 408.47 L 423.25 406.51 L 423.71 402.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(386.5,363.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="15" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">No</div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">No</text></switch></g><path d="M 428.58 410 L 485.72 450 L 428.58 490 L 371.43 450 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(372.5,436.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="111" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 111px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;"><font style="line-height: 110% ; font-size: 9px">Sender able to reach destination area?</font></div></div></foreignObject><text x="56" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 457.15 470 L 514.02 525.55" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 517.78 529.22 L 510.32 526.83 L 514.02 525.55 L 515.21 521.82 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(486.5,478.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="14" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">No</div></div></foreignObject><text x="7" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">No</text></switch></g><path d="M 400 470 L 354.08 525.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 350.72 529.14 L 352.51 521.52 L 354.08 525.11 L 357.89 526 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(356.5,483.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Yes</div></div></foreignObject><text x="10" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Yes</text></switch></g><rect x="280.01" y="530" width="140" height="70" rx="35" ry="35" fill="none" stroke="#000000" pointer-events="all"/><g transform="translate(281.5,551.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="137" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 137px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;white-space:normal;">Flooding transmission in destination area.</div></div></foreignObject><text x="69" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Flooding transmission in destination area.</text></switch></g></g></svg> |
| ---> |
| <h3 id="topocasts">TopoCasts</h3> |
| <p>The only way of directly addressing entities is a <em>SingleHopUniCast</em> (see figure below), the sender will try to address an entity |
| in its transmission range. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-singlehopunicast-the-rsu-is-directly-addressing-the-green-vehicle"> |
| |
| |
| <a data-fancybox="" href="../images/SingleHopUniCast.png" data-caption="SingleHopUniCast: The RSU is directly addressing the green vehicle."> |
| |
| |
| <img src="../images/SingleHopUniCast.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| SingleHopUniCast: The RSU is directly addressing the green vehicle. |
| </figcaption> |
| |
| |
| </figure> |
| |
| The counterpart to that is a <em>SingleHopBroadCast</em> (see figure below), this form of transmission is commonly used for CAMs (Cooperative Awareness Messages) |
| and other types of intermediate warning messages to all entities in transmission range.<br> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-singlehopbroadcast-the-rsu-is-addressing-all-units-in-transmission-range"> |
| |
| |
| <a data-fancybox="" href="../images/SingleHopBroadCast.png" data-caption="SingleHopBroadCast: The RSU is addressing all units in transmission range."> |
| |
| |
| <img src="../images/SingleHopBroadCast.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| SingleHopBroadCast: The RSU is addressing all units in transmission range. |
| </figcaption> |
| |
| |
| </figure> |
| </p> |
| <h3 id="geocasts">GeoCasts</h3> |
| <p>As already explained, GeoCasts do not support direct addressing, so there is no form of UniCast. Instead of addressing |
| entities, GeoCasts specify a destination area in which a message should be distributed. |
| The SNS supports two ways to simulate GeoCasts. |
| A simple but performant model (<code>SimpleAdhocTransmissionModel</code>) & a fairly realistic model ( <code>SophisticatedAdhocTransmissionModel</code>).</p> |
| <p>The simple model assumes a transmission to all entities in the specified area, whereas the delay will be calculated using the configured delay-type and the successful reception will be determined by the uniformly distributed lossProbability. |
| The figure below depicts this behaviour |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-simple-geobroadcast-the-rsu-is-sending-to-all-entities-in-the-destination-area-all-arrows-transmissions-will-have-a-uniquely-calculated-delay-or-possible-loss"> |
| |
| |
| <a data-fancybox="" href="../images/SimpleMultiHop.png" data-caption="Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss."> |
| |
| |
| <img src="../images/SimpleMultiHop.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss. |
| </figcaption> |
| |
| |
| </figure> |
| </p> |
| <p>The realistic model accounts for possible transmission failures more accurately. The easiest case is that the sender itself is inside |
| of the destination area<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and will start a |
| <a href="#flooding-transmission">Flooding Transmission</a> within this area (see figure below). |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-geobroadcast-using-flooding-transmissionflooding-transmission-note-the-area-is-not-limited-to-circles"> |
| |
| |
| <a data-fancybox="" href="../images/FloodingTransmission.png" data-caption="GeoBroadCast using Flooding Transmission. Note: the area is not limited to circles."> |
| |
| |
| <img src="../images/FloodingTransmission.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| GeoBroadCast using <a href="#flooding-transmission">Flooding Transmission</a>. Note: the area is not limited to circles. |
| </figcaption> |
| |
| |
| </figure> |
| </p> |
| <p>In case the sending entity is outside of the destination area, a |
| <a href="#approaching-transmission">Forwarding Transmission</a> has to |
| be executed first. This is can also be described as an <em>AnyCast</em>, since the goal of this transmission is to reach <em>any</em> entity |
| inside the destination area. We try to achieve this by building a “chain” of entities, that will forward the message to the destination |
| are (see figure below). |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-forwarding-transmission-by-building-a-chain-of-vehicles"> |
| |
| |
| <a data-fancybox="" href="../images/ApproachingTransmission.png" data-caption="Forwarding Transmission, by building a “chain” of vehicles."> |
| |
| |
| <img src="../images/ApproachingTransmission.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| Forwarding Transmission, by building a “chain” of vehicles. |
| </figcaption> |
| |
| |
| </figure> |
| </p> |
| <p>The SNS however never uses |
| <a href="#approaching-transmission">Forwarding Transmissions</a> individually, rather they are combined with a |
| <a href="#flooding-transmission">Flooding Transmission</a>, which |
| will simulate a way, that GeaCasts can be implemented in reality. The figure below depicts this behaviour. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-forwarding-transmission-followed-by-a-flooding-transmissionflooding-transmission-to-realistically-simulate-geocasts"> |
| |
| |
| <a data-fancybox="" href="../images/ApproachingAndFlooding.png" data-caption="Forwarding Transmission followed by a Flooding Transmission to realistically simulate GeoCasts."> |
| |
| |
| <img src="../images/ApproachingAndFlooding.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| Forwarding Transmission followed by a <a href="#flooding-transmission">Flooding Transmission</a> to realistically simulate GeoCasts. |
| </figcaption> |
| |
| |
| </figure> |
| </p> |
| <h2 id="transmission-models">Transmission Models</h2> |
| <p>As already mentioned in the previous abstracts, the SNS supports different transmission models for different use cases. |
| Depending on the configuration of the SNS and the type of message send, different models will be used. |
| The models are located in the package <code>org.eclipse.mosaic.fed.sns.ambassador.model</code>. This chapter aims to give |
| a detailed inside in the workings of the models.</p> |
| <h3 id="simpleadhoctransmissionmodel"><code>SimpleAdhocTransmissionModel</code></h3> |
| <p>This is the most basic of all transmission models and will be your model of choice if you are not interested in completely |
| accurate transmission results but care for performance. This model will approximate GeoCasts using the defined <code>simpleMultihopDelay</code> |
| and <code>simpleMultihopTransmission</code> parameters. |
| For TopoCasts the usual <code>singlehopDelay</code> will be used. |
| This model only checks, whether a potential receiver is inside the destination area and has enabled Adhoc capabilities. |
| If those conditions are met it will simulate the transmission by calculating an actual delay value and saving it into a |
| transmission-result. Such a result holds information of the success of the transmission, the delay-value, the amount of hops, |
| and the number of attempts. Though the amount of hops will always be 1 for this model.</p> |
| <h3 id="sophisticatedadhoctransmissionmodel"><code>SophisticatedAdhocTransmissionModel</code></h3> |
| <p>This model offers are more realistic simulation of adhoc transmissions, using an implementation of a greedy-forwarding and flooding |
| algorithm (see |
| <a href="https://en.wikipedia.org/wiki/Geographic_routing" target="_blank" rel="noopener">here (greedy forwarding)</a> & |
| |
| <a href="https://en.wikipedia.org/wiki/Flooding_%28computer_networking%29" target="_blank" rel="noopener">here (flooding)</a>). For TopoCasts this model behaves very |
| similarly to the <code>SimpleAdhocTransmissionModel</code>, since TopoCasts are always configured with only one hop. |
| For GeoCasts however, this model follows the flowchart above, trying to “approach” a destination area if it can’t be reached directly.</p> |
| <h4 id="approaching-greedy-forwarding">Approaching (Greedy forwarding)</h4> |
| <p>Approaching can be imagined as building a “chain” of entities to reach an area. However, there is no |
| guarantee, that even if such a chain exists, it will be found. The way that this chain is build follows the subsequent steps:</p> |
| <ul> |
| <li>Start from the sender and collect all reachable entities.</li> |
| <li>Choose out of all reachable entities the one, that is closest to any node in the destination area.</li> |
| <li>Use the chosen node and repeat the first step.</li> |
| <li>Repeat until either a node inside the destination area is reached, or the TTL (time to live) is exceeded.</li> |
| </ul> |
| <p>By always choosing the node with the shortest distance to the destination area, we omit a lot of possible solutions. |
| Greedy Forwarding isn’t optimal, but offers a performant approach for this problem. “Face Routing”-algorithms will always |
| find a path if one exists, however this hasn’t been implemented yet (feel free to contribute :). |
| The figure below shows an example of those shortcomings, the message will be send using the green nodes and won’t receive the destination |
| area, even though there is a possible “chain” using the yellow nodes.</p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-this-figure-depicts-a-case-were-the-approaching-transmission-wouldnt-reach-the-destination-area-even-though-there-is-a-possible-way-the-dashed-lines-represent-the-communication-range"> |
| |
| |
| <a data-fancybox="" href="../images/shortcomingsApproaching.svg" data-caption="This figure depicts a case were the Approaching Transmission wouldn’t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range)"> |
| |
| |
| <img src="../images/shortcomingsApproaching.svg" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption> |
| This figure depicts a case were the Approaching Transmission wouldn’t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range) |
| </figcaption> |
| |
| |
| </figure> |
| |
| <h4 id="flooding">Flooding</h4> |
| <p>The implementation of Flooding is fairly equivalent as described on |
| |
| <a href="https://en.wikipedia.org/wiki/Flooding_%28computer_networking%29" target="_blank" rel="noopener">wikipedia</a>. Each entity forwards the message to all entities |
| in its communication range. Entities, that already received the message won’t receive it again; this is different from many real-life |
| implementations, where messages are send to all reachable entities except the sender. However, since the simulation has total |
| knowledge of all simulated entities, it is easier to overcome a lot of the disadvantages, that flooding faces |
| in real world implementations.</p> |
| <h4 id="implementing-your-own-adhoctransmissionmodel">Implementing your own <code>AdhocTransmissionModel</code></h4> |
| <p>If the implemented models don’t suffice your needs you can easily implement your own. |
| Create a class extending <code>AdhocTransmissionModel</code> and implement the abstract methods for sending TopoCasts/GeoCasts. |
| A possible extension could be to allow for multihop TopoCasts, building an actual topology and transmit your |
| messages using that topology. Also, the aforementioned “Face-Routing” could be of interest. Additionally, the calculation |
| of delays could be made more realistic.</p> |
| <h2 id="accessing-sns-functionality-from-your-applications">Accessing SNS-functionality from your applications</h2> |
| <p>In order for your scenario to enable the SNS follow the steps |
| <a href="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/#communication-simulators-cell2-ns3-omnetpp-sns">here</a>. |
| An overview of how to configure AdHoc-modules and usage of the API for Routing and Message-Building functions, |
| can be found |
| <a href="https://www.eclipse.org/mosaic/docs/develop_applications/communication/">here</a>.</p> |
| <section class="footnotes" role="doc-endnotes"> |
| <hr> |
| <ol> |
| <li id="fn:1" role="doc-endnote"> |
| <p>Or is able to communicate with an entity inside the destination area. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p> |
| </li> |
| </ol> |
| </section> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| <div class="article-widget"> |
| |
| <div class="post-nav"> |
| |
| |
| |
| <div class="post-nav-item"> |
| <div class="meta-nav">Next</div> |
| <a href="/mosaic/docs/simulators/application_simulator/" rel="prev">Application Simulator</a> |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| </article> |
| </main> |
| </div> |
| </div> |
| |
| |
| |
| |
| |
| |
| |
| <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha384-vk5WoKIaW/vJyUAd9n/wmopsmNhiy+L2Z+SBxGYnUkunIxVxAv/UtMOhba/xskxh" crossorigin="anonymous"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.4/imagesloaded.pkgd.min.js" integrity="sha512-S5PZ9GxJZO16tT9r3WJp/Safn31eu8uWrzglMahDT4dsmgqWonRY9grk3j+3tfuPr9WJNsfooOR7Gi7HL5W2jw==" crossorigin="anonymous"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js" integrity="sha512-Zq2BOxyhvnRFXu0+WE6ojpZLOU2jdnqbrM1hmVdGzyeCa1DgM3X5Q4A/Is9xA1IkbUeDd7755dNNI/PzSf2Pew==" crossorigin="anonymous"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha512-uURl+ZXMBrF4AwGaWmEetzrd+J5/8NRkWAvJx5sbPSSuOb0bZLqf+tOzniObO00BjHa/dD7gub9oCGMLPQHtQA==" crossorigin="anonymous"></script> |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.4.8/mermaid.min.js" integrity="sha512-1tS1YUns336Mtxl+vkaLcADPwE1CPNVy3WEf7nrI7DGMMb6/FAVBgL2IzAWVBkB6vVuK94s2zVoiXcw1QZ9S1g==" crossorigin="anonymous" title="mermaid"></script> |
| |
| |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha512-1LdB3V708w6G4QRl7NsVdTr7MDibyRXr9stQZ+EGjEE0ZPMZkA//ir7kCWmFyxdAJNIRXdR/ZeJmCV0boyiCXw==" crossorigin="anonymous"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/java.min.js"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/json.min.js"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/xml.min.js"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/shell.min.js"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/dos.min.js"></script> |
| |
| |
| |
| |
| |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="anonymous"></script> |
| |
| |
| |
| |
| <script>const code_highlighting = true;</script> |
| |
| |
| |
| |
| <script>const isSiteThemeDark = false;</script> |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| const search_config = {"indexURI":"/mosaic/index.json","minLength":1,"threshold":0.3}; |
| const i18n = {"no_results":"No results found","placeholder":"Search...","results":"results found"}; |
| const content_type = { |
| 'post': "Posts", |
| 'project': "Projects", |
| 'publication' : "Publications", |
| 'talk' : "Talks" |
| }; |
| </script> |
| |
| |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.1/anchor.min.js" integrity="sha512-aZotBPy6dqn8yVaLJwSrkJ+QxuxV695A4dgodAMvTU5JyNi5mhrr+LeaD3GSS+lx1SMFKNs0tu5ZMJEgNZQP2Q==" crossorigin="anonymous"></script> |
| <script> |
| anchors.add(); |
| </script> |
| |
| |
| |
| |
| <script id="search-hit-fuse-template" type="text/x-template"> |
| <div class="search-hit" id="summary-{{key}}"> |
| <div class="search-hit-content"> |
| <div class="search-hit-name"> |
| <a href="{{relpermalink}}">{{title}}</a> |
| <div class="article-metadata search-hit-type">{{type}}</div> |
| <p class="search-hit-description">{{snippet}}</p> |
| </div> |
| </div> |
| </div> |
| </script> |
| |
| |
| |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js" integrity="sha512-o38bmzBGX+hD3JHWUFCDA09btWaqrNmoJ3RXLlrysA7PP01Kgs4UlE4MhelE1v5dJR3+cxlR4qQlotsW7jKsnw==" crossorigin="anonymous"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script src="/mosaic/js/academic.min.12ac32fae0b6a379104641bfce6313cb.js"></script> |
| |
| |
| |
| <script src="https://www.eclipse.org/js/mosaic-wg-features-widget.js"></script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div id="modal" class="modal fade" role="dialog"> |
| <div class="modal-dialog"> |
| <div class="modal-content"> |
| <div class="modal-header"> |
| <h5 class="modal-title">Cite</h5> |
| <button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
| <span aria-hidden="true">×</span> |
| </button> |
| </div> |
| <div class="modal-body"> |
| <pre><code class="tex hljs"></code></pre> |
| </div> |
| <div class="modal-footer"> |
| <a class="btn btn-outline-primary my-1 js-copy-cite" href="#" target="_blank"> |
| <i class="fas fa-copy"></i> Copy |
| </a> |
| <a class="btn btn-outline-primary my-1 js-download-cite" href="#" target="_blank"> |
| <i class="fas fa-download"></i> Download |
| </a> |
| <div id="modal-error"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| </body> |
| </html> |