ping: okänd värd
de flesta av oss när en tjänst eller en webbplats är nere, försöker vi pinga den. Om den tjänsten eller webbplatsen körs på en viss port och vi försöker pinga den med det portnumret får vi ett fel.
root@spark:~# ping -c3 159.203.216.179:80
ping: unknown host 159.203.216.179:80
anledningen till detta är att ping är ingenting annat än en ICMP echo-begäran och echo-svar och det finns inget koncept för portnummer i ICMP.
ICMP-protokollet är en del av Internet-lagret i Internet Protocol Suite. HTTP är i det översta lagret, dvs, applikationslager, medan TCP och UDP bildar transportskiktet.
tcp behandlar det faktiska datautbytet på internet. UDP gör också datautbyte men gör det snabbt utan handskakning, feldetektering eller leveransgaranti.
det kommer att finnas många tjänster som körs på en maskin. Så TCP och UDP behöver veta vilken tjänst de ska leverera meddelandet till. För detta ändamål använder de portnummer.,
å andra sidan är ICMP ett protokoll som är utformat speciellt för diagnostiska ändamål.
den används av nätverksenheter, som routrar, för att skicka felmeddelanden som till exempel indikerar att en begärd tjänst inte är tillgänglig eller att en värd eller router inte kunde nås. ICMP kan också användas för att vidarebefordra frågemeddelanden.
eftersom ICMP inte gör ”real” meddelandeutbyte mellan maskiner, behöver ICMP-paket inte ha portnummer.
så om en ping lyckas, betyder allt att destinationsmaskinen är på nätverket, i.,e. det är nåbart. Det garanterar inte att en webbserver eller något annat på den datorn körs.
allt ping gör knackar på dörren. Om du vill ta reda på om en tjänst på en viss port är upp, bör du använda netcat eller telnet som låter dig ansluta till en maskin på en viss port.