协议仿真实验教学是帮助学生理解网络协议的重要手段。目前的协议仿真实验是离散的、静态的,即单独模拟某个协议,不能与其它协议合作,且协议中的数据表示是静态的,不能随着输入的数据的变化而动态变化,实验效果单调、生硬。具有代表性的网络仿真软件有:国外的NS2,BosON Netsim,国内的 “网络协议仿真教学系统”,“Psender”系统等。NS2 能够演示协议的工作过程,但是,无数据内容的动态变化和协议之间的合作。Boson Netsim 主要用于仿真网络工程实验,帮助学生熟悉网络设备和协议的使用,不能演示协议的工作流程,以及协议之间的相互协作过程,其效果仅类似于一个实际的网络工程实验。“网络协议仿真教学系统”实现了跨机器之间通信,但是数据的传递全部由人工操作,实验环境复杂,为了更好地模拟协议,忽略了实验环境与实际应用场景的一致性。“Psender”系统借用了着作《计算机网络:自顶向下方法与Internet 特色》作者提供的一些在线实验案例,实现了数据发送方和接收方之间的自动通信和速度匹配,但是,忽略了数据通信的中间过程,如,不能演示交换机的工作流程,也是离散的。因此,已有的仿真实验是离散的、静态的。而网络通信是一个连续的过程,需要协议之间相互协作,且数据也需要动态变化。

ARP 协议功能是把IP 地址映射为MAC 地址,核心机制是ARP 缓存表,实现IP 地址和MAC 地址之间的一一对应关系。研究ARP 协议动态交互仿真实验系统的目的是便于大家在学习ARP 协议的时候更好地理解协议理论,能够体会到ARP 请求报文和响应报文封装和发送的整个过程,真实地演示交换机对于ARP 请求报文和响应报文转发的机制及PC 机上缓存表的修改过程,有助于增强学生的学习效果。

1 系统设计

ARP 协议动态交互仿真实验系统是由三台计算机(PC-A,PC-B,PC-C)模拟的局域网,数据在其内部转发时的分布式仿真实验平台。三台机器分别模拟ARP 报文发送端、交换机、ARP 报文接收端,通过三台机器交互操作,在以太网环境中动态模拟出ARP 协议的整个工作流程,包括ARP 高速缓存表的查询和修改,ARP 报文封装,交换机端口转发报文。

ARP 协议动态交互仿真系统拓扑结构图如图1 所示。

图1 ARP 协议动态交互仿真实验平台拓扑结构

1.1 系统分析

该系统的目的是为了在学生学习ARP 协议时,通过动态、逼真的实验过程帮助学生深入理解ARP 协议,提高学习效果。为了能够快捷、顺利地完成实验,实验环境对该系统有如下要求:部署方便,使用简单,效果逼真,移植性和可扩展性强。

系统针对上述需求采取如下策略:该系统全部在Windows XP 下开发,采用部署较为简单的Mysql 数据库和Tomcat 服务器(PC-C),将整个ARP 协议工作过程抽象出来放在网页上直观地展现,学习者可以像浏览网页一样使用该系统。

客户端:要求简单、明了地展现相应信息;有动态效果,逐步封装;能与服务器进行数据交互。因此,系统用dreamweaver8 设计页面,采用表格布局封装相关信息;用javascript. 控制动态效果和实现逐步封装;采用Ajax 技术实现客户端与服务器的交互。

服务器:开发语言相对简单易学,业务逻辑集中控制,采用分层的思想,在基本不动现有代码的情况下实现功能的拓展。系统用java 完成服务器端的实现,以一个逻辑控制类控制整个业务逻辑;封装一个持久层框架byesql 操作mysql数据库,能在不写任何SQL 语句的情况下针对MySQL 数据库完成基本的增、删、改、查。

1.2 系统设计

1.2.1 系统用例图

实验时,学生甲操作PC-A,模拟数据发送端;学生乙操作PC-C,模拟交换机;学生丙操作PC-B,模拟数据接收端。

发送端(PC-A):获取本机真实IP 和MAC 地址后,用一个JSP 页面模拟ARP 报文的逐步封装过程,使用者可以看到ARP 请求报文逐步封装的效果。然后自动向“交换机”

发送ARP 请求报文,再自动跳转到“ARP 高速缓存表”模拟页面,等待“交换机”转发来ARP 响应报文,最后修改“ARP 高速缓存表”。

交换机(PC-C):用一个JSP 页面模拟“端口——MAC映射表”,负责转发ARP 报文。初始为等待状态,当发送端(PC-A)发送完ARP 请求报文之后,自动向除发送端外的所有端口转发该请求报文,完毕后自动跳到初始状态等待转发ARP 响应报文,当响应报文到达后就针对发送端(PC-A)单播该报文分组。

