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,
一起學習,共同進步!