The iptables version installed in Ubuntu 16.04 is 1.6.0, official reference: http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/ Iptables.html, for some more detailed usage you can use the man iptables for reference.
Iptables
A table for establishing, maintaining, and inspecting IP packet filtering rules in the Linux kernel.
Iptables-restore
Used to recover the IP table from the data specified by the stdin. Read from a file using the I/O redirection provided by the shell.
Iptables-save
Used to dump the contents of an IP table into stdout in a format that is easy to parse. Writes a file using the I/O redirection provided by the shell.
Iptables-xml
Used to convert the output of Iptables-save to XML format. Use the IPTABLES.XSLT style sheet to convert the XML back to the Iptables-restore format.
Iptables-apply
A more secure way to remotely update the iptables.
Ip6tables*
is a set of IPV6 commands that are used to parallel the above iptables commands.
Nfsynproxy
(optional) Configuration tool. In this case, the Synproxy target can handle large SYN floods without causing a lot of performance damage from connection tracking.
Xtables-multi
is a binary, its behavior is based on the name it calls.
Reference:
Http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/iptables.html
Introduction to Iptables tools in Ubuntu 16.04 (iptables/iptables-restore/iptables-xml/iptables-apply/iptables-save)