中科大计网学习记录笔记(四):Internet 和 ISP | 分组延时、丢失和吞吐量

前言:

学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受,但经过了一段时间项目的学习,对计网有了更多的了解,所以我准备在这次学习的时候做一些记录并且加入一些我的理解,希望能够帮助到大家。
往期笔记可以看专栏中的内容😊😊😊

资料分享:
视频课件分享链接,提取码 pho1
计算机网络(第七版) 自顶向下方法分享链接,提取码 7ln4

1.5 Internet 和 ISP

1.5.1 互联网络结构 —— 网络的网络

端系统通过接入 ISPs 连接到互联网,比如住宅、公司和大学的 ISPs,然后接入的 ISPs 必须是互联的,因此任何两个端系统的用户苦于相互发送分组给对方;接入 ISPs 互联的方式的发展和演化是根据经济的、国家的原因变化和发展的。

以渐进式的方式来看当前互联网的结构

  1. 直接将他们互联在一起,成本指数级增长

  2. 将每个接入的 ISP 接入到全局的 ISP

  3. 能够实现全局 ISP 的运营商有很多,同时有利可图,很多的全局 ISP 被建立起来

  4. 在竞争的同时还会有合作,上面的各种全局 ISP 不互通,通过各个 ISP 之间的合作可以完成业务的拓展,且如果从一方到另一方之间互相的流量对等,就可以实现对等互联的结算关系

  5. 然后业务会进行细分,会出现区域网络,用户通过区域网络接入到全局的 ISPs

  6. 内容提供商网络(ICP),也可能会构建他们自己的网络,因为要将他们的服务接入其他 ISP 会导致成本过高,而且对其他地区的服务提供会很困难(跨州、跨国等),所以为了让他们的服务和内容更加靠近用户,他们会选择自己提供网络,来优化用户体验和减少支出。

最终可以抽象这个图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在网络的最中心,存在为数不多的充分链接(带宽很宽)的大范围网络,然后向下又与其他的 ISP 相连。

IXP(Internet Exchange Point),互联网交换点。IXP 是一种网络设施,其主要目的是促进不同互联网服务提供商(ISPs)、内容交付网络(CDNs)和其他网络服务提供商之间的互联互通。

1.6 分组延时、丢失和吞吐量

1.6.1 分组丢失和分组延时是怎样发生的?

分组到达链路的速率超过了链路的输出能力

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分组延迟的分类

  1. 节点检查延时:检查 bit 级的差错,检查分组首部来决定将分组传到何处
  2. 排队延时:在输出链路上等待传输的时间,依赖于路由器的拥塞程度
  3. 传输延时:将分组发送到链路上的时间
  4. 传播延时:数据在链路上传播的时间
1.6.2 车队类比

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

车辆以 100 km/h 的速度传播,收费站服务每一辆车需要 12s(传输延时)

通过计算可得,将完全经过第一个收费站(最后一个车通过收费站),需要 120s,而传播延时也就是数据在链路上传播的时间,需要 1h,所以在最后一个车通过收费站的时候第一辆车还远远没有到达下一个收费站,所以传播延时是不能忽略的,其远大于传输延时

再来看另一种情况

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

车辆以 1000 km/h 的速度传播,收费站服务每辆车需要 1分钟

通过计算可得,完全经过第一个收费站需要 60min,而到达第二个收费站仅仅需要 6min,也就是第一个收费站还在服务的时候,第二个就已经有车辆开始了,这时候就可以忽略掉传传播延迟,因为其远小于传输延时

1.6.3 排队延时

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

排队延时取决于流量强度:
I = L ∗ a / R I=L*a / R I=La/R
L:分组长度(bits)

a:分组到达队列的平均速率

R:链路带宽

排队延时随流量强度的变化,当流量强度为 1 的时候,其排队延时趋向于无穷

Tranceroute 诊断工具:用于跟踪数据包从源主机到目标主机的路径。通过 traceroute,用户可以 了解数据包在互联网中经过的中间路由器(或跳数),以及每个路由器的响应时间

在使用 traceroute 时,用户向目标主机发送一系列的 ICMP(Internet Control Message Protocol)或 UDP(User Datagram Protocol)数据包,这些数据包会依次经过网络中的路由器。每个路由器在接收到数据包后,会返回一个响应,包含了它自身的信息。这个过程会重复多次,形成一个跟踪路径的列表。

1.6.4 分组丢失

原因:链路的队列缓冲区的容量有线

