Difference between “Walker_Nav_menu” and “walker”

Walker_Nav_menu extends walker and includes all the markup for a menu. walker by itself doesn’t have any markup, it just handles walking the tree, and needs to be extended to add markup. See the documentation:

Extend the Walker class to use it, see examples below. Child classes
do not need to implement all of the abstract methods in the class. The
child only needs to implement the methods that are needed.

If you’re customising the output of a menu, just extend Walker_Nav_Menu.