| <!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://cdnjs.cloudflare.com/ajax/libs/mathjax/3.1.0/es5/tex-chtml.min.js" integrity="sha512-uwL1UtpYdWra2iqJlAW8Ts0s9Os6IxWLDJDF/BnWdhDmT7DEMFba3GPsFwmV3QiTNcUyl2GB5vsgycB/MOvo9g==" 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 – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"> |
| <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 – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"> |
| <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 – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</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-10 col-md-3"> |
| <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg)"></div> |
| </div> |
| <div class="col-2 col-md-4 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 style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></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 Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></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/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="docs container"> |
| <div class="row flex-xl-nowrap"> |
| <div class="docs-sidebar col-12 col-md-3 col-xl-3"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <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> |
| |
| </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 Output</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/visualization/statistics/">Statistics Output</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/application_simulator/">Application Simulator</a> |
| </li> |
| |
| <li > |
| <a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</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/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> |
| |
| <div class="docs-toc-item"> |
| <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a> |
| <ul class="nav docs-sidenav"> |
| |
| <li > |
| <a href="/mosaic/docs/api_docs/">Javadoc</a> |
| </li> |
| |
| </ul> |
| |
| |
| </div> |
| |
| |
| </nav> |
| |
| </div> |
| |
| |
| <div class="docs-toc d-none d-xl-block col-xl-2"> |
| <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> |
| |
| |
| <style> |
| @media (min-width:1140px) { |
| .docs-sidebar { |
| flex: 0 1 320px; |
| } |
| .docs-toc { |
| flex: 0 1 280px; |
| } |
| main.docs-content.no-docs-toc { |
| padding-bottom: 0 !important; |
| max-width: calc(100% - 320px) !important; |
| flex: 0 1 calc(100% - 320px); |
| width: 100%; |
| } |
| main.docs-content { |
| padding-bottom: 0 !important; |
| max-width: calc(100% - 600px) !important; |
| flex: 0 1 calc(100% - 600px); |
| width: 100%; |
| } |
| } |
| @media (max-width: 770px) { |
| main.docs-content { |
| max-width: 100% !important; |
| width: 100%; |
| } |
| } |
| @media (min-width: 771px) and(max-width: 1139px) { |
| main.docs-content.no-docs-toc { |
| padding-bottom: 0 !important; |
| max-width: calc(100% - 320px) !important; |
| width: 100%; |
| } |
| } |
| </style> |
| <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" 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.</p> |
| |
| |
| |
| <div class="svg-wrap mt-1 mb-4"> |
| <div class="inner"> |
| <svg id="mermaid-1603209753374" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="1207.332763671875" style="max-width: 817.0913696289062px;" viewBox="0 0 817.0913696289062 1207.332763671875"><style>#mermaid-1603209753374{font-family:"trebuchet ms",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:"trebuchet ms",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:"trebuchet ms",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}</style><g><g class="output"><g class="clusters"></g><g class="edgePaths"><g class="edgePath LS-id1 LE-id2" id="L-id1-id2" style="opacity: 1;"><path class="path" d="M239.4164047241211,47L239.4164047241211,72L239.9164047241211,97.5" marker-end="url(#arrowhead39)" style="fill:none"></path><defs><marker id="arrowhead39" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id2 LE-id3" id="L-id2-id3" style="opacity: 1;"><path class="path" d="M195.9271276785066,224.93259795438553L112.671875,302.921875L113.171875,337.921875" marker-end="url(#arrowhead40)" style="fill:none"></path><defs><marker id="arrowhead40" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id2 LE-id4" id="L-id2-id4" style="opacity: 1;"><path class="path" d="M283.9056817697356,224.93259795438553L366.1609344482422,302.921875L366.66093444824224,347.42812499999997" marker-end="url(#arrowhead41)" style="fill:none"></path><defs><marker id="arrowhead41" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id3 LE-id5" id="L-id3-id5" style="opacity: 1;"><path class="path" d="M113.171875,478.6171875L112.671875,512.6171875L112.671875,616.9343719482422" marker-end="url(#arrowhead42)" style="fill:none"></path><defs><marker id="arrowhead42" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id4 LE-id6" id="L-id4-id6" style="opacity: 1;"><path class="path" d="M366.66093444824224,469.1109344482418L366.1609344482422,512.6171875L366.6609344482422,547.6171905517579" marker-end="url(#arrowhead43)" style="fill:none"></path><defs><marker id="arrowhead43" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id6 LE-id7" id="L-id6-id7" style="opacity: 1;"><path class="path" d="M314.730715999631,693.3213409996309L218.50390625,779.2515563964844L218.50390625,914.0421752929688" marker-end="url(#arrowhead44)" style="fill:none"></path><defs><marker id="arrowhead44" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id6 LE-id8" id="L-id6-id8" style="opacity: 1;"><path class="path" d="M418.59115610436135,693.321343895639L513.8179626464844,779.2515563964844L514.3179626464845,814.2515625" marker-end="url(#arrowhead45)" style="fill:none"></path><defs><marker id="arrowhead45" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id8 LE-id9" id="L-id8-id9" style="opacity: 1;"><path class="path" d="M451.77749555523815,1010.2923332017227L360.3570251464844,1106.8327941894531L360.3570251464844,1150.8327941894531" marker-end="url(#arrowhead46)" style="fill:none"></path><defs><marker id="arrowhead46" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-id8 LE-id10" id="L-id8-id10" style="opacity: 1;"><path class="path" d="M576.8584356425159,1010.292339503968L667.2789001464844,1106.8327941894531L667.2789001464844,1141.3327941894531" marker-end="url(#arrowhead47)" style="fill:none"></path><defs><marker id="arrowhead47" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id1-id2" class="edgeLabel L-LS-id1' L-LE-id2"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(112.671875,302.921875)" style="opacity: 1;"><g transform="translate(-33.0859375,-9.5)" class="label"><rect rx="0" ry="0" width="66.171875" height="19"></rect><foreignObject width="66.171875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id2-id3" class="edgeLabel L-LS-id2' L-LE-id3">TopoCast</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(366.1609344482422,302.921875)" style="opacity: 1;"><g transform="translate(-29.46875,-9.5)" class="label"><rect rx="0" ry="0" width="58.9375" height="19"></rect><foreignObject width="58.9375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id2-id4" class="edgeLabel L-LS-id2' L-LE-id4">GeoCast</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(112.671875,512.6171875)" style="opacity: 1;"><g transform="translate(-12.1640625,-9.5)" class="label"><rect rx="0" ry="0" width="24.328125" height="19"></rect><foreignObject width="24.328125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id3-id5" class="edgeLabel L-LS-id3' L-LE-id5">Yes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(366.1609344482422,512.6171875)" style="opacity: 1;"><g transform="translate(-12.1640625,-9.5)" class="label"><rect rx="0" ry="0" width="24.328125" height="19"></rect><foreignObject width="24.328125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id4-id6" class="edgeLabel L-LS-id4' L-LE-id6">Yes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(218.50390625,779.2515563964844)" style="opacity: 1;"><g transform="translate(-12.1640625,-9.5)" class="label"><rect rx="0" ry="0" width="24.328125" height="19"></rect><foreignObject width="24.328125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id6-id7" class="edgeLabel L-LS-id6' L-LE-id7">Yes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(513.8179626464844,779.2515563964844)" style="opacity: 1;"><g transform="translate(-9.3984375,-9.5)" class="label"><rect rx="0" ry="0" width="18.796875" height="19"></rect><foreignObject width="18.796875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id6-id8" class="edgeLabel L-LS-id6' L-LE-id8">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(360.3570251464844,1106.8327941894531)" style="opacity: 1;"><g transform="translate(-12.1640625,-9.5)" class="label"><rect rx="0" ry="0" width="24.328125" height="19"></rect><foreignObject width="24.328125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id8-id9" class="edgeLabel L-LS-id8' L-LE-id9">Yes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(667.2789001464844,1106.8327941894531)" style="opacity: 1;"><g transform="translate(-9.3984375,-9.5)" class="label"><rect rx="0" ry="0" width="18.796875" height="19"></rect><foreignObject width="18.796875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-id8-id10" class="edgeLabel L-LS-id8' L-LE-id10">No</span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-id1-28" transform="translate(239.4164047241211,27.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-72.1953125" y="-19.5" width="144.390625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-62.1953125,-9.5)"><foreignObject width="124.390625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">V2X-Transmission</div></foreignObject></g></g></g><g class="node default" id="flowchart-id2-29" transform="translate(239.4164047241211,182.7109375)" style="opacity: 1;"><polygon points="85.7109375,0 171.421875,-85.7109375 85.7109375,-171.421875 0,-85.7109375" transform="translate(-85.7109375,85.7109375)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-65.734375,-9.5)"><foreignObject width="131.46875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Transmission Type</div></foreignObject></g></g></g><g class="node default" id="flowchart-id3-32" transform="translate(112.671875,407.76953125)" style="opacity: 1;"><polygon points="70.34765625,0 140.6953125,-70.34765625 70.34765625,-140.6953125 0,-70.34765625" transform="translate(-70.34765625,70.34765625)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-39.1640625,-19)"><foreignObject width="78.328125" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Broadcast<br>or Unicast?</div></foreignObject></g></g></g><g class="node default" id="flowchart-id4-33" transform="translate(366.1609344482422,407.76953125)" style="opacity: 1;"><polygon points="60.84140625,0 121.6828125,-60.84140625 60.84140625,-121.6828125 0,-60.84140625" transform="translate(-60.84140625,60.84140625)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-38.1015625,-9.5)"><foreignObject width="76.203125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Broadcast?</div></foreignObject></g></g></g><g class="node default" id="flowchart-id5-38" transform="translate(112.671875,645.9343719482422)" style="opacity: 1;"><rect rx="29" ry="29" x="-104.671875" y="-29" width="209.34375" height="58" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-87.421875,-19)"><foreignObject width="174.84375" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Simulate TopoCast using<br>singlehop configuration.</div></foreignObject></g></g></g><g class="node default" id="flowchart-id6-41" transform="translate(366.1609344482422,645.9343719482422)" style="opacity: 1;"><polygon points="98.8171875,0 197.634375,-98.8171875 98.8171875,-197.634375 0,-98.8171875" transform="translate(-98.8171875,98.8171875)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-70.796875,-19)"><foreignObject width="141.59375" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Simple transmission<br>model?</div></foreignObject></g></g></g><g class="node default" id="flowchart-id7-44" transform="translate(218.50390625,943.0421752929688)" style="opacity: 1;"><rect rx="29" ry="29" x="-116.0234375" y="-29" width="232.046875" height="58" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-98.7734375,-19)"><foreignObject width="197.546875" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Simulate transmission using<br>simpleMultihopDelay.</div></foreignObject></g></g></g><g class="node default" id="flowchart-id8-47" transform="translate(513.8179626464844,943.0421752929688)" style="opacity: 1;"><polygon points="129.290625,0 258.58125,-129.290625 129.290625,-258.58125 0,-129.290625" transform="translate(-129.290625,129.290625)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-104.65625,-19)"><foreignObject width="209.3125" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Sender directly able to reach<br>destination area?</div></foreignObject></g></g></g><g class="node default" id="flowchart-id9-50" transform="translate(360.3570251464844,1170.3327941894531)" style="opacity: 1;"><rect rx="19.5" ry="19.5" x="-115.109375" y="-19.5" width="230.21875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-100.234375,-9.5)"><foreignObject width="200.46875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Flooding in destination area</div></foreignObject></g></g></g><g class="node default" id="flowchart-id10-53" transform="translate(667.2789001464844,1170.3327941894531)" style="opacity: 1;"><rect rx="29" ry="29" x="-141.8125" y="-29" width="283.625" height="58" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-124.5625,-19)"><foreignObject width="249.125" height="38"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Greedy Forwarding to reach area,<br>then flooding in destination areay.</div></foreignObject></g></g></g></g></g></g></svg> |
| </div> |
| |
| <div class="desc"> |
| This flowchart tells how different types of messages are handled internally. |
| </div> |
| |
| </div> |
| |
| |
| <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> |
| |
| |
| |
| <div class="svg-wrap mt-1 mb-4"> |
| <div class="inner"> |
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <svg |
| xmlns:dc="http://purl.org/dc/elements/1.1/" |
| xmlns:cc="http://creativecommons.org/ns#" |
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| xmlns:svg="http://www.w3.org/2000/svg" |
| xmlns="http://www.w3.org/2000/svg" |
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| width="100%" |
| height="100%" |
| viewBox="0 0 1000 1100" |
| preserveAspectRatio="xMinYMin meet" |
| version="1.1" |
| id="svg112" |
| sodipodi:docname="shortcomingsApproaching.svg" |
| inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> |
| <metadata |
| id="metadata116"> |
| <rdf:RDF> |
| <cc:Work |
| rdf:about=""> |
| <dc:format>image/svg+xml</dc:format> |
| <dc:type |
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
| <dc:title></dc:title> |
| </cc:Work> |
| </rdf:RDF> |
| </metadata> |
| <sodipodi:namedview |
| pagecolor="#ffffff" |
| bordercolor="#000000" |
| borderopacity="1" |
| objecttolerance="10" |
| gridtolerance="10" |
| guidetolerance="10" |
| inkscape:pageopacity="0" |
| inkscape:pageshadow="2" |
| inkscape:window-width="2560" |
| inkscape:window-height="1377" |
| id="namedview114" |
| showgrid="false" |
| inkscape:zoom="0.54909091" |
| inkscape:cx="70.460088" |
| inkscape:cy="483.05537" |
| inkscape:window-x="1912" |
| inkscape:window-y="-8" |
| inkscape:window-maximized="1" |
| inkscape:current-layer="g110" /> |
| <defs |
| id="defs66"> |
| <clipPath |
| id="EGXEKOJWuGVn"> |
| <path |
| id="svg_1" |
| d="m0,0l1673,0l0,1285l-1673,0l0,-1285z" |
| fill="none" /> |
| </clipPath> |
| </defs> |
| <g |
| id="g110"> |
| <title |
| id="title68">Layer 1</title> |
| <path |
| style="fill:#ffd700;fill-opacity:0.3" |
| inkscape:connector-curvature="0" |
| d="m 460.74242,186.92776 c 0,75.84645 -61.4857,137.33215 -137.33215,137.33215 -75.84645,0 -137.33215,-61.4857 -137.33215,-137.33215 0,-75.84645 61.4857,-137.332153 137.33215,-137.332153 75.84645,0 137.33215,61.485703 137.33215,137.332153 z" |
| id="svg_5" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#caab06;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 460.74242,186.92776 c 0,75.84645 -61.4857,137.33215 -137.33215,137.33215 -75.84645,0 -137.33215,-61.4857 -137.33215,-137.33215 0,-75.84645 61.4857,-137.332153 137.33215,-137.332153 75.84645,0 137.33215,61.485703 137.33215,137.332153 z" |
| stroke-miterlimit="10" |
| id="svg_6" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:#ffd700" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="229.62225" |
| y="37.811882" |
| id="svg_7" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Destination Area</text> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:none;stroke:#ffffff;stroke-width:3;stroke-linejoin:bevel;stroke-miterlimit:10" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="229.62225" |
| y="37.811882" |
| stroke-miterlimit="10" |
| id="svg_8" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Destination Area</text> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:#978006;stroke:none;stroke-opacity:1;" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="229.62225" |
| y="37.811882" |
| id="svg_9" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Destination Area</text> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 529.40849,873.5885 c 0,113.7697 -92.22855,205.9982 -205.99822,205.9982 -113.76968,0 -205.99822,-92.2285 -205.99822,-205.9982 0,-113.76967 92.22854,-205.99822 205.99822,-205.99822 113.76967,0 205.99822,92.22855 205.99822,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_10" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 486.82048,688.91189 c 0,113.76968 -92.22854,205.99822 -205.99822,205.99822 -113.76968,0 -205.99822,-92.22854 -205.99822,-205.99822 0,-113.76968 92.22854,-205.99822 205.99822,-205.99822 113.76968,0 205.99822,92.22854 205.99822,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_11" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 428.82048,511.91189 c 0,113.76968 -92.22854,205.99822 -205.99822,205.99822 -113.76968,0 -205.99822,-92.22854 -205.99822,-205.99822 0,-113.76968 92.22854,-205.99822 205.99822,-205.99822 113.76968,0 205.99822,92.22854 205.99822,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_12" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 696.92801,775.58689 c 0,113.76968 -92.2286,205.99821 -205.99825,205.99821 -113.76968,0 -205.99822,-92.22853 -205.99822,-205.99821 0,-113.76968 92.22854,-205.99822 205.99822,-205.99822 113.76965,0 205.99825,92.22854 205.99825,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_13" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 846.82051,657.91189 c 0,113.76968 -92.2286,205.99822 -205.9982,205.99822 -113.76973,0 -205.99827,-92.22854 -205.99827,-205.99822 0,-113.76968 92.22854,-205.99822 205.99827,-205.99822 113.7696,0 205.9982,92.22854 205.9982,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_14" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 988.82051,527.91189 c 0,113.76968 -92.2286,205.99822 -205.9982,205.99822 -113.7697,0 -205.99827,-92.22854 -205.99827,-205.99822 0,-113.76968 92.22857,-205.99822 205.99827,-205.99822 113.7696,0 205.9982,92.22854 205.9982,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_15" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 941.82051,347.91189 c 0,113.76968 -92.2286,205.99822 -205.9982,205.99822 -113.7697,0 -205.99827,-92.22854 -205.99827,-205.99822 0,-113.76968 92.22857,-205.99822 205.99827,-205.99822 113.7696,0 205.9982,92.22854 205.9982,205.99822 z" |
| stroke-miterlimit="10" |
| id="svg_16" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:8.5, 8;stroke-opacity:0.69803999" |
| inkscape:connector-curvature="0" |
| d="m 783.82051,235.91189 c 0,113.76968 -92.2286,205.99822 -205.99825,205.99822 -113.76968,0 -205.99822,-92.22854 -205.99822,-205.99822 0,-113.76968 92.22854,-205.998223 205.99822,-205.998223 113.76965,0 205.99825,92.228543 205.99825,205.998223 z" |
| stroke-miterlimit="10" |
| id="svg_17" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#1565c0" |
| inkscape:connector-curvature="0" |
| d="m 332.41027,873.5885 c 0,4.97057 -4.02944,9 -9,9 -4.97056,0 -9,-4.02943 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_18" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 332.41027,873.5885 c 0,4.97057 -4.02944,9 -9,9 -4.97056,0 -9,-4.02943 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_19" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:#1565c0" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="293.62225" |
| y="854.81189" |
| id="svg_20" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Sender</text> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:none;stroke:#ffffff;stroke-width:3;stroke-linejoin:bevel;stroke-miterlimit:10" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="293.62225" |
| y="854.81189" |
| stroke-miterlimit="10" |
| id="svg_21" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Sender</text> |
| <text |
| style="font-style:normal;font-weight:normal;font-size:20px;font-family:geogebra-sans-serif, sans-serif;text-anchor:start;fill:#1565c0;stroke:none;stroke-opacity:1;" |
| font-size="20px" |
| font-style="normal" |
| font-weight="normal" |
| x="293.62225" |
| y="854.81189" |
| id="svg_22" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96">Sender</text> |
| <path |
| style="fill:#ffd700" |
| inkscape:connector-curvature="0" |
| d="m 649.82231,657.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| id="svg_23" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 649.82231,657.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_24" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#ffd700" |
| inkscape:connector-curvature="0" |
| d="m 791.82231,527.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| id="svg_25" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 791.82231,527.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_26" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#006633" |
| inkscape:connector-curvature="0" |
| d="m 289.82226,688.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_27" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 289.82226,688.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_28" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#993300" |
| inkscape:connector-curvature="0" |
| d="m 310.87082,296.76468 c 0,4.97056 -4.02944,9 -9,9 -4.97057,0 -9,-4.02944 -9,-9 0,-4.97056 4.02943,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_29" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 310.87082,296.76468 c 0,4.97056 -4.02944,9 -9,9 -4.97057,0 -9,-4.02944 -9,-9 0,-4.97056 4.02943,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_30" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#993300" |
| inkscape:connector-curvature="0" |
| d="m 415.68715,197.27798 c 0,4.97057 -4.02943,9 -9,9 -4.97056,0 -9,-4.02943 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97057,0 9,4.02944 9,9 z" |
| id="svg_31" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 415.68715,197.27798 c 0,4.97057 -4.02943,9 -9,9 -4.97056,0 -9,-4.02943 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97057,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_32" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#993300" |
| inkscape:connector-curvature="0" |
| d="m 319.75356,156.41738 c 0,4.97056 -4.02944,9 -9,9 -4.97057,0 -9,-4.02944 -9,-9 0,-4.97056 4.02943,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_33" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 319.75356,156.41738 c 0,4.97056 -4.02944,9 -9,9 -4.97057,0 -9,-4.02944 -9,-9 0,-4.97056 4.02943,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_34" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#006400" |
| inkscape:connector-curvature="0" |
| d="m 231.82226,511.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_35" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 231.82226,511.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_36" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#ffd700" |
| inkscape:connector-curvature="0" |
| d="m 499.92976,775.58689 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_37" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 499.92976,775.58689 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_38" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#ffd700" |
| inkscape:connector-curvature="0" |
| d="m 744.82231,347.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| id="svg_39" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 744.82231,347.91189 c 0,4.97056 -4.0295,9 -9,9 -4.9706,0 -9,-4.02944 -9,-9 0,-4.97056 4.0294,-9 9,-9 4.9705,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_40" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:#ffd700" |
| inkscape:connector-curvature="0" |
| d="m 586.82226,235.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| id="svg_41" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| <path |
| style="fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" |
| inkscape:connector-curvature="0" |
| d="m 586.82226,235.91189 c 0,4.97056 -4.02944,9 -9,9 -4.97056,0 -9,-4.02944 -9,-9 0,-4.97056 4.02944,-9 9,-9 4.97056,0 9,4.02944 9,9 z" |
| stroke-miterlimit="10" |
| id="svg_42" |
| inkscape:export-xdpi="96" |
| inkscape:export-ydpi="96" /> |
| </g> |
| </svg> |
| |
| </div> |
| |
| <div class="desc"> |
| 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) |
| </div> |
| |
| </div> |
| |
| |
| <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-cell-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 row col-12"> |
| |
| |
| |
| <div class="post-nav-item col-6"> |
| <div class="meta-nav">Previous</div> |
| <a href="/mosaic/docs/simulators/network_simulator_ns3/" rel="next">Network Simulator ns-3</a> |
| </div> |
| |
| |
| |
| <div class="post-nav-item col-6"> |
| <div class="meta-nav">Next</div> |
| <a href="/mosaic/docs/simulators/network_simulator_cell/" rel="prev">Network Simulator Cell</a> |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <footer class="site-footer"> |
| <div class="row"> |
| |
| |
| <div class="col-sm-4 mb-3 mb-md-0"> |
| <b>Eclipse MOSAIC</b> |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/download/" title="Download Eclipse MOSAIC" > |
| |
| Download Eclipse MOSAIC |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/docs" title="Documentation" > |
| |
| Documentation |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/tutorials" title="Tutorials" > |
| |
| Tutorials |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/community/#projects" title="Projects" > |
| |
| Projects |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/publications" title="Publications" > |
| |
| Publications |
| |
| </a> |
| </li> |
| |
| |
| </ul> |
| |
| </div> |
| |
| |
| |
| <div class="col-sm-4 mb-3 mb-md-0"> |
| <b>Community</b> |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/community" title="Eclipse MOSAIC Community" > |
| |
| Eclipse MOSAIC Community |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/contribution" title="How to contribute" > |
| |
| How to contribute |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://github.com/eclipse/mosaic" title="Github" target="_blank" rel="noopener"> |
| |
| Github |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/mosaic/get_in_contact" title="Contact & Mailing list" > |
| |
| Contact & Mailing list |
| |
| </a> |
| </li> |
| |
| |
| </ul> |
| |
| </div> |
| |
| |
| |
| <div class="col-sm-4 mb-3 mb-md-0"> |
| <b>Eclipse Foundation</b> |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://www.eclipse.org/" title="About Eclipse Foundation" target="_blank" rel="noopener"> |
| |
| About Eclipse Foundation |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://www.eclipse.org/legal/privacy.php" title="Privacy Policy" target="_blank" rel="noopener"> |
| |
| Privacy Policy |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://www.eclipse.org/legal/termsofuse.php" title="Website terms of use" target="_blank" rel="noopener"> |
| |
| Website terms of use |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://www.eclipse.org/legal/copyright.php" title="Copyright" target="_blank" rel="noopener"> |
| |
| Copyright |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://www.eclipse.org/legal" title="Legal" target="_blank" rel="noopener"> |
| |
| Legal |
| |
| </a> |
| </li> |
| |
| |
| </ul> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </div> |
| <div class="row justify-content-center mt-3 position-relative"> |
| <p class="powered-by text-center font-italic mb-0 pb-0"> |
| Powered by the |
| <a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic theme</a> for |
| <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a>. |
| <br> |
| Header image © fanjianhua/ iStock |
| </p> |
| |
| </div> |
| </footer> |
| |
| |
| |
| </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-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script type="application/javascript" src="/mosaic/js/academic.min.1824b36a85a484362f116f1e24481eb9.js"></script> |
| |
| |
| |
| <script type="application/javascript" src="/mosaic/js/mosaic-wg-cards.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> |