CS144 Checkpoint 4: interoperating in the world(2024)

分析网络路径和性能:

mtr命令

mtr 输出的详细分析:

mtr 162.105.253.58 命令用于结合 tracerouteping 的功能,实时监测并分析从你的计算机到目标主机(IP 地址 162.105.253.58,北京大学计算中心)之间的网络路径和性能。其主要作用如下:

  1. 路径追踪:识别数据包从源到目标经过的所有中间节点。
  2. 延迟测量:测量每个中间节点的响应时间(RTT),包括平均延迟、最小延迟和最大延迟。
  3. 丢包率监测:计算每个中间节点的数据包丢失百分比,以识别网络中的潜在瓶颈或问题节点。
  4. 实时更新:提供实时的网络性能数据,便于持续监控和诊断。
mtr 162.105.253.58

参数解释

  • Host: 数据包传输路径中的各个中间节点或主机地址。
  • Loss%: 丢包率,表示在传输过程中数据包丢失的百分比。
  • Snt: 发送的数据包总数。
  • Last: 最后一次响应时间(RTT,单位为毫秒)。
  • Avg: 平均响应时间(单位为毫秒)。
  • Best: 最快响应时间(单位为毫秒)。
  • Wrst: 最慢响应时间(单位为毫秒)。
  • StDev: 响应时间的标准差,表示响应时间的波动程度。

ping 命令

ping 命令输出详细信息

显示了从你的计算机发送的 ICMP 回显请求的数据包从目标主机(IP 地址 162.105.253.58,北京大学计算中心)返回的详细信息:

[1715675570.594846] 64 bytes from 162.105.253.58: icmp_seq=19 ttl=240 time=4.25 ms
[1715675570.796353] 64 bytes from 162.105.253.58: icmp_seq=20 ttl=240 time=5.42 ms

每一行的格式: 

[时间戳] 字节数 来自 目标IP地址: ICMP序列号 TTL 响应时间

参数解释

  1. [时间戳]

    • [1715675569.979467]:这是一个时间戳,表示数据包返回时的精确时间,以秒为单位。这个时间戳通常从系统启动时间算起(例如,上述时间戳是从系统启动以来经过的秒数和微秒数)。
  2. 字节数

    • 64 bytes:表示从目标主机返回的数据包大小为64字节,这是标准的ICMP数据包大小。
  3. 来自

    • from 162.105.253.58:表示数据包的来源,即目标主机的IP地址。
  4. ICMP序列号

    • icmp_seq=16:表示这是第16个ICMP回显请求。序列号帮助跟踪每个发送的请求及其响应。
  5. TTL(Time To Live)

    • ttl=240:表示数据包的生存时间。TTL字段在每经过一个路由器时减一,当TTL值变为零时,数据包被丢弃。初始TTL值通常为64、128或255,这取决于操作系统的默认设置。这里的TTL=240表示数据包在返回时经过了较少的路由器跳数。
  6. 响应时间

    • time=7.29 ms:表示从发送ICMP请求到收到响应所花费的时间,单位为毫秒(ms)。这个时间反映了往返时延(RTT)。

网络协议

ICMP(Internet Control Message Protocol)

  • 用途:ICMP 是一种用于在网络设备之间发送控制消息的网络层协议。它主要用于诊断和错误报告。
  • 常见应用
    • ping 命令:用于测试目标主机的可达性并测量往返时间(RTT)。
    • traceroute 命令:用于确定数据包从源到目标的路径以及路径上每个跳的延迟。

