2022广州大学计算机网络实验--使用网络协议分析器捕捉和分析协议数据包

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

广州大学学生实验报告

开课学院及实验室:计算机科学与工程实验室                   2022年**月**

学院

计算机科学与教育软件

年级、专业、班

******

姓名

****

学号

*******39

实验课程名称

计算机网络实验

成绩

实验项目名称

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

指导老师

陈**

1)实验目的

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

2)实验环境

操作系统windows xp、以太网;

(3)实验内容

  1. 安装ethereal软件
  2. 捕捉数据包,验证数据帧、IP数据报、TCP数据段的报文格式。

     分析第121条报文:

帧为74字节

分析报文:版本ipv4,首部长度20字节,总长度60字节;

                源地址172.29.204.217目的地址223.166.225.40

(3)捕捉并分析ARP报文。

分析报文:
第904帧,包大小60字节,源mac地址50:1d:93:f4:35:0f,目的mac地址为广播地址;根据ARP 报文格式知道,所抓报文所在协议类型是ipv4协议;硬件地址长度为6 字节;协议地址长度为4 字节;操作码,值为1表示请求包。

报文分析:
其余与请求报文分析一致

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

打开命令行

Ping baidu.com获得icmp报文

筛选报文

选择一对请求响应报文:

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

报文分析:ttl只有经过一个路由才会加一,下图三条黑色序列属于同一路由,且对应第一个路由

由箭头指向,以下三图同理,分别对应434ms,249ms,150ms

第二个路由超时对应的时长:

时间9s多,明显过大,与tracert结果对应

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

分析:

第一次握手:本机向目的地址发出连接请求,同步位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工作过程的示意图

首先 FTP Client 发起对 FTP Server 的连接建立。FTP Client 将利用公开的 FTP Server的熟知端口号,请求连接建立。第一阶段建立的是控制连接(control connection),FTPServer 控制连接的熟知端口号为 21。控制连接用与发送 FTP 命令,接收 FTP Server 的应答。在控制连接之后,将进入建立数据传输连接阶段。FTP Server 熟知数据传输连接端口号为20。在数据传输连接建立之后,FTP Client 就可以从 FTP Server 下载或上传文件了

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

1、根据客户端上的ARP缓存内容检查TCP服务器的MAC地址

2、如果客户端在缓存中找不到映射,将会发送ARP请求帧广播到本地上所有主机

3、TCP服务器确定请求帧的IP地址与自己的IP地址匹配,将客户端的IP地址和MAC地址添加到ARP缓存

4、TCP将客户端MAC地址发回客户端

5、客户端收到TCP的ARP回复,更新ARP缓存

      b.  FTP控制连接建立过程

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

 d.  FTP 数据连接建立过程

客户端端口:50358,服务端端口:64834

e.  FTP数据传输过程

(1)LIST列举目录中的所有文件
(2)125服务器:开始传输
(3)226 传输完成

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

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

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

应用层:

        HTTP:www的访问协议

        DNS:域名解析协议,将URL解析成Web服务器

传输层:

        UDP:域名解析协议使用

        TCP:http协议使用

网络层:

        IP:IP包传输和路由选择

        ICMP:提供网络传输中的差错检测

        ARP:将本机的默认网关IP地址映射成物理mac地址

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

一共四个应答报文

往返时间372ms

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

 TCP建立可以发送

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

404 Not Found

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

1.若使用HTTP/1.0,需要建立0UDP连接,4TCP连接
2.若使用HTTP/1.1,需要建立0UDP连接,1TCP连接

           

(4)实验总结:

在这次实验中,学会了抓包,过滤及其分析数据包;在之前只是停留在理论层面的认识,在这次实验中,深刻认识到了网络连接,传输数据的复杂性,在抓包的过程,首先要选对网络的接口,分析数据包要充分,在tcp三次握手建立过程中,除开对状态码的确定,还需要看清楚此三条命令是否对应同一个页面的请求,查看他们的序号是否为前一条命令加一来判断;在ftp连接实验中,很奇怪的是,刚开始建立ftp连接建立成功,成功完成ftp的实验,可是过段时间,我再次登录ftp,通过命令行的方式,登录退出ftp服务器,但是抓包显示出来的却是80端口,而数据确能够正确传输,通过查找资料发现说,默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

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



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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符