计算机网络——wirshark初体验

计算机网络——wirshark初体验

实验一

实验步骤

1.在 Wireshark 监视器中设置过滤条件。设置过滤条件为 icmp,筛选ICMP报文和IP数据包
计算机网络——wirshark初体验_第1张图片
2. 在命令行输入ping baidu.com 同时开启wireshark抓包
计算机网络——wirshark初体验_第2张图片
3. 抓包结果如下
计算机网络——wirshark初体验_第3张图片

实验结果

1.解释IP数据报的首部

数据链路层
计算机网络——wirshark初体验_第4张图片

内容 说明
Ethernet II 以太网协议版本 II
Source: Apple_de:1f:24 厂名:序号
(64:c7:53: de:1f:24) 网卡地址
Type: IPv4 (0x0800) 协议类型

网络层

计算机网络——wirshark初体验_第5张图片

内容 说明
Src: 10.22.35.213, 源地址
Dst: 220.181.38.251 目的地址
Version: 4 互联网协议版本
… 0101 = Header Length: 20 bytes (5) 帧头部长度
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) 差分服务字段(服务类型)
Total Length: 84 帧的总长度
Identification: 0x4117 (16663) 标识字段
Flags: 0x00 标记字段
Fragment Offset: 0 分段偏移量
Time to Live: 64 生存期 ITL
Protocol: ICMP (1) 上层协议
Header Checksum: 0x9383 [validation disabled] 头部数据的校验和
[Header checksum status: Unverified] 头部数据的校验和状态
Source Address: 10.22.35.213 源IP 地址
Destination Address: 220.181.38.251 目的IP 地址
2.对比 ICMP Echo 请求帧和回应帧

请求帧如图计算机网络——wirshark初体验_第6张图片
回应帧如图
计算机网络——wirshark初体验_第7张图片

  1. 请求类型是8,代码是0,表示请求
    回应类型是0,代码是0,表示应答

  2. 回应和请求的Identifier (BE) 均为11040 8235,说明该回应是响应的该请求

3.改变ping的长度参数
  1. 长度大于一定数量才会分片,这里我指定长度为2000位.
    计算机网络——wirshark初体验_第8张图片

  2. 抓包数据如图
    计算机网络——wirshark初体验_第9张图片

  3. IP分报片情况

计算机网络——wirshark初体验_第10张图片

  • 首先来看看数据包(IP包),按道理来说,当长度大于一定的长度的时候,IP数据包会实行分片传输,但是这里观察到Don't fragment: Not set More fragments: Not set都是为零,而且所有捕抓到的报文都是如此。所以带着这个疑问我去询问了老师,老师给的答案是操作系统的不同可能会导致不同的结果。
  • 虽然没有办法实验,但是按到理论上说,这里的Don't fragment:应该是为1的,表示可以分片。所以当ping需要的数据包大于一定长度时,ip是会分片发送的。

实验二

实验步骤

1.在 Wireshark 监视器中设置过滤条件。设置过滤条件为 icmp,筛选ICMP报文和IP数据包
计算机网络——wirshark初体验_第11张图片
2. 在命令行输入traceroute baidu.com 同时开启wireshark抓包.计算机网络——wirshark初体验_第12张图片
3. 抓包结果如图
计算机网络——wirshark初体验_第13张图片

实验结论

1. 解释ICMP 差错报文的结构
  1. ICMP差错报文的首部和IP数据报的首部类似,具体可以参考IP数据报首部. 这里我重点介绍ICMP的内容
    计算机网络——wirshark初体验_第14张图片
Internet Control Message Protocol
    Type: 11 (Time-to-live exceeded)          //ICMP超时报文的type值是11,Time-to-live exceeded是生存时间超时
    Code: 0 (Time to live exceeded in transit)   //code的值有可能是1有可能是0,Time to live exceeded in transit表示路由器收到的ICMP数据报文的TTL值为0
    Checksum: 0xf4ff [correct]               //表示校验和是正确的
    [Checksum Status: Good]                //校验和状态是好的
    Unused: 00000000                         //未使用(全0)
    Internet Protocol Version 4, Src: 10.22.35.213, Dst: 220.181.38.251 //收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节
2.描述 tracert 工作原理,结合 ICMP 报文记录画出数据交互示意图

tracert工作原理

  1. tracert从源地址发出一个UDP探测包到目的地址,并将TTL设置为1;

  2. 当路径上的第一个路由器收到这个数据包时,将TTL减1;

  3. 当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;

  4. 当源地址收到该ICMP包时,显示这一跳的路由信息;

  5. 这个重复的动作一直持续到某个数据包抵达目的地,并每次重复时设置TTL加1;

  6. 直至目标地址收到探测数据包,由于tracert通过UDP数据包向不常见端口发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

  7. 当源地址收到ICMP Port Unreachable包时停止traceroute。

由于MAC系统的差别,我抓包并没有抓到Unreached post信息,所以这里我就没法展示了(抱歉)

数据交互示意图
计算机网络——wirshark初体验_第15张图片

你可能感兴趣的:(大作业,计算机网络,网络,服务器)