计算机网络课程设计实验报告
计算机网络实验教程实验报告
计算机网络实验教程实验报告一、实验目的本次计算机网络实验的主要目的是通过实际操作和观察,深入理解计算机网络的基本原理和技术,提高对网络配置、通信协议、网络服务等方面的实践能力,培养解决网络问题的思维和方法。
二、实验环境1、硬件环境实验中使用了若干台个人计算机,其配置包括:处理器_____、内存_____、硬盘_____等。
2、软件环境操作系统:Windows 10 专业版网络模拟软件:Packet Tracer网络测试工具:Ping、Tracert 等三、实验内容与步骤实验一:网络拓扑结构的搭建1、打开 Packet Tracer 软件,选择合适的网络设备,如路由器、交换机、PC 等。
2、按照设计好的网络拓扑结构,将设备进行连接。
本次实验构建了一个包含两个局域网通过路由器互联的简单网络。
3、为各设备配置 IP 地址、子网掩码、网关等网络参数。
实验二:网络通信协议的分析1、在搭建好的网络中,选择两台 PC 进行通信。
2、使用 Ping 命令测试网络的连通性,并观察返回的结果。
3、利用 Wireshark 抓包工具捕获通信过程中的数据包,分析其中的协议字段,如 IP 头、TCP 头、UDP 头等,了解网络协议的工作原理。
实验三:网络服务的配置与测试1、在服务器上配置 Web 服务,安装 IIS 组件,创建网站,并设置相关的权限和访问规则。
2、从客户端访问服务器上的网站,验证 Web 服务的可用性。
3、配置 FTP 服务,设置用户账号和权限,进行文件上传和下载测试。
实验四:网络安全的实现1、在路由器上配置访问控制列表(ACL),限制特定 IP 地址或端口的访问。
2、启用防火墙功能,设置安全策略,防止网络攻击。
四、实验结果与分析实验一结果分析成功搭建了网络拓扑结构,各设备之间能够正常通信。
通过配置正确的网络参数,确保了数据包在网络中的准确传输。
实验二结果分析Ping 命令测试显示网络连通性良好,Wireshark 抓包分析揭示了数据包在网络层和传输层的封装和解封装过程,对 IP 协议和 TCP/UDP 协议的工作机制有了更直观的认识。
计算机网络课程实验报告
计算机网络课程实验报告计算机网络课程实验报告引言:计算机网络课程实验是培养学生对计算机网络原理和技术的理解和应用能力的重要环节。
通过实验,我们可以巩固课堂所学的理论知识,掌握网络设备的配置和管理技巧,提高网络故障排查和解决问题的能力。
本文将结合实际实验过程,总结并分析我们在计算机网络课程实验中的收获和体会。
实验一:网络拓扑搭建与配置在实验一中,我们需要搭建一个简单的局域网,通过交换机连接多台计算机,并进行网络设备的基本配置。
通过实验,我们学会了如何正确连接和配置交换机、路由器和计算机,了解了网络拓扑的概念和组网原理。
同时,在实验过程中,我们也遇到了一些问题,如网络设备的IP地址冲突、网络延迟等,通过分析和解决这些问题,我们加深了对网络故障排查和解决问题的理解。
实验二:网络通信与数据传输实验二主要是通过Wireshark等工具来抓包分析网络数据传输过程。
我们学会了如何使用Wireshark捕获网络数据包,并分析数据包的结构和内容。
通过实验,我们了解了网络通信的基本原理,如TCP/IP协议栈、数据包的封装和解封装过程等。
同时,我们也发现了一些网络通信中的问题,如丢包、重传等,通过对数据包的分析和解读,我们可以更好地理解和解决这些问题。
实验三:网络安全与防护实验三主要是学习和实践网络安全相关的知识和技术。
我们了解了网络攻击的常见手段和防御方法,如防火墙、入侵检测系统等。
通过实验,我们学会了如何配置和管理防火墙,设置访问控制列表,提高网络的安全性。
同时,我们也体验了一些网络攻击的模拟实验,如DDoS攻击、ARP欺骗等,通过对攻击过程的模拟和分析,我们更深入地了解了网络安全的重要性和挑战。
实验四:网络性能测试与优化实验四主要是通过网络性能测试工具来评估和优化网络的性能。
我们学会了如何使用Ping、Traceroute等工具来测试网络的连通性和延迟,通过分析测试结果,我们可以找出网络中的瓶颈和问题,并采取相应的优化措施。
计算机网络实验报告(6篇)
计算机网络实验报告(6篇)计算机网络实验报告(通用6篇)计算机网络实验报告篇1一、实验目的1、熟悉微机的各个部件;2、掌握将各个部件组装成一台主机的方法和步骤;3、掌握每个部件的安装方法;4、了解微型计算机系统的基本配置;5、熟悉并掌握DOS操作系统的使用;6、掌握文件、目录、路径等概念;7、掌握常用虚拟机软件的安装和使用;8、熟悉并掌握虚拟机上WINDOWS操作系统的安装方法及使用;9、掌握使用启动U盘的制作和U盘安装windows操作系统的方法;10、了解WINDOWS操作系统的基本配置和优化方法。
二、实验内容1.将微机的各个部件组装成一台主机;2.调试机器,使其正常工作;3.了解计算机系统的基本配置。
4.安装及使用虚拟机软件;5.安装WINDOWS7操作系统;6.常用DOS命令的使用;7.学会制作启动U盘和使用方法;8.WINDOWS7的基本操作;9.操作系统的基本设置和优化。
三、实验步骤(参照实验指导书上的内容,结合实验过程中做的具体内容,完成此项内容的撰写)四、思考与总结(写实验的心得体会等)计算机网络实验报告篇2windows平台逻辑层数据恢复一、实验目的:通过运用软件R-Studio_5.0和winhe_对误格式化的硬盘或者其他设备进行数据恢复,通过实验了解windows平台逻辑层误格式化数据恢复原理,能够深入理解并掌握数据恢复软件的使用方法,并能熟练运用这些软件对存储设备设备进行数据恢复。
二、实验要求:运用软件R-Studio_5.0和winhe_对电脑磁盘或者自己的U盘中的删除的数据文件进行恢复,对各种文件进行多次尝试,音频文件、系统文件、文档文件等,对简单删除和格式化的磁盘文件分别恢复,并检查和验证恢复结果,分析两个软件的数据恢复功能差异与优势,进一步熟悉存储介质数据修复和恢复方法及过程,提高自身的对存储介质逻辑层恢复技能。
三、实验环境和设备:(1)Windows _P 或Windows 20__ Professional操作系统。
《计算机网络》实验报告
《计算机网络》实验报告计算机网络实验报告一、引言计算机网络是现代信息技术的基础,它将各种计算机和设备连接在一起,实现数据的传输和共享。
本篇实验报告将介绍我们在《计算机网络》课程中进行的实验内容和实验结果。
二、实验目的本次实验的目的是通过搭建一个简单的局域网并进行通信测试,加深对计算机网络基本概念的理解,掌握网络配置和通信过程中的相关知识。
三、实验环境我们使用了两台计算机和一个交换机来搭建局域网。
其中,计算机A作为服务器,计算机B作为客户端,交换机用于连接两台计算机。
四、实验步骤1. 配置网络参数我们首先在计算机A和计算机B上配置IP地址、子网掩码和默认网关,确保两台计算机处于同一个子网中。
2. 搭建局域网将计算机A和计算机B通过网线连接到交换机的不同端口上,确保物理连接正常。
3. 配置服务器在计算机A上搭建服务器,选择一种合适的网络服务软件,如Apache、Nginx 等,并进行相应的配置。
4. 配置客户端在计算机B上配置客户端,选择一种合适的浏览器软件,如Chrome、Firefox 等,并设置代理服务器的IP地址和端口。
5. 进行通信测试打开浏览器,在客户端中输入服务器的IP地址和端口号,访问服务器上的网页。
观察通信过程中的网络数据传输情况,检查是否能够成功建立连接并获取到服务器上的网页内容。
五、实验结果通过以上步骤,我们成功搭建了一个简单的局域网,并进行了通信测试。
在测试过程中,我们观察到以下结果:1. 网络连接正常计算机A和计算机B通过交换机成功建立了物理连接,网络连接正常。
2. IP地址配置正确计算机A和计算机B的IP地址、子网掩码和默认网关配置正确,处于同一个子网中。
3. 服务器配置成功在计算机A上搭建的服务器配置成功,能够正常响应客户端的请求。
4. 客户端配置成功在计算机B上配置的客户端能够正常访问服务器上的网页,获取到正确的网页内容。
六、实验总结通过本次实验,我们深入了解了计算机网络的基本概念和通信过程,掌握了网络配置和通信测试的方法。
计算机网络实践报告5篇
计算机网络实践报告5篇(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的实用资料,如职场文书、书信函件、教学范文、演讲致辞、心得体会、学生作文、合同范本、规章制度、工作报告、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, this store provides various types of practical materials for everyone, such as workplace documents, correspondence, teaching samples, speeches, insights, student essays, contract templates, rules and regulations, work reports, and other materials. If you want to learn about different data formats and writing methods, please pay attention!计算机网络实践报告5篇计算机网络实践报告1开学第一周我们就迎来了计算机网络实训,这门课程与上学期所学的计算机网络相对应,给了我们一个更深刻理解和掌握所学知识的机会。
计算机网络课程设计实验报告
计算机网络课程设计实验报告1. 引言计算机网络是现代信息技术的基石,它的设计与实现对于计算机科学与技术专业的学生来说尤为重要。
本次实验旨在通过一个计算机网络课程设计项目,帮助学生进一步深入理解计算机网络的原理与实践,提升实际操作能力。
2. 实验目标本实验的目标是设计一个简单的局域网内部共享文件的系统。
具体要求如下:1.实现一个服务器程序,能够提供文件的上传与下载功能;2.实现一个客户端程序,能够通过命令行界面与服务器进行交互;3.实现文件的断点续传功能,确保文件可以在网络断开后继续传输;4.实现基本的权限管理功能,确保只有授权用户才能够上传和下载文件。
3. 实验环境本次实验的开发环境与工具如下:•操作系统:Windows 10•开发语言:Python 3.8•开发环境:PyCharm 2020.1•版本控制:Git4. 实验过程与方法4.1 系统架构设计本实验的系统架构包括服务器程序和客户端程序两个部分。
服务器程序采用C/S模型,在指定端口上监听客户端的请求,根据客户端发送的指令进行相应的操作,如上传文件、下载文件、断点续传等。
服务器程序使用了Python的socket模块实现网络通信。
客户端程序通过命令行界面与服务器进行交互,用户可以输入不同的指令来实现上传、下载、断点续传等功能。
客户端程序使用了Python的argparse模块处理命令行参数,使用socket模块与服务器进行通信。
4.2 文件传输实现文件的传输采用TCP协议进行,对于较大的文件,可以采用分片传输的方式,确保文件能够在网络断开后继续传输。
客户端程序在向服务器请求下载文件时,会先发送文件的元信息(如文件名、大小等),服务器会根据元信息判断文件是否存在、是否需要断点续传等。
对于需要断点续传的文件,服务器会记录已传输的字节数,并将剩余部分发送给客户端。
4.3 权限管理实现服务器程序实现了基本的权限管理功能,通过在服务器端维护一个用户列表,每次上传或下载文件时,都会要求用户进行身份验证。
《计算机网络》实验报告
一、实验目的1. 理解计算机网络的基本概念和结构。
2. 掌握网络设备的配置方法,包括交换机、路由器等。
3. 学习网络协议的作用和配置方法,如TCP/IP、DHCP等。
4. 通过实验加深对网络故障诊断和排除能力的培养。
二、实验内容1. 实验环境实验设备:一台PC机、一台交换机、一台路由器、双绞线、网线等。
实验软件:Windows操作系统、网络管理软件等。
2. 实验步骤(1)网络设备连接首先,将PC机通过网线连接到交换机的一个端口上。
然后,将交换机的另一个端口连接到路由器的WAN口。
最后,将路由器的LAN口连接到PC机的另一台交换机上。
(2)网络设备配置①交换机配置进入交换机命令行界面,配置交换机的基本参数,如VLAN ID、IP地址、子网掩码等。
②路由器配置进入路由器命令行界面,配置路由器的接口参数,如WAN口和LAN口的IP地址、子网掩码等。
同时,配置路由协议,如静态路由、动态路由等。
③PC机配置在PC机的网络设置中,将IP地址、子网掩码、默认网关等信息设置为与路由器LAN口相同的参数。
(3)网络测试①测试PC机与交换机之间的连通性在PC机中ping交换机的IP地址,检查PC机是否能够与交换机通信。
②测试PC机与路由器之间的连通性在PC机中ping路由器的IP地址,检查PC机是否能够与路由器通信。
③测试不同VLAN之间的连通性在PC机中ping另一个VLAN中的设备,检查不同VLAN之间的设备是否能够相互通信。
三、实验结果与分析1. 实验结果(1)PC机与交换机之间连通(2)PC机与路由器之间连通(3)不同VLAN之间的设备相互通信2. 实验分析通过本次实验,我们成功搭建了一个简单的计算机网络,并掌握了网络设备的配置方法。
在实验过程中,我们遇到了一些问题,如网络设备之间的连通性、VLAN之间的通信等。
通过查阅资料和调试,我们解决了这些问题,加深了对计算机网络的理解。
四、实验总结1. 通过本次实验,我们了解了计算机网络的基本概念和结构,掌握了网络设备的配置方法。
《计算机网络A》实验报告(5篇范例)
《计算机网络A》实验报告(5篇范例)第一篇:《计算机网络A》实验报告教师评阅记录表【重要说明】λ学生提交报告册最终版时,必须包含此页,否则不予成绩评定。
λ本报告册模板内容格式除确实因为填写内容改变了布局外,不得变更其余部分的格式,否则不予成绩评定。
报告是否符合考核规范□ 符合□ 不符合报告格式是否符合标准□ 符合□ 不符合报告是否完成要求内容□ 是□ 否报告评语:报告成绩:评阅人签名(签章)****年**月**日目录λ教师评阅记录表λ实验实习综述报告实验实习综述报告课程名称计算机网络实验课程编号开课学院计算机学院指导教师杜欢实验实习地点学生姓名易彤学生学号 2018211603 学院专业智能科学与技术所在班级 04051802 实验一:网络命令与使用一、实验实习目的及要求掌握常用网络命令的使用方法;熟悉和掌握网络管理、网络维护的基本内容和方法。
二、实验实习设备(环境)及要求(软硬件条件)WIN10 系统,笔记本电脑三、实验实习项目、内容与步骤1.在窗口中显示网络适配器的物理地址、主机的 IP 地址、子网掩码以及默认网关; 2.向一台电脑无限制的发送数据包,此数据包大小为60000byte,然后改变数据包大小,比较结果; 3.查看本地计算机或另一台计算机的 ARP 高速缓存中的当前内容;4.练习ftp 内部命令,并完成从一台ftp 服务器上下载一份文件。
四、实验实习所得结果及分析输入指令ipconfig/all 显示网络适配器的的信息输入指令 ping 192.168.1.103 –l 60000 向一台电脑无限制的发送数据包,此数据包大小为 60000byte查看本地计算机的 ARP 高速缓存中的当前内容五、实验实习结果分析和(或)源程序调试过程在不明不白的情况下做出了这个实验,希望在今后深入学习,去把这些知识弄懂。
实验二网络服务器建议与使用一、实验实习目的及要求掌握 HTTP 服务器和 FTP 服务器的配置方法。
计算机网络实验报告实验3
计算机网络实验报告实验3一、实验目的本次计算机网络实验 3 的主要目的是深入理解和掌握计算机网络中的相关技术和概念,通过实际操作和观察,增强对网络通信原理、协议分析以及网络配置的实际应用能力。
二、实验环境本次实验在计算机网络实验室进行,使用的设备包括计算机、网络交换机、路由器等。
操作系统为 Windows 10,实验中使用的软件工具包括 Wireshark 网络协议分析工具、Cisco Packet Tracer 网络模拟软件等。
三、实验内容与步骤(一)网络拓扑结构的搭建使用 Cisco Packet Tracer 软件,构建一个包含多个子网的复杂网络拓扑结构。
在这个拓扑结构中,包括了不同类型的网络设备,如交换机、路由器等,并配置了相应的 IP 地址和子网掩码。
(二)网络协议分析启动 Wireshark 工具,捕获网络中的数据包。
通过对捕获到的数据包进行分析,了解常见的网络协议,如 TCP、IP、UDP 等的格式和工作原理。
观察数据包中的源地址、目的地址、协议类型、端口号等关键信息,并分析它们在网络通信中的作用。
(三)网络配置与管理在实际的网络环境中,对计算机的网络参数进行配置,包括 IP 地址、子网掩码、网关、DNS 服务器等。
通过命令行工具(如 Windows 中的 ipconfig 命令)查看和验证配置的正确性。
(四)网络故障排查与解决设置一些网络故障,如 IP 地址冲突、网络连接中断等,然后通过相关的工具和技术手段进行故障排查和解决。
学习使用 ping 命令、tracert 命令等网络诊断工具,分析故障产生的原因,并采取相应的解决措施。
四、实验结果与分析(一)网络拓扑结构搭建结果成功构建了包含多个子网的网络拓扑结构,各个设备之间能够正常通信。
通过查看设备的状态指示灯和配置信息,验证了网络连接的正确性。
(二)网络协议分析结果通过 Wireshark 捕获到的数据包,清晰地看到了 TCP 三次握手的过程,以及 IP 数据包的分片和重组。
计算机网络实验报告
《计算机网络》实验报告篇一:计算机网络实验报告《计算机网络》实验报告班级:学号:姓名:指导教师:信管1202班 0202张军李辉实验时间:实验一网线制作 XX-01-06实验名称:一、实验目的:1、认识网线(双绞线)、串行线、并行线和网线制作工具2、掌握各种标准的网线线序排列3、掌握直通线、交叉线的制作方法二、实验内容:1. 直通线的制作1) 利用剪线钳剪下所需的双绞线的长度,至少0.6m,最多不超过100m。
然后利用双绞线剥线器将双绞线的外皮除去2-3cm。
2) 确定双绞线的每根线已经正确放置之后,就可以用RJ45压线钳压接RJ45接头,要确保每一根线与接头的引脚充分接触。
3) 按照同样的方法制作另一端的RJ45接头。
4) 用测线仪测试做好的网线,看是否合格。
5) 打开测线仪电源,将网线插头分别插入主测试器和远程测试器,主机指示灯从1-8逐个顺序闪亮,如果网线合格,远程测试器也应该按1-8的顺序依次闪亮。
若接线不正常,则按下述情况显示:1当有一根网线如3号线断路时,主测试仪和远程测试端3号等都不亮○2当有几条线不通时,这几条线的灯都不亮;当网线中少于2根线连通时,灯都不亮。
○ 3当两头网线乱序,例2,4线乱序,则显示如下:○主测试器不变:1-2-3-4-5-6-7-8-G 远程测试端为:1-4-3-2-5-6-7-8-G4当网线有2根短路时,○则主测试器显示不亮,而远程测试端显示短路的两根线灯都微亮,若有3根以上(含3根)短路时则所有短路的几条线号的灯都不亮。
2. 交叉线的制作按照直通线制作的操作方法,一端A类,一端B类,即可完成交叉线的制作。
三、实验结果制作好的直通线,将直通线网线插头分别插入主测试器和远程测试器,主机指示灯从1-8逐个顺序闪亮,远程测试器也按1-8的顺序依次闪亮。
双绞线制作好后,经远程测试器测试后,也制作成功四、实验中遇到的问题及解决方法首次制作完成后,双绞线有一个水晶头因为压接力度较小,使水晶头较大,很难放进测试器插口,勉强放进去后,测试器指示灯也没有正常亮起,后经重新制作后,指示灯正常亮起实验名称:实验时间:实验二 Web服务器的配置和组建工作组对等网XX-01-06篇二:计算机网络实验报告计算机网络实验报告《计算机网络》实验报告【实验一】认识计算机网络【实验目的】1.初步掌握计算机网络的定义;2.认识计算机网络的拓扑结构;3.了解计算机网络的功能。
计算机网络实验报告(通用7篇)
计算机网络实验报告计算机网络实验报告(通用7篇)在经济飞速发展的今天,报告使用的次数愈发增长,其在写作上有一定的技巧。
我敢肯定,大部分人都对写报告很是头疼的,以下是小编收集整理的计算机网络实验报告,希望对大家有所帮助。
计算机网络实验报告1一、需求分析建设一个以办公自动化、计算机辅助教学、现代计算机校园文化为核心,以现代网络技术为依托,技术先进、扩展性强、能覆盖全校主要楼宇的校园主干网络,将学校的各种pc机、工作站、终端设备和局域网连接起来,并与有关广域网相连,在网上宣传自己和获取Internet网上的教育资源。
形成结构合理,内外沟通的校园计算机系统,在此基础上建立满足教学、研究和管理工作需要的软硬件环境,开发各类信息库和应用系统,为学校各类人员提供充分的网络信息服务。
系统总体设计将本着总体规划、分步实施的原则,充分体现系统的技术先进性、高度的安全可靠性,同时具有良好的开放性、可扩展性、冗余性。
本着为学校着想,合理使用建设资金,使系统经济可行。
具体包括下以几个方面:1、内网络能够高速访问FTP服务器现在或上传文件实现资源共享功能,实现对不同类型的用户划分不同的权限,限制不同类型的用户只能访问特定的服务资源。
可以下载和上传资料文件,访问速度可以对指定的用户进行级别的划分。
2、建设Web服务器对外实现信息发布,对内实现教学教务管理。
网站发布学校新闻、通知、学校的活动等相关内容。
实现学生能够在网上进行成绩查询、网上报名、网上评教等功能;以及教师的信息查询、教学数据上传等。
3、建设邮件服务器以满足校园内部之间和内、外网这间的大量邮件传输的需求。
4、实现内网划分多个VLAN,实现校园内不同校区,不同楼宇,不同楼层的多客户接入。
5、内部实现PC间实现高速互访,同时可以访问互联网。
网络内同一IP段内的PC机可以通过网上邻居实现高速互访,传送资料文件等,解决不同楼宇,不同楼层之间通过移动存储设备传送数据费时、费力的问题。
计算机网络教学实践报告(3篇)
第1篇一、引言随着信息技术的飞速发展,计算机网络已经成为现代社会不可或缺的一部分。
为了适应时代的需求,提高学生的计算机网络应用能力,我们开展了计算机网络教学实践活动。
本文将对本次实践活动的背景、目标、实施过程和成果进行总结和分析。
二、背景与目标1. 背景随着我国互联网的普及和信息技术的发展,计算机网络已成为人们日常生活和工作中不可或缺的一部分。
为了让学生更好地适应社会需求,提高学生的计算机网络应用能力,我们开展了计算机网络教学实践活动。
2. 目标(1)提高学生对计算机网络基本概念、原理和应用的理解;(2)培养学生的计算机网络实践操作能力;(3)激发学生对计算机网络领域的兴趣,培养创新精神和团队协作能力。
三、实施过程1. 实践内容(1)计算机网络基础理论教学:包括网络拓扑结构、传输介质、网络协议等基本概念;(2)网络设备配置与调试:包括交换机、路由器等设备的配置与调试;(3)网络操作系统应用:包括Windows Server和Linux系统的配置与维护;(4)网络安全与防护:包括防火墙、入侵检测等安全技术的应用。
2. 实践方式(1)课堂讲授:教师结合实际案例,讲解计算机网络基本概念、原理和应用;(2)实验操作:学生在实验室进行实际操作,巩固理论知识;(3)小组讨论:学生分组讨论,共同解决问题,提高团队协作能力;(4)项目实践:学生自主完成项目,提高综合运用能力。
3. 实践时间本次实践课程共计16周,每周2学时,共计32学时。
四、成果与总结1. 成果(1)学生掌握了计算机网络基本概念、原理和应用;(2)学生具备了一定的网络设备配置与调试能力;(3)学生熟悉了网络操作系统应用和网络安全与防护技术;(4)学生的团队协作能力和创新精神得到提高。
2. 总结(1)教学效果良好:通过本次实践,学生对计算机网络有了更加深入的了解,提高了实践操作能力;(2)教学方法合理:结合理论教学和实践操作,使学生在实践中掌握知识;(3)实践环境优越:实验室设备齐全,为学生提供了良好的实践条件;(4)师资力量雄厚:教师具备丰富的实践经验,为学生提供专业指导。
国家开放大学《计算机网络》课程实验报告(实验六 计算机网络综合性实
国家开放大学计算机网络》课程实验报告(实验六计算机网络综合性实国家开放大学计算机网络》课程实验报告实验六计算机网络综合性实一、实验目的本实验旨在通过综合性实验,对学生在计算机网络课程中所学到的知识进行综合运用和巩固,提高学生的实际操作能力和问题解决能力。
通过实验,学生能够加深对计算机网络原理、协议和技术的理解,以及掌握相关实验工具和方法。
二、实验内容本次实验的主要内容是完成一个简单的计算机网络配置与通信实验。
具体实验步骤如下:1. 在计算机上安装并配置虚拟机软件,创建两个虚拟机实例。
2. 对虚拟机进行网络配置,使它们能够相互通信。
3. 使用ping命令测试两个虚拟机之间的连通性。
4. 使用telnet命令进行远程登录测试。
5. 进行文件传输测试,验证网络通信的可靠性。
第1页/共4页三、实验步骤1. 安装虚拟机软件首先,在计算机上安装并配置虚拟机软件。
可以选择较为常用的 VMware Workstation 或者 VirtualBox。
安装完成后,双击软件图标,打开虚拟机控制面板。
2. 创建虚拟机实例在虚拟机控制面板中,点击“新建虚拟机”,进入虚拟机配置向导。
根据需要指定虚拟机的名称、存储路径和虚拟机的操作系统类型。
完成虚拟机创建后,重复该步骤创建第二个虚拟机实例。
3. 网络配置进入虚拟机控制面板,选择虚拟机实例,在菜单栏选择“编辑虚拟机设置”,进入虚拟机设置页面。
选择“网络适配器”,在右侧选择“桥接模式”,点击“确定”保存设置。
在两个虚拟机实例上都进行相同的网络配置,并确保虚拟机能够连通网络并能够获取到 IP 地址。
4. 测试连通性打开命令行界面,使用ping命令测试两个虚拟机之间的连通性。
在命令行中输入“ping [虚拟机 IP 地址]”,若出现类似于“64 字节的数据包, 来自192.168.1.100: 字节=64 时间<1ms TTL=128”的信息,说明虚拟机之间可以正常通信。
5. 远程登录测试在命令行界面中使用telnet命令进行远程登录测试。
计算机网络课程实验报告3
计算机网络课程实验报告《网络协议(IP)》一、实验内容网络协议(IP)二、实验原理三、实验拓扑结构图四、实验内容及过程1、练习1(1)内容编辑并发送IP数据报(2)过程各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。
本练习将主机A、B、C、D、E、F作为一组进行实验。
1. 主机B在命令行方式下输入staticroute_config命令,开启静态路由服务。
2. 主机A启动协议编辑器,编辑一个IP数据报,其中:MAC层:目的MAC地址:主机B的MAC地址(对应于192.168.2.2接口的MAC)。
源MAC地址:主机A的MAC地址。
协议类型或数据长度:0800。
IP层:总长度:IP层长度。
生存时间:128。
源IP地址:主机A的IP地址(192.168.2.1)。
目的IP地址:主机E的IP地址(192.168.22.5)。
校验和:在其它所有字段填充完毕后计算并填充。
自定义字段:数据:填入大于1字节的用户数据。
【说明】先使用协议编辑器的“手动计算”校验和,再使用协议编辑器的“自动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。
●IP在计算校验和时包括哪些内容?3. 在主机B(两块网卡分别打开两个捕获窗口)、E上启动协议分析器,设置过滤条件(提取IP协议),开始捕获数据。
4. 主机A发送第1步中编辑好的报文。
5. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,并回答以下问题:●第1步中主机A所编辑的报文,经过主机B到达主机E后,报文数据是否发生变化?若发生变化,记录变化的字段,并简述发生变化的原因。
6. 将第1步中主机A所编辑的报文的“生存时间”设置为1,重新计算校验和。
7. 主机B、E重新开始捕获数据。
8. 主机A发送第5步中编辑好的报文。
9. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,并回答以下问题:主机B、E是否能捕获到主机A所发送的报文?简述产生这种现象的原因。
计算机网络课程设计实验报告
、计算机网络课程设计实验报告一、:二、实验内容和要求1、实验一数据包的捕获与分析Wireshark是一种开源的网络数据包的捕获和分析软件,本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和掌握。
具体内容及要求如下:Wireshark软件的安装;Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark可以监控局域网的状态;启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查;设置过滤器过滤网络报文以检测特定数据流;(对常用协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网络报文的各种统计信息。
2、实验二网络层实验—Ping程序的设计与实现实验目的本实验目的是使学生掌握网络层协议的原理及实现方法。
实验设计内容!本实验为ICMP实验。
实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充:-h 显示帮助信息-b 允许ping一个广播地址,只用于IPv4-t 设置ttl值,只用于IPv4-q 安静模式。
不显示每个收到的包的分析结果,只在结束时,显示汇总结果Ping命令的基本描述Ping的操作是向某些IP地址发送一个ICMP Echo消息,接着该节点返回一个ICMP Echo replay消息。
ICMP消息使用IP头作为基本控制。
"{七、实验数据、结果分析实验一见附录实验二~八、总结通过程序设计,对ping的工作原理进一步认识。
尤其是ICMP报文的结构模式,以及ping的一些扩展功能的实现。
对基于linux 的c语言编程的方法进一步掌握。
程序设计中,对各种函数之间的协同工作运用理解更加深刻。
更掌握了如何使用信号量进行通信。
虽然程序设计及调试中也遇到不少困难,也都在同学帮助下,及通过资料查询逐一解决。
计算机网络课程设计实验报告
计算机网络课程设计实验报告计算机网络课程设计实验报告引言:计算机网络是现代信息技术的核心基础,它的发展与应用对于现代社会的各个领域有着重要的影响。
作为计算机网络课程的一部分,课程设计实验是培养学生实践能力和解决实际问题的重要环节。
本实验报告将介绍我们小组在计算机网络课程设计实验中所完成的工作和所获得的成果。
实验目标:本次实验的目标是设计一个简单的局域网(LAN)拓扑结构,并实现基本的网络通信功能。
通过这个实验,我们旨在加深对计算机网络原理的理解,掌握网络设备的配置和管理,以及熟悉网络通信的基本原理和技术。
实验环境:我们使用了一台主机作为服务器,两台主机作为客户端,通过交换机连接在一个局域网中。
服务器和客户端之间通过TCP/IP协议进行通信。
实验步骤:1. 设计局域网拓扑结构:我们选择了一个星型拓扑结构,将服务器作为中心节点,两台客户端作为外围节点。
这样的拓扑结构简单明了,便于实验的进行和管理。
2. 配置网络设备:我们首先配置了服务器的IP地址、子网掩码和默认网关,然后配置了客户端的IP地址和子网掩码。
通过这样的配置,我们使得服务器和客户端能够在同一个局域网中进行通信。
3. 实现网络通信功能:我们使用了Socket编程技术,通过建立TCP连接实现了服务器和客户端之间的通信。
服务器端监听指定端口,客户端向服务器发送请求,服务器接收请求并返回响应。
通过这样的通信过程,我们实现了简单的网络通信功能。
实验结果:我们成功地实现了基本的网络通信功能。
服务器和客户端之间能够正常地进行通信,实现了数据的传输和交换。
通过实验,我们进一步理解了网络通信的原理和技术,并掌握了网络设备的配置和管理方法。
实验总结:通过这次计算机网络课程设计实验,我们深入了解了计算机网络的原理和技术,掌握了网络设备的配置和管理方法。
实验过程中,我们遇到了一些问题和困难,但通过不断的学习和尝试,我们成功地解决了这些问题,并最终完成了实验目标。
(完整word版)计算机网络课程设计实验报告
计算机网络课程设计报告姓名:学号:班级:指导老师:湖南科技大学计算机科学与工程学院2013年6月实验一1.实验名称:网络聊天程序的设计与实现2.实验目的:通过本实验能够了解socket通信的原理并在此基础上编写一个聊天程序了解TCP/IP的基础知识,发现TCP与UDP的优缺点以及在网络通信的应用。
3.实验原理:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的两个主机使用网络的核心部分进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
从IP层来说,通信的两端是两个主机,IP数据报的首部明确的标志了这两个主机的IP地址。
但是严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。
根据应用程序的不同需求,运输层需要有两种不同的运输协议,即是面向连接的TCP和无连接的UDP。
在使用这两个协议时运输层向高层用户屏蔽了下面的网络核心的细节,它使应用进程看见的就是好像在两个运输层实体间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。
当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。
但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。
由于我在课程设计中采用的是UDP协议进行通信的,这里就只简述一下一些关于UDP的内容,UDP在传送数据之前不需要先建立连接。
远地主机的运输层在收到UDP报文后,不需要给出任何确认。
虽然UDP不提供可靠的交付,但在某些情况下UDP却是一种最有效的工作方式。
为此当我们使用UTP协议使两个计算机中的进程要互相通信,不仅必需知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
计算机网络实践教学报告(3篇)
第1篇一、引言随着信息技术的飞速发展,计算机网络已成为现代社会不可或缺的一部分。
为了提高学生的计算机网络实践能力,本课程通过实践教学环节,使学生掌握计算机网络的基本原理、技术以及应用。
以下是本人在计算机网络实践教学过程中的心得体会。
二、实践内容1. 实验环境本次实践教学在校园内计算机网络实验室进行,实验设备包括交换机、路由器、服务器、客户端等。
实验操作系统为Windows Server 2008和Windows 7。
2. 实践内容(1)网络拓扑设计首先,根据实验需求设计网络拓扑结构。
本实验采用星型拓扑结构,包括一台核心交换机、一台服务器和若干台客户端。
实验过程中,通过绘制网络拓扑图,明确设备间连接关系。
(2)IP地址规划根据网络拓扑结构,规划IP地址。
本实验采用私有IP地址,网络地址为192.168.1.0/24,子网掩码为255.255.255.0。
服务器IP地址为192.168.1.1,客户端IP地址分别为192.168.1.2至192.168.1.10。
(3)交换机配置配置交换机,实现设备间通信。
主要配置包括VLAN划分、端口绑定、端口安全等。
通过配置交换机,实现不同VLAN之间的隔离,确保网络安全。
(4)路由器配置配置路由器,实现不同子网之间的通信。
主要配置包括静态路由、动态路由等。
通过配置路由器,实现不同子网间的数据传输。
(5)服务器配置配置服务器,实现网络资源共享。
主要配置包括DNS、DHCP、文件共享等。
通过配置服务器,实现客户端访问网络资源。
(6)客户端配置配置客户端,实现网络访问。
主要配置包括IP地址、子网掩码、默认网关等。
通过配置客户端,实现与服务器和其他客户端的通信。
三、实践过程1. 熟悉实验环境在实验开始前,首先熟悉实验设备、操作系统和实验软件。
了解交换机、路由器等设备的配置方法,以及Windows Server 2008和Windows 7操作系统的基本操作。
2. 设计网络拓扑结构根据实验需求,绘制网络拓扑图,明确设备间连接关系。
计算机网络课程设计实验报告
校园网旳组建与应用摘要:本文针对试验室旳设备环境,对校园网旳组网方式进行了研究和模拟,并最终提出了一套完整旳校园网组网方案。
试验中我们对路由器、互换机等组网基础设备进行了认真旳研究。
有关路由器,我们实现了当地基本配置,并分别使用路由器旳串口和以太网口实现了不一样网段旳网络互联,对路由器静态及动态路由机制进行了探究。
有关互换机,我们实现了VLAN旳划分以及不一样VLAN间旳互相通信,对广播风暴现象旳产生原理及处理方案进行了特定旳试验。
综合两者旳功能,我们对多种网络拓扑构造进行了分析,讨论和改善。
最终通过试验和模拟提出了一套完整旳校园网组建方案。
在此方案中,我们在实现了网络互通旳状况下,我们进行了IP地址旳划分,IP地址运用DHCP进行自动分派。
并根据模拟实际,对不一样旳主机进行VLAN划分,同步保证不一样VLAN间旳互相访问与特定VLAN旳保护与单向访问。
同步构建内部防火墙保证校园网与外部旳安全访问。
构建了完整可靠旳网络之后,根据校园网旳功能和服务需求,我们搭建了FTP服务器,用于提供基础旳网络服务。
限于试验室条件旳限制,我们旳方案并不是完全可以合用于现实旳。
不过,通过试验使我们对校园网乃至更大旳网络有了愈加深刻旳理解。
目录一、序言伴随信息旳调整膨胀,全球信息已经进入以计算机网络为关键旳时代。
作为科技先导旳教育行业,计算机校园网已是教育进行科研和现代化管理旳重要手段。
近几年、校园网已经获得很大旳发展,中国教育科研网投入运行,全国多所高校校园网络开通联网。
伴随学校教育手段旳现代化,诸多学校已经逐渐开始将学校旳管理和教学过程向电子化方向发展,校园网旳有无以及水平旳高下也将成为评价学校及学生选择学校旳新旳原则之一,此时,校园网上旳应用系统就显得尤为重要。
首先,学生可以通过它在增进学习旳同步掌握丰富旳计算机及网络信息知识,毫无疑问,这是学生综合素质中极为重要旳一部分;另首先,基于先进旳网络平台和其上旳应用系统,将极大旳增进学校教育旳现代化进程,实现高水平旳教学和管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学课程设计报告课程:计算机网络课程设计题目:基于Winpcap的网络流量统计分析指导教师:***目录第一章总体设计一、实体类设计 --------P3二、功能类设计 --------P3三、界面设计 --------P3第二章详细设计一、实体类实现 --------P4二、功能类实现 --------P4三、界面实现 --------P5 第三章源代码清单及说明一、CaptureUtil.java --------P7二、MyPcapPacketHandler.java --------P9三、PacketMatch.java --------P9四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21第一章总体设计一、实体类设计TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计二、功能类设计(1)网卡获取(2)包的抓捕(3)包的处理三、界面设计(1)布局(2)按钮功能连接第二章第二章详细设计一、实体类实现TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。
本程序采用Java编写,基于win10pcap。
Win10pcap是winpcap在win10系统上的适用版本。
Java对于winpcap使用jnetpcap进行支持。
对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。
对应如下:ARP 实体类:work.Arp;UPD 实体类:work.Icmp;IP 实体类:work.Ip4;TCP 实体类:org.jnetpcap.protocol.tcpip.Tcp;UDP 实体类:org.jnetpcap.protocol.tcpip.Udp;而对于其中的广播数据包,其判断我利用捕获到的IP包的目的地址进行判断,若其目的地址为255.255.255.255,则认为其为广播数据包。
二、功能类实现(1)网卡获取电脑上的包的发送与接受都得通过网卡来进行,所以为了完成局域网数据包的捕获和统计,我首先要做的是获取到电脑上的网卡列表,然后选择一个网卡进行包的捕获。
而相关代码在jnetpcap的官网的示例代码1中可以找到,从中可以学习到的是jnetpcap的各种使用方法。
在我电脑上可以捕获到三个网卡,一个是本机自身的物理网卡,另外两个是虚拟机模拟出的虚拟网卡。
(2)包的抓捕Jnetpcap中包的抓捕也是有着固定的格式的,这在官网的示例代码中也是可以找到的,只要设置好相关的参数,就可以进行抓捕具体方法如下,利用Pcap对象的loop方法。
就是实例化一个Pcap对象,然后调用其loop方法。
第一个参数arg0 代表循环次数,第二个参数就是传入一个PcapPaketHandler 或其子类的对象,这个对象类型是要由我们自己编写的对包处理的方法。
(3)包的处理在这里对捕获的包的处理我是编写了一个PcapPacketHandler的子类,然后重写了nextPacket()方法。
在这个方法里我把捕获到的包当作参数传递个具体的处理方法packetMatch.handlePacket(packet)。
packetMatch.handlePacket(packet)方法是由我自己编写的。
handlePacket是packetMatch的一个静态方法,可以直接调用。
在这个方法里面,它会把捕获到的包的包头和T CP、UPD、ICMP、ARP、广播数据包五种类型的包的包头进行一一比较,以确认是否抓到了了相对应的包。
这儿还用到的就是jnetpcap的内部的一个方法,就是packet.hasHeader(arg0),通过在arg0传入已在jnetpcap里封装好的包的类型的实例,可以很好的判断该包是属于什么包类型的,是T CP、UPD、ICMP、ARP还是广播数据包。
然后内部对于各种包的信息的输出也有很好的支持,可以直接使用相应的toString方法,就可以输出各种相关信息。
(4)网络流量统计对于各个捕获到的包,分别针对各种类型的包设计了一个Double变量用于统计其传送过来相应包头的大小,并在停止抓包后将统计的数据输出在最下方的TextArea里面。
三、界面实现本程序在设计GUI时使用了Java的一个很好的插件WindowBuilder。
(1)布局一开始使用Border Layout布局,安排好各个按钮位置,文本框位置。
后来采用Absolute layout,并将窗口大小固定化。
在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,中间是两个带滚动条的多行文本框,左边的用于显示捕获的包的列表,右边用于显示左边的我们选中的包的具体信息。
最下方会在停止抓包按钮生效后输出总的抓包情况。
(2)按钮功能连接在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,其中选择网卡的功能具体由JComboBox(多文本选择框)上的选项决定,这个多文本选择框监听着网卡获取的方法,它会从该方法获得一个网卡列表,然后将其文本输出。
开始抓包的方法所对应的事件是抓包的事件,并且该抓包事件是个并发的进程。
因为如果不将其设置为并发进程,其会使其它事件一直阻塞,甚至连停止抓包都做不到。
停止抓包的事件其实是改变了开始抓包中的一个标志位,让其为假。
该标志为为真,抓包程序会一直进行,该标志为为假,抓包停止。
下方两个文本框,左边的文本框监听的是开始抓包这个事件,当这个事件开始,这个事件会向文本框传输捕获到的包的列表,然后让其显示。
而右边的文本框监听的是左边文本框我们选中的内容的相应事件。
因为对于我们捕获到的包我进行了编号,当我们在左边的文本框选中了一个包之后,左边的文本框对应的包的序号会被右边的文本框获取,用于在一个列表中根据序号查找到相对应的包的详细内容,然后将其输出。
统计功能的实现是在每个包的具体处理时,在处理包的方法类中已经有定义好几个静态变量用于计数,每个包具体处理时,将相对应的包类型数量加一即可。
还定义了其它的变量用于统计流量大小,也是在每个包具体处理时,将相对应的包的大小加到相对应的静态变量上即可。
第三章源代码清单及说明CaptureUtil.java//该类负责网卡列表的获取、包的捕获、抓包程序的停止package util;import java.util.ArrayList;import javax.swing.JOptionPane;import org.jnetpcap.Pcap;import org.jnetpcap.PcapIf;import entity.Windows;public class CaptureUtil extends Thread{private static boolean flag=true;public static int number=2;private static StringBuilder errbuf = new StringBuilder(); // 用于存储任何错误信息//此方法用于获取设备上的网卡设施public static ArrayList<PcapIf> CaptureNet(){CaptureUtil.flag=false;//下面有部分代码来自jnetpcap官网的实例ArrayList<PcapIf> alldevs = new ArrayList<PcapIf>(); // 用于存储搜索到的网卡//取得设备列表int r = Pcap.findAllDevs(alldevs, errbuf);if (r == Pcap.NOT_OK || alldevs.isEmpty()) {JOptionPane.showMessageDialog(null,errbuf.toString(),"错误",JOptionPane.ERROR_MESSAGE);return null;}return alldevs;}//此方法用于选取网卡并捕获包public static void CapturePacket(ArrayList<PcapIf> alldevs){ CaptureUtil.flag=true;PcapIf device = alldevs.get(number);/*System.out.printf("\nChoosing '%s' on your behalf:\n", device .getDescription());*///打开选中的设备int snaplen = Pcap.DEFAULT_SNAPLEN;// 默认长度为65535int flags = Pcap.MODE_PROMISCUOUS; // 混杂模式,扑获所有类型的包int timeout = 10 * 1000; // 10 seconds in millisPcap pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);if (pcap == null) {JOptionPane.showMessageDialog(null,errbuf.toString(),"错误",JOptionPane.ERROR_MESSAGE);return;}PacketMatch packetMatch = PacketMatch.getInstance();MyPcapPacketHandler<Object> myhandler = new MyPcapPacketHandler<Object>();while(CaptureUtil.flag){pcap.loop(1, myhandler, "/njnetpcap");}pcap.close();}public void run(){CaptureUtil.CapturePacket(CaptureUtil.CaptureNet());}public static void StopCapturePacket(){CaptureUtil.flag=false;}public static void ClearPacket(){PacketMatch.numberOfPacket=0;PacketMatch.hm.clear();Windows.lItems.clear();PacketMatch.numberOfArp=0;PacketMatch.numberOfTcp=0;PacketMatch.numberOfUdp=0;PacketMatch.numberOfIcmp=0;PacketMatch.numberOfWideSpread=0;}}MyPcapPacketHandler.java//该类是PcapPacketHandler的子类,重写了nextPacket方法package util;import org.jnetpcap.packet.PcapPacket;import org.jnetpcap.packet.PcapPacketHandler;public class MyPcapPacketHandler<Object> implements PcapPacketHandler<Object> {@Overridepublic void nextPacket(PcapPacket packet, Object arg1) { PacketMatch packetMatch = PacketMatch.getInstance();packetMatch.handlePacket(packet);}}PacketMatch.java//该类是包处理package util;import java.util.HashMap;import org.jnetpcap.packet.PcapPacket;import work.Arp;import work.Icmp;import work.Ip4;import org.jnetpcap.protocol.tcpip.Tcp;import org.jnetpcap.protocol.tcpip.Udp;import entity.Windows;public class PacketMatch {public static HashMap hm=new HashMap();public static int numberOfPacket=0;private static PacketMatch pm;private Icmp icmp = new Icmp();private Tcp tcp = new Tcp();private Udp udp = new Udp();private Arp arp= new Arp();private Ip4 ip4=new Ip4();public static double totalOfIcmp=0;public static double totalOfTcp=0;public static double totalOfUdp=0;public static double totalOfArp=0;public static double totalOfSpread=0;public static double totalOfIp=0;public static int numberOfWideSpread=0;public static int numberOfUdp=0;public static int numberOfTcp=0;public static int numberOfIcmp=0;public static int numberOfArp=0;public static PacketMatch getInstance() {if (pm == null) {pm = new PacketMatch();}return pm;}public void handlePacket(PcapPacket packet) {//以下四个包都已可以正确捕获PacketMatch.totalOfIp+=packet.getTotalSize()/(1024.0*1024.0);if (packet.hasHeader(icmp)) {handleIcmp(packet);}if (packet.hasHeader(arp)) {handleArp(packet);}if (packet.hasHeader(tcp)) {handleTcp(packet);}if (packet.hasHeader(udp)) {handleUdp(packet);}//广播数据包的捕获if (packet.hasHeader(ip4)) {handleIp4(packet);/*以下为实验IP地址的获取packet.getHeader(ip4);System.out.println(ip4.toString());byte[] destinations=new byte[4];ip4.destinationToByteArray(destinations);byte[] sources=new byte[4];ip4.sourceToByteArray(sources);System.out.println("ip4 destination:"+destinations);System.out.println("ip4 resource:"+sources);System.out.println("ip4destination:"+ip4.destinationToInt());System.out.println("ip4 resource:"+ip4.sourceToInt());System.out.println("ip4destination:"+PacketMatch.intToIp(ip4.destinationToInt()));System.out.println("ip4resource:"+PacketMatch.intToIp(ip4.sourceToInt()));*/}}private void handleIp4(PcapPacket packet) {packet.getHeader(ip4);if(PacketMatch.intToIp(ip4.destinationToInt()).equals("255.255.25 5.255")){//这是一个广播数据包System.out.println("收到一个广播数据包");Windows.lItems.add(numberOfPacket, "广播数据包");hm.put(numberOfPacket, "这是一个广播数据包!");numberOfWideSpread++;totalOfSpread+=ip4.getLength()/1024.0;numberOfPacket++;}}private void handleUdp(PcapPacket packet) {packet.getHeader(udp);System.out.println("udp来源端口"+udp.toString());hm.put(numberOfPacket, udp.toString());Windows.lItems.add(numberOfPacket, "udp");numberOfUdp++;totalOfUdp+=udp.getLength()/1024.0;numberOfPacket++;}private void handleTcp(PcapPacket packet) {packet.getHeader(tcp);System.out.println(tcp.toString());hm.put(numberOfPacket, tcp.toString());Windows.lItems.add(numberOfPacket, "tcp");numberOfTcp++;totalOfTcp+=tcp.getLength()/1024.0;numberOfPacket++;}private void handleIcmp(PcapPacket packet) {packet.getHeader(icmp);System.out.println("icmp:"+icmp.toString());hm.put(numberOfPacket, icmp.toString());Windows.lItems.add(numberOfPacket, "icmp");numberOfIcmp++;totalOfIcmp+=icmp.getLength()/1024.0;numberOfPacket++;}private void handleArp(PcapPacket packet) {packet.getHeader(arp);System.out.println("arp:"+arp.toString());hm.put(numberOfPacket, arp.toString());Windows.lItems.add(numberOfPacket, "arp");numberOfArp++;totalOfArp+=arp.getLength()/1024.0;numberOfPacket++;}//以下函数将Int类型转化为Ip地址public static String intToIp(int ipInt){return new StringBuilder().append(((ipInt>>24)&0xff)).append('.').append((ipInt>>16)&0xff).append('.').append((ipInt>>8)&0xff).append('.').append((ipInt&0xff)).toString();}}Windows.java//该类是GUI界面设计package entity;import java.awt.Color;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.ArrayList;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.BorderFactory;import javax.swing.DefaultListModel;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JToolBar;import javax.swing.border.Border;import javax.swing.border.EmptyBorder;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import org.jnetpcap.PcapIf;import util.CaptureUtil;import util.PacketMatch;public class Windows extends JFrame {private JPanel contentPane;private final Action action = new SwingAction();private final Action action_1 = new SwingAction_1();private final Action action_2 = new SwingAction_2();public static DefaultListModel lItems=new DefaultListModel();private JList list = new JList(lItems);private final Action action_3 = new SwingAction_3();private JScrollPane jsp1=new JScrollPane(list);private JTextArea textArea = new JTextArea();private JScrollPane jsp2=new JScrollPane(textArea);private JTextArea textArea_1 = new JTextArea();/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Windows frame = new Windows();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public Windows() {setTitle("\u6293\u5305");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 692, 477);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);this.setResizable(false);JToolBar toolBar = new JToolBar();toolBar.setBounds(5, 5, 666, 23);contentPane.add(toolBar);JButton button = new JButton("\u9009\u62E9\u7F51\u5361");toolBar.add(button);final JComboBox comboBox = new JComboBox();comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {String net=(String)comboBox.getSelectedItem();ArrayList<PcapIf> alldevs=CaptureUtil.CaptureNet();int i=0;System.out.println(net);for (PcapIf device : alldevs) {if(net.equals(device.getDescription())){CaptureUtil.number=i;System.out.println(CaptureUtil.number+":"+device.getDescription() );CaptureUtil.StopCapturePacket();}i++;}}});comboBox.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent arg0) {}});toolBar.add(comboBox);JButton button_1 = new JButton("\u5F00\u59CB\u6293\u5305");button_1.setAction(action_1);toolBar.add(button_1);JButton button_2 = new JButton("停止抓包");button_2.setAction(action_2);button_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {}});toolBar.add(button_2);JButton button_3 = new JButton("\u6E05\u7A7A\u8BB0\u5F55");button_3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {}});button_3.setAction(action_3);toolBar.add(button_3);Border brd=BorderFactory.createMatteBorder(1, 1, 2, 2, Color.black);list.setBorder(brd);list.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent arg0) {// TODO Auto-generated method stubtextArea.setText("");textArea.append((String)PacketMatch.hm.get(list.getSelectedIndex( )));//以下两行用于检测// System.out.println(list.getSelectedIndex());//System.out.println((String)PacketMatch.hm.get(list.getSelectedInd ex()));}});jsp1.setBounds(5, 28, 258, 343);contentPane.add(jsp1);jsp2.setBounds(263, 28, 408, 343);contentPane.add(jsp2);textArea_1.setBounds(5, 371, 666, 67);contentPane.add(textArea_1);ArrayList<PcapIf> alldevs=CaptureUtil.CaptureNet();for (PcapIf device : alldevs) {comboBox.addItem(device.getDescription());}}private class SwingAction extends AbstractAction {public SwingAction() {putValue(NAME, "选择网卡");putValue(SHORT_DESCRIPTION, "Some short description");}public void actionPerformed(ActionEvent e) {ArrayList<PcapIf> alldevs=CaptureUtil.CaptureNet();if(alldevs!=null){System.out.println("Network devices has been found:");int i = 1;for (PcapIf device : alldevs) {System.out.println("第"+(i++)+"个网卡名字:"+device.getName()+"\n信息:"+device.getDescription());}}}}private class SwingAction_1 extends AbstractAction {public SwingAction_1() {putValue(NAME, "开始抓包");putValue(SHORT_DESCRIPTION, "Some short description");}public void actionPerformed(ActionEvent e) {//抓包线程(new CaptureUtil()).start();}}private class SwingAction_2 extends AbstractAction {public SwingAction_2() {putValue(NAME, "停止抓包");putValue(SHORT_DESCRIPTION, "Some short description");}public void actionPerformed(ActionEvent e) {CaptureUtil.StopCapturePacket();textArea_1.setText("");String message="Tcp:"+PacketMatch.numberOfTcp+"包"+PacketMatch.totalOfTcp+"KB "+"Udp:"+PacketMatch.numberOfUdp+"包"+PacketMatch.totalOfUdp+"KB "+"\n"+"Icmp:"+PacketMatch.numberOfIcmp+"包"+PacketMatch.totalOfIcmp+"KB "+"Arp:"+PacketMatch.numberOfArp+"包"+PacketMatch.totalOfArp+"KB "+"\n"+"广播数据包"+PacketMatch.numberOfWideSpread+"包"+" "+PacketMatch.totalOfSpread+"KB "+"总流量:"+PacketMatch.totalOfIp+"MB";textArea_1.append(message);}}private class SwingAction_3 extends AbstractAction {public SwingAction_3() {putValue(NAME, "清空记录");putValue(SHORT_DESCRIPTION, "Some short description");}public void actionPerformed(ActionEvent e) {CaptureUtil.ClearPacket();}}}第四章运行结果第五章心得体会通过这次实验我对于TCP、UPD、ICMP、ARP、广播数据包等包的结构有了更好的认识。