计算机网络课程设计_报告

  • 格式:docx
  • 大小:43.31 KB
  • 文档页数:52

下载文档原格式

  / 52
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验名称:计算机网络课程设计

学生姓名: 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文件到用户指定目录中。或点击“清空”,清空当前用户聊天记录。