接收端(PC-B):获取本机真实IP 和MAC 地址后,自动跳到“ARP 高速缓存表”模拟页面,等待“交换机”将ARP请求报文转发过来后修改ARP 高速缓存表,再自己跳转到ARP 响应报文页面,逐步封装。封装完毕则自动向“交换机”发送ARP 响应报文。

图2 为ARP 协议仿真系统动态交互用例图。

图2 ARP 协议动态交互仿真系统用例

1.2.2 系统类图

ARP 协议动态交互仿真系统定义了四个类:

①ARP 报文类ArpMessage:定义ARP 报文属性和类型;②ARP 缓存表类ArpTable:定义ARP 表字段和属性;③端口MAC 映射表类MacTable:定义交换机端口和机器MAC 地址的映射关系;④计算机类PC:定义各机器的IP 地址、MAC 地址和计算机名。

计算机类PC 为ARP 报文类ArpMessage 和ARP 缓存表类ArpTable 提供本机的MAC 地址和IP 地址,分别用于帧封装和MAC 地址查询。端口MAC 映射表类MacTable 为计算机类PC 提供MAC 地址和端口的对应关系,用于数据转发。

图3 为ARP 协议动态交互仿真实验系统类图。

图3 ARP 协议动态交互仿真系统类

1.2.3 系统流程图

为了使用方便,ARP 协议动态交互仿真系统把三个角色功能集成在一个程序中。程序运行时,操作者需为机器选择规定的角色,再根据角色功能分配,按照定义的流程完成相应的操作。图4 为ARP 协议动态交互仿真系统流程图。

图4 ARP 协议动态交互仿真系统流程

2 系统实现

2.1 ByeSQL 框架简介

Java 流行已久,基于jdbc 封装的持久层框架层出不穷,像Hibernate、Ibatis 等都是功能十分强大的开源框架[8]。但是这些开源框架对于一些小系统的应用显得太复杂,配置很麻烦,而且这些框架没有真正屏蔽掉SQL 语句的书写:

Hibernate 需要写HQL 语句(和SQL 类似),Ibatis 就是一个sql-Object 映射框架。

ARP 协议动态交互仿真系统封装了一个持久层框架byeSQL,将对数据库的操作封装起来,利用统一的约定省去配置文件中的诸多麻烦,借助java 反射机制完成表项和实体类的相互转换。所有的逻辑控制都由java 代码去处理。该框架可以应用于大部分小型系统的开发。

持久层框架byeSQL 主要针对MySQL 数据库,将一些常用的增、删、改、查操作封装起来。使开发人员在做一些小型系统的时候,不要再去关心持久层的实现(也就是不要关心SQL 代码),只要导入byeSQL.jar 和MySQL 驱动包就可以利用java 代码操作数据库,而且配置文件十分简单,只需输入数据库的用户名和密码即可。不过使用框架byeSQL 必须遵守一个约定,表名必须和实体类名一致,字段名必须和实体类的属性一致,而且实体类必须符合JavaBean 规范。该框架是轻量级的,可以单独使用也可以和其它框架结合使用。

2.2 主要框架函数

系统持久层框架封装了10 个数据库操作函数,这些操作函数内部关联起来,就能完成对数据库的增、删、改、查操作,不需用户进行干涉。部分操作函数的功能为:

①public STatic int selectCount(String beanName):查出表中表项总数(传入该表对应的bean 全名,返回记录个数);

②public static List selectPage(String beanName,int start,int size):分页查询(传入该表对应的bean 全名、开始位置、每页显示记录条数,返回装有所查记录对应的对象实例列表);

③public static List selectOne(String beanName,StringpkName,String pkValue):根据特定字段名和值选出所需记录(传入该表对应的bean 全名、特定字段名、特定字段值,返回装有所查记录对应的对象实例列表);

④public static List selectAll(String beanName):查出所有记录(传入该表对应的bean 全名,返回装有所查记录对应的对象实例的列表);

⑤public static List select(String beanName,String select):

实现复杂查询,如关联查询和子查询等(传入该表对应的bean 全名、SQL 语句,返回装有所查记录对应的对象实例的列表)。

3 结语

该系统实现了ARP 协议的动态交互仿真,完成了ARP协议整个工作过程的模拟实现,通过动态交互操作,能够让学习者更轻松地学习和掌握ARP 协议。系统通过封装一个持久层框架,实现针对MySQL 数据库的基本增删操作,做到使用户不需写SQL 语句,利用java 代码就可以操作MySQL 数据库。

