I agree with Rolf Fischer.
It seems questions about icmp having port numbers are recurrent.
Check out these links for mote details:
https://learningnetwork.cisco.com/thread/31935
https://learningnetwork.cisco.com/thread/39021
As for TCP and UDP por numbers, they range from 0 to 65535. You can't use port zero though. It's reserved.