URL canonicalization is used when two different URL contain the same content and duplicate content issue occur so at that time canonicalization is useful to tell search engine robots that this URL is using content of this URL.
I.e.:
http://www.example.com/123.php and
http://example.com/12345.php, suppose these two dynamically generate URLs have the same content but search engine count these two as a two different URLs so for search engine bots these two different URLs have the same content and duplicate content issue occur.
At this time you can use canonicalization by putting
<link rel="canonical" href="http://www.example.com/123.php"> in the head part of
http://example.com/12345.php this page. It tells search engine robots that this page is using content of
http://www.example.com/123.php or these two are the same page.
Benefit of url canonical is They are for hinting which URL you prefer to see in the index when you can access the same page of content in multiple ways.