A 301 Redirect is a command that redirects users and the search engines to a particular page. A 301 Redirect can be employed if the content of a page has been permanently moved or if you have created multiple versions of a homepage and only want the users and search engines to see one version.
The canonical tag is a Meta tag placed in the HTML header of a webpage. The tag, however, is not a redirect, so the users and search engines are not sent to another location, but a particular page is nominated for indexation with the search engines.
Its main purpose is to keep duplicated content out of the search engine index while consolidating a sites authority and PageRank into one URL.
*** spam signature deleted by moderator - please do not put it back ***