ping: nieznany host
większość z nas, gdy usługa lub strona jest wyłączona, próbujemy pingować. Jeśli ta usługa lub strona internetowa działa na określonym porcie i spróbujemy pingować ją z tym numerem portu, pojawi się błąd.
root@spark:~# ping -c3 159.203.216.179:80
ping: unknown host 159.203.216.179:80
powodem tego jest to, że ping jest niczym innym jak żądaniem ICMP echo i odpowiedzią echo i nie ma pojęcia o numerach portów w ICMP.
protokół ICMP jest częścią warstwy internetowej pakietu protokołów internetowych. HTTP znajduje się w górnej warstwie, czyli, warstwa aplikacji, podczas gdy TCP i UDP tworzą warstwę transportową.
tcp zajmuje się rzeczywistą wymianą danych w Internecie. UDP również dokonuje wymiany danych, ale robi to szybko bez handshakingu, wykrywania błędów lub gwarancji dostawy.
na maszynie będzie działać wiele usług. TCP i UDP muszą więc wiedzieć, do której usługi mają dostarczyć wiadomość. W tym celu używają numerów portów.,
z drugiej strony, ICMP jest protokołem, który został zaprojektowany specjalnie do celów diagnostycznych.
jest on używany przez urządzenia sieciowe, takie jak routery, do wysyłania komunikatów o błędach wskazujących na przykład, że żądana usługa nie jest dostępna lub że host lub router nie może być osiągnięty. ICMP może być również używany do przekazywania wiadomości zapytań.
ponieważ ICMP nie dokonuje 'prawdziwej' wymiany komunikatów między maszynami, pakiety ICMP nie muszą mieć numerów portów.
więc jeśli ping się powiedzie, oznacza to, że docelowa maszyna jest w sieci, i.,e. jest osiągalny. Nie gwarantuje, że serwer WWW lub cokolwiek innego na tym komputerze jest uruchomiony.
ping tylko puka do drzwi. Jeśli chcesz dowiedzieć się, czy usługa na określonym porcie jest aktywna, powinieneś użyć netcat lub telnet, który pozwala połączyć się z maszyną na określonym porcie.