Component之Ping

  • 2019 年 10 月 11 日
  • 筆記

不管用哪個OS,做過網路應用的,應該都用過ping命令吧,它通過發送ICMP的ECHO_REQUEST報文,來測試對端電腦在網路上是否可達。VxWorks當然也支援它了,包含組件INCLUDE_PING後,就可以在Shell或Code中使用ping()了

  • host – 要測試的Host IP或HostTable中記錄的Host Name,前面還可以加上一些參數
  • numPackets – ping命令發送的ECHO_REQUEST報文數量,不能小於0。如果賦0的話,vx69里用默認值1,而低一些的版本會進行連續的ping操作
  • options – 不同的vx版本,支援的選項可能不同。Vx69里支援三個
    • PING_OPT_SILENT – 等於第一個參數里的-silent
    • PING_OPT_DONTROUTE – 等於第一個參數里的-r
    • PING_OPT_NOHOST – 等於第一個參數里的-n

跑個例子

  • bytes=64:表示每個報文是64位元組,通過參數-s可以修改,取值範圍是[8, 65515(0xffff-20)]
  • ttl=128:Time To Live,生存時間值,作用是限制IP數據包在電腦網路中存在的時間。通過這個值,大致可以判斷對端電腦的作業系統類型。一般情況下,Windows系統的TTL在100-130之間,UNIX/Linux系統在240-255之間
  • time值:響應時間,這個時間越小,說明連接對端這個地址的速度越快

再看看ping還支援哪些參數

  • -c:指定報文數量,可以取代參數numPackets。並且取值-1時,表示連續ping,這樣的話,需要用Ctrl+C來才能停下了
  • -R:在ECHO_REQUEST報文中包含RECORD_ROUTE選項,記錄傳出和返回數據包的路由,探測經過的路由個數,最多可以跟蹤到9個路由
  • -silent:必須是第一個參數,有了它之後,ping僅返回OK或ERROR,不列印其它資訊,因此常用於Coding

其它參數不是很常用了,有興趣的童鞋可以研究一下

這正是:

網路通不通,試試ping命令。

每包有大小,包數可設定。

我是泰山,專註VX 15年!

歡迎關注VxWorks567,

一起學習,共同進步!