目录

  • 一:任务目的
  • 二:任务内容
  • 三:提交形式及时间
  • 四:步骤
  • 五、感悟

一:任务目的

(1)了解计算机网络TCP/IP的分层实现过程,了解不同层次PDU的逐层封装与解封过程;
(2)熟悉网络通信的实现过程和数据发送过程;
(3)熟悉计算机网络各层知识的应用,能综合利用所学知识对网络数据进行分析;

二:任务内容

(1)了解并熟悉常见的抓包工具,例如Wireshark、Sniffer等,熟悉以太网数据帧和IP数据包的结构;
(2)能够正确捕捉ping命令执行过程中所产生的数据包,并逐层分析其构成,进而了解数据包的封装与解封过程;
(3)每位同学给出自己的ping命令数据包的分析结果。

三:提交形式及时间

每位同学提交纸质报告一份,期末考试前提交。

四:步骤

1.下载并安装抓包工具Wireshark。链接:https://wireshark.en.softonic.com/

2.打开安装好的wireshark。

3.打开cmd,运行命令ipconfig /all,可以查到网卡的物理地址(IP地址)、被路由器利用dhcp分配的ip地址、子网掩码等信息。虚拟机也有虚拟机上的网卡。主机上也接入了有线网络,以太网的网卡的mac地址与无线网mac地址略有不同。



4.打开cmd,运行命令route print,可以看到路由表信息。网关是下一跳地址,“在链路上”。“在链路上”指你电脑访问网络的链路中存在多个网关。

5.因为接入了以太网,所以运行arp -a命令可以查看arp缓存中的项目。

6.在wireshark中启动“捕获”。启动后,在cmd中输入ping www.sogou.com,得到搜狗网的ip地址。
7.在wireshark中设置过滤器,只显示发向118.184.170.37的记录。在过滤器中输入:ip.dst==118.184.170.37,可以看到4条数据,因为本机在利用ping指令测试连通性时也会发4条数据。

8.以发送的第一条报文为例进行分析。

9.以自顶向下的顺序,一段数据会被层层封装,(除了ping)首先在运输层被封装成了报文,报文首部为20字节。但是,ping工作在网络层,被封装成的是icmp报文。之后,在网络层被封装成了IP数据报,IP数据报首部占32字节。IP数据报又在数据链路层被封装成了帧。而物理层传输的是比特流。所以,利用捕获工具捕获到的是比特流,它被层层封装,共74byte。

10.数据链路层的mac帧首部的格式为:

6byte 6byte 2byte
目的地址 源地址 类型
“地址”指的是mac地址。目的地址占6byte,即搜狗网服务器的mac地址为0c:4b:54:15:69:73。源地址占6byte,即本机的mac地址为:e4:54:e8:2c:41:33。这个mac地址,与前文中利用ipconfig /all查到的以太网卡mac地址是完全一致的。类型占2byte,0x0800即表示高层(网络层)使用IP数据报,利用IP协议。
但是,捕获到的帧尾部没有CRC循环冗余校验位

11.网络层的IP数据报首部固定部分格式为:

4bit 4bit 8bit 16bit 16bit 3bit 13bit 8bit 8bit 16bit 32bit 32bit
版本 首部长度 区分服务 总长度 标识 标志 片偏移 生存时间 协议 首部检验和 源地址 目的地址
(1)固定部分首部共占20byte。图中深色部分即为固定首部,共20byte。
(2)前4bit标识版本,“4”表示协议IP版本为IPv4。
“5”表示首部长度为5个32位字长。一个32位字长是4byte。所以,“5”表示首部长度为5*4=20byte
(3)“00”表示区分服务。这个字段一般不起作用。
(4)“00 3c”表示总长度。3c的10进制值为60,表示IP数据报的首部加上来自高层的数据共60byte。从IP数据报首部(值为45H,正如上文分析)开始到整个数据报结束,其长度确实是60byte。如图。
(5)“89 b0”表示标识。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器加1。本数据报的标识为89b0h。下一条数据报的标识就是89b1h。
(6)同理,再下一条数据报的标识就是89b2h。
(7)回到当前在分析的第0条数据报。接下来3bit是标识,值为000。即:这是若干数据报中的最后一个,不允许分片。
(8)接下来13bit是片偏移。较长的分组分片后,某片在原分组中的相对位置。但是,只有一个完整的数据报片,所以片偏移量为0。
(9)“40”指生存时间TTL。40H也是16进制数,其10进制值为64。TTL值为64,是因为在win10/11上发送的数据报默认ttl为64。这一数值可以在注册表编辑器regedit中,通过路径“HKEY_LOCAL_MACHINE\System\CurrentControlSet \Services\Tcpip\Parameters”找到。
(10)“01”表示协议,协议字段值01表示协议名为icmp。与界面顶部“protocol”字段中的“icmp”是一致的。
(11)“0000”表示首部检验和。但这一数据报中首部校验功能被关闭了。
(12)“c0 a8 01 6d”表示源地址。将这四个十六进制数转化为十进制即为192.168.1.109,表明发送数据报时的ip地址是192.168.1.109。
(13)“7b 68 aa 25”表示目的地址。将这四个十六进制数转化为十进制数即为118.184.170.37,表明搜狗网服务器ip地址为118.184.170.37。
在本例中,没有可变部分。下面的数据部分被ICMP协议封装。
12.ICMP报文格式如下
8bit 8bit 16bit 16bit
类型 代码 检验和 (取决于icmp报文类型)
(1)“08”表明是一个询问报文,表明该报文就是一个ping请求。如wireshark所示。经查阅资料,代码位Code与类型位Type配合。当类型位Type为08且代码位Code为00时,表明是一个回显请求(ping请求)。
(2)“4c d6”为检验和。Wireshark直接给出:该检验和正确。检验和的计算方法为:将该16bit置成0,将整个报文分为多个16bit序列,进行反码相加,对结果取反。ICMP的检验和计算时不仅包括首部,而且包括数据部分。其过程过于复杂,在此不赘述。
(3)“0001 0085”这四个字节取决于ICMP报文类型。Wireshark直接给出:这四个字节中前两个字节表示Identifier,后两个字节表示Sequence Number。经查阅相关资料,win10/11的Identifier固定位0001,配合Sequence Number 才能区分不同的ping进程。例如,本文正在分析的ping进程中,Sequence Number为0085。
下一条报文的Sequence Number为0086,以此类推。
(4)最后是ICMP报文的数据部分。可以看出,ping请求时发送的数据就是abcdefg…uvw等字符的循环,共32byte。
13.在上文中提到过,数据链路层的mac帧最后4byte使用循环冗余检验(CRC)作为FCS对帧的有效性与是否出现差错进行检测。但是,利用Wireshark抓包抓到的帧并不存在这4byte的校验位。经过我查阅相关资料得知:网卡接收到一个帧,第一步就是计算FCS,并与接收到的帧尾的FCS进行对比,如果一致,则接收,如果不一致则丢弃。而Wireshark抓到的帧,是FCS校验通过的帧,而帧尾的FCS会被硬件去掉,所以没有FCS。另一方面,wireshark也不会抓到FCS校验失败的帧。至此,本文已经完成了对本机发送给搜狗网的数据中的每一层的每一位的分析与解释。
14.在wireshark中重新设置过滤器,只显示由搜狗网服务器118.184.170.37发到本机的记录。在过滤器中输入:ip.src==118.184.170.37。同样地,看到了4条用于应答ping请求发回的icmp报文。捕获到的数据就是cmd中的数据。同样,也能用上文办法分析。
15.以第一条为例。
在数据链路层,起点MAC地址搜狗服务器的为0c:4b:54:15:69:73。目的地是本机的mac地址为:e4:54:e8:2c:41:33。类型为IPv4。
16.在网络层的IP数据报,用同样的方法进行分析。
版本为IPv4,首部长度20byte。不使用区分服务。总长度60byte。标识为4604,标志flag为0,不分片。片偏移为0。TTL为52,协议号为1,使用ICMP协议。首部检验和没有确认。源ip为搜狗服务器ip118.184.170.37,目的ip为本机ip192.168.1.109。
对ttl需要进行一定的补充说明。在cmd上,收到的应答的数据TTL=52,表明从搜狗服务器到本机经历了64-52=12跳。Cmd上的ttl与使用wireshark捕获到的数据中的ttl是一致的。搜狗服务器使用的操作系统时linux,linux发出的数据的默认ttl也是64。尽管本机的win10/win11操作系统发出去的数据的ttl是64,但这两个64的含义有所区别。
在数据(ICMP报文),也是用同样的办法。类型为0、代码为0,表示应答ping请求。检验和正确。Identifier为1,Sequence Number为0085。数据也同样为abcdefg…循环。在此,wireshark多提供了一条字段为response time。与cmd中应答ping请求的时间一致。