数据分析

  1. 总体交付率

    • 作用:评估在整个测量期间内,发送的echo请求中有多少收到了回复,反映了网络路径的稳定性和可靠性。
    • 计算方法:读取data.txt文件,计算发送的echo请求总数和接收到的回复总数。通过检查丢失的序列号来确定丢失的包,并计算交付率。
  2. 最长连续成功ping的字符串

    • 作用:找出连续成功回复的最大序列长度,显示网络路径在一段时间内的稳定性。
    • 计算方法:遍历data.txt文件,记录连续回复的最长序列长度。
  3. 最长的丢包突发

    • 作用:确定连续丢包的最大序列长度,显示网络路径在一段时间内的脆弱性或不稳定性。
    • 计算方法:遍历data.txt文件,记录连续丢包的最长序列长度。
  4. 丢包的相关性

    • 作用:分析丢包事件之间的相关性,判断丢包事件是否独立或具有连锁效应。
    • 计算方法
      • 计算echo请求#N收到回复时,echo请求#(N+1)也收到回复的概率。
      • 计算echo请求#N未收到回复时,echo请求#(N+1)收到回复的概率。
      • 将这些条件概率与总体交付率进行比较,分析丢包的独立性或相关性。
  5. 最小RTT

    • 作用:确定测量期间内最小的往返时间(RTT),反映最理想情况下的网络延迟。
    • 计算方法:从data.txt文件中找出最小的RTT值。
  6. 最大RTT

    • 作用:确定测量期间内最大的往返时间(RTT),反映网络路径在最不理想情况下的延迟。
    • 计算方法:从data.txt文件中找出最大的RTT值。
  7. RTT随时间变化的图

    • 作用:展示RTT值在两个小时期间内的变化趋势,反映网络延迟的波动情况。
    • 绘制方法:绘制RTT值随时间变化的图,x轴为实际时间,y轴为RTT(以毫秒为单位)。
  8. RTT分布的直方图或累积分布函数(CDF)

    • 作用:展示RTT值的分布情况,反映RTT值的频率分布和累积概率。
    • 绘制方法:创建RTT值的直方图或CDF。
  9. 连续ping的RTT相关性图

    • 作用:分析连续ping之间RTT值的相关性,判断RTT值在时间上的一致性或变化趋势。
    • 绘制方法:绘制ping#N的RTT和ping#N+1的RTT之间的相关性图,x轴为第一个RTT的毫秒数,y轴为第二个RTT的毫秒数。
  10. 从数据中得出的结论

    • 作用:通过分析数据、图表和摘要统计,得出网络路径行为的总体结论,评估网络性能的好坏。
    • 结论内容:包括网络路径的稳定性、可靠性、延迟波动等方面的分析,任何出乎意料的发现和网络行为特征的总结。

结论:
1. 总体交付率为: 100.00%
2. 最长连续成功ping的字符串为: 9776
3. 最长的丢包突发为: 0
4. 收到回复后下一次收到回复的概率为: 99.99%
5. 未收到回复后下一次收到回复的概率为: 0.00%
6. 最小RTT为: 3.06 ms
7. 最大RTT为: 105.0 ms
通过这些分析,我们可以看到网络路径的稳定性和可靠性。网络延迟在时间上有波动,但整体交付率较高。

DAI

仓库(已经更新Lab4):

lms2004/minnow: CS 144 networking lab (github.com) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx配置Referer防盗链

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 HTTP Referer是Hea…

PBOOTCMS|URL静态制作教程(已解答)

