【计算机网络】实验一 IP 协议分析实验

本人一直想找时间系统整理一下之前做过的一些实验,便于后续用到的时候可以尽快的使用,po出来也便于大家交流学习,有问题欢迎交流指正,与诸君共勉!

实验目的及要求

  1. 了解网络层 IP 协议
  2. 学会独立分析协议的具体内容,通过实践巩固网络层协议的相关理论知识

实验内容

  1. 熟悉计算机网络常用数据包抓取方法
  2. 熟悉IP协议数据报格式以及IP数据报首部各部分的作用

实验环境

硬件:PC 机,网线,Wireshark软件

实验步骤

1. 选取分析的协议 IP 协议,复习教材相关内容。

2. 准备好必须的硬件设备及网络; 按照实验环境中的硬件要求在机房中选取符合实验条件的 pc 机。

3. 启动 Wireshark 抓包软件。

4. 启动协议 IP 所必须的软件环境或应用。

5. 抓包并选取具有代表性的数据包进行分析; 在抓的所有包中选择出一个便于分析网络层 IP 协议的,进行分析

6. 撰写实验报告

实验结果

1、基础知识——IP数据报格式、首部各字段意义

图1-1 IP数据报格式

IP数据报格式如图1-1所示,每个字段的含义如下:

(1) 版本(version

4位,表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4,即 IPv4

(2) 首部长度(网际报头长度IHL

4位,可表示的最大十进制数值是15。这个字段所表示数的单位是32位字长(132位字长是 4 字节)。因此,当 IP 的首部长度为1111时(即十进制的15),首部长度就达到 60 字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时较为方便。首部长度限制为 60 字节的缺点是,长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销。最常用的首部长度就是 20 字节(即首部长度为 0101),这时不使用任何选项。

(3) 区分服务(tos

也被称为服务类型,占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998 IETF 把这个字段改名为区分服务(Differentiated ServicesDS)。只有在使用区分服务时,这个字段才起作用。

(4) 总长度(totlen

首部和数据之和,单位为字节。总长度字段为16位,因此数据报的最大长度为 2^16-1=65535 字节。

(5) 标识(identification

用来标识数据报,占 16 位。IP 协议在存储器中维持一个计数器。每产生一个数据报,计数器就加1,并将此值赋给标识字段。当数据报的长度超过网络的MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同的标识字段值的分片报文会被重组成原来的数据报。

(6) 标志(flag

3位。第一位未使用,其值为0。第二位称为DF(不分片),表示是否允许分片。取值为0时,表示允许分片;取值为1时,表示不允许分片。第三位称为MF(更多分片),表示是否还有分片正在传输,设置为0时,表示没有更多分片需要发送,或数据报没有分片。

(7) 片偏移(offsetfrag

13 位。当报文被分片后,该字段标记该分片在原报文中的相对位置。片偏移以 8 个字节为偏移单位。所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍。

(8) 生存时间(TTL

表示数据报在网络中的寿命,占 8 位。该字段由发出数据报的源主机设置。其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源。

路由器在转发数据报之前,先把 TTL 值减 1。若 TTL 值减少到 0,则丢弃这个数据报,不再转发。因此,TTL 指明数据报在网络中最多可经过多少个路由器。TTL 的最大数值为 255。若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送。

(9) 协议

表示该数据报文所携带的数据所使用的协议类型,占 8 位。该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。

例如,TCP 的协议号为 6UDP 的协议号为 17ICMP 的协议号为 1

(10) 首部检验和(checksum

用于校验数据报的首部,占 16 位。数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值。

(11) 源地址

表示数据报的源 IP 地址,占 32 位。

(12) 目的地址

表示数据报的目的 IP 地址,占 32 位。该字段用于校验发送是否正确。

(13) 可选字段

该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。

(14) 填充

由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍。

(15) 数据部分

表示传输层的数据,如保存 TCPUDPICMP IGMP 的数据。数据部分的长度不固定。

2、实验步骤——截图及详细说明

2.1 了解wireshark软件

  启动wireshark软件,开启抓包界面如图2-1。

图2-1 wireshark抓包界面

Display Filter(显示过滤器),用于设置过滤条件进行数据包列表过滤。

Packet List Pane(数据包列表),用于显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。不同协议的数据包使用了不同的颜色区分显示。

抓包界面数据包列表的着色规则如图2-2

图2-2 着色规则

说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏View-->Coloring Rules,可自定义。

Packet Details Pane(数据包详细信息), 在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。

数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各部分信息分别为

1Frame: 物理层的数据帧概况

2Ethernet II: 数据链路层以太网帧头部信息

3Internet Protocol Version 4: 互联网层IP包头部信息

4Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP

5Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

Dissector Pane(数据包字节区)

2.2 了解wireshark过滤器

1)抓包过滤器

捕获过滤器的菜单栏路径为Capture-->Capture Filters。用于在抓取数据包前设置。如图2-3

2-3 Capture Filters初界面

2-4 设置捕获过滤器情况

如图2-4为设置捕获过滤器情况。设置过滤器为ip host 192.168.43.95 and icmp,只捕获主机IP192.168.43.95ICMP数据包

本机ping www.baidu.com后捕获的报文如图2-5。

2-5 本机ping www.baidu.com后捕获的报文

显示过滤器是用于在抓取数据包后设置过滤条件进行过滤数据包。

在捕获时未设置捕获规则直接通过网卡进行抓取所有数据包,如图2-6

2-6 未设置捕获规则抓包

  • 2.3抓包并选取数据包进行分析

    2-7抓包界面

    抓包并选取一个数据包进行分析,抓包界面如图2-7。

    3、实验结果截图及分析

    选取数据包的详细信息如图2-8。

2-8抓取数据包详细信息

对该数据包分析如下:

A. Version: 4,IP协议版本为IPv4;

B. Header length: 20 bytes,头部数据长度为20字节;

C. Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)),区分的服务领域:0x00 (默认的是DSCP:0x00);

D. Total Length:40,整个数据报的长度;

E. Identification:0x02f0(752),表示当前的数据报;

F. Flags: 0x40 ,Don't Fragment,不支持分片;

G. Fragment offset: 0,分组偏移量为0;

H. Time to live: 64,TTL,生存时间为64,表示该包在被丢弃前最多能经过的路由器个数为64,当数据包传输到一个路由器之后,TTL就自动减1,如果减到0了还没有传送到目标主机,那么就自动丢失。

I. Protocol:TCP(6),上层协议为TCP(6)

J. Header checksum: 0X0000[valid disabled],头部校验和

K. [Header checksum status: Unverified]:头部数据校验状态。

L. Source Address: 192.168.43.95,源IP地址为192.168.43.95;

M. Destination Address: 163.177.151.109,目标IP地址为163.177.151.109。

4.实验心得或实验过程中遇到的问题和解决的方法

4.1 实验心得

本次实验前首先对IP协议的理论知识进行了巩固,实验前下载了wireshark软件,并通过网络方式寻找辅助使用教程,对wireshark软件的使用方法有了初步掌握。实验过程中使用wireshark软件的进行抓包分析的过程更使我熟练掌握了wireshark软件的使用方法。通过实验加深了对于网络层IP协议理论知识的理解,学会了独立分析协议的具体内容。

通过对于wireshark工具的学习,体会到计算机学科中实践操作的重要性,以及实践操作对于理论知识理解的显著积极作用。实验过程中也通过自己的兴趣与解决问题的导向,自主探索了许多IP知识,了解了更多计算机网络中数据传输的具体过程,对课本理论知识有了更为深刻的理解。今后的学习生活中也要时刻提醒自己,对于理论知识的理解要基于实践与应用的基础之上。

4.2 实验过程中遇到的问题及解决办法

本次实验过程中的主要问题来自于对于wireshark软件的使用以及各个功能的理解,如数据包列表区中不同的协议使用的不同的颜色区分的含义、过滤器的设置方法等。

通过在网络上搜集相关资料,较为全面地了解了wireshark的功能,学习了wireshark的使用方法,并成功利用wireshark完成了本次实验。

5、实验习题

5.1 IP 数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?

好处:每次分组转发时都要计算首部检验和,IP数据报中的首部检验和不检验数据部分,减少了计算量,加快了分组转发的速率。

坏处:数据部分出现差错时不能及早发现。

5.2 试说明IP地址与硬件地址的区别。为什么要使用这两种不同的地址?

区别:IP地址位于IP数据报的首部,硬件地址位于MAC帧的首部,在网络层及以上使用IP地址,在数据链路层及以下使用硬件地址。在 IP 层抽象的互连网上,我们看到的只是 IP 数据报,路由器根据目的站的IP地址进展选路。在具体的物理网络的链路层,我们看到的只是MAC帧,IP 数据报被封装在MAC帧里面。MAC帧在不同的网络上传送时,其MAC帧的首部是不同的。这种变化在上面的IP 层上是看不到的。

原因:每个路由器都有 IP 地址和硬件地址。各种各样的MAC地址之间的转换工作比较复杂。使用 IP 地址与硬件地址,尽管连接在一起的网络的硬件地址体系各不一样, IP 层抽象的互连网却屏蔽了下层这些很复杂的但细节,并使我们能够使用统一的、抽象的 IP 地址进展通信。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值