接收端(PC-B):获取本机真实IP 和MAC 地址后,自动跳到“ARP 高速缓存表”模拟页面,等待“交换机”将ARP请求报文转发过来后修改ARP 高速缓存表,再自己跳转到ARP 响应报文页面,逐步封装。封装完毕则自动向“交换机”发送ARP 响应报文。
图2 为ARP 协议仿真系统动态交互用例图。
图2 ARP 协议动态交互仿真系统用例
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 协议动态交互仿真系统类
为了使用方便,ARP 协议动态交互仿真系统把三个角色功能集成在一个程序中。程序运行时,操作者需为机器选择规定的角色,再根据角色功能分配,按照定义的流程完成相应的操作。图4 为ARP 协议动态交互仿真系统流程图。
图4 ARP 协议动态交互仿真系统流程
2 系统实现
2.1 ByeSQL 框架简介
Java 流行已久,基于jdbc 封装的持久层框架层出不穷,像Hibernate、Ibatis 等都是功能十分强大的开源框架[8]。但是这些开源框架对于一些小系统的应用显得太复杂,配置很麻烦,而且这些框架没有真正屏蔽掉SQL 语句的书写:
Hibernate 需要写HQL 语句(和SQL 类似),Ibatis 就是一个sql-Object 映射框架。