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

上传人:鲁** 文档编号:497697030 上传时间:2023-09-16 格式:DOC 页数:64 大小:2.01MB
返回 下载 相关 举报
计算机网络课程设计报告23795_第1页
第1页 / 共64页
计算机网络课程设计报告23795_第2页
第2页 / 共64页
计算机网络课程设计报告23795_第3页
第3页 / 共64页
计算机网络课程设计报告23795_第4页
第4页 / 共64页
计算机网络课程设计报告23795_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《计算机网络课程设计报告23795》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告23795(64页珍藏版)》请在金锄头文库上搜索。

1、实验报告实验名称:计算机网络课程设计学生姓名 : xxxxxxxxxxxxxxx专业:xxxxxxxxxxxxxxx班级:xxxxxxxxxxxxxxx学号:xxxxxxxxxxxxxxx指导教师 :xxxxxxxxxxxxxxx实验成绩 :实验地点:实验时间:2016年5 月 6日、实验目的与实验要求1、实验目的将书本上抽象的概念与具体实现技术结合,通过网络软件编程的实践,深入 理解理论课上学习到的ARP、IP、TCP等重要网络协议的原理,通过自己动手编程封装与发送这些数据包,加深对网络协议的理解,掌握协议帧的结构和工作原理及其对协议栈的贡献。2、实验要求网络课程设计包含两个部分的内容:题目

2、一是数据包的封装发送和解析(ARP/IP/TCP ),要求使用 Winpcap技术和Socket技术,根据ARP/IP/TCP帧的结构,封装数据包发送到局域网中。另外 要捕获网络中的TCP/IP/ARP数据包,解析数据包的内容,并将结果显示,并同 时写入日志文件。题目二是从可选题目中选择一个,可选题目均是网络应用小程序,要求小组使用网络编程技术设计并实现一个网络应用程序,加深对网络协议协的理解,并锻炼网络编程能力。1、实验设备(环境)及要求1、实验硬件设备:计算机型号:联想 ThinkPad T430u处理器型号:In tel i5 主频:1.8Hz网卡型号:(1)Realtek PCIe G

3、BE (2)Broadcom 802.11n2、实验软件要求:操作系统: Win dows10应用软件:Visual Studio 2015 Pro3、小组成员及分工:二、实验内容与步骤1、实验1 :数据包的封装发送和解析( ARP/IP/TCP )(1 )实验内容1)程序目标:根据IP帧的结构,封装IP数据包发送到局域网中。并捕获网络中的IP数据包,解析数据包的内容,并将结果显示,并同时写入日志文件2)程序功能:以 命令行形式运行 在标准输出中显示捕获的IP报文的首部字段的内容 使用winpcap访问网卡,手动封装定义IP首部的数据结构 填充数据包,发送数据包,捕获数据包使用winpcap,

4、捕获IP数据包(2 )主要步骤1)总体设计:a. 获取设备列表并打印,打开所选择的适配器;b. 准备工作:定义ip相关的结构体、打开要存放结果的文件,设置过滤器,手写ip数据报(内容有无效的 MAC源和目的地址,和均为本机地址的ip源地址和目的地址,即发给自己一个ip报文),设置抓到数据报的解析和输出到文件的 操作函数(解析ip报,打印并写入文件:报文的版本、协议、源和目c.d.的地址等)。发包、抓包。分析获取的数据 jl C获取设备列表I打开选择适配器过滤数据包解析数据包2)具体实现:#defi ne HAVE_REMOTE#in elude pcap.h#i nclude remote-e

5、xt.h#in clude stdio.h#i nclude stdlib.h/*4字节的IP地址*/typedef struct ip_addressu_char bytel;u_char byte2;u_char byte3;u_char byte4;ip_address;/*IPv4 首部 */typedef struct ip_headeru_char ver_ihl;II版本(4bits ) +首部长度(4bits)u_char tos;u_short tle n;u_short ide ntificati on;u_short flags_fo;u_char ttl;u_char

