sealinx software organization set of cooperative processes rather than a monolithic process three...
TRANSCRIPT
SeaLinx Software Organization
• Set of cooperative processes rather than a monolithic process• Three processes:
– Core Module– Modem Driver– Protocol Modules
1
AquaSeNT OFDM Modems
AquaSeNT OFDM Modems
ProtocolModules
CoreModule
ModemDriver
SeaLinx
SeaLinx 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
SeaLinx 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
3
Data SensingData
SensingRemoteControlRemoteControl
SeaLinx 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
4
AquaSeNT OFDM Modems
AquaSeNT OFDM Modems
ProtocolProcesses
SeaLinx 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
5
AquaSeNT OFDM Modems
AquaSeNT OFDM Modems
ProtocolModule
ProtocolModule
ProtocolModule
ProtocolModule
SeaLinx Protocol Organization
• Layer-based organization
• Cross-layer communication capability via core module
6
AquaSeNT OFDM Modems
AquaSeNT OFDM Modems
SeaLinx Software Processes
7
Core Component Physical Layer MAC Layer Network Layer Transport Layer Application 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 <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-----------------------------------[GeneralSettings]MacAddress=1NetworkAddress=1PacketSize=1024
config_ser: serial settings-----------------------------------------/dev/tty0 #port38400 #baud rate
<aloha config file>---------------------------------------------------------------UWALOHA_SOCK_TIMEOUT : 10UWALOHA_ACK_TIMEOUT : 25UWALOHA_RETX_MAX : 3UWALOHA_BROADCAST_ADD : 99AQUA_MAC_LOG : aloha.log
<routing table file>------------------------------------1 : 5 : 6 #source : relay : destination2 : 4 : 3 #source : relay : destination
1) MacAddress = MAC address of node2) NetworkAddress = network address of node3) PacketSize = max packet size (in bytes) transmitted between layers
1) port = serial port being used2) baud rate = baud rate to use for serial communication
1) UWALOHA_SOCK_TIMEOUT = timeout length for reading from core socket2) UWALOHA_ACK_TIMEOUT = acknowledgment timeout3) UWALOHA_RETX_MAX = maximum number of retransmissions4) UWALOHA_BROADCAST_ADD = broadcast address (to be deprecated soon)5) AQUA_MAC_LOG = name of log file
<dynamic routing config>---------------------------------------------[Protocol Parameters]StableHelloPeriod=180UnstableHelloPeriod=20NumRoutingEntries=10EntryTimeout=190MinimumUpdateWait=10MaximumUpdateWiat=30
config_ofdm.cfg: specifies modem settings------------------------------------------OFDM_ACOUSTIC_RATE: 2500OFDM_MTU: 1280OFDM_IFGT: 110
<arp table file>--------------------------------------------1 : 1 #mac : network2 : 2 #mac : network3 : 3 #max : network
1) StableHelloPeriod = frequency of sending HELLO messages when routing table is stable2) UnstableHelloPeriod = frequency of sending HELLO messages when table is unstable3) NumRoutingEntries = max number of routes, which is at least the number of nodes4) EntryTimeout = validity interval of an updated routing entry5) MinimumUpdateWait = min time a node needs to wait before broadcasting table change6) MaximumUpdateWait = 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)
Core Modem Protocol
Core Component
• Purpose: Dispatch data among layers by waiting for connections from protocol stack layers
• Execution: sealinx-core –p <core port>
8
sealinx-core<core port>[GeneralSettings]MacAddress=1NetworkAddress=1PacketSize=1024
Example of settings.ini
settings.inisettings.ini
Physical Layer
9
• Purpose: Interprets data from, and sends data to, acoustic modems; an OFDM driver is provided here
• Exectution: sealinx-ofdm-cmd –p <core port>
sealinx-ofdm-cmd<core port> /dev/tty0 #port38400 #baud rate
Example of config_ser.cfg
OFDM_ACOUSTIC_RATE: 2500OFDM_MTU: 1280OFDM_IFGT: 110
Example of config_ofdm.cfgconfig_ser.cfgconfig_ser.cfg config_ofdm.cfgconfig_ofdm.cfg
Physical Layer Configuration File
1) OFDM_ACOUSTIC_RATE = sending rate (bps)2) OFDM_MTU = maximum transmission unit (units)3) OFDM_IFGT = inter-frame guard time (ms)
10
/dev/tty0 #port38400 #baud rate
Example of config_ser.cfg
OFDM_ACOUSTIC_RATE: 2500OFDM_MTU: 1280OFDM_IFGT: 110
Example of config_ofdm.cfg
MAC Layer
11
• 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>
sealinx-mac<protocol ID>
<core port>
MAC Layer
12
• Execution: sealinx-uwaloha –i <protocol ID> -p <core port> -c <aloha config file> -t <arp table file>
sealinx-uw-aloha<protocol ID>
<core port>
UWALOHA_SOCK_TIMEOUT : 10UWALOHA_ACK_TIMEOUT : 25UWALOHA_RETX_MAX : 3UWALOHA_BROADCAST_ADD : 99AQUA_MAC_LOG : aloha.log
Example of <aloha config file>
1 : 1 #mac : network2 : 2 #mac : network3 : 3 #max : network
Example of <arp table file><aloha config file><aloha config file> <arp table file><arp table file>
MAC Layer UW-Aloha Configuration File
1) UWALOHA_SOCK_TIMEOUT = timeout length for reading from core socket2) UWALOHA_ACK_TIMEOUT = acknowledgment timeout3) UWALOHA_RETX_MAX = maximum number of retransmissions4) UWALOHA_BROADCAST_ADD = broadcast address (to be deprecated)5) AQUA_MAC_LOG = name of log file
13
UWALOHA_SOCK_TIMEOUT : 10UWALOHA_ACK_TIMEOUT : 25UWALOHA_RETX_MAX : 3UWALOHA_BROADCAST_ADD : 99AQUA_MAC_LOG : aloha.log
Example of <aloha config file>
1 : 1 #mac : network2 : 2 #mac : network3 : 3 #max : network
Example of <arp table file>
UW-Aloha Program
14
UWALOHA_SOCK_TIMEOUT : 10UWALOHA_ACK_TIMEOUT : 25UWALOHA_RETX_MAX : 3UWALOHA_BROADCAST_ADD : 99AQUA_MAC_LOG : aloha.log
Wait Time > ACK_TIMEOUT
Waiting for acknowledgment?
Num retx > RETX_MAX
Transmit(again)
Drop packet, prepare for new packet
Yes
Yes
YesNo
Listen from Core for acknowledgment or new packet
No
No
Network Layer
15
• 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>
Transport Layer
16
• 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>
Application Layer
17
• 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>