The program pings, then scans. a ping IS a ICMP packet. It's what determines if a host is active. Even if a machine IS online, it can show as inactive cause the ping was not returned.

Make sure that "Ping Only" is not selected. And make sure that "Scan only responsive pings" is not selected.

I'll explain what it means to "scan" a host. When you tell the program a range of IP's to scan, it will then try to connect to every port in the port list, or every port in the port range you selected. If it successfully connects - it will disconnect and tell you that port is open.
Domain Registration, Hosting, Management