Sea Linx Software Organization Sea Linx Protocol Modules

  • Slides: 17
Download presentation
Sea. Linx Software Organization Sea. Linx Protocol Modules Core Module Modem Driver Aqua. Se.

Sea. Linx Software Organization Sea. Linx Protocol Modules Core Module Modem Driver Aqua. Se. NT OFDM Modems • Set of cooperative processes rather than a monolithic process • Three processes: – Core Module – Modem Driver – Protocol Modules 1

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node • FEATURE #2: Provides a uniform method for cross-layer communication • FEATURE #3: Runs protocols as separate processes 2

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node • FEATURE #2: Provides a uniform method for cross-layer communication • FEATURE #3: Runs protocols as separate processes Data Sensing Remote Control 3

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node • FEATURE #2: Provides a uniform method for cross-layer communication • FEATURE #3: Runs protocols as separate processes Protocol Processes Aqua. Se. NT OFDM Modems 4

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications

Sea. Linx Features • FEATURE #1: Supports simultaneous protocol bundles to support various applications running on a single node • FEATURE #2: Provides a uniform method for cross-layer communication • FEATURE #3: Runs protocols as separate processes Protocol Module Aqua. Se. NT OFDM Modems Protocol Module 5

Sea. Linx Protocol Organization • Layer-based organization • Cross-layer communication capability via core module

Sea. Linx Protocol Organization • Layer-based organization • Cross-layer communication capability via core module Aqua. Se. NT OFDM Modems 6

Sea. Linx Software Processes Core Modem Core Component Physical Layer MAC Layer Network Layer

Sea. Linx Software Processes Core Modem Core Component Physical Layer MAC Layer Network Layer Dispatch data among layers by waiting for connections from protocol stack layers Interprets data from, and sends data to, acoustic modems; an OFDM driver is proved here Provide addressing and channel access control mechanism for node communication within a multiple access network that uses a shared medium; a dummy MAC and UW-ALHOHA are provided here Provide functions and procedures to transfer datagram between nodes in same network; a dummy network layer, as we all as static and dynamic routing layer are provided here Provide reliable transmission of datagrams between nodes in same network; a dummy transport layers is provided here Interacts with software application that implements a communication component; a Possion traffic generator is included here sealinx -core -p <core port> (Uses implicit settings. ini file) sealinx-ofdm-cmd -p <core port> (Uses implicit config_ser. cfg and config_ofdm. cfg files) sealinx-mac -i <protocol ID> -p <core port> ---------------------sealinx-uwaloha –i <protocol ID> -p <core port> -c <aloha config file> -t <arp table file> sealinx-net -i <protocol ID> -p <core port> -m <mac protocol ID> ----------------------sealinx-sroute -i <protocol ID> -p <core port> -m <mac protocol ID> -c <routing table file> ----------------------sealinx-droute -i <protocol ID> -p <core port> -m <mac protocol ID> -c <dynamic routing config> sealinx-tra -i <protocol ID> -p <core port> -m <mac protocol ID> -n <net protocol ID> sealinx-tx-poi -i <app ID> -p <core port> -m <mac protocol ID> -n <net protocol ID> -t <transport protocol ID> -l <packet length> -r <traffic route> -d <destination node> <core port> = port that core is listening on <protocol ID> = protocol identifier, which will be used to fill in MAC layer type field <core port> = port that core is listening on <aloha config file> = configuration for aloha <arp table file> = address resolution protocol to map MAC address with network addresses <protocol ID> = protocol identifier <core port> = port core is listening on <mac protocol ID> = identifier of underlying MAC protocol <routing table file> = file listing routes in network <dynamic routing config> = configuration file for dynamic routing <protocol ID> = protocol identifier <core port> = port core is listening on <mac protocol ID> = identifier of underlying MAC protocol <net protocol ID> = identifier of underlying network protocol <app ID> = application identifier, which will be filled in service type field <core port> = port core is listening on <mac protocol ID> = identifier of underlying MAC protocol <net protocol ID> = identifier of underlying network protocol <transport protocol ID> = identifier of underlying transport protocol <packet length> = size of sent packet <traffic route> = sending rate (bps) <destination node> = network address of destination settings. ini -----------------[General. Settings] Mac. Address=1 Network. Address=1 Packet. Size=1024 config_ser: serial settings --------------------/dev/tty 0 #port 38400 #baud rate <aloha config file> -------------------------------UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha. log <routing table file> ------------------1: 5: 6 #source : relay : destination 2: 4: 3 #source : relay : destination 1) Mac. Address = MAC address of node 2) Network. Address = network address of node 3) Packet. Size = max packet size (in bytes) transmitted between layers 1) port = serial port being used 2) baud rate = baud rate to use for serial communication 1) UWALOHA_SOCK_TIMEOUT = timeout length for reading from core socket 2) UWALOHA_ACK_TIMEOUT = acknowledgment timeout 3) UWALOHA_RETX_MAX = maximum number of retransmissions 4) UWALOHA_BROADCAST_ADD = broadcast address (to be deprecated soon) 5) AQUA_MAC_LOG = name of log file <dynamic routing config> ----------------------[Protocol Parameters] Stable. Hello. Period=180 Unstable. Hello. Period=20 Num. Routing. Entries=10 Entry. Timeout=190 Minimum. Update. Wait=10 Maximum. Update. Wiat=30 config_ofdm. cfg: specifies modem settings ---------------------OFDM_ACOUSTIC_RATE: 2500 OFDM_MTU: 1280 OFDM_IFGT: 110 <arp table file> ----------------------1: 1 #mac : network 2: 2 #mac : network 3: 3 #max : network 1) Stable. Hello. Period = frequency of sending HELLO messages when routing table is stable 2) Unstable. Hello. Period = frequency of sending HELLO messages when table is unstable 3) Num. Routing. Entries = max number of routes, which is at least the number of nodes 4) Entry. Timeout = validity interval of an updated routing entry 5) Minimum. Update. Wait = min time a node needs to wait before broadcasting table change 6) Maximum. Update. Wait = max time a node needs to wait before broadcasting table change 1) OFDM_ACOUSTIC_RATE = sending rate (bps) 2) OFDM_MTU = maximum transmission unit (units) 3) OFDM_IFGT = inter-frame guard time (ms) Protocol Transport Layer Application Layer 7

