Mikrotik’s True Full Duplex Wireless – NStreme Dual
There are numerous full duplex options available on the market today when you go looking for wireless devices. Most of these devices will cost in the multiple thousands of dollars. With NStreme Dual, Mikrotik’s proprietary FDX protocol, you can build a true full duplex link for under $1000. This article is a tutorial walkthrough on configuring an NStreme Dual link, along with some helpful hints on how to tweak it.
First, let’s look at the needed components to create this type of link. You will need two Mikrotik routers (of course), each having (at least) two Atheros chipset radio cards. Personally, I like the R52 card (from Mikrotik) and the XR series of cards from Ubiquiti Networks. The main advantage of the XR cards is the newer Atheros chipset which is more sensitive, works better in a noisy environment and has a much higher output level. As with ALL wireless links, you should engineer the link correctly and not just use “any old card”. Once you have used the XR cards from Ubiquiti, I think you’ll find them to be very nice cards. One of the nice things about the NStreme Dual protocol is that the actual link frequencies are independant of each other. What that means is that you can have one of the two links running at 5.8GHz and the other running in the 2.4GHz band. Any combination of frequencies will work. If you are planning to run the links in the same band (5.8GHz for example) you may want to consider the dual polarity dishes from Pac Wireless (now Laird).
Before you actually configure the NStreme dual link, I suggest using just a single link on each antenna to do the alignment. You can use Mikrotik’s alignment tool or just set up an access point on one end and “scan” on the other end to find the AP. Once you get the single link connected, you can tweak the antennas for maximum signal levels. I’ll go into more detail on aligning antennas in another article in the future, but this is the basic process. You may wish to use the Audio Alignment Script to align the antennas.
One other consideration before deciding to use the NStreme Dual connection is the fact that if one of your links goes down, then the whole link goes down. In my article that describes using OSPF to simulate FDX behavior, I gave a detailed description of another method to gain some of the same benefits as the NStreme Dual configuration. There are, however, some significant differences. With the OSPF method, you have the benefit of a failover if one link goes down. For some, this MAY be enough of a benefit to forgo the use of NStreme dual altogether. One further consideration is the CPU load when using NStreme Dual. Because NStreme does all the packet processing on the host CPU, you need to watch the processor utilization when using NStreme (single OR dual mode).
If I haven’t scared you off, yet, then let me tell you a few of the benefits to using NStreme Dual. First and foremost is the nature of the link. Using NStreme Dual, you will have a true full duplex link. One real limitation to wireless technology is the fact that a radio device is EITHER transmitting OR it is receiving. With NStreme Dual, one side of the link is the transmitter and the other side is the receiver. This is not only true for the data that passes over the link, but it is true for the protocol and link state information. This fact offers a real benefit in terms of performance and latency.
Beyond the FDX nature of the link, the NStreme protocol offers a HUGE benefit in the way it handles packet traffic. With the 802.11 protocols, every IP packet that is to be transmitted over the link must be encapsulated in a protocol frame. NStreme will aggregate multiple IP packets in a single frame. This gives you a link with lower protocol overhead and better data throughput. There are various options you can choose for HOW the router will handle the aggregation (this is called the “framer-policy” in the configuration). There are other options that I won’t list here, but I will say that NStreme in general, and NStreme Dual specifically, is a very nice option to consider if you are looking for a high capacity wireless link.
Let’s take a look at the configuration. Configuration really is quite simple once you understand some of the basic terminology. First, you must decide which of the 2 radios you will use as transmitter and which will be used for the receiver. For BOTH of these radios, the radio will be controlled (and managed) by the NStreme-Dual interface. Because of that, the only configuration done with the radio itself is to set it as “nstreme-dual-slave” mode. This is done with commands similar to the following:
/interface wireless
set wlan1 mode=nstreme-dual-slave
set wlan2 mode=nstreme-dual-slave
This code will configure both radios to be controlled by the nstreme-dual interface. Next, we need to set up the NStreme-dual interface. It is rather simple to configure. Here is a sample configuration with explanation of the options to follow:
/interface wireless nstreme-dual
add tx-radio=wlan1 rx-radio=wlan2 \
remote-mac=XX:XX:XX:XX:XX:XX \
tx-band=5GHz tx-frequency=5180 \
rx-band=5GHz rx-frequency=5320 \
disable-csma=no \
framer-policy=exact-size framer-limit=4000
Here is an explanation of the above options:
tx-radio (and rx-radio): This simply tells the nstreme dual interface which radio will be the transmitter and receiver
remote-mac: This option is very important. The mac address you need here is the mac address of the RECEIVE radio on the remote side of the link. The nstreme dual interface will take on the mac address of the rx-radio. Since NStreme Dual links are only point to point, there is no need for ARP, however, you DO need to tell the nstreme dual interface which mac address is on the other end.
tx-band/rx-band: One of the really nice features of NStreme Dual is that the individual link bands (and frequencies) do not matter. In other words, you can use 2.4ghz for the transmit and 5ghz for the receive side (or any other combination of bands supported by your radio card). Obviously, you need cards on the remote side that can use the same bands.
frequency: You must specify a supported frequency for both the transmitter and receiver. (See note above regarding the bands)
disable-csma: This is a “yes” or “no” option. Setting this to “yes” will cause the protocol to disable the csma functionality in the radio card.
framer-policy: This option is set to one of:
- none – disable the aggregation feature – BEST CPU, LOWEST PERFORMANCE
- best-fit – put as many packets as possible in one frame (until the framer-limit limit is met), but do not fragment packets – MIDDLE PERFORMANCE AND CPU
- exact-size – put as many packets as possible in one frame (until the framer-limit limit is met), even if fragmentation will be needed MOST CPU AND BEST PERFORMANCE
In order to use NStreme (dual OR single mode), you will require an Atheros radio card.
I hope this article has been helpful to you. If you have used the NStreme Dual configuration for a link, leave a comment to let me know what you thought of it. I am always interested in hearing from users of the Mikrotik Software. As always, if you did find this article helpful, please “digg it” above.
March 30th, 2011 at 7:33 am
Which 433 board do you recommend?
March 30th, 2011 at 12:01 pm
For NStreme dual, the AH board is recommended. You can get these at http://store.wispgear.net/
February 10th, 2012 at 3:19 am
Google brought me here as I’m pondering building an Nstream dual link. I don’t think I could do it the OSPF way as I don’t understand half of it.
Some beginner’s questions – you suggest using dual-polarity dishes. This is an antenna with two connectors which can transmit/receive at two frequencies simulateously, right? Can I rely on the manufacturers to get it right or are there some duds out there? (I’m looking at Ubiquity AirMax 5-20-90s as there isn’t much else available down here in New Zealand, with R52Hns on RB433AHs)
As this is a dual polarity 90′ sector antenna can you dual P-t-MP links? If not what do you use a dual polarity sector antenna for?
If MT Nstream dual doesn’t have fail-over to a single-link, would it be possible to write a script to do it, triggered by Watchdog pinging the link?
Great site – will come here often.
August 9th, 2012 at 8:56 am
Butch, I’ve read your article on simulating full duplex with OSPF as well. Which option, in your opinion, offers lower latency and ACK times?
September 26th, 2012 at 12:11 pm
is there a way that the power coming into a mikrotic radio can be affected when a wlan card is disabled in a full duplex link?
January 27th, 2015 at 2:37 pm
[…] is some time that I want to try the Nstreme dual technology (http://blog.butchevans.com/2009/04/mikrotiks-true-full-duplex-wireless-nstreme-dual/) which allows to have a real full-duplex […]