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,
一起学习,共同进步!