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

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

 

 

学院

 

计算机学院

 

年级、专业、班

软件工程

姓名

涂山

学号

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

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存