NX vs VNC
NX and VNC are remote desktop control protocols widely available on open source operating systems.
NX allows users to create new X11 sessions and forwards all X communication to the remote client.
VNC simply forwards what a logged in user sees on the desktop similar to how video would be transmitted.
Because NX is based on X, it only works on servers where X is present, namely, *nix operating systems (including Mac OSX with X11.app). NX does not run as a server on Windows but can run as a client on Windows.
VNC works on all servers because it simply images the desktop and sends it as pictures instead of X11 calls.
NX performs faster than VNC because it works at a higher level, requiring less data to be transmitted. VNC communicates through compressed bitmap screenshot updates of the desktop while NX communicates through compressed X11 calls. For low bandwidth connections - such as some internet connections, mobile broadband, etc. - NX can display in real time in cases where VNC is too slow to be a feasible option.
While this is true for remote, low bandwidth connections, VNC is quite a bit faster in a local area network. NX has considerably more computational overhead.
 Multiple clients
Because NX logs into the server as a session, multiple clients are not supported. VNC support multiple clients and is very useful for training purposes.
VNC does not support audio; NX does.
VNC is not a secured protocol (although it could be tunnelled) , while NX may use SSH natively in order to establish a connection