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

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

目录

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

网络核心

电路交换

【计算机网络黑皮书】入门必学的基本网络知识_第1张图片

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

【计算机网络黑皮书】入门必学的基本网络知识_第2张图片

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

频分FDM

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

【计算机网络黑皮书】入门必学的基本网络知识_第3张图片

时分TDM

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

【计算机网络黑皮书】入门必学的基本网络知识_第4张图片

波分WDM

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

【计算机网络黑皮书】入门必学的基本网络知识_第5张图片

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

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第6张图片

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

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

分组交换

【计算机网络黑皮书】入门必学的基本网络知识_第7张图片

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

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第8张图片

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

排队延迟与丢失

【计算机网络黑皮书】入门必学的基本网络知识_第9张图片

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

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

关键功能

路由

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

转发

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

统计多路复用

【计算机网络黑皮书】入门必学的基本网络知识_第10张图片

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

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

分组交换与电路交换

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

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

定量分析

【计算机网络黑皮书】入门必学的基本网络知识_第11张图片

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的顺序可能会不一样,但是分组只要到达,是可以通过其它手段去恢复数据的有序性。

甚至有时,一个路由堵塞时,会转发到另一路由器,绕开,选这其它的路由路径。
【计算机网络黑皮书】入门必学的基本网络知识_第12张图片

网络接入

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

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

接入网络有两个重要指标

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

接入方式

modern

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

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

线缆网络

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

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

无线接入

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

互联网结构

ISP:互联网服务提供商

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第13张图片

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

【计算机网络黑皮书】入门必学的基本网络知识_第14张图片

分组丢失与延时

【计算机网络黑皮书】入门必学的基本网络知识_第15张图片

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

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

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

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

分组延时

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

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

节点处理延时

分组进到路由器后,需要进行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

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

【计算机网络黑皮书】入门必学的基本网络知识_第16张图片

分组丢失

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

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

如果当前节点与上一个节点之间的线路是不可靠的,如以太网,就可能会由源主机负责重传,如果源主机是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],排队延时与流量强度的关系

【计算机网络黑皮书】入门必学的基本网络知识_第17张图片

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

吞吐量

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第18张图片

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

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第19张图片

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

【计算机网络黑皮书】入门必学的基本网络知识_第20张图片

协议层次与服务模型

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第21张图片

层次化模型

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

协议

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

服务类型

面向连接的服务

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

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

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

无连接的服务

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

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

服务与协议的关系

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

【计算机网络黑皮书】入门必学的基本网络知识_第22张图片

数据单元(DU)

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

一对一

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

【计算机网络黑皮书】入门必学的基本网络知识_第23张图片

一对多

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

【计算机网络黑皮书】入门必学的基本网络知识_第24张图片

多对一

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

【计算机网络黑皮书】入门必学的基本网络知识_第25张图片

网络协议栈

【计算机网络黑皮书】入门必学的基本网络知识_第26张图片

物理层

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

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

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

链路层

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

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

网络层

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

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

传输层

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

应用层

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

OSI七层网络模型

【计算机网络黑皮书】入门必学的基本网络知识_第27张图片

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

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

数据的封装与解封装

【计算机网络黑皮书】入门必学的基本网络知识_第28张图片

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

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

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

【计算机网络黑皮书】入门必学的基本网络知识_第29张图片

各层次协议的数据单元

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

你可能感兴趣的:(计算机网络,网络,计算机网络)