【计算机网络黑皮书】入门必学的基本网络知识

【事先声明】
这是对于中科大的计算机网络的网课的学习笔记,感谢郑烇老师的无偿分享
书籍是《计算机网络(自顶向下方法 第7版)》
需要的可以私信我,无偿分享,课程简介下也有
B站链接

目录

  • 网络核心
    • 电路交换
      • 端到端之间的带宽分配策略
        • 频分FDM
        • 时分TDM
        • 波分WDM
    • 分组交换
      • 排队延迟与丢失
    • 关键功能
        • 路由
        • 转发
    • 统计多路复用
    • 分组交换与电路交换
        • 定量分析
    • 数据报
  • 网络接入
    • 接入方式
      • modern
      • 线缆网络
      • 无线接入
  • 互联网结构
  • 分组丢失与延时
    • 分组延时
      • 节点处理延时
      • 排队延时
      • 传输延时
      • 传播延时
    • 分组丢失
    • 流量强度
    • 吞吐量
  • 协议层次与服务模型
    • 层次化模型
    • 协议
    • 服务类型
      • 面向连接的服务
      • 无连接的服务
    • 服务与协议的关系
    • 数据单元(DU)
      • 一对一
      • 一对多
      • 多对一
    • 网络协议栈
      • 物理层
      • 链路层
      • 网络层
      • 传输层
      • 应用层
      • OSI七层网络模型
      • 数据的封装与解封装
      • 各层次协议的数据单元

网络核心

电路交换

在这里插入图片描述

两个端(网络设备)之间一旦建立了连接,其线路就会独享,其它的任务就不能再占用这条线路

在这里插入图片描述

端到端之间的带宽分配策略

频分FDM

每一天链路上,可以被划分为很多的不同频率,然后不同的频率划分个不同的任务,一条线路可以多路复用

在这里插入图片描述

时分TDM

一条链路上的通讯时间按照一个T周期进行划分,然后再周期中,不同的时间片分配这条线路给不同的任务

在这里插入图片描述

波分WDM

两个节点之间的通信方式是采用光纤进行数据通信,光纤中不同的波长分配给不同的任务。

在这里插入图片描述

两个主机之间的带宽是1.536Mbps,采用TDM多路复用方法,带宽被分为24片,每个时间片被分给一个任务使用。

要实现主机之间传输640000bit的任务,需要 64 ∗ 10000 / ( 1.53 M / 24 ) 64 * 10000 / (1.53M/24) 6410000/(1.53M/24)

还要加上建立线路的500ms,如果传输线路长,还需要加上传播延时

在这里插入图片描述

电路交换不太适合计算机之间

  1. 线路资源建立耗时长
  2. 共享资源的能力低
  3. 计算机之间的通信有突发性,因为不共享,会造成时间片浪费

分组交换

在这里插入图片描述

分组,一个数据包进行转发

再每个交换节点中,以存储转发的形式,去完成从源端到目标端的发送。

一个交换节点收到一个分组的数据包,把数据包完全存储下来,然后再转发出去。再转发的时候,完全占用这条链路的网络资源,当不需要发数据包的时候,这个链路可以被其它任务使用

在这里插入图片描述

在节点的发送与接收中,对于接收端而言,发送数据包就是接收数据包,只不过可能会有一点延时而言,而接收与发送的时间耗时是只计算一次的,接收与发送是一个事件的两个方面。不能发送耗时计算一次,然后接收耗时计算一次

排队延迟与丢失

在这里插入图片描述

如果链路的到达速率大于链路的输出速率

  • 分组(数据包)会排队,等待传输
  • 如果路由器的缓存用完了,就会丢弃分组

关键功能

路由

路由是全局的,是对于分组(数据包)从源到目标的路径(经过的整个过程中的路由器或者交换机)

转发

转发是局部的,是当前路由器决定向相邻的哪个路由器/交换机进行转发

统计多路复用

在这里插入图片描述

在链路资源中,一段时间A发送分组,一段时间B发送分组,也有一段时间都没有分组发送,链组资源的时间上的划分你并不是固定的

这也是一种特殊的时分模式

分组交换与电路交换

分组交换跟适用于计算机之间的通信

分组交换共享性更好,可以支持更多的主机

定量分析

