计算机网络 实验三 使用网络协议分析器捕捉和分析协议数据包

本文主要是介绍计算机网络 实验三 使用网络协议分析器捕捉和分析协议数据包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

学院

 

计算机学院

 

年级、专业、班

软件工程

姓名

涂山

学号

170******

实验课程名称

                                计算机网络实验

成绩

 

实验项目名称

       使用网络协议分析器捕捉和分析协议数据包

指导老师

 

1)实验目的

熟悉ethereal的使用;验证各种协议数据包格式;学会捕捉并分析各种数据包。

2)实验环境

操作系统windows xp、以太网、WLAN;

3)实验内容

       1.安装ethereal软件

WireShark3.0.6版本

       2.捕捉数据包,验证数据帧、IP数据报、TCP数据段的报文格式。

目的地址为美国 google全球边缘网络

电脑打开了谷歌浏览器,源地址为本电脑IP地址,目的地址为美国Google全球边缘网络,与上面的信息想对应;帧、报文格式、IP数据包、TCP数据段的报文格式也一致。

     3.捕捉并分析ARP报文。

路由器:

源地址IntelCor_95:61:f9为本机MAC地址,目的地址为广播

本机请求ip地址,此时还没获得,因此是0.0.0.0

接下来——

通过广播形式,寻找默认网关(路由器)的IP地址,进而获得默认网关的MAC地址

最后——

收到回复

信息告知:192.168.1.1(路由器)的MAC地址为78:a3:51:3c:47:d2

Gzhu无线WiFi:

源地址HuaweiTe_f4:35:0f,目的地址Broadcast,通过广播的形式(ff:ff:ff:ff:ff:ff),发送上网请求,分配上网的IP地址给HuaweiTe_f4:35:0f。

源地址f2:f6:39:ba:df:7d为本机的MAC地址,目的地址HuaweiTe_f4:35:0f为运营商提供的上网服务设备地址,由于连接的是校园网,目的地址可能是一台交换机,作为默认网关。

首先由交换机广播请求IP地址,然后把IP地址分配给本机请求。

本机MAC地址跟获得到的IP地址;默认网关的MAC地址

总结:由本机广播发出上网请求,交换机(默认网关)收到请求,进而给本机分配上网的IP地址。

     4.捕捉ping过程中的ICMP报文, 分析结果各参数的意义。

一一对应

下面是一个请求报文跟其对应的回复报文

1是发送请求的源地址(本机)跟ping的目的地址(百度)

2,3请求报文跟回复报文一一对应

4是字节的长度

5是响应时间,跟cmd里面一致

     5.捕捉tracert过程中的ICMP报文,分析跟踪的路由器IP是哪个接口的。

每个报文都发了三次,响应时间对应8ms、9ms、24ms和21、19、19ms

不同之处在于TTL不一样,前面一轮TTL为1,后面TTL为2

其中分别对应的回复消息是:

TTL=1,超时

TTL=2,跟踪完成

可见经过一个路由即可到达,符合cmd的结果。

Tracert时,源主机向目的主机发送数据报,第一个数据报生存时间TTL为1,经过一个路由器就加一消亡,因此第一次经过第一个路由器的时候,路由器收下这个数据报,接着把TTL减1,TTL变成0,第一个路由器把这个数据报丢弃,并向源主机发送一个超时报文;接着源主机发送第二个数据报,TTL设置为2,经过第一个路由器,TTL减1,然后往下一个路由器发,TTL等0的时候,往回(源主机)发超时信息,一直持续下去;而当TTL到达目的主机时等于1,主机不再发送数据报,目的主机向源主机发送ICMP终点不可到达的差错报告报文。(在抓包过程中并没有destination unreachable,而是直接reply一段信息,目前猜测作用跟课本一致)

路由器的端口为137

     6.捕捉并分析TCP三次握手建立连接的过程。

打开wireshark,启动捕获,打开网址,搜索b站(www.bilibili.com)

设置过滤条件ip.addr== 139.159.246.60 and tcp

139.159.246.60 为b站IP地址

筛选出来的三次握手如下:

第一次握手:本机向目的地址发出连接请求,同步位SYN=1,初始序号seq=0(随机/默认)

第二次握手:目的主机收到请求连接的报文,同意连接,ACK(确认)等于第一次握手中的SYN的seq+1,则ACK=1,此时seq=0(随机/默认)

第三次握手:本机收到目的主机的同意连接的报文,给目的主机回复确认收到的信息。ACK置1,ACK等于第二次握手中的SYN,ACK的seq+1,则ACK=1,seq等于第一次的值加一,则seq=1.

     7.捕捉整个FTP工作工程的协议包

  对协议包进行分析说明,依据不同阶段的协议分析,画出FTP工作过程的示意图

 

 

PS:TCP服务器的建立,打开及防火墙的设置:

  在不下载TCP服务器(可用软件:quickeasy FTP server)的前提下,可以用电脑搭

  建简单的TCP服务器。

  注:选用一台电脑作为TCP服务器,客户端的在同一局域网内的任意电脑都可以。

第一步:控制面板打开——程序——程序和功能——启用或关闭Windows功能

第二步:打开Internet Information Services,过程等待几分钟

第三步:桌面——此电脑——右键管理——服务和应用程序

网站——右键添加FTP站点

点击完成即可成功创建

第四步:关闭防火墙,在同一局域网内的任意电脑的网址导航栏或者文件导航栏输入

    ftp://192.168.1.245,即可访问FTP服务器。如果想在不关闭防火墙的前提下访问,

    打开防火墙的高级设置,在入站规则中新建规则——自定义规则——所有程序——

    协议类型等选择任何——配置文件只选域——最后名称随意。即可完成创建。

