When a page of your website is being opened with multiple URLs so it would be considered a canonical issue and Google rates it like a Duplication.

The URL redirection service is also popular as URL redirect, URL redirecting, URL forwarding, domain redirection and domain forwarding. In all of the cases it refers to one and the same web technique for pointing a web page to another URL of your choice.

The one authoritatively correct URL for a resource. When a resource can be accessed via multiple URLs, a canonical URL should be identified. All alias URLs for a resource should redirect to the canonical URL to enforce its authority.

Canonical: When referring to programming, canonical means conforming to well-established patterns or rules. The terms are sometimes used to distinguish whether a programming interface follows a particular standard or precedent or whether it departs from it.Redirection: URL redirection is an extremely useful service aimed at helping users point their domains or sub domains to certain URLs when necessary. This is usually needed in cases when a certain website is no longer available under its original domain name when all users linking to it need to be automatically informed of this update.

A 301 redirect is a permanent detour from an old URL to a new one.The brand-new page can be on the same domain,or it can also be on different domain. Canonical issue means your website is having different URLs(Uniform Resource Locator) with the exact same content.

301 redirects and canonical URLs are two ways to tell search engines which version of a page should be indexed and shown in search results. 301 redirects do a little more than canonical URL’s because in addition to search engines and web crawlers, they also redirect the users to the correct version of a page.

I totally agree with you that these are two to tell the search engine which url index and but redirection help to chnage old domain into new domain and canonical help to tell which is your exact url now.

Canonicalization refers to individual web pages that can be loaded from multiple URLs. This is a problem because when multiple pages have the same content but different URLs, links that are intended to go to the same page get split up among multiple URLs. This means that the popularity of the pages gets split up.