IP数据报与ARP报文的组成.docx
《IP数据报与ARP报文的组成.docx》由会员分享,可在线阅读,更多相关《IP数据报与ARP报文的组成.docx(14页珍藏版)》请在冰点文库上搜索。
IP数据报与ARP报文的组成
计算机与通信工程学院实验报告
课程名称
计算机网络实验
专业班级
通信1102
姓名
学号
时间:
2013.12.7
地点:
计通学院304机房
实验名称:
实验二IP数据报与ARP报文的组成
实验前任务
实验目的:
1、理解IP层的作用以及IP地址的分类方法;
2、理解子网的划分和子网掩码的作用;
3、掌握IP数据包的组成和网络层的基本功能。
4、理解MAC地址和IP地址在网络传输中的作用及区别
5、掌握ARP协议的作用和格式;
6、理解IP地址与MAC地址的对应关系;
7、了解ARP命令。
8、理解ARP在网络中的作用;
9、理解同一网段和不同网段ARP响应包的区别。
实验设备(环境):
Windows2000或XP
网络协议分析器
协议仿真编辑器等
实验原理:
1、IP(InternetProtocol)协议和IP地址的分类
IP协议用于管理客户端和服务器端之间的报文传送,是互联网最重要的网际协议。
IP地址是互联网主机的唯一标识。
网络通信时使用IP地址来指定接收端的主机地址。
IPv4版本的IP地址占32位,由类别、网络地址和主机地址共3个部分组成。
网络地址用于区分不同的网络,主机地址用于区分一个网段内主机。
IP地址分成5类:
A类,B类,C类,D类和E类。
其中A、B和C类是分配给用户使用的,D类用于多点广播,E类保留。
图1IP地址分类示意图
2、各类IP地址的范围
A类:
0.0.0.0到127.255.255.255
B类:
128.0.0.0到191.255.255.255.
C类:
192.0.0.0到223.255.255.255
3、特殊的IP地址
①网络地址:
主机地址部分为全“0”的IP地址是作为网络本身的标识。
②直接广播地址:
主机地址为全“1”的IP地址不分配给任何主机,用作广播地址。
③有限广播地址:
32位为全“1”的IP地址(255.255.255.255)称为有限广播地址。
④专用IP地址:
10.0.0.0—10.255.255.255;
172.16.0.0—172.31.255.255;
192.168.0.0—192.168.255.255
4、子网划分
子网是将网络地址中的主机标识分离出若干位作为子网地址位。
掩码是一个32位的二进制数。
网络地址部分为1,主机地址部分为0。
子网的设计是为了便于网络的管理、提高系统性能。
给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的是:
①本子网上的主机;②本网络中其他子网中的主机;③其他网络上的主机。
根据IP地址可以知道它是A类、B类或C类地址,同时也知道网络号和子网号之间的分界线。
根据子网掩码可以知道子网号与主机号之间的分界线。
5、IP数据报格式
图2IP分组格式
IP数据包常通过以太网传输,在以太网中是以48位的物理地址传输数据包而不是32位的IP地址。
因此当我们知道IP地址不知道MAC地址时,就要用到ARP协议。
ARP协议的功能是将网络层的IP地址转换为数据链路层的MAC地址。
ARP协议的请求包是以广播方式发送的,网段中的所有主机都会接收到这个包。
如果一个主机的IP地址和ARP请求中的目的IP地址相同,该主机会对这个请求数据包作出ARP应答,将其MAC地址发送给请求端。
6、ARP请求或应答的分组格式
图3ARP协议的分组格式
字段说明:
硬件类型:
表示硬件类型,例如:
1表示以太网。
协议类型:
表示要映射的协议类型,例如0x0800表示IP地址。
硬件长度:
指明硬件地址长度,单位是字节,MAC是48位,6个字节。
协议长度:
高层协议地址的长度,对于IP地址,长度是4个字节。
操作字段:
共有二种操作类型,1表示ARP请求,2表示ARP应答。
发送方MAC:
6个字节的发送方MAC地址。
发送方IP:
4个字节的发送方IP地址。
目的MAC:
6个字节的目的MAC地址。
目的IP:
4个字节的目的IP地址。
7、ARP缓存和ARP命令
为减少广播通信量和提高ARP解析速度,每个主机都有ARP高速缓存,用于存放解析过的MAC和IP的映射关系。
ARP缓存表是可以通过命令查询的。
在命令提示符下,输入“arp-a”可以查看ARP缓存表中的内容,“arp-d”清除ARP缓存。
8、ARP工作过程
假设网络中的计算机A要和计算机B交换数据,首先计算机A要得到计算机B的IP地址和MAC地址的映射关系,工作过程如下:
①计算机A检查自己的高速缓存中的ARP表,判断ARP表中是否存有计算机B的IP地址与MAC地址的映射关系。
如果找到,则完成ARP地址解析;如果没有找到,则转至②。
②计算机A广播含有自身IP地址与MAC地址映射关系的请求信息包,请求解析计算机B的IP的地址与MAC地址映射关系。
③包括计算机B在内的所有计算机接收到计算机A的请求信息,然后将计算机A的IP地址与MAC地址的映射关系存入各自的ARP表中。
④计算机B发送ARP响应信息,通知自己的IP地址与MAC地址的对应关系。
⑤计算机A收到计算机B的响应信息,并将计算机B的IP地址与MAC地址的映射关系存入自己的ARP表中,从而完成计算机B的ARP地址解析。
实验内容及过程(步骤):
实验内容
1、学会根据IP地址的分类方式区分各类IP地址;
2、掌握IP数据报的格式、长度以及各字段的功能;
3、学会利用子网掩码确定IP地址的网络号、子网号和主机号;
4、学会分析给定数据包的IP首部信息;
5、学会手工计算IP校验和的方法;
6、学习ARP协议的工作原理;
7、掌握ARP协议的作用和使用方法;
8、理解IP地址与MAC地址的对应关系;
实验步骤
练习一:
利用协议仿真编辑器编辑并发送IP数据包
1、打开协议仿真编辑器,在工具栏选择“新建”,建立一个以太网帧(也可以使用系统打开时默认建立的以太网帧进行编辑);
2、手动填写“源MAC地址”,或在地址本中双击主机自动填入。
3、手动填写“目的MAC地址”,或在地址本中双击主机自动填入。
4、填写“类型或长度”:
该字段值为0800(即IP协议的类型值)或者选择工具栏中的IP协议,此时,单帧编辑区中自动添加IP协议的各属性字段,并有默认值。
右侧的协议模型图也会相应增加IP层显示。
5、填写IP协议头信息:
⑴版本号和首部长度:
版本号为4,首部长度为5(即20个字节);
⑵服务类型TOS:
00
⑶总长度:
该值为IP首部长度加上数据部分的长度;如果没有数据该字段应为20,否则加上数据的长度;
⑷标识号:
可以采用默认值,或任意值,例如12345;
⑸标志字段:
通过修改各种标志值,在监控端捕获数据包分析理解各种标志含义;
⑹生存时间:
可以采用默认值128;
⑺高层协议类型:
即IP携带的上层协议类型(例如:
TCP为6,UDP为17,ICMP为1);本实验填0(没有上层协议数据);
⑻首部校验和;先添0,等全部字段填完后再计算;
⑼源IP地址:
注意,仿真编辑器可以仿真本机发送IP数据包,也可以仿真另一台机器发送IP数据包,所以,源IP地址字段可以填写本机IP地址,也可以填写其它机器的IP地址(注意协议分析器的显示过滤器设置);
⑽目的IP地址:
从地址本中选择一个目的主机的IP地址,双击自动填加;
⑾当上述各字段值均已填写完毕后,可以通过两种方法计算首部校验和的值;
6、计算“校验和”
⑴方法一:
手工计算
首先把“校验和”字段置为0,单击M按钮,弹出手动计算校验和窗口,单击IP协议首部,十六进制对照表中对应的十六进制数据会以绿色标注。
右键拷贝,粘贴到IP首部文本框中,单击计算按钮,得出校验和。
或在十六进制中右键直接计算校验和。
⑵方法二:
自动校验
单击A按钮实现自动计算并填充。
7、如果要编辑多个IP数据包,可重复上述步骤,并可在多帧编辑器中设置每一帧的发送次数和发送每帧的时间间隔;
8、点击工具栏或菜单栏中的“发送”,在弹出的对话框中选择“发送”按钮,发送帧序列;
9、协议分析器一端截获数据包并分析;
10、将编辑正确的IP包保存到文件:
IP.pkt
练习二:
运行ipconfig命令
1、在“工具”菜单中选择“命令行”,出现提示符后输入ipconfig/all
2、观察运行结果,获得本机的IP地址及子网掩码;
3、分析本主机属于哪一类IP地址,网络号、子网号和主机号分别是什么;
4、利用本机的IP地址及子网掩码,找出地址本中与本机属于同一子网的主机
练习三:
运行netstat命令
Netstat命令用于显示与IP、ICM、TCP和UDP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
1、在命令行提示符下运行:
C:
>netstat–r;显示本机路由表,记录本机的缺省网关的IP地址;
2、在命令行提示符下运行:
C:
>netstat–s;观察IP协议部分,查看本机已经接收和发送的IP报文个数。
练习四:
运行Ping命令
1、在地址本中选择与本主机在同一子网中另一主机的IP地址(假设为:
172.16.1.46);
⑴在命令行方式下运行:
ping172.16.1.46;
⑵在协议分析器一端捕获数据,记录源、目的MAC地址和源、目的IP地址;
⑶按照地址本中的记录,分析捕获数据的MAC地址与IP地址的对应关系;
⑷在协议分析器一端,查看“会话分析”中的“会话图解”,了解PING程序的会话过程。
2、选择与本主机属于不同子网另一主机的IP地址(假设为:
172.16.0.34);
⑴在命令行方式下运行:
ping172.16.0.34;
⑵协议分析器端捕获数据,记录源、目的MAC地址和源、目的IP地址;
⑶分析捕获数据的MAC地址与IP地址是否具有对应关系。
⑷在协议分析器端,查看“会话分析”中的“会话图解”,分析PING程序的会话过程。
3、比较上面两个实验的结果,分析二者有何不同?
练习五:
仿真发送ARP请求报文(同网段内)
本练习的目的是理解ARP协议的数据包格式和协议的功能。
1、在命令提示符下运行:
C:
>arp–d清空ARP高速缓存。
2、编辑并发送ARP请求帧:
⑴打开协议仿真编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用协议仿真编辑器打开时默认的以太网帧进行编辑;
⑵填写该以太网帧的各字段值;
①源MAC地址:
可以为本机的MAC地址,也可以仿真其他主机发送ARP请求报文。
其他主机的MAC地址可根据主机名在地址本中获得。
如果仿真其他主机发送ARP请求报文,应注意协议分析器的过滤器设置。
②目的MAC地址:
对于ARP请求来说,目的MAC地址应该是什么?
我们常说ARP广播帧,所以目的MAC应该是广播地址:
FFFFFF-FFFFFF;
③类型或长度字段:
0806H(即:
上层是ARP协议类型值)或者单击工具栏中的ARP协议选项,此时:
单帧编辑区中将显示上APR协议的各属性字段,并有默认的属性值。
⑶填写ARP协议信息:
①硬件类型:
1,以太网地址;
②协议类型:
0800,要映射的协议地址类型为IP地址类型;
③硬件地址长度:
6,MAC地址是6个字节48位;
④协议地址长度:
4,IP地址是4个字节32位;
⑤操作字段:
1,APR请求;2,ARP应答;
⑥发送端MAC地址:
发送ARP包的源主机的MAC地址;
⑦发送端IP地址:
发送ARP包的源主机的IP地址;
⑧目的端MAC地址:
任意,可以填0;
⑨目的端IP地址:
选择目的主机的IP地址;
⑷点击工具栏或菜单栏中的“发送”,在弹出对话框中选择“发送”按钮;
⑸在协议分析器端捕获该请求数据包及ARP响应包并分析,ARP响应包的源地址是多少?
图4ARP协议树的示意图
3、将编辑正确的ARP帧保存到文件:
ARP.pkt。
4、在仿真端和分析端命令提示符下运行:
C:
>arp–a;检查ARP高速缓存中的内容,是否发生了变化?
注:
若仿真端接收响应信息后缓存表里没有目的主机的信息列出,则说明操作系统未读取显示目的主机的地址解析。
练习六:
仿真发送ARP请求报文(不同网段内)
1、参照练习一,编辑一个ARP数据包,目的主机的IP选择其他网络(例如:
172.16.0.56);
2、在协议分析器一端捕获该数据包及ARP响应包并分析,观察ARP协议的会话过程。
3、记录ARP响应包的源地址MAC是多少?
该MAC是否是目的IP的MAC?
理解ARP路由代理的过程。
练习七:
运行Ping命令(同一子网内)
1、在命令提示符下运行arp–d命令,清空ARP高速缓存;
2、在命令提示符下运行arp–a命令,检查ARP高速缓存。
3、从地址本中选择与本机属于同一子网的某主机的IP地址(例如:
172.16.1.56)作为Ping命令的参数,然后在命令提示符下运行:
C:
>Ping172.16.1.56
4、在协议分析器一端捕获数据报文并分析:
⑴其中是否有ARP请求及应答报文?
⑵分析各ARP报文:
源、目的MAC地址都是什么?
源、目的IP地址都是什么?
⑶为什么产生这样的ARP报文?
5、在命令提示符下运行:
arp–a命令,检查ARP高速缓存中的内容是否发生变化?
分析原因。
6、清空协议分析器的ARP高速缓存,再次运行Ping172.16.1.56,在协议分析器一端捕获的数据报文是否和上一次一样?
练习八:
运行Ping命令(经网关连接的不同子网上的主机)
1、在命令提示符下运行:
arp–d命令,清空ARP高速缓存
2、在命令提示符下运行:
arp–a命令,检查ARP高速缓存
3、从地址本选择与本机属于不同子网的主机的IP地址(例如:
172.16.0.34),然后在命令提示符下运行:
C:
>Ping172.16.0.34
4、在协议分析器一端捕获数据报文:
⑴其中是否有ARP请求及应答报文数据包?
⑵分析各ARP报文:
源、目的MAC地址是什么?
源、目的IP地址是什么?
5、在命令提示符下运行arp–a命令,检查ARP高速缓存中的内容是否发生变化,是否存在172.16.0.34和其MAC的“地址对”?
分析原因。
6、比较练习八和练习九两实验中得到的ARP报文有何不同?
分析产生二者区别的原因?
实验中任务
实验结果:
练习一:
利用协议仿真编辑器编辑并发送IP数据包
练习二:
运行ipconfig命令
实验后任务
实验中遇到的问题及解决方法:
1.在手动计算首部校验和时,老是计算错误,通过学习和询问同学学会了手动计算首部校验和的方法和注意事项
2.在填写ARP是,发送帧时提示错误。
在编写填写“类型或长度”字段时,填写的数据不知道该填写多少,导致LLC信息帧发送有错误,最后通过问同学知道了帧格式中具体体现数据长度的标示符,然后修改帧成功发送
3.协议分析器在发送数据后才打开,将结果接收不到数据,经过多次设置接受过滤和多次刷新选取,最后找到正确的帧传送和相应模式.
实验总结:
在本次实验中学会了IP数据包的编写过程以及IP协议用于管理客户端和服务器端之间的报文传送,是互联网最重要的网际协议。
IP地址是互联网主机的唯一标识。
网络通信时使用IP地址来指定接收端的主机地址。
填写“类型或长度”:
字段值应为0800。
知道了如何计算首部校验和。
知道了仿真发送ARP请求报文的编写步骤。
类型或长度字段为0806H。
其中首部校验和既可以手动计算也可以自动计算,首部校验和没有计算或者计算错误,在协议解析器的接收中都会自动提示更正。
成绩评定
实验前任务(60%)
实验中任务(30%)
实验后任务(10%)
总分
成绩评定标准:
90分以上:
出色地完成所有实验内容,报告格式,图表规范,书写工整,实验数据准确,结论正确。
态度认真。
80--90分:
良好地完成所有实验内容,报告格式,图表规范,书写欠工整,实验数据准确,结论正确,态度认真。
70--80分:
较好地完成所有实验内容,报告格式,图表欠规范,书写不工整,实验数据基本准确,结论正确,态度认真。
60--70分:
能完成所有实验内容,报告格式,图表不规范,书写不工整,实验数据基本准确,结论不够清晰,态度欠认真。
60分以下:
没有完成实验内容,报告格式,图表不规范,书写不工整,实验数据欠准确,结论不清晰,态度不认真。
指导教师签名:
年月日