计算机网络相关知识点总结(二)
比特bit是计算机中数据量的最小单位,可简记为b。字节Byte也是计算机中数据量的单位,可简记为B,1B=8bit。常用的数据量单位还有kB、MB、GB、TB等,其中k、M、G、T的数值分别为 2 10 2^{10} 210, 2 20 2^{20} 220, 2 30 2^{30} 230, 2 40 2^{40} 240。
K, M, G, T 分别对应以下英文字母表示的单位:
- K:千(kilo)
- M:兆(mega)
- G:吉(giga)
- T:太(tera)
2 10 = 1024 ≈ 1000 2^{10}=1024\approx 1000 210=1024≈1000,即千(K),往后以此类推。
连接在计算机网络上的主机在数字信道上传送比特的速率也称为比特率或数据率,其最小单位为bps,常用单位还有kbps、Mbps、Gbps、Tbps等,其中k、M、G、T的数值分别为 1 0 3 = 1000 10^{3}=1000 103=1000, 1 0 6 = 1000 000 10^{6}=1000\ 000 106=1000 000, 2 9 = 1000 000 000 2^{9}=1000\ 000\ 000 29=1000 000 000, 2 12 = 1000 000 000 000 2^{12}=1000\ 000\ 000\ 000 212=1000 000 000 000。
计算机中内存空间的计算方式是以二进制的形式计算的,而网络中的传输比特速率是以十进制的形式计算的,所以出现了以上的单位差别。
假设在某段链路上传输某个10MB的数据块,链路带宽为10Mb/s,信号传播速率为200000km/s,链路长度为1000km,则数据块的发送时延约为 8.4 s ‾ \underline{\ \ \ \ 8.4\ s\ \ \ \ } 8.4 s 。
发送时延可由以下公式计算:
发送时延 = 数据块大小 / 发送带宽
对于这个问题,数据块大小为10MB,链路带宽为10Mb/s。需要注意的是,速率单位要一致,所以需要将数据块大小转换成位(bit)。
1字节(Byte)= 8位(bit)
10MB = 10 * 8 * 1024 * 1024 bits(将MB转换成bits)
发送时延 = (10 * 8 * 1024 * 1024) / 10Mb/s
10 × 8 × 1024 × 1024 = 83886080 ÷ 10 000 000 = 8.388608 ≈ 8.4 ( s ) 10\times8\times1024\times1024=83886080\div10\ 000\ 000=8.388608\approx8.4\ (s) 10×8×1024×1024=83886080÷10 000 000=8.388608≈8.4 (s)
计算结果为:
发送时延约为 8.3886 秒。
假设主机A和B之间的链路带宽为100Mbps,主机A的网卡速率为1Gbps,主机B的网卡速率为10Mbps,主机A给主机B发送数据的最高理论速率为 10 M b p s ‾ \underline{\ \ \ \ 10Mbps\ \ \ \ } 10Mbps
主机与主机之间的最大传输速率受限于传输速率最低的链路。
设主机A的发送时延为10ms,链路带宽为20Mbit/s,传播时延为20ms,则该链路的时延带宽积为 400 000 b i t ‾ \underline{\ \ \ \ \ 400\ 000\ bit\ \ \ \ \ } 400 000 bit
时延带宽积=传播时延 x 链路带宽,需要换算单位。
时延带宽积的现实含义:一条有一定长度的物理链路,一个数据包从一端到另一端所需要的时间为 传播时延,链路带宽为该链路的速率,它们两个相乘便得到了该链路的比特容量,即在这个传播时延的时间内,它最大可以容纳多少比特量,从而衡量该链路的指标,它提供了一种对网络性能和传输效率的估计。
现实含义上,时延带宽积可以用来衡量网络的容量和延迟之间的权衡。它表示在给定的链路上,同时存在的数据包的数量的上限。当时延带宽积较小时,意味着链路的容量不足以容纳大量的数据包,可能导致拥塞和丢包;而当时延带宽积较大时,链路具有更高的容量,可以容纳更多的数据包并减少丢包的可能性。
时延带宽积还与应用程序的性质和需求有关。例如,在实时视频流或语音通信等对延迟敏感的应用中,较小的时延带宽积是更为理想的,因为它可以减少传输时延,并保证实时性。而对于大规模文件传输或数据备份等对吞吐量要求较高的应用,较大的时延带宽积可以充分利用链路带宽,提高传输效率。
总之,时延带宽积是一个重要的参数,可以帮助我们评估网络性能,并在设计和优化网络时进行合理的权衡和调整。
传播时延最大的链路是 同步卫星链路 ‾ \underline{\ \ \ \ \ \ \ 同步卫星链路\ \ \ \ \ \ } 同步卫星链路 。
常见的物理链路包括以下几种种类:
-
以太网(Ethernet):以太网是一种最常用的有线局域网技术,使用双绞线或光纤作为传输介质。它具有较高的带宽和低延迟,并支持多种速率,如10Mbps、100Mbps、1Gbps、10Gbps等。
-
光纤链路:光纤链路使用光纤作为传输介质,通过光信号来传输数据。光纤链路具有高带宽、低损耗、抗干扰能力强的优点,适用于长距离传输和高速数据传输需求。
-
无线链路:无线链路是通过电磁波无线传输数据的链路,常见的无线链路包括Wi-Fi、蓝牙、移动通信(如4G、5G)等。无线链路具有灵活性和便携性,但相对有线链路,可能存在信号衰减、干扰、传输速率受限等问题。
-
卫星链路:卫星链路利用卫星进行数据传输,适用于远距离通信,覆盖范围广。卫星链路的传播时延相对较高,主要取决于信号的传播距离和经过的卫星数量。
卫星链路曾被认为是传播时延最大的链路,但是随着科技的发展,未来它的传输性能可能会逐渐提高。同步卫星为了与地球的自转保持同步,其轨道半径交大,离地远,所以传播时延较高。而大名鼎鼎的星链卫星,其运行在近地轨道,从而提升传输性能,多个近地卫星之间进行通信,弥补了其覆盖范围较小的缺点。
假定网络的利用率达到了90%,则当前的网络时延是网络空闲时的时延的 10 倍 ‾ \underline{\ \ \ 10倍\ \ \ \ } 10倍 。
假设网络的利用率达到了90%,根据公式 “网络时延 = 1 / (带宽 * (1 - 利用率))”,我们可以计算当前的网络时延相对于网络空闲时的时延的倍数。
当网络处于空闲状态时,利用率为0,此时网络时延为:
网络时延(空闲)= 1 / (带宽 * (1 - 0)) = 1 / 带宽
而当网络利用率达到90%时,网络时延变为:
网络时延(当前)= 1 / (带宽 * (1 - 0.9)) = 1 / (0.1 * 带宽)
所以,当前的网络时延相对于网络空闲时的时延的倍数为 1 / (0.1 * 带宽) * 1 / 带宽 = 10倍。
换句话说,当前网络的时延是网络空闲时的时延的10倍。
因特网采用的网络体系结构是 TCP/IP体系结构。
TCP/IP体系结构中的 网络接口层 对应OSI/RM体系结构的 物理层、数据链路层。
在OSI参考模型中,对等实体是指 收发双方相同层次中的实体。、
在OSI参考模型中,对等实体指的是在通信过程中相互交互和通信的两个网络节点或主机。它们可以通过各层之间定义的协议进行通信,并在数据传输过程中进行数据的封装、传输和解析等操作。每一层都有相应的对等实体来处理特定层级所需的功能和任务。
在TCP/IP参考模型中,运输层的相邻下层实现的主要功能是 IP数据报在多个网络间的传输。
在OSI参考模型中,控制两个对等实体进行逻辑通信的规则的集合称为 协议。
TCP通信双方在基于TCP连接进行通信之前,首先要通过“三报文握手”来建立TCP连接,三次报文握手是为了确保可靠建立TCP连接并同步双方的初始序列号(ISN)。
-
第一次握手(SYN):客户端发送一个带有SYN标志的TCP包到服务器,请求建立连接。此时客户端进入SYN_SENT状态。
-
第二次握手(SYN+ACK):服务器接收到客户端的请求后,会发送一个带有SYN和ACK标志的TCP包作为响应。ACK确认号设置为客户端发送的序列号加1,同时服务器也选择一个自己的初始序列号。此时服务器进入SYN_RCVD状态。
-
第三次握手(ACK):客户端接收到服务器的确认后,向服务器发送一个带有ACK标志的TCP包,确认收到服务器的响应。客户端的ACK确认号设置为服务器发送的序列号加1。此时,服务器进入ESTABLISHED状态,客户端也进入ESTABLISHED状态,TCP连接建立完成。
为什么需要三次握手呢?
第一次握手可以让服务器确认客户端的存在,并确保客户端能够接收到服务器的回复。但此时客户端不知道服务器是否收到了自己的请求。
第二次握手服务器发送了响应,此时客户端可确认自己的请求已经送达到服务器,并能够接收到服务器的响应。但此时服务器仍然不知道客户端是否真的能接收到自己的响应。
第三次握手客户端发送了确认,此时服务器可以确认自己的响应已经成功送达到客户端,并且客户端也能接收到服务器的响应。至此,双方都可以信任对方,并认为连接已经建立起来。
通过三次握手,可以确保TCP连接的可靠性和同步性,避免了由于网络传输延迟、丢包或失序等原因引起的问题。这种机制能够保证客户端和服务器双方互相确认彼此的能力,并建立起稳定的通信环境。
物理层、数据链路层、网络层、运输层的传输单位(或称协议数据单元PDU)分别是 比特、帧、分组(数据报)、报文段。
------------------------------------------------------end--------------------------------------------------
相关文章:

