您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 房地产 > 网络协议分析实验报告
1网络协议分析实验报告学院:班级:姓名:学号:2实验1基于ICMP的MTU测量方法实验目的1)掌握ICMP协议2)掌握PING程序基本原理3)掌握socket编程技术4)掌握MTU测量算法实验任务编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能:1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU;2)输出到目标主机经过网络的MTU。实验环境1)Linux系统;2)gcc编译工具,gdb调试工具。实验步骤1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备;2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报文,IP首部DF位置为1;由发送线程发送;3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。至此,MTU测量完毕。实验原理ICMP:ICMP是(InternetControlMessageProtocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。PING程序基本原理:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者。MTU:是网络最大传输单元(包长度),IP路由器必须对超过MTU的IP报进行分片目的主机再完成重组处理,所以确定源到目的路径MTU对提高传输效率是非常必要的。确定路3径MTU的方法是“要求报文分片但又不被允许”的ICMP报文。IPV4数据结构分析:45实验截图发送一系列的长度递减的不允许分片的数据报,通过接收返回的ICMP报的分析,可确定路径MTU,如下图所示:MTU值为14306实验2基于UDP的traceroute程序实验目的1)掌握UDP协议2)掌握UDP客户机/服务器编程模式3)掌握socket编程技术4)掌握traceroute算法实验任务1.熟悉程序udp-client.c和udp-server.c,使用网络嗅探器(如wireshark)分析UDP通讯数据报格式;2.编写一个基于UDP协议的网络路径记录程序程序,程序需要完成的功能:1)使用目标IP地址或域名作为参数,测量本机到目标主机经过的路由器IP地址;2)输出到目标主机经过网络路由器IP地址。实验环境1)Linux系统;2)gcc编译工具,gdb调试工具。实验步骤1.首先分别编译程序udp-client.c和udp-server.c,编译命令如下:gccudp-client.c–oudp-clientgccudp-server.c–oudp-server启动网络嗅探程序:wireshark。打开两个终端窗口,进入程序所在目录,分别运行./udp-client和./udp-server,查看wireshark采集到的UDP通讯数据,截图并结合图对UDP协议格式进行说明;2.通过socket编程,发送udp数据报,设置目的端口号为不常用的值,TTL值初始为1,逐步增加,接收超时ICMP报文和ICMP不可达报文;如果接收到ICMP超时报文,则记录发送ICMP超时报文的路由器IP地址,如果收到ICMP不可达报文,则为目的主机到达;3.输出记录的所有路由器IP地址。实验原理UDP工作原理:与我们所熟悉的TCP一样,UDP协议直接位于IP的顶层。根据OSI(开放7系统互联)参考模型,UDP和TCP都属于传输层协议。UDP的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含包头信息,剩余的字节则用来包含具体的传输数据。UDP报头由4个部分组成:源端口号、目标端口号、数据报长度和校验值,其中每个域各占用两个字节。UDP使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。traceroute算法:Traceroute的基本算法是:开始发送TTL为1的数据包,每次加1,直到收到一个“端口不可达”的ICMP报文(意味着到达了目的地),或者到达最大跳数(缺省为30跳),对于每一个TTL,同时发送三个探测包,之后打印出网关的地址和每一个探测包来回的时间,如果对探测包的回答来自不同的网关,则每一个响应的网关都被列出来,如果5秒钟还没有响应,则*,表示超时。探测包是UDP格式,由于我们不想目的主机处理它们,因此目的端口设置为一个不可能的值。UDP数据结构分析:8实验3TCP协议分析实验目的1)掌握TCP协议2)掌握TCP客户机/服务器编程模式实验任务熟悉程序tcp-process.c,tcp-client.c和tcp-server.c,使用网络嗅探器(如wireshark)分析TCP协议三次握手过程;实验环境1)Linux系统;2)gcc编译工具,gdb调试工具。实验步骤首先分别编译程序tcp-client.和tcp-server.,编译命令如下:gcctcp-client.ctcp-process.c–otcp-clientgcctcp-server.ctcp-process.c–otcp-server启动网络嗅探程序:wireshark。打开两个终端窗口,进入程序所在目录,分别运行./tcp-client和./tcp-server,查看wireshark采集到的TCP通讯数据,截图并结合图对TCP三次握手协议格式进行说明;9三次握手抓包过程分析TCP数据结构分析下面使用wireshark实际分析三次握手过程第一次握手:101112第二次握手:1314第三次握手:15
本文标题:网络协议分析实验报告
链接地址:https://www.777doc.com/doc-6031646 .html