Network Swiftlet
The Network Swiftlet is the interface for SwiftMQ Swiftlets to the network. It uses nonblocking I/O and is based on Netty.
Zombi Connection Detection
Zombi connections are those connections that are created but were no data is sent. Since the keepalive has not been started yet, these connections remain open.
Zombi connections can occur if, for example, SwiftMQ is monitored by opening telnet connections on a JMS listener port and also by DoS attacks.
To prevent that zombi
connections brings the router down, attribute zombi-connection-timeout
can be set to a millisecond value, e.g. 10000 (10 secs). The Network
Swiftlet then starts a timer on each connect and disconnects the
connection if the protocol has not been initiated when the timer fires.
Configuration
The configuration of the Network Swiftlet is defined within the element
<swiftlet name="sys$net" .../>
of the router's configuration file. One can use the SwiftMQ Exlorer or CLI for configuration as well. They both save into that file.
Attributes of Element "swiftlet"
Definition
Attribute | Type | Mandatory | Description |
---|---|---|---|
collect-interval | java.lang.Long | No | Throughput Collect Interval |
zombi-connection-timeout | java.lang.Long | No | Zombi-Connection Timeout |
dns-resolve-enabled | java.lang.Boolean | No | Resolve DNS Names during Connect |
reuse-serversockets | java.lang.Boolean | No | Re-Use Server Sockets |
set-socket-options | java.lang.Boolean | No | Sets TCP send/receive buffer zu router in/output buffer size |
Values
Attribute | Values |
---|---|
collect-interval | Default: 1000 |
zombi-connection-timeout | Default: 0 |
dns-resolve-enabled | Default: false |
reuse-serversockets | Default: false |
set-socket-options | Default: true |
Element "multicast", Parent Element: "swiftlet"
Multicast Settings.
Definition
Attribute | Type | Mandatory | Description |
---|---|---|---|
qos-flowcontrol | java.lang.String | No | QoS Flow Control |
qos-feedback | java.lang.String | No | QoS Feedback |
qos-min-datarate | java.lang.Integer | No | QoS Minimum Data Rate (kbit/s) |
qos-max-datarate | java.lang.Integer | No | QoS Maximum Data Rate (kbit/s) |
qos-send-window-size | java.lang.Integer | No | QoS Send Window Size |
qos-receive-window-size | java.lang.Integer | No | QoS Receive Window Size |
time-to-live | java.lang.Integer | No | Packet Time-To-Live |
Values
Attribute | Values |
---|---|
qos-flowcontrol | Choice: best_effort constant_throughput adapted_throughput Default: adapted_throughput |
qos-feedback | Choice: no_receiver_report random_receiver_report periodic_receiver_report Default: no_receiver_report |
qos-min-datarate | Default: 64 |
qos-max-datarate | Default: 1024 |
qos-send-window-size | Default: 1024 |
qos-receive-window-size | Default: 1024 |
time-to-live | Min: 0 Max: 255 Default: 1 |
Element List "usage", Parent Element: "swiftlet"
Active Connections. This element list contains zero or more "usage" elements with this template definition:
Definition
Attribute | Type | Mandatory | Description |
---|---|---|---|
name | java.lang.String | Yes | Name of this Connection |
swiftlet | java.lang.String | No | Attached to Swiftlet |
connect-time | java.lang.String | No | Connect Time |
throughput-input | java.lang.String | No | Input KB/s |
throughput-output | java.lang.String | No | Output KB/s |
Values
Attribute | Values |
---|---|
swiftlet | |
connect-time | |
throughput-input | |
throughput-output |