计算机网络相关知识点总结(二)
比特bit是计算机中数据量的最小单位,可简记为b。字节Byte也是计算机中数据量的单位,可简记为B,1B8bit。常用的数据量单位还有kB、MB、GB、TB等,其中k、M、G、T的数值分别为 2 10 2^{10} 210, 2 20 2^{20} 220, 2 30 2^{30} 230, 2 40 2^{40} 240。 K, M, G, T 分别对应以下…...

Redmine与Gitlab整合(实战版)
网上查了很多文章,总结一下。 安装过程略。可参考:(84条消息) Redmine与Gitlab功能集成_redmine gitlab_羽之大公公的博客-CSDN博客 配置集成的方法,参考: Redmine与GitLab集成 (ngui.cc) 修改ssh-key密码的方法,参…...

(3)深度学习学习笔记-简单线性模型
文章目录 一、线性模型二、实例1.pytorch求导功能2.简单线性模型(人工数据集) 来源 一、线性模型 一个简单模型:假设一个房子的价格由卧室、卫生间、居住面积决定,用x1,x2,x3表示。 那么房价y就可以认为yw…...

pytorch3d 安装报错 RuntimeError: Not compiled with GPU support pytorch3d
安装环境 NVIDIA GeForce RTX 3090 cuda 11.3 python 3.8.5 torch 1.11.0 torchvision 0.12.0 环境安装命令 conda install pytorch1.11.0 torchvision0.12.0 torchaudio0.11.0 cudatoolkit11.3 -c pytorch安装pytorch3d参考官网链接 https://github.com/facebookresearch/p…...

