计算机网络课程设计_报告
- 格式:docx
- 大小:43.31 KB
- 文档页数:52
实验报告实验名称:计算机网络课程设计
学生姓名: xxxxxxxxxxxxxxx
专业: xxxxxxxxxxxxxxx
班级: xxxxxxxxxxxxxxx
学号: xxxxxxxxxxxxxxx
指导教师: xxxxxxxxxxxxxxx
实验成绩:
实验地点:
实验时间: 2016 年 5 月 6 日
一、实验目的与实验要求
1、实验目的
将书本上抽象的概念与具体实现技术结合,通过网络软件编程的实践,深入理解理论课上学习到的ARP、IP、TCP等重要网络协议的原理,通过自己动手编程封装与发送这些数据包,加深对网络协议的理解,掌握协议帧的结构和工作原理及其对协议栈的贡献。
2、实验要求
网络课程设计包含两个部分的内容:
题目一是数据包的封装发送和解析(ARP/IP/TCP),要求使用Winpcap技术和Socket技术,根据ARP/IP/TCP帧的结构,封装数据包发送到局域网中。另外要捕获网络中的TCP/IP/ARP数据包,解析数据包的内容,并将结果显示,并同时写入日志文件。
题目二是从可选题目中选择一个,可选题目均是网络应用小程序,要求小组使用网络编程技术设计并实现一个网络应用程序,加深对网络协议协的理解,并锻炼网络编程能力。
二、实验设备(环境)及要求
1、实验硬件设备:
计算机型号:联想ThinkPad T430u
处理器型号:Intel i5 主频:1.8Hz
网卡型号:(1)Realtek PCIe GBE (2)Broadcom 802.11n
2、实验软件要求:
操作系统:Windows10
应用软件:Visual Studio 2015 Pro
3、小组成员及分工:
三、实验内容与步骤
1、实验1:数据包的封装发送和解析(ARP/IP/TCP)
(1)实验内容
1)程序目标:
根据IP帧的结构,封装IP数据包发送到局域网中。并捕获网络中的IP数据包,解析数据包的内容,并将结果显示,并同时写入日志文件。
2)程序功能:
以命令行形式运行
在标准输出中显示捕获的IP报文的首部字段的内容。
使用winpcap访问网卡,手动封装
定义IP首部的数据结构
填充数据包,发送数据包,捕获数据包
使用winpcap,捕获IP数据包
(2)主要步骤
1)总体设计:
a.获取设备列表并打印,打开所选择的适配器;
b.准备工作:定义ip相关的结构体、打开要存放结果的文件,设置过滤器,手
写ip数据报(内容有无效的MAC源和目的地址,和均为本机地址的ip源地址和目的地址,即发给自己一个ip报文),设置抓到数据报的解析和输出到文件的操作函数(解析ip报,打印并写入文件:报文的版本、协议、源和目的地址等)。
c.发包、抓包。
d.分析获取的数据。
2)具体实现:
}
2、实验2:子网内文件传送
(1)实验内容
(明确的实验内容)
设计并实现一个局域网内部的文件传送工具,使用TCP协议进行可靠文件传输。以图形界面运行,不同结点上文件自动同步
(2)主要步骤
(详细的实验步骤(系统/方法/算法等),图文结合)
1)问题定义:
实现一个局域网内的文件传送与聊天的软件
2)需求分析:
局域网内的文件传送应当具备以下功能:
在线用户的及时发现和更新
选择一对一或者一对多对话模式
与选择用户进行聊天和文件传输
用户下线通知与更新用户列表
3)系统设计:
参考飞鸽传书的实现原理,总结设计方案如下:
架构设计:本系统采用本地应用程序设计,仅适用于在同一局域网的主机通信;
互相发现:本系统运行时启动局域网广播线程,发出包含主机名称、主机IP以及新加入标识符的广播表明自己新加入;
用户列表:监听到其他用户的广播信息后更新列表,显示当前在线的用户名和用户IP;
更新列表:在系统退出时会广播本机信息,标识表明自己离开,其余在线用户接收到信息后更新提示该用户下线;
选择用户:可以单独选择或者多项选择用户列表中的用户;
发送消息:选择用户后,在输入框中输入聊天信息,点击“发送”按钮系统会发送UDP数据包给对应用户的ip地址,端口是8011;
接受消息:系统实时监听8011端口以接受不同用户发来的消息并展示在聊天窗口中;
发送文件:选择指定用户,点击“发送文件”按钮,选择本机相应文件后,与目标用户建立TCP连接,发送字节流。端口为8011;
接受文件:监听到有TCP连接请求时建立实时连接,系统提示用户是否接收文件,选择接收后选择相应路径与文件名后进行接收,接收成功后再聊天窗口显示提示信息。
4)详细设计:
①局域网用户列表的建立:软件启动后定时的使用UDP协议向255.255.255.255这个广播地址发送广播包,端口设置为8001。广播包内容包含主机名、IP、标识符等信息,已启动软件的用户通过8001端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、IP地址等信息,从而局域网内的本系统用户都能建立起用户列表;
②传送与接收信息:传送聊天信息时同样使用UDP协议,用户填写消息后点击按钮调用发送消息的函数,然后通过8011端口发送UDP包。系统在启动时通过开辟新线程来监听8011端口,时刻监听发送到本机的信息。
③发送文件:用户发送文件时建立一个带参数的线程来发送文件,调用相应的TCP发送函数来发送文件,使用的是8001端口,由于协议不同因此与之前的广播并不冲突;
④接收文件:软件启动时开启一个线程用来接收文件,此线程在正常工作条件下处于阻塞监听状态,直到收到建立TCP连接的请求,之后提示用户收到文件选择是否接受,之后选择保存路径,进行接收。
⑤用户离开:用户离线时发送一个离线广播包到255.255.255.255的8001端口,包中含有LEAVE的标识符,收到此广播包的用户,根据包中的IP地址删除用户列表中相应的用户信息,并在聊天窗口显示“XXX用户已经离开”;
⑥聊天记录保存:考虑到用户有保存聊天记录的需求,在聊天记录右侧点击“保存”按钮,可以将当前聊天记录保存为txt文件到用户指定目录中。或点击“清空”,清空当前用户聊天记录。