在这里插入图片描述

N个用户,只用10%的时间会使用,每次使用会需要100kps的带宽数据(这就是一种数据突发情况)

如果是电路交换,带宽1Mbps,最多可以同时支持10个用户的使用

如果是分组交换,N=35时,小于等于10个用户同时使用的概率 ∑ n = 0 9 [ C 35 n p n ( 1 − p ) 35 − n ] \sum ^{9}_{n=0}\left[ C_{35}^{n}p^{n}\left( 1-p\right) ^{35-n}\right] n=09[C35npn(1p)35n]

则大于10个用户以上同时使用的概率 1 − ∑ n = 0 9 [ C 35 n p n ( 1 − p ) 35 − n ] = 0.004 1-\sum ^{9}_{n=0}\left[ C_{35}^{n}p^{n}\left( 1-p\right) ^{35-n}\right]=0.004 1n=09[C35npn(1p)35n]=0.004

说明,有99.6%的概率,可以保证带宽资源可以满足,说明分组交换的共享性更好些

而且,分组交换是可以提供给缓存进行分组排队的,只有0.4%的需要分组排队,这个还是可以接受的

分组交换跟可以在同样的网络资源下,接受更多的突发资源,因为其共享性

数据报

主机之间通信之前,没必要去建立连接没直接有数据就发送。也不必去维护两主机之间的通讯状态。

路由器根据分组的目标IP地址进行发送,虽然有时候,转发的路由路径是会变动的,但是你目标IP是不会改变的,这也会导致有些分组到达目标IP的顺序可能会不一样,但是分组只要到达,是可以通过其它手段去恢复数据的有序性。

甚至有时,一个路由堵塞时,会转发到另一路由器,绕开,选这其它的路由路径。
在这里插入图片描述

网络接入

网络核心与网络边缘的组成构成一个互联网

网络边缘(设备、主机)可以有不同的方式进行接入网络核心

接入网络有两个重要指标

  • 接入带宽(每秒传输的比特位数量)
  • 共享/专用

接入方式

modern

调制解调器,将网络信号数据,加载到特定频率的音频信号上,然后又端的专门的解调器进行处理。

这个方式的带宽非常窄,几kbps的样子

线缆网络

有线电视信号线缆双向改造

FDM,在不同的频段上传输不同的信道数据

无线接入

  • WLAN:用于建筑内部
  • 广域无线:由运营商提供

互联网结构

ISP:互联网服务提供商

ISP之间也是需要互联的,不然无法互相访问

N个ISP进行互联,该如何处理

在这里插入图片描述

成本非常高,可扩展性差,每新增一个ISP,都需要增加很多的连接成本

在这里插入图片描述

分组丢失与延时

在这里插入图片描述

路由器与多个网编边缘设备连接,设备想路由器发送分组(数据包)。

路由器的缓冲区中,会对接受的分组进行排队等待发送。

路由器的分组等待队列是有限的,也就是说路由器的分组缓冲区是有限的。当缓冲区满了,又有心得分组发送进来,则路由器会对分组进行丢弃。

分组在排队过程中就会产生延时,分组排队延时

分组延时

每个 节点/端 传输分组都需要有这些延时

或者说,每个分组传输经过这些节点都要有这些耗时

节点处理延时

分组进到路由器后,需要进行bit级的分组检查,判断是否有出错

检查分组的首部,去IP表中查找IP地址,判断分组将要向哪里发送

排队延时

在输出链路上等待发送的时间,依赖于路由器的阻塞程度。

排队延时取决于流量强度

传输延时

取决于链路宽度R(带宽),分组长度L(数据报的比特数)

发送一个比特需要耗时 1 / R 1/R 1/R,而分组交换是整个数据报发送完才停止传输,所以传输分组需要耗时 L / R L/R L/R

这个传输时间,是指路由器发送到另一个端的时间或者,另一个端接收分组的时间。

传播延时

在物理链路上的传播耗时

物理链路长度 d d d,在媒介上传播的速度 s s s,耗时 d / s d/s d/s

如果两个端/节点之间的距离比较近,那么传播耗时可以忽略不计

在这里插入图片描述

分组丢失

每个节点的等待队列都是有限的,如果当分组到达某个节点时,队列满了,然后就会被抛弃