spring工程的启动流程?bean的生命周期?提供哪些扩展点?管理事务?解决循环依赖问题的?事务传播行为有哪些?
1.Spring工程的启动流程: Spring工程的启动流程主要包括以下几个步骤: 加载配置文件:Spring会读取配置文件(如XML配置文件或注解配置)来获取应用程序的配置信息。实例化并初始化IoC容器:Spring会创建并初…...

使用 Zabbix 监控 RocketMQ列举监控项和触发器
在使用 Zabbix 监控 RocketMQ 的过程中,以下是一些可能的监控项和触发器: 监控项 集群总体健康状况生产者和消费者的连接数量Broker 的状态消息的生产和消费速度队列深度(即队列中的消息数量)磁盘空间使用内存使用CPU使用网络流…...

uniApp:路由与页面跳转及传参
方式一:声明式导航 声明式导航,通过组件进行跳转。官方文档:详情 使用 navigator 组件进行页面跳转。 属性类型默认值说明urlString应用内的跳转链接,值为相对路径或绝对路径,如:“…/first/first”&#x…...

Java中操作文件(二)
目录 一、什么是数据流 二、InputStream概述 2.1、方法 2.2、说明 三、FileInputStream概述 3.1、构造方法 3.2、利用Scanner进行字符串读取,简化操作 四、OutputStream概述 4.1、方法 4.2、PrinterWriter简化写操作 五、小程序练习 示例1 示例…...