JAVA写arp协议_ARP协议动态交互仿真系统的设计相关推荐

  1. 帮忙写一篇关于消防化工指挥作战系统的设计报告

    很高兴为您写这篇关于消防化工指挥作战系统的设计报告. 首先,我们需要了解消防化工事故的特点.这些事故通常具有危害性和复杂性,因此需要有效的预防和应对措施. 因此,我们设计了一个消防化工指挥作战系统,以 ...

  2. 基于matlab的温度信号采集,基于matlab与单片机的动态温度监控系统的设计

    基于matlab与单片机的动态温度监控系统的设计 基于Matlab/Simulink 与单片机的动态温度监控系统的设计Matlab 有着强大的数值处理能力,已应用于工程计算.控制系统设计.数字信号处理 ...

  3. java计算机毕业设计基于Web的社区商超系统的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计基于Web的社区商超系统的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计基于Web的社区商超系统的设计与实现源码+数据库+系统+lw文档 ...

  4. 匹配系统Java开发,基于RFID的机场行李快速匹配系统的设计(Java,MySQL)

    基于RFID的机场行李快速匹配系统的设计(JAVA,MySQL)(论文11400字,程序代码,MySQL数据库) 摘要:机场设备的智能化体现了我国在航空领域的水平.现代技术的快速发展也为机场行李匹配的 ...

  5. java怎么介绍酒店预订项目_Java酒店预订系统的设计与实现毕业论文.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava Java酒店预订系统的设计与实现毕业论文.doc59页 ...

  6. java 美发管理系统_基于安卓Android潮流美发系统APP设计(MySQL)

    基于安卓Android潮流美发系统APP设计(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文16000字,程序代码,MySQL数据库) 本应用主要用于对手机上网用户,在线预约 ...

  7. 29W 字总结阿里 Java 高并发编程:案例 + 源码 + 面试 + 系统架构设计

    下半年的跳槽季已经开始,好多同学已经拿到了不错的 Offer,同时还有一些同学对于 Java 高并发编程还缺少一些深入的理解,不过不用慌,今天老师分享的这份 27W 字的阿里巴巴 Java 高并发编程 ...

  8. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...

    前言:ARP协议是在链路层通讯中,已知目标IP地址,但是,仅有IP 地址是不够的,因为IP数据报必须封装成帧才能通过数据链路进行发送,而数据帧必须要有目的MAC地址,每一个网络设备在数据封装前都需要获 ...

  9. 无线抄表与服务器,基于Modbus协议的远程无线抄表系统的设计与实现

    摘要: 随着人民生活水平的日益提高,智能计量表在日常生活和工作中的使用越来越普及.但是传统人工抄表需要消耗大量的人力和物力,并且抄表人员需亲临现场或恶劣的环境,鉴于安全性和便捷性的考虑,远程智能抄表系 ...

  10. 基于Java实现的宠物领养、救助、商城系统网站设计(springboot+bootstrap+MySQL)

    全套资料下载地址:https://download.csdn.net/download/sheziqiong/85584411?spm=1001.2014.3001.5503 全套资料下载地址:htt ...

最新文章

  1. 笔记本计算机硬件知识,知识和经验:笔记本计算机的基本知识_计算机硬件和网络_IT /计算机_信息...
  2. js onclick方法
  3. hdfs dfs的bash hdfs command not found解决方案
  4. chrome/edge插件备忘
  5. 没有Hyper-V服务,WP Emulator无法启动
  6. aop:aspectj-autoproxy /
  7. SSM实现定时任务的两种方式
  8. 阿里云RPA专有云产品文档集合
  9. harmonyos con,鸿蒙HarmonyOS系统中的JS开发框架
  10. 160 - 37 CyberBlade.1
  11. Chrome OS 70 发布:这是安卓的私生子吗?
  12. 众辰nz200变频器使用说明书_一些电工听到变频器有点懵,今天我们一起来分析变频咋回事?...
  13. springboot update数据_SpringBoot整合Mybatis+Druid+数据库(注解版)
  14. 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版十三五普通高等教育规划教材)...
  15. 数字孪生|数字孪生装备-概念与内涵
  16. PCF8591 +MQ3 +LCD1602+89C51RC(酒精传感器)
  17. conda install安装不了任何包,一直下载一直错
  18. 没有免费午餐定理No Free Lunch Theorem
  19. 图解 Vue3.0 编译器核心原理(Vue3.0源码解析)
  20. Android 报 Unable to start service Intent { } U=0: not found错误

热门文章

  1. java数据透视表算法_用Java Steams创建数据透视表
  2. 云片网发送短信验证码
  3. 【历史上的今天】5 月 4 日:微软放弃收购雅虎;史上最危险的电脑病毒;vi 发布
  4. 高龄脑卒中患者的运动处方
  5. 计算机科学与技术本科知识体系
  6. 【M1兼容】草图大师mac 英文版 SketchUp 2021 Mac
  7. android前置摄像头预览,android - 当选择了前置摄像头CameraX预览没有显示任何东西 - 堆栈内存溢出...
  8. wincap的使用总结
  9. easyui filebox 上传类型控制
  10. 大学计算机基础教程第13章数据库技术基础