What are the differences between netcat-traditional and netcat-openbsd?

Solution 1:

You can look at the packages' descriptions using apt-cache show. They say it all:

$ apt-cache show netcat-traditional 
...
 This is the "classic" netcat, written by *Hobbit*. It lacks many
 features found in netcat-openbsd.
...
$ apt-cache show netcat-openbsd 
...
 This package contains the OpenBSD rewrite of netcat, including support
 for IPv6, proxies, and Unix sockets.
...

So the significant differences are as stated. The OpenBSD rewrite supports IPv6, proxies, and Unix sockets, which the traditional implementation lacks. In practice, if you don't need any of these, you won't notice a difference.

Solution 2:

netcat-traditional includes -e option to execute program from remote shell, which is not present in netcat-openbsd