springboot+vue在线考试系统(java项目源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌&a…...

样式方案:在 Vite 中接入现代化的 CSS 工程化方案
上一小节,我们使用 Vite 初始化了一个 Web 项目,迈出了使用 Vite 的第一步。但在实际工作中,仅用 Vite 官方的脚手架项目是不够的,往往还需要考虑诸多的工程化因素,借助 Vite 本身的配置以及业界的各种生态,…...

C#获取根目录实现方法汇总
以下是C#获取不同类型项目根目录的实现方法汇总,以及在 .NET Core 中获取项目根目录的方法: 控制台应用程序 string rootPath Environment.CurrentDirectory; string rootPath AppDomain.CurrentDomain.BaseDirectory; string rootPath Path.GetFul…...

vue获取当前坐标并通过天地图逆转码为省市区
因为需求需要获取用户当前的地理位置用于分析 通过原生的navigator.geolocation.getCurrentPosition获取经纬度 这个方法在谷歌浏览器会失效(原因未知),目前ie浏览器是可以获取的 getCurrentPosition() {if (navigator.geolocation) {var o…...

【MySQL】事务及其隔离性/隔离级别
目录 一、事务的概念 1、事务的四种特性 2、事务的作用 3、存储引擎对事务的支持 4、事务的提交方式 二、事务的启动、回滚与提交 1、准备工作:调整MySQL的默认隔离级别为最低/创建测试表 2、事务的启动、回滚与提交 3、启动事务后未commit,但是…...

计算机由于找不到d3dx9_35.dll,无法启动软件游戏的三个修复方法
在打开游戏的时候,计算机提示由于找不到d3dx9_35.dll,无法正常启动运行。这个是为什么呢?d3dx9_35.dll是DirectX 9.0里面的一个动态连结库文件,它包含了Direct3D、DirectPlay几个组件的二进制文件,为软件提供了多媒体图…...

第三章 模型篇:模型与模型的搭建
写在前面的话 这部分只解释代码,不对线性层(全连接层),卷积层等layer的原理进行解释。 尽量写的比较全了,但是自身水平有限,不太确定是否有遗漏重要的部分。 教程参考: https://pytorch.org/tutorials/ https://githu…...

深度学习一些简单概念的整理笔记
大概看了一点动手学深度学习,简单整理一些概念。 一些问题 测试结果 Precision-Recall曲线定性分析模型精度average precision(AP) 平均精度 Precision :检索出来的条目中有多大比例是我们需要的。 一些概念 损失函数(loss function&…...

Vue3中引入Element-plus
安装 npm install element-plus --save完整引入 打包后体积很大,适合学习,不适合生产。 此方法对于 vite 和 cli 脚手架创建的vue3均适用 // main.ts import { createApp } from vue //引入element-plus import ElementPlus from element-plus //引入…...

如何查看 Facebook 公共主页的广告数量上限?
作为Facebook的资深人员,了解如何查看公共主页的广告数量上限对于有效管理和优化广告策略至关重要。本文将详细介绍如何轻松查看Facebook公共主页的广告数量上限,以帮助您更好地掌握广告投放策略。 一、什么是Facebook公共主页的广告数量上限?…...

U-Boot移植 (2)- LCD 驱动修改和网络驱动修改
文章目录 1. LCD 驱动修改1.1 修改c文件配置1.2 修改h文件配置1.3 编译测试 2. 网络驱动修改2.1 I.MX6U-ALPHA 开发板网络简介2.2 网络 PHY 地址修改2.3 删除 uboot 中 74LV595 的驱动代码2.4 添加开发板网络复位引脚驱动2.5 更新 PHY 的连接状态和速度2.6 烧写调试2.7 测试一下…...

Ubuntu 23.10 现在由Linux内核6.3提供支持
对于那些希望在Ubuntu上尝试最新的Linux 6.3内核系列的人来说,今天有一个好消息,因为即将发布的Ubuntu 23.10(Mantic Minotaur)已经重新基于Linux内核6.3。 Ubuntu 23.10的开发工作于4月底开始,基于目前的临时版本Ubu…...

Python 学习之NumPy(一)
文章目录 1.为什么要学习NumPy2.NumPy的数组变换以及索引访问3.NumPy筛选使用介绍筛选出上面nb数组中能被3整除的所有数筛选出数组中小于9的所有数提取出数组中所有的奇数数组中所有的奇数替换为-1二维数组交换2列生成数值5—10,shape 为(3,5)的二维随机浮点数 NumP…...

Nftables栈溢出漏洞(CVE-2022-1015)复现
背景介绍 Nftables Nftables 是一个基于内核的包过滤框架,用于 Linux 操作系统中的网络安全和防火墙功能。nftables 的设计目标是提供一种更简单、更灵活和更高效的方式来管理网络数据包的流量。 钩子点(Hook Point) 钩子点的作用是拦截数…...

【C++】 Qt-事件(上)(事件、重写事件、事件分发)
文章目录 事件重写事件事件分发 事件 事件(event)是由系统或Qt本身在不同的时刻发出的。比如,当用户按下鼠标,敲下键盘,或窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件是在对用户操作做出响应…...

k8s部署springboot
前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤。 1.从代码仓库下载代码,比如GitLab; 2.接着是进行打包,比如使用Maven; 3.编写Dockerfile文件,把步骤2产生的包制作成镜像; 4.上传步骤3的镜像到远程…...

备战秋招002(20230704)
文章目录 前言一、今天学习了什么?二、关于问题的答案1.线程池2.synchronized关键字3、volatile 总结 前言 提示:这里为每天自己的学习内容心情总结; Learn By Doing,Now or Never,Writing is organized thinking. …...

游泳买耳机买什么的比较好,列举几款实战性好的游泳耳机
对于运动用户来说,在运动时都会选择听一些节奏感比较强的音乐,让自己运动是更有活力。现在已经是三伏天中的前伏期间,不少人会选择在三伏天的日子里进行减肥瘦身,耳游泳已经成为很多人都首选运动,游泳是非常好的有氧运…...

【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Java基础-多线程JUC-生产者和消费者
1. 生产者与消费者 实现线程轮流交替执行的结果; 实现线程休眠和唤醒均要使用到锁对象; 修改标注位(foodFlag); 代码实现: public class demo11 {public static void main(String[] args) {/*** 需求&#…...

day2 QT按钮与容器
目录 按钮 1、QPushButton 2、QToolButton 3、QRadioButton 4、QCheckBox 示例 容器 编辑 1. QGroupBox(分组框) 2. QScrollArea(滚动区域) 3. QToolBox(工具箱) 4. QTabWidget(选…...

JPA 批量插入较大数据 解决性能慢问题
JPA 批量插入较大数据 解决性能慢问题 使用jpa saveAll接口的话需要了解原理: TransactionalOverridepublic <S extends T> List<S> saveAll(Iterable<S> entities) {Assert.notNull(entities, "Entities must not be null!");List<…...