1 / 36
文档名称:

计算机网络课程设计报告.pdf

格式:pdf   大小:4,497KB   页数:36页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机网络课程设计报告.pdf

上传人:青山代下 2024/5/21 文件大小:4.39 MB

下载得到文件列表

计算机网络课程设计报告.pdf

相关文档

文档介绍

文档介绍:该【计算机网络课程设计报告 】是由【青山代下】上传分享,文档一共【36】页,该文档可以免费在线阅读,需要了解更多关于【计算机网络课程设计报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................36.:..“计算机网络原理”理论学****基础上,验证和加深对计算机网络概念的理解。通过本课程的实践,培养学生独立思考、综合分析和动手实践的能力。通过本课程的学****达到如下目标:(1).理解计算机网络体系结构和工作原理,掌握常用的网络命令,能够对命令的功能进行解释,分析命令执行结果,得到合理有效结论。(2).掌握PacketTracer软件的操作方法,能够使用该软件模拟组网、配置交换机、路由器,能够按照实验方案实施仿真实验,采集和整理数据。(3).具备网络编程能力,能够设计抓包程序获取数据包,结合相关协议对数据包各个字段的含义进行分析、处理和解释,获取有效结论。、、静态路由、,stat,tracert,arp,进行网络状态监测、跟踪的方法。.:..精品文档(a).ipconfigipconfig的功能:可用于显示本机所有当前的TCP/IP配置的设置值,刷新动态主机配置协议(DHCP),以及域名系统设置(DNS)。,(1).ipconfig/all该命令用于查看适配器的IP地址,子网掩码等属性,较不带参数的ipconfig多了显示MAC地址,下图可以看到各个组件的物理地址,与ipconfig相比较更为详细.:..精品文档(2).ipconfig/renew即重新获取IP地址.:..精品文档(3).ipconfig/release该命令用于释放即归还所有适配器的IP地址,与不带参数的ipconfig相比较,以太网适配器,即网卡的的IP地址没有显示,说明已被释放.:..精品文档(b)pingping命令的作用用于检查网络是否连通,到某个目的地址是否可达,可以帮助分析网络故障ping命令的原理基于ICMP协议,PING使用了回送请求与回送回答报文。根据是否收到报文来判断目的端口是否可达,根据发送的报文的个数与接收到的回答报文的个数来判断链路的质量,根据RTT来判断源端与目的端之间的距离。,图2则是一个本网内不存在的IP,可以看到图1ping通,(1).ping–t该命令即一直ping某个地址,直到结束为止,在ctrl+c输入前一直不会停止.:..精品文档(2).ping–a该命令是将地址解析为用户名,图中的Advertisement就是解析出的用户名(3).ping–n该命令用于设置发送的个数,设置1即发送1个,8即8个.:..精品文档(c).netstatnetstat命令的作用显示网络连接、路由表和网络接口信息,显示目前有哪些网络连接正在工作。可用于检验本机各端口的网络连接情况。,显示活动的TCP连接,图中显示了活动中的TCP连接,不包括LISTENING状态的连接.:..(1).netstat–a显示所有连接和侦听端口,所有有效连接信息的列表(由于数据过多,只截取了一些)。(2).netstat–s显示每个协议的各项的统计(数据很多,只截取了一部分).:..e该命令即显示总量的统计,数值上为-s各个协议的总和(4).netstat–r该命令显示核心路由表.:..命令的作用用于查看数据包在访问目标时采取的路径Tracert命令的原理从源主机向的主机发送一连串的IP数据报,其中分装的是的是无法交付的UDP用户数据报,通过设置数据包的生存时间TTL,到路由器时的TTL恰好为1,接着路由器将TTL变为0,丢弃数据报并向源主机发送ICMP时间超过差错报告报文。当达到目的主机时,由于无法交付UDP用户数据报,目的主机向源主机发送ICMP终点不可达差错报告报文。源主机可以从这些差错报文中知道路径上的路由信息。,(1).Tracerth控制跃点跟踪的个数,设置5个就只显示5个.:..d设置不把地址解析为计算机名,与不带参数的Tracert对比可见计算机名没有显示(e).arp命令的作用arp命令用于显示和修改使用的“IP到物理”地址转换表。arp命令的原理.:..每台装有网卡的主机中都有一个表,保存着同一网络中IP到MAC之间的映射记录。ARP表并不是一成不变的,大约每2分钟更新一次,这种纪录称为动态式(Dynamic)记录。还有一种称为静态记录,也就是表中的记录不变,直到TCP/IP协议重启后才会消失。(1).arps与arp-darps用于增加ARP项,arp-d用于删除ARP项目,-FD-A1-85-34-12,再查询可以查到,再通过-d删除,之后便查不到了(2).arp–a与arp-a-varp–a用于显示所有的ARP项目,arp-a-v则是详细的显示(-v会显示无效的项目),arp-a后加IP地址则显示IP地址对应的ARP项目(如上图).:..的作用用户可以登录到远地的另一台主机上,可以使用目标主机上的软、硬件资源,是一个简单的远程终端协议。的原理使用客户服务器方式。客户进程,远地运行服务器进程。,,.:..,,,图3图4测试了进行身份验证的设置,图三设置了进行身份验证,,,再次企图发送数据则显示未连接.:..,在packettracer仿真环境下,熟悉交换机命令、交换机初始化配置;在交换机上实现VLAN配置,要求:创建三个VLAN,给出拓扑,查看VLAN信息基于Console控制台登录配置路由器,学****路由器配置相关命令;基于packettracer构建网络环境,分别进行静态路由配置和基于RIP的动态路由配置。要求:静态路由配置拓扑中至少4个路由器;RIP动态路由配置中源站和目的站之间设置两条跳数不同的路径,通过RIP配置后查看选择的是哪条路径。节点包括主机、路由器、交换机等都要根据个人名字首字母加学号的后两位进行命名。要求给出网络设计的思路、拓扑结构、配置方法与过程及验证思路与过程。提供截图实验内容:(1).建立VLAN思路需要构建三个VLAN,首先需要用6台主机。用两台交换机,则主机和交换机之间需要直通线缆6根,两个交换机之间需要交叉线缆一根。在HKB11switch0上,创建三个VLAN,即VLAN10,VLAN20,VLAN30,把三个端口分别划给这三个VLAN。HKB11switch1上也是如此,之后把两个交换机相连(2).拓扑结构.:..精品文档(3).配置过程主机IP地址连接交换机/.....(a).配置主机IP地址,子网掩码以及修改名称(以PC0为例),,名称为HKB11PC0(b).修改交换机的名称(以Switch0为例)将Switch0的名称设为HKB11Switch0(c).设置VLAN在交换机Switch0中增加了VLAN10,VLAN20,VLAN30,Switch1中同理.:..精品文档(d).把端口划分给这三个VLAN端口1划分给VLAN1,端口2划分给VLAN2,端口3划分给VLAN3,Switch1中相同操作(e).设置交换机互连接口我的交换机的互连接口均为10号,图中为Switch0的设置,1同理,(4).验证结构正确(a).查看VLAN表图中为Switch0的VLAN表,可以看到三个VLAN中个有一个端口.:..精品文档(b).ping命令PC0分别pingPC2,PC3,PC4PC0和PC2在同一个交换机下,ping不通PC0和PC3属于同一个VLAN,ping通PC0和PC4既不属于同一个VLAN,也不在同一个交换机下,ping不通说明VLAN建立正确pc2pc3pc4.:..(1).建立静态路由思路首先根据题目要求需要4个路由器,则需要至少8台主机,4台交换机,8台主机两两一组,分为4组,4组分别处在不同的网段下,各自连接一个交换机,之后交换机再连接一个路由器,路由器之间相互连接(2).拓扑结构(3).(a).配置主机以PC0为例,,,,即其路由器的IP地址.:..精品文档(b)配置路由器首先关闭路由器电源,然后把WIC-2T拖到图中花圈除再打开电源0/0端口,填入IP地址和子网掩码,之后再PortStatus处点击On打开连接.:..精品文档然后,设置Serial0/3/0(0/3/1)同理,同样设置IP地址和子网掩码,然后ClockRate处进行设置,,,.:..精品文档Router1Router2Router3(4).验证结构正确(a).ping命令此处由PC0依次pingPC1()PC2(),PC4(),PC6().:..精品文档pc1pc2pc4.:..精品文档pc6可见被ping的四个主机位于4个不同的子网中,均能ping通,可见静态路由建立成功(b).tracert命令来验证正确此处由PC0查看其到PC4,(1).动态路由思路.:..一个端口到另一个端口有两条跳数不同的路径,则最简单的结构为三角结构,即需要三个路由器两两互连,再各自连上一台主机拓扑结构(3).(a).配置主机(以主机PC0为例),,(b).配置路由器.:..首先同样关闭电源将拖入黑圈处,再打开电源0/0端口,,,然后点击On打开然后配置Serial0/3/0端口,3/1同样.:..,,.:..验证结构正确(a).ping命令由PC0分别pingPC1和PC2pc1pc2均能ping通(b).Tracert命令.:..:捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。实验总结与心得体会(5分)(1).操作系统和实验软件操作系统为Windows10,软件为VisualStudio2017(2).IP数据报首部各个字段版本号:占4位,IP协议版本号,IPv4此字段值为4,IPv6此字段值为6首部长度:占4位,包括固定部分和可选部分,因此首部最长为60字节,最短为20字节(不包括选项和填充部分);服务类型:占8位,(由于该字段一直弃而不用,因此不用考虑)总长度:占16位,以字节为单位,总长度包含IP的头部和数据部分,IP数据报最大长度为65535字节,但是注意最大不要超过MTU的长度标识:占16位,唯一标识一个数据报,可以将之当成一个计数器,每发送一个数据包,则该值加1,如果数据报分片,则每个分片的标识都一样,各个分片共享一个标识号标志位:占3位,最高位为0;最低位MF=1(0),后面还有分片(最后一个报片);DF=1(0),不能分片(可以分片)片偏移:占13位,用以指出该分段的第一个数据字节在原始数据报中的偏移位置(以8字节为单位),IP分片后每一个分组都具有自己的首部,而且标志位相同,但是片偏移值不同,通过片偏移值接收端可以重新组装IP包.:..生存时间:占位,~255,每经过一个路由器,TTL值减1,为0时被丢弃,并发送ICMP报文通知源主机,TTL可以避免数据报在路由器之间不断循环协议类型:占8位,指明IP层上承载的是哪个高级协议,在分用的过程中,协议栈知道该交给上层的哪个协议处理,如1为ICMP,2为IGMP,6为TCP,17为UDP等.。首部检验和:占16位,保证数据报头部的数据完整性,但校验不包括数据部分。源地址:32位,发送方IP地址目的地址:32位,接受方IP地址(3).设计思路socket编程,在了解IP数据报首部的前提下去进行,先定义IP数据包头类,然后初始化套接字,将网卡设置为混杂模式,监听数据包,最后接收经过的IP包并输出(4).实验结果与分析第一个数据包UDP包,,,第二个包为UDP包,,.:..精品文档(5).程序流程图(6).实验总结这算是一个全新的领域吧,起码对我而言是这样,之前没有接触过任何关于这方面的东西,完全不知道如何下手,没办法只能去搜查资料,通过这次实验也对这方面有了点了解了,不会像开始那样不知道怎么写了源代码:#include<>classIP_HEAD//IP首部{public:BYTEver_hlen;//IP协议版本和IP首部长度。高4位为版本,低4位为首部的长度(单位为4bytes).:..精品文档BYTEbyTOS;//服务类型WORDwPacketLen;//IP包总长度。包括首部,单位为byte。WORDwSequence;//标识,一般每个IP包的序号递增。union{WORDFlags;//标志WORDFragOf;//分段偏移};BYTEbyTTL;//生存时间BYTEbyProtocolType;//协议类型,见PROTOCOL_TYPE定义WORDwHeadCheckSum;//IP首部校验DWORDdwIPSrc;//源地址DWORDdwIPDes;//目的地址BYTEOptions;//选项};#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<>#include<>#include<>#include<>#include#ment(lib,,)usingnamespacestd;intnumber;intDecodeIP(char*buf,intlen){intn=len;if(n>=sizeof(IP_HEAD)){IP_HEADiphead;iphead=*(IP_HEAD*)buf;cout<<第第<<number++<<个IP数据包信息:<<endl;cout<<协议版本<<(>>4)<<endl;cout<<首部长度<<((&0x0F)<<2)<<endl;//单位为4字节cout<<服务类型<<(>>5)<<<<((>>1)&0x0f)<<endl;cout<<包总长度<<ntohs()<<endl;//网络字节序转为主机字节序cout<<标识<<ntohs()<<endl;.:..精品文档cout<<标志位<<<<((>>14)&0x01)<<<<((>>13)&0x01)<<endl;cout<<片偏移<<(&0x1fff)<<endl;cout<<生存周期<<(int)<<endl;cout<<协议类型<<int()<<endl;cout<<首部校验和<<ntohs()<<endl;cout<<源地址<<inet_ntoa(*(in_addr*)&)<<endl;cout<<目的地址<<inet_ntoa(*(in_addr*)&)<<endl;cout<<<<endl<<endl;}return0;}voidAutoWSACleanup(){::WSACleanup();//终止Winsock的使用}intmain(){intn;WSADATAwd;//一种数据结构,这个结构被用来存储被WSAStartup函数调用后返回的WindowsSockets数据,。n=WSAStartup(MAKEWORD(2,2),&wd);//返回winsock服务初始化是否成功,若返回1则输出错误if(n){cerr<<函数错误!<<endl;return-1;}atexit(AutoWSACleanup);SOCKETsock=socket(,SOCK_RAW,IPPROTO_IP);//创建SOCKETif(sock==INVALID_SOCKET){cerr<<WSAGetLastError();return0;}//获取本机地址charname[128];if(-1==gethostname(name,sizeof(name))){closesocket(sock);cout<<WSAGetLastError();return0;}structhostent*pHostent;.:..精品文档pHostent=gethostbyname(name);//绑定本地地址到SOCKETsockaddr_inaddr;=;=*(in_addr*)pHostent->h_addr_list[0];//=8888;//端口,IP层端口可随意填if(SOCKET_ERROR==bind(sock,(sockaddr*)&addr,sizeof(addr))){closesocket(sock);cout<<WSAGetLastError();return0;}//设置该SOCKET为接收所有流经绑定的IP的网卡的所有数据,包括接收和发送的数据包u_longsioarg=1;DWORDwt=0;if(SOCKET_ERROR==WSAIoctl(sock,SIO_RCVALL,&sioarg,sizeof(sioarg),NULL,0,&wt,NULL,NULL)){closesocket(sock);cout<<WSAGetLastError();return0;}//我们只需要接收数据,因此设置为阻塞IO,使用最简单的IO模型u_longbioarg=0;if(SOCKET_ERROR==ioctlsocket(sock,FIONBIO,&bioarg)){closesocket(sock);cout<<WSAGetLastError();return0;}//开始接收数据//因为前面已经设置为阻塞IO,recv在接收到数据前不会返回。number=1;charbuf[65535];intlen=0;do{len=recv(sock,buf,sizeof(buf),0);if(len>0){DecodeIP(buf,len);}}while(len>0);closesocket(sock);.:..精品文档return0;}.