Ketika seseorang mengatakan "Ping", mereka merujuk ke ping ICMP, seperti itulah ping aslinya . ICMP sebenarnya bekerja pada level yang lebih rendah daripada protokol transport UDP & TCP dan tidak menggunakan port [ 1 ]:
ICMP, menggunakan dukungan dasar IP seolah-olah itu adalah protokol tingkat yang lebih tinggi, namun, ICMP sebenarnya merupakan bagian integral dari IP, dan harus diimplementasikan oleh setiap modul IP.
Itu sebagian besar karena ICMP digunakan untuk melaporkan kesalahan karena IP tidak sepenuhnya dapat diandalkan sendiri. Jadi, ICMP adalah protokol tingkat rendah yang menggunakan IP, bukan TCP / UDP. Ping hanyalah alat yang menggunakan ICMP (berkat level rendah C), namun, ICMP bukan hanya ping atau traceroute, tujuan utamanya sangat berbeda seperti yang saya catat.
Dan saya tidak tahu bagaimana Anda mengetahui bahwa layer buta untuk layer di bawahnya. Itu tidak benar, atau setidak-tidaknya setahu saya. Ping dapat menggunakan protokol apa pun yang diinginkannya dengan mengimplementasikannya dalam C.
Bahasa tingkat rendah seperti C memiliki akses langsung ke modul berbasis sistem IP, sehingga dimungkinkan untuk menggunakan protokol tersebut dengan menggunakan C (dan hampir semua bahasa lain yang ditulis dalam C saat ini).
Untuk menjelaskan lebih eksplisit (tl; dr):
Ping adalah alat berbasis ICMP, tidak menggunakan TCP dan UDP, sehingga tidak bekerja dengan port (karena protokol tidak memerlukan port, hanya layanan yang melakukannya). Itu tidak memerlukan fungsionalitas protokol tingkat yang lebih tinggi seperti TCP, sehingga tidak mengimplementasikannya. Dan meskipun ping sebagai aplikasi, ia berfungsi pada ICMP dan tidak menggunakan port.