如果当前节点与上一个节点之间的线路是可靠的(有一些协议支持的可靠链路,丢失会不断重传直到节点回复收到),那么由上一个节点进行重传

如果当前节点与上一个节点之间的线路是不可靠的,如以太网,就可能会由源主机负责重传,如果源主机是UDP协议,那么源主机不会重传,直接传下一个分组。

还有一种是ICMP协议,其协议的报头中有关位段是IP,表示目标IP地址。还有一个位段是TTL(Time to Live),当每经过一个节点,TTL就会减一,当TTL为0时,节点提取报文信息后,也会将该分段丢弃。

流量强度

取决于流量强度 I = L a R I=\dfrac{L a}{R} I=RLa

L:分组长度,a:单位时间内通过的分组数量,R:带宽

流量强度在[0,1],排队延时与流量强度的关系

在这里插入图片描述

流量强度不能超过1,排队时间在流量强度超过一定阈值时会陡增。

吞吐量

源端与目标端之间的有效比特的传输速率( 数据量 单位时间 \dfrac{数据量}{单位时间} 单位时间数据量

根据时间的长度,还分为,瞬时吞吐量、平均吞吐量

在这里插入图片描述

吞吐量取决于短桶效应, min ⁡ R s , R c \min{R_s,R_c} minRs,Rc

瓶颈链路:在端到端的路径上,限制端到端的吞吐的链路

前提是没有其它节点传输数据

在这里插入图片描述

实际场景中,瓶颈链路是端到端的链路上,传输有效分组数量最小的链路

在这里插入图片描述

协议层次与服务模型

互联网可以说是有史以来最复杂的人工系统,为了降低复杂度,分摊成本,使用模块化的设计思想,进行解耦,提高可拓展性。

模块化后,采用分层的设计方法,层层调用,不能跨层调用,降低互相的依赖性。

在这里插入图片描述

层次化模型

  • 为上层模块提供服务接口
  • 使用下层模块提供的服务接口
  • 同层次模块,通过协议完成数据交换以实现新功能,需要借助下层模块提供的服务

协议

  • 同层次模块规定好的动作的集合,以实现新的功能
  • 目的是为了向上层提供更好的服务
  • 实现是需要基于下层提供的服务的总和(包括下层的下层为下层提供的服务…)

服务类型

面向连接的服务

需要两个模块建立通信,TCP

建立连接->通信->拆除连接

可以保证数据的完整与有序性

无连接的服务

两个同层次的模块不需要建立连接后再进行通信,直接发送数据

发送的数据可能重复、可能失序

服务与协议的关系

  • 服务:下层实体向上层实体提供他们之间的通信能力,垂直
  • 协议:对等实体之间相互通信的过程中需要遵循的规则的集合,水平

在这里插入图片描述

数据单元(DU)

上一层传给下一层实体的数据叫做SDU,上一层需要通过下一层提供的ASP(接口)来发送SDU

一对一

SDU进入下一层后,会被在数据头部加上一部分控制信息,形成了这一层的PDU

在这里插入图片描述

一对多

当SDU比较大时,发送给下一层后,会被分割成很多部分,然后分别加上报头,形成多个PDU

在这里插入图片描述

多对一

当一个SDU非常小时,会收集多个SDU,然后拼一块,加上报头,合成一个PDU

在这里插入图片描述

网络协议栈

在这里插入图片描述

物理层

相邻两点之间的物理信号的传输与转换

将链路层传下来的每一帧数据(一组0/1数据),转化为电信号/电磁信号,然后通过物理线路或其它媒介,发送给接收端

接收端的物理层,再将获得电信号,转化为数字的0/1信号,再交给上面的链路层

链路层

将数据转化为一帧帧的比特数据,区分哪些是一帧比特数据的开头,哪些是一帧比特数据的节位,然后依次来分离出一帧比特数据,然后交给下方的物理层进行传输

在物理层提供的传输服务之上,在相邻的两点之间(从这个协议栈到另一个协议栈),以帧为单位传输数据

网络层

在链路层提供的相邻两点之间的数组传输的基础上,以分组为单位,从端到端(源主机到目标主机)的传输

网络层的核心功能:路由与转发(全局寻路与局部寻路,寻的路是网络核心的交换节点)

传输层

  1. 在网络层提供的主机到主机之间的传输服务基础上,确定从主机A的进程到主机B的进程的传输
  2. 在网络层传输数据不可靠的情况下,将数据传输变的可靠,然后提供给进程

应用层

在传输层提供稳定的数据包的基础上,进行数据报文的交换,可以实现很多应用功能

OSI七层网络模型

在这里插入图片描述

实现协议栈的厂商觉的太复杂,是不会去专门实现。

如果需要这两层功能,可以在应用层去自己实现。

数据的封装与解封装

在这里插入图片描述

协议栈中每一层都会为数据添加上自己的报文数据,也叫报头,是为了给另一边的协议栈中同层次的进行解包的,里面有控制信息,如,目标IP,生存时间等等。

这些控制信息/报头,本质上都是一个个独有的结构体对象或者说C语言中位段,每一段蕴含着一定的信息。这些都是规定好的协议,只有同层次的实体才能解封装。

当前层的报头也会是下一层的有效载荷

在这里插入图片描述

各层次协议的数据单元

  • 应用层:报文
  • 传输层:报文段
  • 网络层:分组、数据报(无连接网络)
  • 数据链路层:帧
  • 物理层:位

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

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

相关文章

LeetCode【2251. 花期内花的数目】

给你一个下标从 0 开始的二维整数数组 flowers ,其中 flowers[i] [starti, endi] 表示第 i 朵花的 花期 从 starti 到 endi (都 包含)。同时给你一个下标从 0 开始大小为 n 的整数数组 people ,people[i] 是第 i 个人来看花的时间…

基于SpringBoot的医院管理系统

目录 前言 一、技术栈 二、系统功能介绍 病床信息管理 药房信息管理 个人中心管理 药房信息 病床类别 科室信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介…

uniapp 事件委托失败 获取不到dataset

问题&#xff1a; v-for 多个span ,绑定点击事件 代码:view里包着一个span, <view class"status-list" tap"search"><span class"status-item" v-for"(key,index) in statusList" :key"index" :data-key"k…

【N年测试总结】区块链行业测试特点

一、区块链业务系统简介 转入转出业务&#xff1a;这类业务一般会涉及币的转入和转出&#xff0c;转入的流程一般是用户从第三方钱包往用户在公司的地址转入&#xff0c;系统收到用户的转入操作消息通知后&#xff0c;定时在链上监控该地址相关的交易&#xff0c;通过校验各项…

windows:批处理bat入门

文章目录 什么是BAT常用命令与语法help与/?titlecolormodeechopausecallremset/a/p gotostartifif errorlevel for普通用法for /l 用法for /d用法for /r用法for /f用法in (file)delims和tokensskipeolusebackq 变量扩展变量延迟 setlocalshiftdirrd&#xff08;删除文件夹&…

服务器搭建(TCP套接字)-libevent版(服务端)

Libevent 是一个开源的事件驱动库&#xff0c;用于开发高性能、并发的网络应用程序。它提供了跨平台的事件处理和网络编程功能&#xff0c;具有高性能、可扩展性和可移植性。下面详细讲解 Libevent 的主要组成部分和使用方法。 一、事件基础结构&#xff08;event_base&#x…

【网络协议】Http-下

HTTP常见Header Content-Type: 数据类型(text/html等) Content-Length: Body的长度 Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上; User-Agent: 声明用户的操作系统和浏览器版本信息; referer: 当前页面是从哪个页面跳转过来的; location: 搭配3xx状态…

无需公网IP,实现公网SSH远程登录MacOS【内网穿透】

目录 前言 1. macOS打开远程登录 2. 局域网内测试ssh远程 3. 公网ssh远程连接macOS 3.1 macOS安装配置cpolar 3.2 获取ssh隧道公网地址 3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址 4.1 保留一个固定TCP端口地址 4.2 配置固定TCP端口地址 5. 使用固定TCP端…

定义豪车新理念 远航汽车亮相2023中国(天津)国际汽车展览会

近年来&#xff0c;随着汽车行业竞争持续加剧&#xff0c;老品牌面临积极转型&#xff0c;新势力则经验不足、实力欠佳&#xff0c;到底是难抵市场的风云变幻。在此背景下&#xff0c;有着“老品牌 新势力”双重基因的远航汽车可谓底气十足。作为大运集团携手博世、华为、阿里斑…

JumpServer开源堡垒机与爱可生云树数据库完成兼容性认证

近日&#xff0c;中国领先的开源软件提供商FIT2CLOUD飞致云宣布&#xff0c;JumpServer开源堡垒机已经完成与爱可生云树数据库软件的兼容性认证。经过双方联合测试&#xff0c;云树数据库软件&#xff08;简称&#xff1a;ActionDB&#xff09;V1.0与杭州飞致云信息科技有限公司…

什么是Vue的Vetur插件?它有哪些功能

引言 在现代前端开发中&#xff0c;Vue.js已经成为了一个备受欢迎的JavaScript框架。随着Vue.js的流行&#xff0c;开发人员需要强大的工具来提高他们的生产力和Vue.js项目的质量。Vetur插件是一个为Vue.js开发者提供的强大工具&#xff0c;它不仅提供了丰富的功能&#xff0c…

【超详细】前段开发之详细的Vue3入门教程,特别适合小白系统学习,入门到熟练使用Vue看这一篇就够了!

前言&#xff1a; 这篇文章更加侧重的是Vue3不同于Vue2的知识点&#xff0c;如果学习Vue2请看下面这篇文章 Vue2详细系统入门教程 11.2 Vue3 声明&#xff1a;图片资源来自于黑马程序员公开学习资料 本人在学习当中&#xff0c;详细整理了笔记&#xff0c;供大家参考学习 1…

什么是DOM和DOM操作

什么是DOM&#xff1f; DOM&#xff08;文档对象模型&#xff09;:HTML文档的结构化表示。允许JavaScript访问HTML元素和样式来操作它们。&#xff08;更改文本&#xff0c;HTML属性甚至CSS样式&#xff09; 树结构由HTML加载后自动生成 DOM树结构 这个是一个很简单的HTML代…

实验五 熟悉 Hive 的基本操作

实验环境&#xff1a; 1.操作系统&#xff1a;CentOS 7。 2.Hadoop 版本&#xff1a;3.3.0。 3.Hive 版本&#xff1a;3.1.2。 4.JDK 版本&#xff1a;1.8。 实验内容与完成情况&#xff1a; &#xff08;1&#xff09;创建一个内部表 stocks&#xff0c;字段分隔符为英文逗号…

SkyWalking分布式链路追踪学习

为什么要用分布式链路追踪 实际生产中&#xff0c;面对几十个、甚至成百上千个的微服务实例&#xff0c;如果一旦某个实例发生宕机&#xff0c;如果不能快速定位、提交预警&#xff0c;对实际生产造成的损失无疑是巨大的。所以&#xff0c;要对微服务进行监控、预警&#xff0…

颜色+情感的英语表达还有这些,零基础学英语口语去哪里,柯桥有推荐的吗?

当我们探讨关于"blue"&#xff08;蓝色&#xff09;的多义性时&#xff0c;我们会发现英语中有许多其他词汇也有类似的双关意义。 既可以表示一种颜色或物理属性&#xff0c;又可以代表一种情感或心理状态。 这种现象在语言中很常见&#xff0c;反映了语言的丰富性和…

如何将图片转为ico格式

这里主要是记录一个网站&#xff0c;如果你有更好的办法欢迎留言~ ico简介 ICO&#xff08;Icon&#xff09;是一种用于表示图标的文件格式&#xff0c;常用于Windows操作系统中。ICO格式的图片通常用于表示应用程序、文件夹、网站等的图标。 ICO文件可以包含多个图标&#x…

什么是RESTful API?它的设计原则是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是RESTful API&#xff1f;RESTful API的设计原则示例 ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感…

C语言 cortex-A7核 UART总线 实验

一、C 1&#xff09;uart4.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h&quo…

汽车三高试验离不开的远程试验管理平台-TFM

一 背景 众所周知&#xff0c;车辆在量产之前都要经过长时间的耐久性试验和多种汽车适应性或法规试验。道路试验就是在汽车上装设测试仪表和施加模拟载荷&#xff0c;并按实际使用条件来进行测试。此外&#xff0c;在实际试验场地和试验时间上也是有一定规定的。企业根据不同的…