Skip to content

Commit 47ac066

Browse files
committed
Further documentation improvements.
1 parent 8331e79 commit 47ac066

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -148,19 +148,17 @@ kldstat | grep sctp
148148
netperfmeter 9000
149149
```
150150

151-
⚠️Important: By default, SCTP transport is used for the NPMP-CONTROL control communication. In certain setups, this can cause problems. In this case, it may be necessary to use control over TCP (or MPTCP) instead (to be shown in the next example):
152-
153-
- Firewalls blocking SCTP traffic, e.g many public Wi-Fi networks.
154-
- Routing over NAT/PAT may not work well due to lack of support for SCTP.
155-
- The Docker daemon, by default, creates a local interface <em>dummy0</em> with IP address&nbsp;172.17.0.1 for the default [bridge network setup](https://docs.docker.com/engine/network/drivers/bridge/). If this is enabled on active and passive side, the SCTP out-of-the blue&nbsp;(OOTB) message handling causes the SCTP association to be aborted, since both devices have an identical IP&nbsp;address.
151+
NetPerfMeter supports SCTP and TCP for the NPMP-CONTROL control communication. By default, the passive side accepts incoming control connections on both protocols. In case of unavailability of SCTP, e.g.&nbsp;the SCTP kernel module is not loaded, a warning is printed. Obviously, control communication in this case will only be possible via TCP.
156152

157153

158-
* Run a passive instance (i.e.&nbsp;server side), using port 9000, and allowing NPMP-CONTROL control communication over TCP support:
154+
* Run a passive instance (i.e.&nbsp;server side), using port 9000, and allowing NPMP-CONTROL control communication only over TCP (this disables checking for SCTP, and the warning if unavailable):
159155

160156
```bash
161-
netperfmeter 9000 -control-over-tcp
157+
netperfmeter 9000 -no-control-over-sctp
162158
```
163159

160+
Note that the active instance (i.e.&nbsp;client side) can only connect via TCP in this case, and it needs to be instructed (as explained below, also using the `-control-over-tcp` option) to do so!
161+
164162

165163
## Running the Active Instance (Client)
166164

@@ -173,24 +171,28 @@ kldstat | grep sctp
173171
netperfmeter $SERVER:9000 -tcp const0:const1400:const0:const1400
174172
```
175173

176-
Replace $SERVER by the IP&nbsp;address or hostname of the passive instance!
174+
Replace $SERVER by the IP&nbsp;address or hostname of the passive instance, or set an environment variable `SERVER=<address>`!
177175

178176
The flow parameter specifies a saturated flow (frame rate&nbsp;0 – send a much as possible) with a constant frame size of 1400&nbsp;B. The first block specifies the direction from active (client) to passive (server) instance, the second block specifies the direction from passive (server) to active (client) instance.
179177

180-
⚠️Important: By default, SCTP transport is used for the NPMP-CONTROL control communication. In certain setups, this can cause problems. In this case, it may be necessary to use control over TCP (or MPTCP) instead (to be shown in the next example):
178+
⚠️Important: By default, SCTP transport is used for the NPMP-CONTROL control communication. In certain setups, this can cause problems. In this case, it may be necessary to use control over TCP (or MPTCP) instead (to be shown in the next example, using the `-control-over-tcp` option):
181179

182180
- Firewalls blocking SCTP traffic, e.g&nbsp;many public Wi-Fi networks.
183181
- Routing over NAT/PAT may not work well due to lack of support for SCTP.
184182
- The Docker daemon, by default, creates a local interface <em>dummy0</em> with IP address&nbsp;172.17.0.1 for the default [bridge network setup](https://docs.docker.com/engine/network/drivers/bridge/). If this is enabled on active and passive side, the SCTP out-of-the blue&nbsp;(OOTB) message handling causes the SCTP association to be aborted, since both devices have an identical IP&nbsp;address.
185183

184+
In case of connectivity problems try control over TCP as shown next.
186185

187186
* Run an active instance (i.e.&nbsp;client side), with a saturated bidirectional TCP flow, using NPMP-CONTROL control communication over TCP.
188187

189188
```bash
190189
netperfmeter $SERVER:9000 -control-over-tcp -tcp const0:const1400:const0:const1400
191190
```
192191

193-
Note: The passive instance must be started with `-control-over-tcp` as well!
192+
Or, using the short option `-y`:
193+
```bash
194+
netperfmeter $SERVER:9000 -y -t const0:const1400:const0:const1400
195+
```
194196

195197

196198
* Run an active instance (i.e.&nbsp;client side), with a saturated bidirectional TCP flow, using NPMP-CONTROL control communication over SCTP (this is the default):
@@ -239,7 +241,7 @@ kldstat | grep sctp
239241
```bash
240242
netperfmeter $SERVER:9000 -dccp const10:const128:const25:const1200
241243
```
242-
Note: DCCP is only available when provided by the operating system kernel!
244+
Note: DCCP is only available when provided by the operating system kernel, and DCCP supports need to be compiled into NetPerfMeter.
243245

244246

245247
* Run an active instance (i.e.&nbsp;client side), with 2&nbsp;bidirectional SCTP flows over a single SCTP association (i.e.&nbsp;2&nbsp;streams):
@@ -433,12 +435,12 @@ Some examples:
433435
Notes:
434436

435437
- Filter parameters for protocols and ports can ensure to record only the relevant NetPerfMeter traffic.
436-
- In case of using port&nbsp;9000 for NetPerfMeter, use:
438+
- In case of using port&nbsp;9000 for NetPerfMeter, record:
437439

438440
+ SCTP, port 9000 and 9001 (data and control traffic over SCTP);
439441
+ TCP, port 8999, 9000 and 9001 (data and control traffic over TCP and MPTCP);
440442
+ UDP, port 9000;
441-
+ DCCP, port 9000 (`ip proto 33`).
443+
+ DCCP, port 9000 (`ip proto 33`; PCAP filtering does not support DCCP).
442444

443445

444446
* Run [Wireshark](https://www.wireshark.org/) network protocol analyser to display the packet flow of the <a href="#active-multi">multi-flows example</a> above in PCAP file [`multi.pcap.gz`](https://github.com/dreibh/netperfmeter/blob/master/src/results-examples/multi.pcap.gz):

0 commit comments

Comments
 (0)