Core Component • Purpose: Dispatch data among layers by waiting for connections from protocol

Core Component • Purpose: Dispatch data among layers by waiting for connections from protocol stack layers • Execution: sealinx-core –p <core port> Example of settings. ini <core port> sealinx-core [General. Settings] Mac. Address=1 Network. Address=1 Packet. Size=1024 settings. ini 8

Physical Layer • Purpose: Interprets data from, and sends data to, acoustic modems; an

Physical Layer • Purpose: Interprets data from, and sends data to, acoustic modems; an OFDM driver is provided here • Exectution: sealinx-ofdm-cmd –p <core port> Example of config_ser. cfg <core port> sealinx-ofdm-cmd /dev/tty 0 38400 #port #baud rate Example of config_ofdm. cfg config_ser. cfg config_ofdm. cfg OFDM_ACOUSTIC_RATE: 2500 OFDM_MTU: 1280 OFDM_IFGT: 110 9

Physical Layer Configuration File Example of config_ser. cfg /dev/tty 0 38400 #port #baud rate

Physical Layer Configuration File Example of config_ser. cfg /dev/tty 0 38400 #port #baud rate Example of config_ofdm. cfg OFDM_ACOUSTIC_RATE: 2500 OFDM_MTU: 1280 OFDM_IFGT: 110 1) OFDM_ACOUSTIC_RATE = sending rate (bps) 2) OFDM_MTU = maximum transmission unit (units) 3) OFDM_IFGT = inter-frame guard time (ms) 10

MAC Layer • Purpose: Provide addressing and channel access control mechanism for node communication

MAC Layer • Purpose: Provide addressing and channel access control mechanism for node communication within a multiple access network that uses a shared medium; a dummy MAC and UW-ALHOHA are provided here • Execution: sealinx-mac –i <protocol ID> -p <core port> <protocol ID> <core port> sealinx-mac 11

MAC Layer • Execution: sealinx-uwaloha –i <protocol ID> -p <core port> -c <aloha config

MAC Layer • Execution: sealinx-uwaloha –i <protocol ID> -p <core port> -c <aloha config file> -t <arp table file> Example of <aloha config file> <protocol ID> <core port> sealinx-uw-aloha <aloha config file> <arp table file> UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha. log Example of <arp table file> 1: 1 2: 2 3: 3 #mac : network #max : network 12

MAC Layer UW-Aloha Configuration File Example of <aloha config file> Example of <arp table

MAC Layer UW-Aloha Configuration File Example of <aloha config file> Example of <arp table file> UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha. log 1: 1 2: 2 3: 3 #mac : network #max : network 1) UWALOHA_SOCK_TIMEOUT = timeout length for reading from core socket 2) UWALOHA_ACK_TIMEOUT = acknowledgment timeout 3) UWALOHA_RETX_MAX = maximum number of retransmissions 4) UWALOHA_BROADCAST_ADD = broadcast address (to be deprecated) 5) AQUA_MAC_LOG = name of log file 13

UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG :

UWALOHA_SOCK_TIMEOUT : 10 UWALOHA_ACK_TIMEOUT : 25 UWALOHA_RETX_MAX : 3 UWALOHA_BROADCAST_ADD : 99 AQUA_MAC_LOG : aloha. log UW-Aloha Program No Waiting for acknowledgment? No Yes Wait Time > ACK_TIMEOUT Yes No Transmit (again) Num retx > RETX_MAX Yes Drop packet, prepare for new packet Listen from Core for acknowledgment or new packet 14

Network Layer • Purpose: Provide functions and procedures to transfer datagram between nodes in

Network Layer • Purpose: Provide functions and procedures to transfer datagram between nodes in same network; a dummy network layer, as we all as static and dynamic routing layers are provided here • Execution: sealinx-net -i <protocol ID> -p <core port> -m <mac protocol ID> • Execution: sealinx-sroute -i <protocol ID> -p <core port> -m <mac protocol ID> -c <routing table file> • Execution: sealinx-droute -i <protocol ID> -p <core port> -m <mac protocol ID> -c <dynamic routing config> 15

Transport Layer • Purpose: Provide reliable transmission of datagrams between nodes in same network;

Transport Layer • Purpose: Provide reliable transmission of datagrams between nodes in same network; a dummy transport layer is provided here • Execution: sealinx-tra -i <protocol ID> -p <core port> -m <mac protocol ID> -n <net protocol ID> 16

Application Layer • Purpose: Interacts with software application that implements a communication component; a

Application Layer • Purpose: Interacts with software application that implements a communication component; a Poisson traffic generator is included here • Execution: sealinx-tx-poi -i <app ID> -p <core port> -m <mac protocol ID> -n <net protocol ID> -t <transport protocol ID> -l <packet length> -r <traffic route> -d <destination node> 17