五、感悟

【计算机网络】 课程大作业:利用Wireshark抓包并进行分析相关推荐

  1. 计算机网络抓包设计,计算机网络实验利用wireshark抓包工具抓包

    计算机网络实验利用wireshark抓包工具抓包 计算机网络实验[利用wireshark抓包工具抓包] 一.实验名称 使用网络协议分析仪 Wireshark 二.实验目的 1.掌握安装和配置网络协议分 ...

  2. 利用WireShark抓包进行数据分析

    (如需交流,请关注公众号:神马观止) 这篇博客并不是总结已有成果,而是在学习计算机网络过程中,遇到问题进行备忘,希望网友能够帮忙解答,或者以后有一定知识和经验储备,再解析回答总结.问题是这样的,我用W ...

  3. Wireshark抓包——TCP协议分析

    一. 实验目的 通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及"TCP三次握手".通过抓包和分析数据包来理解TCP/IP协议, ...

  4. Wireshark抓包——ICMP协议分析

    内容:使用Wireshark抓包,分析较简单的数据包. 环境:Windows 7,Wireshark. ping是用来测试网络连通性的命令. 一旦发出ping命令,主机会发出连续的测试数据包到网络中, ...

  5. 计算机网络实验【利用wireshark抓包工具抓包】

    一.实验名称 使用网络协议分析仪 Wireshark 二.实验目的 1.掌握安装和配置网络协议分析仪Wireshark的方法: 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格 ...

  6. 实现Telnet远程登录,利用Wireshark抓包分析

    一.实验环境 服务器:windows server 2008 客户机:windows 2007 网卡连接:NAT(Vmnet 8) 实现客户机远程登录服务器 二.实验步骤 1.设置IP地址 服务器:w ...

  7. 网络渗透作业之 wireshark抓包校园网

    wireshark是一个非常好用的抓包软件,我们今天就来聊聊如何使用他进行抓包操作. 1.首先是附上下载地址:Wireshark中文版下载-Wireshark(网络抓包工具)下载v3.4.7 官方最新 ...

  8. 利用WireShark抓包iPhone手机4G网络数据

    将iPhone 用数据线和mac 连接,获取iPhone的UDID mac 安装wireshark 并打开运行 创建虚拟网卡     rvictl -s 3fd1c38039c36c0f97b8a3e ...

  9. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

最新文章

  1. 磁盘格式化、磁盘挂载、手动增加swap空间
  2. Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”
  3. c++ pat 乙级 --1001 害死人不偿命的(3n+1)猜想
  4. 深入探究.Net Core Configuration读取配置的优先级
  5. 前端学习(3102):vue+element今日头条管理-hello-react案例
  6. 4)机器学习基石笔记 Lecture4:Feasibility of Learning
  7. OSTimeDlyResume()--恢复一个延迟任务(取消任务延时)
  8. Linux学习总结(16)——CentOS 下 Nginx + Tomcat 配置负载均衡
  9. 华为鸿蒙os2.0公测结果,网友收到华为鸿蒙 OS 2.0 手机开发者 Beta 公测邮件
  10. 算法-贪心算法知识总结
  11. kernal tch 下载 天正_打开cad图时提示TCH_KERNAL 缺乏解释器天正图形看不见, 请下载天正插件......
  12. 人工智能AI编程基础(一)
  13. operator的理解
  14. iMac恢复出厂设置及安装
  15. mysql字段替换_mysql 替换字段部分内容及mysql 替换函数replace()
  16. 电脑耳机拔出后,再插入没声音
  17. 我在阿里三年的运营经都在这儿了
  18. Oracle对象——视图之简单视图与视图约束
  19. 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数
  20. linux自动安装trojan客户端的shell脚本

热门文章

  1. 386页《Python深度学习》电子书及源码下载
  2. Focal Loss与GHM 理解与使用
  3. errno!=EINTR是什么意思
  4. STM32CubeMX外部中断
  5. 线性代数(二十四) : 行列式的展开式—拉普拉斯公式
  6. 兼容微信6.74 ios12版本
  7. 华中科技大学计算机与网络,华中科技大学计算机通信与网络实验报告-基于NS2的协议分析实验...
  8. Ajax实现异步请求步骤
  9. Hello C(八)——内存字节对齐
  10. 软件设计师考试重点知识点梳理