当分组到达一个满的队列的时候,该分组就会被丢失,丢失的分组可能会被前一个节点或者源端系统重传或者不重传。

重传是由上一条还是源主机重传是取决于通信协议的设计和实现

  1. 由上一个链路重传:
    • 停等协议(Stop-and-Wait): 在停等协议中,发送方发送一个分组,然后等待接收到对应的确认(ACK)之后才发送下一个分组。如果发送方在一定时间内没有收到确认,它会假设分组丢失,并重新发送。这里的重传是由上一个链路(接收方)触发的。
    • 自动重传请求(Automatic Repeat reQuest,ARQ): 在ARQ类协议中,发送方周期性地重传未收到确认的分组。这包括选择性重传(Selective Repeat)和连续 ARQ(Continuous ARQ)等变种。重传的触发仍然是由上一个链路(接收方)检测到分组丢失而引发的。
  2. 由源头重传:
    • TCP 协议: 在TCP中,如果发送方检测到未收到确认的分组,它会根据接收到的重复确认(Duplicate ACK)信息来触发重传。TCP的重传机制是由源头(发送方)主动发起的。
1.6.5 吞吐量

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从源端到目标端之间传输的速率

  • 瞬间吞吐量:在一个时间点的速率
  • 平均吞吐量:在一个长时间的平均值

理解为平均速度和瞬时速度的关系

  • 瓶颈链路(Bottleneck Link)是指在一个网络中,由于某个特定链路的带宽、延迟或其他性能限制,导致整个网络的传输速率受到限制的链路。这条链路的性能相对较差,成为整体网络性能的瓶颈点。

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

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

相关文章

32GPIO输入&按键控制LED&光敏控制蜂鸣器

目录 一.硬件 二.硬件电路 三.C语言基础 四.代码实现 1.按键控制LED (1)自己的代码逻辑 (2)视频的代码逻辑 2.光敏控制蜂鸣器 一.硬件 光线越强,光敏电阻的阻值越小 温度越高,热敏电阻的阻值就越小 红外光线越强,红外接收管的阻值就…

Android super.img解包和打包指南(含工具下载lpunpack、lpmake、lpdump)

本文所有命令均需要在linux 上执行 一、解包 1、将Android sparse image格式的super.img转成二进制文件 $ sudo apt install android-sdk-libsparse-utils $ simg2img super.img super.img.bin 2、下载工具lpunpack 和lpmake、lpdump 以及其依赖库 下载地址:https://downl…

vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…

拓扑、监控、展示、流量、资产一体化管理,重庆石柱中医院部署智和信通统一运维平台

县中医院创建于1983年&#xff0c;是集医疗、教学、科研、急救、康复为一体的国家“二级甲等”综合性中医院&#xff0c;其智慧医院建设总体目标是以患者为中心&#xff0c;电子病历为核心&#xff0c;基于医院信息平台&#xff0c;实现全院资源的统一调度与管理&#xff0c;为…

LeetCode 热题 100 | 链表(上)

目录 1 基础知识 1.1 空指针 1.2 结构体 1.3 指针访问 1.4 三目运算符 2 160. 相交链表 3 206. 反转链表 4 234. 回文链表 菜鸟做题第三周&#xff0c;语言是 C 1 基础知识 1.1 空指针 使用 nullptr 来判断是否为空指针&#xff1a; if (headA nullptr) …

python3支持在通过requests库调试django后台接口写测试用例

python测试用例库使用 unittest库可以支持单元测试用例编写和验证。 基本使用方法 运行文件可以将文件中的用例全部执行一遍 import unittestclass TestBasicFunc(unittest.TestCase):def test_basic_asert(self):self.assertEqual(1, 1)if __name__"__main__":u…

Kafka集群搭建

Kafka集群是把状态保存在Zookeeper中的&#xff0c;首先要搭建Zookeeper集群。 本期是分享Kafka&#xff0c;若想看zookeeper搭建请看&#xff1a;zookeeper搭建&#xff08;单机模式和集群模式)-CSDN博客 ​​​​​​​ ​​…

最新!2024顶级SCI优化!TTAO-CNN-BiGRU-MSA三角拓扑聚合优化、双向GRU融合注意力的多变量回归预测程序!

适用平台&#xff1a;Matlab 2023版及以上 TTOA三角聚合优化算法&#xff0c;将在2024年3月正式发表在中科院1区顶级SCI期刊《Expert Systems with Applications》上。 该算法提出时间极短&#xff0c;目前以及近期内不会有套用这个算法的文献。新年伊始&#xff0c;尽快拿下…

