计算机网络课程设计报告0001.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 实验名称: 计算机网络课程设计 学生姓名 : XXXXXXXXXXXXXXX 专 业: XXXXXXXXXXXXXXX 班 级: XXXXXXXXXXXXXXX 学 号: XXXXXXXXXXXXXXX 扌旨导教师 : XXXXXXXXXXXXXXX 实验成绩: 实验地点: 实验时间:2016 年_5— 月_6_日 、实验目的与实验要求 1、实验目的 将书本上抽象的概念与具体实现技术结合, 通过网络软件编程的实践, 深入理解理论课上学习到的 ARR 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) 总体设计: 获取设备列表并打印,打开所选择的适配器; 准备工作:定义 ip 相关的结构体、打开要存放结果的文件,设置过滤 器,手写ip数据报(内容有无效的 MAC源和目的地址,和均为本机地 址的 ip 源地址和目的地址,即发给自己一个 ip 报文),设置抓到数据 报的解析和输出到文件的操作函数(解析 ip 报,打印并写入文件:报 文的版本、协议、源和目的地址等) 。 发包、抓包。 分析获取的数据。 获取设备列表 打开选择适配器 过滤数据包 解析数据包 2)具体实现: #defi ne HAVE_REMOTE #in elude pcap.h #in elude remote-ext.h #i nclude stdio.h #include stdlib.h /*4字节的IP地址*/ typedef struct ip_address{ u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address; /*IPv4 首部 */ typedef struct ip_header{ u_char ver_ihl; // 版本(4bits ) +首部长度(4bits ) u_char tos; // 服务类型 u_short tle n; // 总长类型 u_short ide ntificatio n; // 标识 u_short flags_fo; // 标志位+段偏移量 u_char ttl; // 存活时间 u_char proto; // 协议 u_short crc; // 首部校验和 ip_address daddr; // 目的地址 ip_address saddr; // 源地址 u_int op_pad; // 选项与填充 }ip_header; pcap_pkthdrpcap_pkthdrvoid packet_ha ndler(u_char *param, const struct pcap_pkthdr pcap_pkthdr *header, const u_char *pkt_data); /* packet handler 函数原型 */ void packet_ha ndler(u_char *param, const struct *header, co

文档评论(0)

sunhongz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档