IP数据报头模拟分析程序报告.docx
----精品文档word可编辑
武汉理工大学华夏学院
课程设计
课程名称
题目
专业计算机网络班级
学号
姓名成绩
指导教师
2010年1月14日
课程设计任务书
设计题目:IP数据报头模拟分析程序
设计目的:
1.巩固和加深课堂所学知识;
2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;
3.通过编写计算机程序模拟网络通信的某些功能,使学生理解并掌握网络通信系统的基本
工作原理及工作过程。
设计任务:(在规定的时间内完成下列任务)
1、任务:设计一个模拟分析IP数据报头的程序
2、功能要求:随意输入IP数据报头(二进制形式,20字节),分析该报头各字段的值,并
以点分十进制表示输出源地址和目的地址。
时间安排:
1月11日
布置题目,确定任务、查找相关资料
1月12日~1月14日
功能分析,软件总体设计,拟定详细设计,编写程序,
调试程序、运行系统;
1月15日
答辩后撰写设计报告。
具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写)
具体内容如下:
1.设计任务与要求
2.总体方案与说明
3.软件主要模块流程图
4.源程序清单与注释
5.问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解
决方法及改进设想);
6.小结与体会
附录:①源程序(必须有简单注释)②使用说明③参考资料
指导教师签名:
2010年1月11日
教研室主任(或责任教师)签名:2010年1月11日
1.设计任务与要求
1.1任务:设计一个模拟分析IP数据报头的程序
1.2要求:随意输入IP数据报头(二进制形式,20字节),分析该报头各字段的值,并以点分十进制表示输出源地址和目的地址。
2.总体方案与说明
2.1数据报输出:
IPV4报头有12个必需的字段和可选IP选项字段,位于要发送的数据之前。如果使用IP层已有的库或其他组件,一般不必考虑报头中的大多数字段,但程序代码需要提供源端和目的端地址。
1、版本(4比特)
IP协议版本已经经过多次修订,1981年的RFCO791描述了IPV4,RCF2460
中介绍了IPV6。
2、报头长度(4比特)
报头长度是报头数据的长度,以4字节表示,也就是以32字节为单位。报头长度是可变的。必需的字段使用20字节(报头长度为5,IP选项字段最多有40个附加字节(报头长度为15)。
3、服务类型(8比特)
该字段给出发送进程建议路由器如何处理报片的方法。可选择最大可靠性、最小延迟、最大吞吐量和最小开销。路由器可以忽略这部分。
4、数据报长度(16比特)
该字段是报头长度和数据字节的总和,以字节为单位。最大长度为65535
字节。
5、标识符(16比特)
原是数据的主机为数据报分配一个唯一的数据报标识符。在数据报传向目的地址时,如果路由器将数据报分为报片,那么每个报片都有相同的数据标识符。
6、标志(3比特)
标志字段中有2为与报片有关。
2.2方案:
利用VB实现IP数据报报文的分析。
当输入一串二进制数时,利用四个按钮分别实现“源地址”,“目的地址”,“版本”,“首部长度”的输出。如图:
Nexti
Form
Form1
输出IP数据报报文:
源地址:
目的地址:
版本:
首部长度:
清除
源地址
目的地址
首部长度
结束
版本
图2窗体的制作
3.源程序清单与注释
3.1“源地址”按钮:
PrivateSubCommand1Click0
Dimb(31)AsInteger,a(3)AsInteger
Fori=0To7
b(i)=Val(Mid(Text1.Text,97+i,1))*(2^(7-i))
a(0)=a(0)+b(i)
Nexti
Fori=8To15
b(i)=Val(Mid(Text1.Text,97+i,1))*(2^(15-i))
a(1)=a(1)+b(i)
Nexti