资源描述
计算机网络课程设计
设计提纲 1
一、 运用Socket实现双机通信 1
二、 基于WinSock即时通信软件功能原理模仿 1
三、 理解最基本RS232接口网络编程办法 1
四、 帧封装 1
五、 以太网帧发送过程 2
六、 发送以太网 ARP包 3
七、 解析IP数据包 4
八、 监控IP包流量 4
九、 IP地址合法性验证 5
十、 发送TCP数据包 5
十一、 OSPF实现 6
十三、 简朴FTP服务器实现 8
十四、 基于中间件技术Web服务系统 8
十五、 网络管理命令软件包设计 9
十六、 编写一种类似 QQ聊天程序 9
十七、 VLAN构建 9
十八、 Frame Relay 构建 9
十九、 基于UDP合同数据包收发程序 10
二十、 滑动窗口合同仿真 10
二十一、 RIP合同仿真 10
二十二、 软件防火墙设计 10
二十三、 软件VPN设计 10
二十四、 网络监视器设计 11
二十五、 FTP站点搜索引擎 11
一、 规定
每位学生选取一种项目使用Java、C、VC或C#进行设计,每个小组最多3人,并要有明确分工。
通过课程设计协助学生进一步理解网络基本工作原理和合同设计思想,掌握解决网络问题基本办法。
二、 实习起止时间:.9.6 至 .9.10
三、 考核时间和原则
本周五(9月10日)早上8:00开始,按学号演示设计成果。9月17日(下周五)下午5:00之前必要提交各小组课程实验报告(电子版和打印稿)
依照题目难易度、实现技术、完毕状况和报告撰写质量予以A,B,C,D,E五级评分。
设计提纲
一、 运用Socket实现双机通信
目与规定: 运用WinSock来实现双机通信,理解TCP状态机图。规定使用WinSock编程,采用其中TCP面向连接方式,实现文本数据互换。
二、 基于WinSock即时通信软件功能原理模仿
目与规定: 运用WinSock进行点对点通信,工作机制模仿即时通信软件基本功能,登陆,上线,传递信息等等。分为客户某些和服务器某些两块,客户某些类似普通通信软件例如QQ,服务器某些重要提供客户端顾客基本数据配备。
三、 理解最基本RS232接口网络编程办法
目与规定:编写一种简朴应用程序完毕双机通信,采用停止-等待合同。
四、 帧封装
目: 构造帧对于理解网络合同概念、合同执行过程,以及网络问题解决普通办法具备重要意义。依照数据链路层基本原理,针对普遍应用Ethernet帧,通过构造一种详细帧,引导同窗进一步理解网络合同基本概念与网络问题解决普通办法。
规定: 编写程序,依照给出原始数据(即需要提供MAC帧构造中“目MAC地址”、“源MAC地址”、“类型字段”、“数据字段”,详细值可以自己任意给定;更好做法,是用Wireshark等抓包工具捕获数据包(例如,捕获一种UDP数据包)按照捕获到数据包内容来提供MAC帧格式中各个字段某些,由于“数据字段”某些就是承载IP、ARP等上层合同数据。注意,“校验字段”必要由程序生成),组装一种Ethernet V2.0格式帧(当前,局域网以以太网应用最广泛,应熟悉Ethernet帧格式)。
实现方式不限,可以用命令行程序,也可以用界面程序;但是,成果即生成MAC帧必要写到文献中,并且要以二进制形式来写入文献。
例如,如果用命令行程序来实现。
题目附带文献为二进制原始数据(文献名inputfile),例如可执行文献名为framer.exe,则命令行形式如下:
framer inputfile outputfile
inputfile为原始数据文献,outputfile为输出成果。
操作系统、使用语言和编译环境不限。
资料:
Ethernet V2.0 帧构造:
前导码
帧定界符
目MAC地址
源MAC地址
类型字段
数据字段
校验字段
前导码和帧定界符:
前导码56位(7字节)1010101…1010比特序列构成,帧定界符为1字节,构造为10101011。
目地址和源地址均采用6字节,目的地址为00-00-E4-86-3A-DC,源地址为00-00-80-1A-E6-65。
数据字段为46字节到1500字节,要注意局限性46字节需在“数据字段”背面填充。
帧校验字段采用8位CRC校验即可。
例如,下面给出一种直观成果:
五、 以太网帧发送过程
目: 编写程序模仿Ethernet结点数据发送流程,通过编写程序加深CSMA/CD工作原理理解。
流程:
父进程开辟一块大小为sizeof(pid_t)字节共享内存来模仿介质总线(共享内存初始所有为'\0'),fork两个子进程,当两个子进程都退出后父进程退出。
两个子进程做相似动作,它们向"介质总线"上发送自己进程号,完毕10次成功发送后退出。
子进程检查共享内存与否所有为'\0',如果是则以为总线闲,否则总线忙继续载波侦听。
当总线闲时及时启动发送,冲突计数器设立为16,将自己进程号与共享内存中数据作"或"运算(模仿发包),然后比较共享内存内容与写入内容,相似则没有发生冲突,否则发生冲突。
当没有发生冲突时,将共享内存清零,报告:xxxxx send success,xxxxx为进程号,作随机延时,开始下一种发送过程或者结束。
当发生冲突时,将共享内存清零,报告:xxxxx send collision,冲突计数器减1。如果冲突计数器>0,使用截止二进制后退延迟算法计算等待时间,等待后进入下一次尝试;如果冲突计数器<=0,报告:xxxxx send failure,结束本次发送,进入下一种发送过程或者结束。
提示:
为了模仿冲突过程,在这个程序中不要使用任何进程同步机制。如果用了同步,反倒失去了“冲突”特性。
六、 发送以太网 ARP包
规定:
1.在熟悉ARP合同并理解Winpcap编程,或者下载JAVA类:jpcap包(Jpcap下载。你只需要把lib中dll文献拷贝到jrebin目录,同步lib中jar文献拷贝到jre中lib/ext目录下就安装完整,固然你可以使用exe安装包进行安装,这样会更加简朴。),或者用Windows自带API(如,SendARP函数)实现。
2.对于用Winpacap实现,构造ARP包,选取并打开网卡,将ARP包发送。
命令格式:arpsend src_ip src_mac dst_ip dst_mac flag
flag:0 表达ARP祈求;1 表达ARP应答。
3.程序对的性检查。可以安装一种截包软件如Wirshark,来查看能否捕获到程序发出ARP包,并检查捕获ARP数据包中各字段内容与否精确。
例如,用Wireshark捕获到发送ARP数据包如下:
资料:
Jpcap ver.0.5.1
Installer for Windows
jpcap-0.5.1.zip
Samples
Tcpdump
Simple/limited implementation of tcpdump.
ARP
Sample source code for implementing ARP.
Traceroute
Simple implementation of Traceroute.
SendTCP,SendUDP,SendICMP
Samples of how to send TCP/UDP/ICMP packet.
七、 解析IP数据包
网络数据包普通可以通过WinPcap或LibPcap获取网络数据包。WinPcap(详细内容参见 )是一种开源、运营于Win32平台体系构造。涉及内核级别、低层次包过滤动态连接库packet.dll和高档别系统无关函数库wpcap.dll。也可以用Jpcap获取网络数据包。
WinPcap安装和使用
安装WinPcap驱动程序和DLL程序(可以从.org网站下载)
开发人员使用开发工具包(developer’s pack),库文献、包括文献、简朴示例程序代码和协助文献。用WinPcap库来捕获数据包,均有基本几种固定环节,可以参照“WinPcap 中文技术文档”中示例程序;对用WinPcap捕获到二进制数据流,再用合同格式来一步步读取即可。
设计目的:捕获网络中IP数据包,解析数据包内容,将成果显示在原则输出上,并同步写入日记文献。
规定:
1. 以命令行形式运营:ipparse logfile
其中ipparse是程序名,logfile是纪录成果日记文献名
2. 在原则输出和日记文献中列出捕获IP包版本、头长度、服务类型、数据包总长度、数据包标记、分段标志、分段偏移值、生存时间、上层合同类型、头校验和、源IP地址和目IP地址等内容。
3. 以键盘输入Ctrl+C退出。
参照二:Socket也可以捕获IP及基于IP上层合同数据包。因此,对IP数据包捕获也可以用socket来实现;对捕获到IP数据包进行解析过程与用WinPcap来实现办法相似。
八、 监控IP包流量
规定:
编程监控网络,捕获一段时间内网络上IP数据包,按IP数据包源地址记录出此地址在该刻时间内发出IP包个数,可以用命令行程序,也可以做成界面。该题目“课题四”延续,只但是对捕获到数据包不是分析各个字段,而是记录IP数据包个数。记录信息涉及源IP地址、目IP地址、合同类型(TCP、UDP、等上层合同都是基于IP合同)、及数据包个数。
例如,如果用命令行运营:IPStatistic time
其中,time 为监控时间,单位为秒。
例如,运营成果可以如下:
九、 IP地址合法性验证
目:掌握IP地址分类,精确理解子网、掩码概念,确切地明了IP地址合法格式。
规定:
1. 在判断一种IP地址合法性时要自行编写代码,不要使用任何inet函数。
2. 程序规定为命令行程序,格式为:
ip_test subnet/mask ip_addr
其中,程序名称为ip_test,参数为IP地址/子网掩码,如:
要测试IP地址为202.113.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则命令行为:
ip_test 202.113.16.0/24 202.113.16.10。
(由于255.255.255.0是持续24个1,因此这样表达)。
3. 子网号和子网掩码合法性也要检查。
4. 运营成果提示需要提示:IP地址与否合法、子网掩码与否合法和IP地址与否为子网成员。
提示:
在判断不合法IP时要考虑全面,例如如下状况均属于不合法
123..2.1
123.23$.2.1
123.2345.2.1
123.23.45.2.1
十、 发送TCP数据包
目:编程设计一种发送TCP数据包程序。填充一种TCP数据包,并发送给目主机。实现思路和“六 发送以太网 ARP包”类似,可以用WinPcap,也可以用socket来实现。
规定:
1. 程序规定以命令行形式运营:
SendTCP src_IP src_Port dst_ip dst_port
其中,SendTCP为程序名称,参数为源IP地址和端口,目IP地址和端口
2. 其他TCP头部参数请自行设定。数据字段“Nanjing Agricultural University”(TCP合同“数据字段”某些是用来放上层合同(如,HTTP合同)数据)
3. 发送成功在屏幕上输出“send OK”。
用Wireshark捕获到成果如下:
十一、 OSPF实现
目:熟悉OSPF合同,编写谋求最短途径程序,对路由表建立和路由信息更新有直观和清晰结识。对求最短途径算法可以采用《数据构造》中Dijkstra算法,该程序可以看为就是Dijkstra算计实现。
规定:
1. 程序提示顾客输入有向图顶点个数和源点v。程序依照顾客输入创立类,分派所需空间;
2. 程序提示顾客输入有向图相应邻接矩阵,00用-1表达
3. 输出v到其他各点最短途径。如:V0->V2;V0,V3,V2
十二、 Web网站自动登录实现
目:熟悉HTTP合同格式和工作过程。
题目背景:例如,在登录论坛或邮箱是,需要输入顾客名和密码,(不考虑需要输入验证码状况,那样还要实现验证码辨认模块,该题目不作规定)。编写程序来模仿这个过程来实现网站自动登录。
下面以自动登录校内网为例,演示实现过程:
(1)登录校内
(2)用捕包软件如Wireshark捕获刚才登录过程浏览器发送HTTP数据包:
由于,对这种填写表单普通采用POST办法,因此,熟悉HTTP合同祈求消息格式话,实现网站自动登录,就是模仿浏览器刚发送HTTP祈求消息,按照刚捕获HTTP祈求消息内容,来填充HTTP祈求消息各个字段,然后发送出去,Web服务器收到POST祈求消息,验证合法后就会返回登陆后页面,这样就实现自动登录网站。
在Windows,WinInet API有连接HTTP服务器,和设立HTTP祈求消息头各字段函数(如,OPenRequest()、AddRequestHeaders()、SendRequest()等)。
下面是一种实现例子:
登录成功话,得到网页源代码与用浏览器登陆得到源代码是同样,由于,用这种办法用这种办法POST到服务器后,服务器返回网页源代码。
如果,服务器验证失败,返回网页源代码会是
重新登陆页面源代码,这与用浏览器登陆是同样。固然也可以从用Wireshark捕获程序发送数据包看出来:
成功话,“Line-based test data”就是成功登录后页面源代码;失败则是需要重新登录页面源代码。
该题目要实现类似功能,详细不限,人们可以自由发挥想象力。这样,人们对HTTP合同可以有一种更深理解。
十三、 简朴FTP服务器实现
运用面向对象程序设计语言开发简朴FTP软件。
目与规定:理解掌握文献传播合同详细内容;规定可以传递简朴文本文献;设计美观易用图形界面。
十四、 基于中间件技术Web服务系统
功能规定:
(1)在CORBA 、COM/DCOM 、EJB 等中间件技术中任选一种实现本程序。
(2)Web服务程序实现详细功能可以是多样化。只要符合Web服务概念和体系。
(3)程序所实现功能应是完整,而Web服务站点应尽量多提供服务供客户程序调用。
(4)设计美观易用图形界面。
十五、 网络管理命令软件包设计
阅读惯用windows管理命令、惯用网络命令使用技巧详解, 选取其中三个命令构成一种一体化图形顾客软件。
十六、 编写一种类似 QQ聊天程序
涉及客户端和服务器,可以供各种顾客进行聊天。
功能:
(1)登录功能。客户端登录到聊天服务器,服务器管理所有登录客户,并将客户列表发送给各个客户显示。
(2)客户可以通过服务器转发,实现一对一和多对多聊天。
(3)实现呼喊功能。当客户端程序连接服务器时,通过服务器搜索所要呼喊客户,如果检测到此顾客且该顾客正处在联网状态,则服务器告知此顾客客户端程序响应主叫方客户端程序,然后在主叫方和被叫方建立连接后,双方就可以聊天或进行其他通信。
(4)客户端程序应当可以实时显示当前其他顾客状态(例如朋友信息上、下线)。
十七、 VLAN构建
规定:
(1)编写完整VLAN构建方案。涉及所需设备以及详细列明各个环节。
(2)运用实验室提供设备完毕VLAN构建。测试其可用性。
(3)通过各种方式记录构建过程。如照片,文字记录等等。
(4)编写完善构建报告书。写明构建过程中所遇到问题,解决办法,体会和总结等等。
十八、 Frame Relay 构建
规定:
(1)编写完整Frame Relay构建方案。涉及所需设备以及详细列明各个环节。编写所需程序。
(2)运用实验室提供设备完毕Frame Relay构建。测试其可用性。
(3)通过各种方式记录构建过程。如照片,文字记录等等。
(4)编写完善构建报告书。写明构建过程中所遇到问题,解决办法,体会和总结等等。
十九、 基于UDP合同数据包收发程序
功能:
(1)按照UDP合同数据包发送方式实现顾客端之间通信。
(2)记录包发送和接受数,计算数据包丢失数。
(3)设计美观易用图形界面。
二十、 滑动窗口合同仿真
功能:
(1)程序按照滑动窗口合同实现端对端数据传送。涉及合同各种方略,如包丢失、停等应答、超时等都应有所仿真实现。
(2)显示数据传送过程中各项详细数据。双方帧个数变化,帧序号,发送和接受速度,暂停或重传提示等。
(3)设计美观易用图形界面。
二十一、 RIP合同仿真
功能:
(1)程序按照RIP合同机制实现路由器间路由信息通信与更新。
(2)显示通信过程中各项详细数据。路由表修改信息、本地路由表更新过程和成果等等。
(3)设计美观易用图形界面。
二十二、 软件防火墙设计
实现防火墙基本功能:
(1)检查传入数据包中源地址或目的地址及其她信息,然后制止数据包通过或者容许它通过。
(2)通过匹配 IP 数据头来拟定与否容许通信通过接口。
(3)将所有传出通信都记录在状态表中。在连接通信返回到接口时,将检查状态表以保证这些通信来源于此接口。
(4)实现应用程序筛选器功能,容许顾客分析特定应用程序数据流并且提供应用程序特定解决。
(6)客户可制定特定安全方略。
(5)设计美观易用图形界面。
二十三、 软件VPN设计
实现VPN软件基本功能:
(1)服务器端构建和维护子网,并具备一定安全保护功能。如访问控制、信息加/解密等。
(2)客户端可以迅速访问子网内部。在带宽足够状况下,容许许多客户同步访问。
(3)在连接发生问题时有相应解决方案,如自动重接等等。
(4)设计美观易用图形界面。
二十四、 网络监视器设计
功能:
(1)实现触发功能,让网络监视器在发生某种或某些状况时开始或停止捕获信息。
(2)实现数据捕获筛选功能。涉及:通过合同筛选、通过地址筛选、通过数据模式筛选。
(3)实现捕获数据显示功能。由顾客选定显示内容,以清晰易懂方式显示数据。
(4)分析数据功能。将捕获到数据帧进行拆分分析。
(5)设计美观易用图形界面。
二十五、 FTP站点搜索引擎
功能:
(1)由客户指定搜索IP段。
(2)实现多线程搜索,规定搜索速度要尽量高。
(3)以目录树方式将所有搜索到FTP站点统一列出。打开某一站点目录树即可查看其中所有资源。
(4)设计美观易用图形界面
展开阅读全文