Difference between Protocol Numbers and EtherType
Generally i have seen people getting confused between Protocol number and Ethertype (or as mostly called protocol type field).
The protocols which uses Ethernet or MAC header within which IP packet is present will have protocol numbers but for the protocols which uses directly Ethernet or MAC header and have their own packet format they will have only Ethernet type.
For eg. IP has ethertype as (0800).
ARP packet uses only MAC header and in Ethernet header we have ethertype field which will be set for ARP which is 0806. It will not have protocol number.
But ICMP packet will have protocol number which is 1 and will be present inside the IP header.
We can get a list of protocol numbers as given in below link:
We can see the different ethertypes defined below:
http://www.iana.org/assignments/ieee-802-numbers
http://standards.ieee.org/develop/regauth/ethertype/eth.txt