zImage is just a common name for a compressed kernel image.
U-boot is capable of loading and booting various kernel images formats. The arch linux one should be ok.
DTB files are compiled Device Tree files that the linux kernel uses to configure the hardware.
more on it here : http://elinux.org/Device_Tree
To configure U-boot I advise you to use the uEnv.txt configuration file that you put at the root of the boot partition on the sdcard. It is simpler and you don't loose your configuration if you reset u-boot env.
U-boot will fetch the kernel image and the DTB files via TFTP.
Those files are not that big, you don't have to use a separate partition to store them on your NAS.
As far as I'm aware, I don't think it is possible to have the root fs on tftp!
You will have to use NFS for the root fs.
You also have to configure the TFTP and NFS server on your NAS.
If you goal is to boot over NFS you can do it without using u-boot, and it is much simpler.
Assuming your NFS server is configured to provide the rootfs at
You just have to edit the cmdline.txt file on the boot partition of the sdcard with something like this:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/nfs nfsroot=192.168.0.1:/mnt/rpifs ip=dhcp elevator=deadline rootwait
With this configuration the kernel and DTB files (if any) will be loaded from the sdcard, and the kernel will use the NFS share as its root file system.