6、proto;u_short crc; ip_address daddr; ip_address saddr; u_int op_pad;ip_header;/服务类型II总长类型II标识标志位+段偏移量II存活时间协议II首部校验和II目的地址II源地址II选项与填充void packet_ha ndler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); I* packet han dler函数原型*Ivoid packet_ha ndler(u_char *param, const struc

7、t pcap_pkthdr *header, const u_char *pkt_data); int mai n()pcap_if_t *alldevs;pcap_if_t *d;int inum;int i=0;pcap_t *adha ndle;char errbufPCAP_ERRBUF_SIZE;u_int n etmask;II抓包类型char packet_filter = ip;pcap_dumper_t *dumpfile;/*获取本机设备列表*/if (pcap_fi ndalldevs_ex(PCAP_SRC_IF_STRING, NULL, & alldevs, err

8、buf) = -1)fprin tf(stderr,Error in pcap_fi ndalldevs: %sn, errbuf);exit(1);/*打印适配器列表*/for(d=alldevs; d; d=d-n ext)prin tf(%d. %s, +i, d-n ame);if (d-descripti on)printf( (%s)n, d-description);elseprintf(” (No descripti on available) n);if(i=0)prin tf(nNo in terfaces found! Make sure Win Pcap is in s

9、talled.n);return -1;prin tf(E nter the in terface nu mber (1-%d):,i);sca nf(%d, &nu m);if(inum i)prin tf(nln terface nu mber out of ran ge.n);/*释放设备列表 */pcap_freealldevs(alldevs);return -1;/*跳转到选中的适配器 */for(d=alldevs, i=0; in ext, i+);/*打开设备*/if ( (adha ndle= pcap_ope n(d-n ame,/设备名65536,/ 65535保证能捕

10、获到不同数据链路层上每个数据包的全部内容PCAP_OPENFLAG_PROMISCUOUS,/ 混杂模式1000,/读取超时时间NULL,/远程机器验证errbuf/错误缓冲池)=NULL)fprin tf(stderr,nUn ableto ope n the adapter. %s is not supported by Win Pcapn,d-n ame);/*释放设备列表 */pcap_freealldevs(alldevs);return -1;/*打开堆文件*/dumpfile = pcap_dump_ope n( adha ndle, D:save.txt);if(dumpfil

11、e=NULL)fprin tf(stderr,nError ope ning output filen);return -1;/*检查数据链路层,只考虑以太网*/if(pcap_datali nk(adha ndle)匸DLT_EN10MB)fprin tf(stderr, n This program works on ly on Ether net n etwords. n);/*释放设备列表*/pcap_freealldevs(alldevs);return -1;if(d-addresses != NULL)/获得接口第一个地址的掩码n etmask = (struct sockadd

12、r_i n *)(d-addresses-n etmask)-sin_addr.S_ un .S_addr; else如果接口没有地址,那么我们假设一个C类的掩码n etmask=0xffffff;/编译过滤器if(pcap_compile(adha ndle, &fcode,packet_filter,1, netmask)0)fprin tf(stderr, nUn able to compile the packet filter. Check the syn tax .n);/释放设备列表pcap_freealldevs(alldevs);return -1;/设置过滤器if(pcap

13、_setfilter(adha ndle, &fcode)description);/释放设备列表pcap_freealldevs(alldevs);/*手写数据包*/u_char packet100;/*假设在以太网上,设置MAC的目的地址为 1:1:1:1:1:1*/packet0=1;packet1=1;packet2=1;packet3=1;packet4=1;packet5=1;/*设置MAC的源地址为222:222*/packet6=2;packet7=2;packet8=2;packet9=2;packet10=2;packet11=2;/*设置ip类型*/packet12=0x08;packet13=0x00;packet14=0x45;packet15=0x20;packet16=0x00;packet17=0x28;packet18=0xcb;packet19=0x16;packet20=0x00;packet21=0x00;packet22=0x2e;packet23=0x06;packe

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号