0、先解压源码文件,在覆盖静态文件,全部点是。 打开程序后台登录地址www.xxx.com(你的域名)/admin.php/Menu/index 打开程序后台--系统菜单--菜单新增(清理缓存后重新登录账号) (选择父菜单,菜单名称&#…

ROS2+TurtleBot3+Cartographer+Nav2实现slam建图和导航

0 引言 入门机器人最常见的应用就是slam建图和导航,本文将详细介绍这一流程, 便于初学这快速上手。 首先对需要用到的软件包就行简单介绍。 turtlebot3: 是一个小型的,基于ros的移动机器人。 学习机器人的很多示例程序都是基于turtlebot3。 …

【Java基础】枚举类的方法及应用

如何实现让一个类有固定个数的对象 手动封装构造方法(private) → 创建静态对象 → final修饰静态对象,使其成为常量 class Season { //枚举类public final static Season SPRING new Season();public final static Season SUMMER new Se…

MySQL数据库备份全攻略:从基础到高级,一文掌握所有备份技巧

在数据为王的时代,数据库的备份无疑是每一位数据库管理员(DBA)和开发者必须掌握的核心技能。MySQL作为世界上最流行的开源关系型数据库管理系统,其备份策略的多样性和灵活性更是值得我们深入探讨。今天,我们将从基础的…

废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp(源码搭建/上线/运营/售后/更新)

一款基于FastAdminThinkPHPUniApp开发的废品回收系统,适用废品回收站、再生资源回收公司上门回收使用的小程序。 一、FastAdmin框架特色功能及优势 模块化开发:控制器、模型、视图、JS一一对应,使用RequireJS进行插件机制,支持插…

Java面试题:线程池的核心参数和工作原理

线程池的核心参数 ThreadPoolExecutor(int corePoolSize,//核心线程数目int MaximumPoolSize,//最大线程数核心线程临时线程long keepAliveTime,//临时线程的存活时间,在存活时间内如果没有新任务,线程资源会被释放TimeUnit unit,//存活时间的时间单位,一个枚举类型BlockingQu…

sql操作、发送http请求和邮件发送 全栈开发之路——后端篇(2)

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…

STL介绍及使用场景分析

一.总体介绍 STL(Standard Template Library)是C标准模板库,提供了一系列的通用模板类和函数,用于实现常见的数据结构和算法,方便开发者快速地实现各种功能。STL包括了容器(Containers)、算法&a…

[BJDCTF 2020]easy_md5、[HNCTF 2022 Week1]Interesting_include、[GDOUCTF 2023]泄露的伪装

目录 [BJDCTF 2020]easy_md5 ffifdyop [SWPUCTF 2021 新生赛]crypto8 [HNCTF 2022 Week1]Interesting_include php://filter协议 [GDOUCTF 2023]泄露的伪装 [BJDCTF 2020]easy_md5 尝试输入一个1,发现输入的内容会通过get传递但是没有其他回显 观察一下响应…

文本协议中嵌入二进制数据

在文本协议中嵌入二进制数据时,通常不推荐使用new String(byte[], Charset),除非你确定这些字节实际上是以指定的字符集编码的文本。这是因为如果字节不是有效的文本编码,那么使用new String(byte[], Charset)可能会产生不可预测的结果&#…

VictoriaMetrics

概念 介绍 VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库 本文均用VM简称VictoriaMetric 作用 用于作为prometheus的长期储存方案,代替prometheus存储监控采集的数据 优点 远程存储:可作为单一或多个Pro…

【算法】二分查找——二分查找

本节博客详述“二分查找”并且以例子来进行讨论,有需要借鉴即可。 目录 1.二分查找1.1使用前提1.2模板 2.题目3.题解代码示例4.二分查找的一般模板5.总结 1.二分查找 1.1使用前提 使用的条件:数组具有“二段性”,二段性指的是数组可以根据某…

110份财务常用excel模板(个税、采购、报销、预算),超实用!

如果你还在为报表头疼,那你一定不能错过这篇干货满满的分享! 个税报表 个人所得税,听起来就头大?别担心,掌握这些技巧,轻松搞定! - 记录员工收入,确保数据准确无误 - 计算应纳税…

【Unity Shader入门精要 第7章】基础纹理(一)

1. 纹理映射 每一张纹理可以看作拥有一个属于自己的2D坐标空间,其横轴用U表示,纵轴用V表示,因此也称为UV坐标空间。 UV空间的坐标范围为[0,0]到[1,1],在Unity中,UV空间也是从左下到右上&#…

测试萌新Python学习(五)接口自动化测试requests

requests 接口自动化测试requests库基本实现请求-GET基本实现请求-POST基本实现请求-补充 sessionCookie和Session案例params 接口自动化测试 概念程序驱动代替人工驱动去实现接口测试 实现方式 测试工具(jmeter, postman, …)编码工具(python, java, …) 比较 工具 优点:…

Network Compression

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了Network Compression,包括为什么要压缩,压缩的主要手段(pruning,knowledge distillation,parameter quantization,architect…

Elasticsearch_sql插件安装+使用

一、安装 前提是你先安装好了elasticseach,安装过程在我上一篇博客有说,可以看一下。 在elasticsearch容器启动的情况下,进入到elasticsearch容器,Elasticsearch_sql仓库,比如我的版本是8.11.2,那么我就选…

[蓝桥杯]真题讲解:抓娃娃(思维+二分)

[蓝桥杯]真题讲解&#xff1a;抓娃娃&#xff08;思维二分&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;抓娃娃&#xff08;思维二分&#xff09;&#xff09; 二、正解代码 1、C #include<bits/stdc.h> #d…

fastapi+vue实现导入Excel表格的功能

1.前端部分 1.1 api设置 // 导入用户 export function uploadUser(data) {const formData new FormData();formData.append(file, data); // data 是从文件上传事件中获取的文件对象return request({url: /users/upload,method: post,headers: {Content-Type: multipart/fo…