注:新建的规则可能并不安全,因此在完成FTP抓包操作之后要及时关掉。

      a.. 地址解析ARP协议执行过程

客户端与TCP服务器进行通信时,地址解析ARP协议将客户端的IP地址解析成客户端的MAC地址:

第一步:根据客户端上的ARP缓存内容,IP确定用于访问TCP服务器的转发地址。然后客户端在自己的本地ARP缓存中检查TCP服务器的匹配MAC地址。

第二步:如果客户端在ARP缓存中没有找到映射,它将询问TCP服务器的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。

第三步:TCP服务器确定客户端的ARP请求中的IP地址与自己的IP地址匹配,将客户端的IP地址和MAC地址映射添加到本机ARP缓存中。

第四步:TCP服务器将包含客户端MAC地址的ARP回复信息发回客户端

第五步:客户端收到TCP发来的ARP回复信息,用TCP服务器的IP地址和MAC地址映射更新ARP缓存。TCP服务器的MAC地址一旦确定,客户端就能向TCP服务器发送IP通信。

 

      b.  FTP控制连接建立过程

   

     三次握手建立连接,端口53901为本机的一个随机端口,21为FTP的控制连接的端口

     源地址192.168.1.111为FTP客户端,目的地址192.168.1.245为FTP服务器端

      c .  FTP 用户登录身份验证过程

    220 服务就绪

    User 用户名——匿名访问(anonymus)

    331 输入密码(随意,可空格),需要Email,默认跳过

    User@ 查看代理(默认跳过)

    230  用户登陆因特网成功 

    CWD 把服务器上指定的路径变成当前目录

    250  文件行为完成

    

    

      PASV表示FTP采用被动模式,用户主机前端多了一道防火墙(在此之前需关

      闭防火墙或者在防火墙高级设置里面的入站规则创建一条新规则)

      过程:主机向服务器发出请求:请开启PASV被动模式,服务器回复:收到,已开启 

      PASV被动模式,并告诉主机他的一个随机数据传输端口是59400

d.  FTP 数据连接建立过程

    

    主机的数据连接端口是之前的随机端口号加一,变成53902,服务器的数据连端

    口是上一个FTP报文中说的59400

    TCP三次握手建立连接

      e.  FTP数据传输过程

   

    LIST 主机向服务器请求列举该目录下的所有文件

   125 服务器回复:打开数据连接开始传输

   

  

上传文件,226 结束数据传输,传输完成,返回当前目录,文件行为完成

LIST 返回上一级目录,125,打开数据连接,开始传输,传输完成。

      f.  FTP连接释放过程(包括数据连接和控制连接)

首先释放数据连接:

 

    网页打开ftp://192.168.1.245,退出的时候没有捕捉到数据连接和控制连接的断开,猜想是直接关闭网页实际上并没有断开与FTP服务器的控制连接,因此cmd执行ftp命令行,使用quit退出,得到结果。

    

221  退出网络

释放了控制连接

 

PS:实际上用cmd一步步执行ftp命令行的时候,一边执行一边过滤抓包的内容,比起直接打开网页搜索,步骤会更加详细清晰明了,也更容易理解和掌握。

     8.捕捉及研究WWW应用的协议报文,回答以下问题:

a.当访问某个主页时,从应用层到网络层,用到了哪些协议?

应用层:DNS、HTTP

运输层:TCP/UDP

网络层:IP

访问某个网页时,首先域名系统DNS进行域名解析成ip地址,HTTP超文本传输协议进行查看,TCP/UDP进行传输层的运输连接,最后网络层的寻址用IP协议。

b.对于用户请求的百度主页(www.baidu.com),客户端将接收到几个应答报文?具体是哪几个?假设从本地主机到该页面的往返时间是RTT,那么从请求该主页开始到浏览器上出现完整页面,一共经过多长时间?

点击菜单栏“统计”——“会话”——“IPv4”

客户端收到18个应答报文;

往返时间RTT=0.50ms

c.两个存放在同一个服务器中的截然不同的Web页(例如, http://www.gzhu.edu.cn/index.jsp,和http://www.gzhu.edu.cn/cn/research/index.jsp可以在同一个持久的连接上发送吗?

由于http://www.gzhu.edu.cn/index.jsp和http://www.gzhu.edu.cn/cn/research/index.jsp两个网站已经失效,实验不完整。

登陆www.gzhu.edu.cn首页,打开不同的页面,抓包过滤分析

 

TCP建立连接之后,可以在同一个持久的连接上发送。

d.假定一个超链接从一个万维网文档链接到另一个万维网文档,由于万维网文档上出现了差错而使超链接指向一个无效的计算机名,这时浏览器将向用户报告什么?

404 Not Found

e.当点击一个万维网文档时,若该文档除了有文本外,还有一个本地.gif图像和两个远地.gif图像,那么需要建立几次TCP连接和有几个UDP过程?

                                               4次TCP,0次UDP

        若使用HTTP/1.0,则需要建立UDP连接0次,TCP连接4次(文本 1 和 图像 3个各使用一个TCP连接)
若使用HTTP/1.1,则需要建立UDP连接0次,TCP连接1次(文本 1 和 图像 3个都使用这一个TCP连接)


水平有限,报告之中会出现诸多错误,经供参考~

这篇关于计算机网络 实验三 使用网络协议分析器捕捉和分析协议数据包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940926

相关文章

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何