主机安全加固之-openssh版本升级

升级openssh之前&#xff0c;为了保证能正常通过工具连接主机&#xff0c;咱们开启telnet服务&#xff0c;通过telnet的方式登录主机 一&#xff1a;开启telnet服务 1.安装telnet服务 [rootlocalhost ~]# yum install –y telnet telnet-server xinetd2.修改telnet服务配置文…

Docker中安装MySql的遇到的问题

目录 一、mysql查询中文乱码问题 1. 进入mysql中进行查看数据库字符集 2. 修改 my.cnf 中的配置 3. 重启mysql容器&#xff0c;使得容器重新加载配置文件 4. 测试结果 二、主从同步中遇到的问题 2.1 Slave_IO_Running:Connecting 的解决方案 1. 确定宿主机防火墙开放my…

留学生怎么合理使用ChatGPT ?还有哪些同类工具可以使用?

一篇篇相关于ChatGPT的文章陆陆续续铺天盖地的出现在我们面前。今天我们来看看怎么使用这个宝藏工具&#xff01; 文章主要内容为&#xff1a; 1.它是什么&#xff1f; 2.它能做什么&#xff1f; 3.作为留学生我们怎么使用它&#xff1f; 4.其他同类工具推荐 5.个人观点 一…

unity addressables 加载资源和场景 显示进度条(主要用于WebGL)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、addressables是什么&#xff1f;二、导入Addressables三、创建Addressables Settings 资产包管理四、资源打包五、环境模拟六、查看重复资源七、选择Bundle…

算法——A/算法通识

目录 一、复杂度分析 A/时间复杂度 B/空间复杂度 C/分析技巧 二、枚举分析 A/枚举算法介绍 B/解空间的类型 C/循环枚举解空间 三、模拟算法 四、递归 A/递归介绍 递归的两个关键要素&#xff1a; B/递归如何实现 C/递归和循环的比较 一、复杂度分析 A/时间复杂度…

央视见证|“看见中国汽车”走进首家汽车供应链企业东软睿驰

由工业和信息化部支持指导&#xff0c;中国汽车工业协会和央视网联合出品的2023《看见中国汽车》专题东软睿驰篇正式上线&#xff0c;记录品牌向上专项行动走进首家汽车供应链企业&#xff0c;展示东软睿驰围绕“成为OEM 软件定义汽车时代最可信赖的合作伙伴”核心战略的创新发…

深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信

在Java中&#xff0c;处理I/O&#xff08;输入/输出&#xff09;操作的方式经历了从BIO&#xff08;Blocking I/O&#xff0c;阻塞式I/O&#xff09;到NIO&#xff08;New I/O 或 Non-blocking I/O&#xff0c;新I/O或非阻塞式I/O&#xff09;的演变。这两种模型在设计和使用上…

[C++]类和对象(中)

一:类的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中并不是什么都没有&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成的成员函数称为…

使用Python的Turtle模块简单绘制烟花效果

import turtle import random# 初始化屏幕 screen turtle.Screen() screen.bgcolor("black") screen.title("烟花模拟")# 创建一个Turtle来绘制烟花 firework turtle.Turtle() firework.hideturtle() firework.speed(0) # 设置绘图速度为最快# 绘制烟花…

GEDepth:Ground Embedding for Monocular Depth Estimation

参考代码&#xff1a;gedepth 出发点与动机 相机的外参告诉了相机在世界坐标系下的位置信息&#xff0c;那么可以用这个外参构建一个地面基础深度作为先验&#xff0c;后续只需要在这个地面基础深度先验基础上添加offset就可以得到结果深度&#xff0c;这样可以极大简化深度估…

springboot与springcloud之间的版本对应关系

https://start.spring.io/actuator/info 当然&#xff0c;你可以直接在&#xff1a; https://spring.io/projects/spring-cloud 上看文档查询&#xff0c; 不过&#xff0c;最后应该是调到这里的&#xff1a; https://github.com/spring-cloud/spring-cloud-release/wiki/Suppo…

C++:输入流/输出流

C流类库简介 C为了克服C语言中的scanf和printf存在的缺点。&#xff0c;使用cin/cout控制输入/输出。 cin&#xff1a;表示标准输入的istream类对象&#xff0c;cin从终端读入数据。cout&#xff1a;表示标准输出的ostream类对象&#xff0c;cout向终端写数据。cerr&#xff…