学习网络编程之ping
来源:互联网 发布:怎么区分淘宝是否正品 编辑:程序博客网 时间:2024/05/19 16:49
ping命令通常被用来检查网络连接是否是通的,如我们的电脑接在局域网的路由器下面,我们可以用ping来测试跟路由器或其它局域网内的某台主机的连接情况,又或者我们想测试是否连接外网正常,我通常会ping的一些网站如www.baidu.com,www.jd.com等。这个命令行工具相信很多人都用过,应该也有不少人和我一样一直想它到底是怎么实现的,或它的过程是怎样的。
1 ping测试
测试设备:电脑一台,android手机一台(^_^手上只有一台电脑),无线路由器一台。
测试方式:电脑用网线连接在路由器下,手机通过WiFi连接上路由器,用android手机ping电脑。
测试准备:电脑上需安装豌豆荚+adbtool,这样电脑可以通过USB线进入android手机调试模式并进入手机shell,我们就可以在电脑上敲手机上的命令,还没安装或还不会使用的去百度一下;电脑上还需安装网络抓包工具,如Wireshark,Omnipeek等,Wireshark挺有名的,而由于工作需要我装的是Omnipeek,两款软件差不多,还没安装或还不会使用的去百度一下。
开始测试:打开电脑上的抓包软件开始抓包
电脑打开cmd输入ipconfig /all查看电脑有线网络获得的ip地址(如192.168.1.100),利用adbtool进入手机shell模式,然后输入ping 192.168.1.100,这样手机就开始ping电脑了。
2 ping分析
通过过滤抓取到的网络封包来分析ping的过程。
从上面的封包protocol这栏我们可以看到"PING Req","PING Reply"这已经说明了这些封包就是ping的请求和响应包。
1) ping请求包分析
封包48的十六进制数据如上,借助Omnipeek工具自动分析展开结果如下:
从上面可知ping请求包是基于IP协议的ICMP消息的,ICMP的数据结构可以查询rfc792,这里[ICMP Type] 为 8 Echo Request。
2) ping响应包分析
封包49的十六进制数据如上,借助Omnipeek工具自动分析展开结果如下:
这里[ICMP Type] 为 0 Echo Reply。
3) 有关ping目标机器mac地址
4) ARP协议的作用
- 学习网络编程之ping
- 【网络编程】之十三、ping程序实现
- 扯谈网络编程之自己实现ping
- 【网络编程】之十三、ping程序实现
- Linux网络编程之原始套接字-ping协议实现
- Linux网络编程之原始套接字-ping协议实现
- Linux网络编程之原始套接字-ping协议实现
- linux网络编程之TCP/IP基础:ping命令解释
- java学习之 网络编程
- java--------学习之《网络编程》
- Java学习之网络编程
- Java学习之网络编程
- 网络编程之SOCKET编程学习笔记
- 仿ping程序(linux网络编程
- Linux底层网络编程--ARP,PING等
- 网络编程- ping程序简单实现
- <网络编程培训之六> 使用原始套接字实现Ping
- iOS学习之网络编程之CocoaAsyncSocket
- iOS开发之缓存(一):内存缓存
- 线程互斥和条件同步,pthread_mutex和pthread_cond
- 【C语言】编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- 测试
- fresco Facebook开源的一款图片处理库
- 学习网络编程之ping
- 基于lucene的案例开发:纵横小说章节列表采集
- Yii----Widget
- 怎么样才能转变自己想法、思维方式?
- 代码测试
- C# 利用WinRAR (加密)压缩及解压缩 相关文件夹及文件 (转)
- VLC控件支持的参数和方法
- Tomcat发布的路径中有中文
- 微信小店的接口开发实例PHP