13计算机网络课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1计算机网络课程设计实验报告实验一数据包的捕获与分析1.1实验目的数据包捕获技术是网络管理系统的关键技术。本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和掌握。1.2实验内容Wireshark是一种开源的网络数据包的捕获和分析软件,本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和掌握。具体内容及要求如下:Wireshark软件的安装;Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark可以监控局域网的状态;启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查;设置过滤器过滤网络报文以检测特定数据流;对常用协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网络报文的各种统计信息。1.3实验环境Wirshark1.1.11.4实验抓包情况EthernetⅡ数据链路层:设置过滤方式是捕获后过滤,过滤条件为udp2Destination:IPv4mcast_00:00:fc(01:00:5e:00:00:fc)目的:厂名_序号(网卡地址)Source:4c:80:93:25:d0:1e(4c:80:93:25:d0:1e)源:厂名_序号(网卡地址)Type:IP(0x0800)帧内封装的上层协议类型为IP(十六进制码0800)以下为网络层IP包头信息3Version:4互联网协议IPv4Headerlength:20bytesIP包头部长度DifferentiatedServicesField:0x00(DSCP0x00:Default;ECN:0x00)差分服务字段TotalLength:52IP包的总长度Identification:0x6992(27062)标志字段Flags:0x00标记字段(在路由传输时,是否允许将此IP包分段)Fragmentoffset:0分段偏移量(将一个IP包分段后传输时,本段的标识)Timetolive:1生存期TTLProtocol:TCP(0x11)此包内封装的上层协议为TCPHeaderchecksum:0x64ba[correct]头部数据的校验和Source:10.27.0.86(10.27.0.86)源IP地址Destination:224.0.0.252(224.0.0.252)目的IP地址以下为传输层UDP包头4Sourceport:65167(65167)源端口名称Destinationport:llmnr(5355)目的端口名称Length:32头部长度Checksum:0xd065[validationdisabled]UDP数据段的校验和以下是网络层的icmp包头5Type:8(Echo(ping)request)类型为8(ping),响应请求信号Code:0()代码Checksum:0x4d3e[correct]校验和Identifier:0x0001标识code=0,identifier用来匹配echo和echoreply消息Sequencenumber:29(0x001d)顺序号以下为传输层TCP数据段头部信息6Sourceport:http(80)源端口名称(端口号)Destinationport:52449(52449)目的端口名Sequencenumber:1(relativesequencenumber)序列号(相对序列号)Headerlength:20bytes头部长度Flags:0x14(RST,ACK)TCP标记字段(本字段是RST,ACK,置位表示复位TCP连接,置位表示确认号字段有效)Windowsize:0流量控制的窗口大小Checksum:0xd47e[validationdisabled]TCP数据段的校验和以下为数据链路层IEEE802.3报文格式注意:IEEE802.3是有线以太网的协议,所以要想得到IEEE802.3的报文就必须要叉网线。DSTADDRSRCADDRLENDSAPSSAPCONTROLINFO6字节6字节2字节1字节1字节1/2字节信息最大长度1518字节7Destination:Spanning-tree-(for-bridges)_00(01:80:c2:00:00:00)目的:厂名_序号(网卡地址)Source:Hangzhou_07:f2:e0(00:0f:e2:07:f2:e0)源:厂名_序号(网卡地址)Length:132长度1.4总结Wireshark是一款基于winpcap的抓包软件,它的界面是友好的,功能是强大的,上手是容易的,掌握是困难的。通过短暂的学习研究,我发现Wireshark之于我么学生的主要功能便是帮助我们更好地学习和理解协议。正如你知道西瓜是甜的,但只有当你吃过了西瓜,你才能体会到西瓜特有的味道。而Wirkshark就给我们提供了吃西瓜所需的西瓜刀。Wireshark是一款网络嗅探器,它以明文的方式显示捕获的包信息,这对于分析协议格式和内容是非常有帮助的。而且Wireshark的显示比较人性化。过滤器方式可以是捕获前过滤也可以是捕获后过滤,可以根据自己的需要自行选择。本次实验,让我深刻地去了解了网络各协议栈的协议,以及对应的包头格式及内容,尤其是对IP包头和ICMP包头的了解又更上一层楼了,这对于理解网络通信的原理特别有帮助,理解了各协议栈的任务以及基本原理。8实验二网络层实验—Ping程序的设计与实现一、实验内容和要求本实验为ICMP实验。实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充:-h显示帮助信息-b允许ping一个广播地址,只用于IPv4-t设置ttl值,只用于IPv4-q安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果Ping命令的基本描述Ping的操作是向某些IP地址发送一个ICMPEcho消息,接着该节点返回一个ICMPEchoreply消息。ICMP消息使用IP头作为基本控制。IP头的格式如下012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Version|IHL|TypeofService|TotalLength|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Identification|Flags|FragmentOffset|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|TimetoLive|Protocol|HeaderChecksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|SourceAddress|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|DestinationAddress|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Version=4IHLInternet头长TypeofService=0TotalLengthIP包的总长度Identification,Flags,FragmentOffset用于IP包分段TimetoLiveIP包的存活时长ProtocolICMP=1Addresses发送Echo消息的源地址是发送Echoreply消息的目的地址,相反,发送Echo消息的目的地址是发送Echoreply消息的源地址。Ping实际上是使用ICMP中的ECHO报文来实现的。Echo或EchoReply消息格式如下:012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Code|Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Identifier|SequenceNumber|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Data...+-+-+-+-+-9Typeecho消息的类型为8echoreply的消息类型为0。Code=0Checksum为从TYPE开始到IP包结束的校验和Identifier如果code=0,identifier用来匹配echo和echoreply消息SequenceNumber如果code=0,identifier用来匹配echo和echoreply消息功能描述:收到echo消息必须回应echoreply消息。identifier和sequencenumber可能被发送echo的主机用来匹配返回的echoreply消息。例如:identifier可能用于类似于TCP或UDP的port用来标示一个会话,而sequencenumber会在每次发送echo请求后递增。收到echo的主机或路由器返回同一个值与之匹配1、数据结构的描述1)IP包格式structip{BYTEVer_ihl;//版本号与包头长度BYTETOS;//服务类型WORDLeng;//IP包长度WORDId;//IP包标示,用于辅助IP包的拆装,本实验不用,置零WORDFlg_offset;//偏移量,也是用于IP包的拆装,本实验不用,置零BYTETTL;//IP包的存活时间BYTEProtocol;//上一层协议,本实验置ICMPWORDChecksum;//包头校验和,最初置零,等所有包头都填写正确后,计算并替换。BYTESaddr[4];//源端IP地址BYTEDaddr[4];//目的端IP地址BYTEData[1];//IP包数据};2)ICMP包格式structicmp{BYTEType;//ICMP类型,本实验用8:ECHO0:ECHOREPLYBYTECode;//本实验置零WORDChecksum;//ICMP包校验和,从TYPE开始,直到最后一位用户数据,如果为字节数为奇数则补充一位WORDID;//用于匹配ECHO和ECHOREPLY包WORDSeq;//用于标记ECHO报文顺序BYTEData[1];//用户数据};二、实验环境Windows平台+Linux平台10三、程序的需求分析与逻辑框图需求分析允许ping广播地址打印要获取包的数量显示使用帮组信息设置时间间隔设置安静模式,不显示每个收到的包的分析结果,只在结束时,显示汇总结果设置数据的长度设置ttl(生存时间)值除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包逻辑框图mainreadlooprecvfromprocsig_alarmsend为SIGALARM建立信号处理程序无限接收循环每秒发送一个Echo消息ping程序函数概貌1)main函数11设置随同Echo请求一起发送的可选数据长度处理命令行参数调用readloop处理分组为SIGALARM信号建立一个处理程序处理主机名参数2)readloop函数创建套接口设置套接口缓冲区大小发送第一个分组读取返回给ICMP原始套接口的每个分组记录收到分组的时间调用proc来处理这些分组3)p

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功