OSI七層模型,自頂向下為:應用、表現、會話、傳輸、網絡、數據鏈路、物理這7層。常用的一些協議如http、ftp都是應用層,tcp/udp是傳輸層,ip是網絡層,等等。到此為止,這些估計大部分人都知道。現在問題來了,ping這個命令,它不需要端口,你猜它屬於哪一層?
這是個有意思的問題,其實也簡單,知道它用的協議,就知道它是哪一層了。我們用的最多的是ping一個ip看它通不通,這時用的是ICMP協議,全稱Internet Control Message Protocol,Internet控制消息協議。該協議用於在IP網絡中發送控制消息,獲取在通信環境中可能發生的各種問題的反饋。ICMP屬於網絡層協議,自然ping命令就在第三層。
ping的命令格式如下:
ping [-t][-l字節數][-a][-i]目標主機IP或者域名
參數說明:
-t:參數會一直不停的執行 -a:參數可以顯示主機名稱 -l:參數可以設定ping包的大小 -n:指定發送包的個數
ping就只有在第三層嗎?其實也未必,當使用ping 域名 這樣的形式時,不僅用到了ICMP去檢測兩台設備之間的雙向連通性,還需要通過DNS協議先把域名轉為IP,那么DNS屬於哪一層呢?應用層,那是不是也能說ping是屬於第7層了?我覺得,這個就見仁見智了。單就ping這個命令的目的來說,就是為了發送數據包到目標IP去,域名解析的目的還是獲取IP,所以屬於第三層是肯定沒錯的。但既然用到了DNS協議了,如果你非得說它也算第7層了,我也認。
