前言
本博客是博主用于记录计算机网络实验的博客,如果疏忽出现错误,还望各位指正。
抓包
我们是用Wireshark工具来进行抓包的。
在安装时候一路打勾安装即可,不过最后那个因为是英文,一定要看清,点了立即重启,直接前面的安装白干(实验室)。
安装之后,打开,选择以太网,之后我们老师让去打开命令行窗口CMD使用ping命令,去ping一下旁边人的主机ip。
ping ip
当然,可以首先ipconfig -all查看一下自己机器的ip地址,我这样放出来实验室机器的IP应该没问题吧,狗头保命。
ping之后,我们发现这里面有4次reques和4次reply。实验到这截个图就完事儿了。
当时做实验时候没太在意,不过现在细想一下,为什么是四次?直接上B站。
一条视频讲清楚什么是ICMP协议-pin_哔哩哔哩_bilibili
这就涉及到一个现在我还没学的东西,不过后面估计博客也会更新。
包结构
还有一个任务,分析包的结构:
1、Frame(整个报文的比特数)
2、Ethernet v2(以太网V2帧)
3、IP包部分(固定20字节)
4、ICMP协议部分 ICMP的报头长8字节,结构如图1所示。
我们一般上网包也差不都是这个结构听老师说
Frame
Ethernet v2(以太网V2帧)
IP包部分(固定20字节)
TCP协议部分
HTTP协议部分
ICMP包为啥发送四次?
ICMP(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议簇的一个子协议,工作在OSI的网络层,用于在IP主机、路由器之间传递控制消息,向数据通讯中的源主机报告错误。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
ICMP可以实现故障隔离和故障恢复。
网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。
网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。
这么说ICMP协议,你可能还不清楚,但是一说到ping,你大概率是听过。
当我们想要确定和目标主机是否联通的时候,我们就可以ping一下目标主机
如果显示是这样的就是可以联通。
ICMP主要作用是帮助管理员检测网络中发生的各种问题,然后根据问题原因实行相应解决方案。
主要分为两个大块,询问报告(ping)以及差错报告(traceroute)
ICMP协议的关键字段
ping
ping的执行过程,四次是这么来的
traceroute
当两台主机不在同一个网段,这时候ping只能验证两台主机是否联通,而不知道中间经历了哪些网关。traceroute就可以帮助我们实现,看看它通过了哪些网关。如果想要了解原理,可以去看那个链接的B站视频up掌芝士zzs的。因为我后面还没学,就不多做介绍啦。