网络课设-ICMP
- 格式:doc
- 大小:202.00 KB
- 文档页数:20
计算机网络课程设计一.中小型千兆网吧组建内容及要求:用BOSON软件实现小规模网络的模拟。
熟悉对路由器和交换机的配置命令,调通网络,并通过实例深入理解网络基本工作原理及实现方法。
学会网络构建、日常IP地址1.2.3.4.5.6.写出课程设计报告:设计目的、设计内容、设计方案、拓扑图、设备选型、方案报价、子网划分等内容。
(1)企业网络工程(2)银行网络工程(3)医院网络工程(4)校园网网络工程(5)大型机场信息网络工程(6)邮电综合管理信息网(7)某航空公司网络系统建设(8)某市宽带信息网络(9)证券交易网络系统(10)学校以太网网络建设三.Ping程序的设计与实现设计的目的是使学生掌握网络层协议的原理及实现方法。
设计内容,在给定的Ping程序的基础上做如下功能扩充:●-h 显示帮助信息●●●PingPing消息。
ICMPIdentification,Flags,FragmentOffset用于IP包分段TimetoLiveIP包的存活时长ProtocolICMP=1Addresses发送Echo消息的源地址是发送Echoreply消息的目的地址,相反,发送Echo消息的目的地址是发送Echoreply消息的源地址。
Ping实际上是使用ICMP中的ECHO报文来实现的。
Echo或EchoReply消息格式如下:012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Code|Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Identifier|SequenceNumber|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Data...+-+-+-+-+-Typeecho消息的类型为8echoreply的消息类型为0。
** 学 院课程设计报告书课程名称 设计题目 专业班级 学号 姓名 指导教师 验收教师网络安全课程设计 ARP 地址欺骗与 ICMP 重定向设计2012 年 6 月目录1 设计时间 .............................................................................错误!未定义书签。
2 设计目的 .............................................................................错误!未定义书签。
3 设计任务 .............................................................................错误!未定义书签。
4 设计内容 .............................................................................错误!未定义书签。
4.1 ARP 地址欺骗的设计 ......................................................错误!未定义书签。
4.1.1 实验环境.................................................................错误!未定义书签。
4.1.2 基础理论.................................................................错误!未定义书签。
4.1.3 实验过程及验证结果.............................................错误!未定义书签。
4.1.4 问答题.....................................................................错误!未定义书签。
ping程序设计与实现课程设计一、课程目标知识目标:1. 学生能理解ping程序的工作原理,掌握网络诊断的基本方法。
2. 学生能描述IP协议、ICMP协议的基本概念及其在ping程序中的应用。
3. 学生了解计算机网络的通信原理,掌握如何利用ping程序检测网络连通性。
技能目标:1. 学生能运用所学知识,独立编写简单的ping程序。
2. 学生通过实践操作,提高问题分析及解决能力,具备基本的网络诊断技巧。
3. 学生掌握使用编程工具(如:IDE、编译器等)进行代码编写、调试和优化。
情感态度价值观目标:1. 学生培养对计算机网络的兴趣,激发学习编程的热情。
2. 学生在学习过程中,培养团队协作、沟通表达的能力,增强自信心。
3. 学生通过本课程的学习,认识到网络技术在实际应用中的重要性,培养对网络安全的责任感。
分析课程性质、学生特点和教学要求,本课程旨在让学生掌握ping程序的设计与实现,结合实际操作,提高学生的编程能力和网络诊断技巧。
课程目标具体、可衡量,有助于教师进行教学设计和评估。
通过本课程的学习,学生将具备基本的网络编程知识和技能,为今后的学习和工作打下坚实基础。
二、教学内容1. 网络基础知识回顾:IP协议、ICMP协议、网络层通信原理。
2. ping程序工作原理:发送ICMP请求、接收ICMP回复、计算往返时间(RTT)。
3. 编程语言基础:C语言或Python语言的基本语法,重点掌握数据类型、控制结构、函数定义。
4. ping程序设计与实现:- 环境搭建:安装编程工具、配置网络环境。
- 代码编写:根据ping程序工作原理,编写发送和接收ICMP请求的代码。
- 调试与优化:调试代码,处理异常情况,优化程序性能。
5. 实践操作:分组进行实际操作,组内讨论、分析问题,相互协作完成ping 程序编写。
6. 网络诊断技巧:运用ping程序检测网络连通性,分析网络延迟、丢包等问题。
教学内容安排和进度:第一课时:网络基础知识回顾,介绍ping程序工作原理。
监控IP包流量摘要本课程设计主要是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来。
程序中会用到Winpcap,它主要功能在于独立于主机协议发送和接收原始数据报。
本次课程设计中用VC++实现基于Winpcap的IP数据包的捕获和统计,根据获取网络设备列表,选择正确的网卡并打开,获取子网掩码,编译、设置过滤器,捕获数据包;列出源IP地址及其相应的包数。
使我们对于TCP/IP协议以及IP数据抱的格式有了进一步的了解和掌握。
通过编写程序从而实现对网络中IP数据包流量的统计。
1、引言1.1 课程设计目的本次课程设计主要是通过用VC++编程实现对网络中IP数据包流量的统计,也就是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来。
同时应用Winpcap,Winpcap提供了很好的捕获网络数据包的方法,通过本次课程设计可以将VC++知识与Winpcap结合起来实现在一段时间内对IP数据包的流量进行统计,加深了对Winpcap 的理解和运用能力。
1.2 课程设计的要求(1)理解运用VC++软件实现对网络中的IP数据抱流量的统计方法和步骤。
(2)学习简单的MFC框架结构;(3)加深理解TCP/IP协议以及IP数据抱的格式;(4)提高网络编程能力,增加实际应用能力;(5)学会文献检索的基本方法和综合运用文献的能力。
1.3设计平台Microsoft Visual C++ 6.02、设计原理IP是ICP/IP协议体系中的网络层协议,TCP、UDP、ICMP和IGMP等其他协议都是以IP 协议为基础的。
程序中用到的Winpcap是UNIX下的lipbcap移植到Windows下的产物,是Win32环境下数据包捕获的开放代码函数库。
计算机网络的课程设计一、课程目标知识目标:1. 让学生理解计算机网络的基本概念,掌握网络的结构、分类及工作原理。
2. 使学生掌握TCP/IP协议的基本原理,了解不同层级的网络协议及其功能。
3. 帮助学生了解网络设备的基本功能,如交换机、路由器等,并掌握其配置方法。
技能目标:1. 培养学生运用所学知识构建小型网络的能力,提高实际操作技能。
2. 培养学生运用网络命令和软件分析网络故障,具备一定的网络维护能力。
3. 提高学生的团队协作能力,通过分组讨论和实践,共同解决问题。
情感态度价值观目标:1. 培养学生对计算机网络技术的兴趣,激发他们探索网络世界的热情。
2. 培养学生具备网络安全意识,遵守网络道德规范,合理使用网络资源。
3. 通过学习计算机网络,使学生认识到科技对社会发展的作用,增强社会责任感。
课程性质分析:本课程旨在让学生深入了解计算机网络的原理和应用,结合实践操作,提高学生的网络技能。
学生特点分析:高中生具有一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇心,但需引导他们将理论知识与实际应用相结合。
教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力。
2. 创设情境,激发学生的学习兴趣,引导他们主动探究。
3. 强调团队协作,培养学生的沟通能力和协作精神。
二、教学内容1. 计算机网络基本概念:包括网络定义、功能、分类及拓扑结构。
教材章节:第一章 计算机网络概述2. 网络体系结构:学习OSI七层模型和TCP/IP四层模型,了解各层功能及协议。
教材章节:第二章 网络体系结构及协议3. 网络设备与传输介质:介绍常用的网络设备(如交换机、路由器等)及传输介质(如双绞线、光纤等)。
教材章节:第三章 网络设备与传输介质4. 网络协议详解:深入学习TCP/IP协议族,包括IP、TCP、UDP、ICMP等协议。
教材章节:第四章 网络协议5. 网络配置与管理:学习网络设备的配置方法,了解网络管理的基本知识。
ICMP协议是什么1. ICMP协议简介ICMP(Internet Control Message Protocol)协议是一种网络协议,用于在IP网络中传递错误、控制和诊断信息。
它是TCP/IP协议族中的一个重要组成部分,常用于网络故障排查、网络管理和网络性能测量等方面。
ICMP协议主要通过发送控制消息来实现其功能。
它封装在IP数据包中,作为IP协议的一个扩展,用于向网络中的其他设备发送消息。
ICMP消息通常由操作系统或网络设备生成,用于报告错误、确认连接、请求回应等。
2. ICMP消息类型ICMP协议定义了多种消息类型,每种类型都有其特定的目的和功能。
以下是常见的几种ICMP消息类型:2.1 回显请求和回显应答(Echo Request/Reply)回显请求(Echo Request)消息用于测试网络连接和延迟。
当一台主机发送回显请求消息时,目标主机会返回一个回显应答(Echo Reply)消息,以确认网络连接正常。
2.2 目的不可达(Destination Unreachable)目的不可达消息用于报告数据包发送失败的原因。
当一个数据包无法到达目的地时,中间路由器会向源主机发送目的不可达消息,以便源主机能够得知发送失败的原因。
2.3 超时(Time Exceeded)超时消息用于报告数据包在传输过程中发生超时的情况。
当一个数据包的生存时间(TTL)超过设定的阈值或在路由过程中出现环路时,中间路由器会向源主机发送超时消息,以便源主机能够得知数据包传输失败的原因。
2.4 参数问题(Parameter Problem)参数问题消息用于报告IP数据包中的参数错误。
当一个数据包的头部信息不符合规范或存在错误时,中间路由器会向源主机发送参数问题消息,以便源主机能够纠正错误并重新发送数据包。
2.5 重定向(Redirect)重定向消息用于通知源主机修改其路由表。
当一个中间路由器发现一个数据包的最佳路径发生变化时,它会向源主机发送重定向消息,以便源主机能够更新其路由表,选择更优的路径。
ICMP扫描程序的设计与实现学生姓名:帅哥指导教师:刘青摘要:我们常用Ping程序来判断一个特定的主机是否处于活动状态.该程序发送一个ICMP回应请求报文给主机,然后等待返回的ICMP报文回应应答就可以知道自己是否能成功的访问到那台机器.本次课程设计涉及到MFC的应用,要在充分了解套接字的实现以及IP,ICMP的格式,功能等的基础上才能实现此设计。
关键字:ICMP;扫描;程序;协议;目录1 引言 (3)1.1 课程设计目的 (3)1.2 课程设计要求 (3)2 概要设计 (4)2.1 设计原理 (4)2.2 数据结构设计 (4)2.3 系统流程图 (6)3 详细设计 (8)3.1 ICMP报文分析 (8)3.2 程序功能分析 (9)4 测试结果 (12)4.1 遇到问题 (12)4.2 测试结果 (12)5 结束语 (13)参考文献 (14)附录及源代码 (15)1 引言1.1 课程设计目的IP协议的优点是简单,但缺少差错控制和查询机制,而网际控制报文协议(ICMP具有补充IP功能的作用。
在网络管理中,常常要确定当前网络在红处于活动状态的主机,这时可以通过ICMP的回送和回送响应消息来完成这项工作。
这课程设计的目的就是编制程序,利用ICMP数据包,发现网络中的活动主机,即ping消息的请求和应答。
通过课程设计,熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识,培养综合运用网络知识解决实际问题能力。
1.2 课程设计要求设计程序,其功能是发送ICMP数据包,以获取指定望段中的活动主机,并将结果显示在标准输出设备上程序的具体要求如下:1.用命令形式运行scanhost为程序名;start_ip为被搜索网段;end_ip为被搜索网段的结束IP地址。
如在命令行输入scanhost 192.168.0.1 192.168.0.1002.输出格式活动主机1的IP地址活动主机2的IP地址活动主机n的IP地址2 概要设计2.1 设计原理本程序使用的原始套接字生成ICMP请求/应答报文来进行活动主机的探查。
计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。
运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。
格式要求及须知:(1)使用信息学院网站()的课程设计模版,要求格式美观,字体及编号要求见表1。
(2)(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。
(4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。
(5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。
打印后递送到信息楼各指导老师的信箱中或办公室中。
(6)如发现两组设计雷同或来自互联网,该组重做。
题目:题目1 应用服务器配置与管理1、设计要求为校园网络中心设计和建立服务器群,能够提供:DNS,DHCP,WEB,FTP服务器。
要求网络中的普通用户使用动态IP地址,在WEB服务器上设置两个不同的站点,使用户可用不同的名字访问不同的站点,而且用户可以使用网内的FTP服务器进行内部网络的文件上传、下载。
FTP、Web服务器能够通过域名访问。
2、课程设计报告内容(1) 解释每个服务器的相关工作原理;(2) 给出各个服务器的功能说明;(3) 列出每个服务器的IP地址及域名规划;(4) 每个服务器给出配置的结果测试;(5) 给出每个服务器的综合验证结果。
题目2 一个简单企业网的设计与实现1、设计要求某企业有办公室、财务部、销售部、设计部、生产部5个部门,每个部门配置8台计算机。
计算机网络课程设计ICMP协议专业名称计算机科学与技术班级学号学生姓名指导教师设计时间2011.7.4~2010.7.17课程设计任务书专业:计算机科学与技术学号:学生姓名:设计题目:ICMP协议一、设计实验条件综合楼808实验室二、设计任务及要求1.利用VB实现ICMP的基本功能;2.ICMP的Ping排错工具;3.ICMP的Traceroute排错工具。
三、设计报告的内容1.设计题目与设计任务设计题目:ICMP协议设计任务:利用VB实现ICMP的基本功能2.前言ICMP(Internet Control Message Protocol)是网际控制报文协议。
它是TCP/IP 协议族的一个子协议,属于网络层协议。
主要用于在主机与路由器之间传递控制信息,提供差错报告和网络诊断的功能,例如目的主机不可达,发送分组超时等消息。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
从技术角度来说,ICMP就是一个“错误侦测与回报机制”。
常用的ICMP 工具有Ping和Traceroute两个。
Ping用来检测远端主机是否可达,诊断网络连通情况。
Traceroute用来发现到目的节点所经历的所有路由器,获得网络的拓扑结构信息,诊断排除网络故障。
本课程设计中实现了使用ICMP进行排错的工具:Ping和Traceroute。
3.设计主体(各部分设计内容、分析、结论等)1)关于ICMP报文ICMP报文可划分为两大类:差错报告报文(error-reporting messages)和查询报文(query messages)。
差错报告报文报告了路由器或主机(终点)在处理IP数据报时可能遇到的问题。
查询报文总是成双成对地出现,它帮助主机或网络管理员从某个路由器或对方主机那里获取特定的信息。
例如,结点可以去发现它们的邻站。
同样,主机也可以发现和了解它们所在的网络上的一些路由器的情况,而路由器又能够帮助一个结点改变报文的路由。
表1列出了每一类ICMP报文。
表1. ICMP报文种类类型报文差错报告报文 3 终点不可达4 源点抑制11 超时12 参数问题5 改变路由查询报文8或0 回送请求或回答13或14 时间戳请求或回答报文格式:ICMP报文由一个8字节的首部和可变长度的数据部分组成。
虽然对每一种报文类型,首部的一般格式都是不同的,但前4个字节对所有类型来说都是相同的。
如图1所示,第一个字段是ICMP的类型,它定义了报文类型。
代码字段指明了发送这个特定报文类型的原因。
最后一个共同的字段是检验和字段。
其余部分对于每一种类型的报文都是特有的。
在差错报文中,数据部分携带的是用于找出引起差错的原始分组的信息。
在查询报文中,数据部分携带的是基于查询类型的额外信息。
下图中,图1给出了ICMP报文的一般格式,图2给出了ICMP报文的类型。
8位8位16位类型代码校验和首部的其余部分数据部分图1:ICMP报文的一般格式图2:ICMP报文类型2)关于PingPing程序可以查出某个主机是否已加电并能够响应。
源主机发送ICMP回送请求报文(类型:8,代码:0)。
如果终点已加电,就会返回ICMP回送回答报文。
程序ping在回送请求和回送回答报文中设置了标识符字段,并使序号从0开始,每发送一个新报文序号就递增1。
Ping能够计算往返时间,它在报文的数据部分插入了发送时间。
当分组到达时,它就用到达时间减去出发时间得出往返时间(round-trip time, RTT)。
Ping程序结束后会发给我们一个统计值,这个统计值告诉我们发送的分组数、接受到的分组数、总时间、RTT的最小值、最大值和平均值。
3)关于TracerouteTraceroute可以用来跟踪一个分组从源点到终点的路径。
这个程序很巧妙地使用了两个ICMP报文—超时报文和终点不可达报文来找出一个分组的路由。
这是一个应用级程序,它使用UDP服务。
该诊断实用程序通过向目的地发送具有不同生存时间(TTL) 的ICMP回应报文,以确定至目的地的路由。
路径上的每个路由器都要在转发该ICMP 回应报文之前将其TTL 值至少减1,因此TTL 是有效的跳转计数。
当报文的TTL 值减少到0 时,路由器向源系统发回ICMP 超时信息。
通过发送TTL 为 1 的第一个回应报文并且在随后的发送中每次将TTL 值加1,直到目标响应或达到最大TTL 值,Traceroute 可以确定路由。
通过检查中间路由器发发回的ICMP 超时(time Exceeded) 信息,可以确定路由器。
Traceroute程序记录了到达的IP数据报的目的地址,跟踪了从源点到终点的路径,并记下了往返时间。
4)程序关键代码声明Windows API函数:Declare Function gethostname Lib "wsock32.dll" (ByVal hostname$, HostLen&) As LongDeclare Function gethostbyname& Lib "wsock32.dll" (ByVal hostname$)Declare Function WSAGetLastError Lib "wsock32.dll" () As LongDeclare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAData As WSAdata) As LongDeclare Function WSACleanup Lib "wsock32.dll" () As LongDeclare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)Declare Function IcmpCreateFile Lib "icmp.dll" () As LongDeclare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As BooleanDeclare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, _ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, _ReplyBuffer As IP_ECHO_REPL Y, ByVal ReplySize As Long, ByVal TimeOut As Long) As BooleanForm中的代码显示:If TraceRT = False ThenIf pIPe.Status = 0 ThenText3.Text = Text3.Text + " Reply from " + RespondingHost + ": Bytes = " + Trim$(CStr(pIPe.DataSize)) + " RTT = " + Trim$(CStr(pIPe.RoundTripTime)) + "ms TTL = " + Trim$(CStr(pIPe.Options.TTL)) + Chr$(13) + Chr$(10)ElseText3.Text = Text3.Text + " Reply from " + RespondingHost + ": " + RCode + Chr$(13) + Chr$(10)End IfElseIf TTL - 1 < 10 Then Text3.Text = Text3.Text + " Hop # 0" + CStr(TTL - 1) Else Text3.Text = Text3.Text + " Hop # " + CStr(TTL - 1)Text3.Text = Text3.Text + " " + RespondingHost + Chr$(13) + Chr$(10) End IfSocket:MaxSockets = WSAdata.iMaxSocketsIf MaxSockets < 0 ThenMaxSockets = 65536 + MaxSocketsEnd IfMaxUDP = WSAdata.iMaxUdpDgIf MaxUDP < 0 ThenMaxUDP = 65536 + MaxUDPEnd IfPing:vbWSAStartup ' Initialize WinsockvbGetHostByName ' Get the IPAddress for the Host vbIcmpCreateFile ' Get ICMP HandlevbIcmpSendEcho ' Send the ICMP Echo RequestvbIcmpCloseHandle ' Close the ICMP Handle vbWSACleanup ' Close WinsockTrace:vbWSAStartup ' Initialize Winsock vbGetHostByName ' Get the IPAddress for the Host vbIcmpCreateFile ' Get ICMP Handle vbIcmpSendEcho ' Send the ICMP Echo Request vbIcmpCloseHandle ' Close the ICMP Handle vbWSACleanup ' Close Winsock5)程序运行截图图3 ping图4 Traceroute4.结束语本课程设计实现了使用ICMP进行排错的工具:Ping和Traceroute。