The name is used when sending data in a form submission. Different controls respond differently. For example, you may have several radio buttons with different ids, but the same name.
When submitted, there is just the one value in the response - the radio button you selected.
So if you are going to use GET an POST then you can recognize the controls using its name property
where as ID is used if we include runat="server" attribute and access it in codebehind