跳转至

计算机网络

Warning

回顾了一下,感觉这么记笔记太抄书了,不想这么花时间,已弃用

参考课程: 湖科大计网微课堂

中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程

第一章 概述

1.2 因特网概述

1.2.1 网络 互联网 因特网

  • 网络:结点和链路组成
  • 多个网络由路由器连接,构成互联网,互联网(Network of Networks)
  • 因特网是世界上最大的互联网络

internet 与 Internet

internet 泛指多个计算机网络互联而成的网络,这些网络之间的通信协议可以是任意的

Internet 则是一个专用名词 指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,他采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET

1.2.2 因特网发展的三个阶段

  1. 1969:从单个网络 ARPANET 向互联网发展
  2. 1985:逐步建成三级结构的因特网
  3. 1993:逐步形成了多层次 ISP 的因特网

因特网服务提供者 ISP(Internet Service Provider)

普通用户通过 ISP 接入因特网,ISP 可以从因特网管理机构申请到成块的 IP 地址

机构和个人向 ISP 交纳规定的费用,就可以得到 IP 地址(因特网上的主机都必须有 IP 地址才能进行通信)

我国的 ISP: 中国电信(CHINA TELECOM)、中国联通(China unicom)、中国移动(China Mobile)

基于 ISP 的三层结构的因特网

  • 第一层 国际性区域
  • 第二层 区域性或国家性覆盖规模,是第一层 ISP 的用户
  • 第三层 本地范围

因特网逐渐演变成基于 ISP 的多层次结构网络,但今天的因特网由于规模太大,很难对整个网络的结构给出细致的描述

1.2.3 因特网的标准化工作

  • 公开 ....

1.2.4 因特网的组成

  • 边缘部分

    由链接在因特网上的主机组成,是用户直接使用的,用来进行通信和资源共享

  • 核心部分

    由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的。用来数据交换

    实现数据交换的方式有两种:circuit switching & packet switching(1.3)

  • (两者之间的连接部分)

1.3 三种交换方式

  • 电路交换(Circuit Switching)

  • 分组交换(Packet Switching)

  • 报文交换(Message Switching)

这tm就是王洁第一节课讲的我听不懂的东西

1.3.1 电路交换(Circuit Switching)

两台机器要通信就要用线连起来

当机器数多时,需要电线数量太大了,机器数为\(n\)时,电线数为\(\frac{n(n - 1)}{2}\)

于是使用交换机

  • 交换就是按照某种方式动态地分配传输线路的资源

  • 电路交换的三个步骤:

    1. 建立连接(分配通信资源)
    2. 通话(一直占用通信资源)
    3. 释放连接(归还通信资源)

当使用电路交换来传送计算机数据是,其线路的传输效率往往很低

In circuit switching,网络带宽资源会被分为一个个片,网络资源(如带宽)被分成片的两种方式:

  • 频分(Frequency-Division Multiplexing):交换结点和交换结点之间的链路带宽比较宽,两个host在通讯之前在每一条链路上找到空闲的一片

  • 时分(Time-Division Multiplexing):划分时间片的方式,每个周期的第一片,分给第一个用户使用;每个周期的第二片,分给第二个用户使用

1.3.2 分组交换(Packet Switching)

分组交换机:路由器(Router)

发送的数据:报文(packet, message)

将报文划分成等长小数据段,在每个数据段前加上由必要控制信息组成的首部,就构成了分组,简称“包”,首部称为“包头”

分组传输中可能出现的两种情况:

  1. 各分组从源站到达目的站可以走不同的路径(不同的路由)

  2. 分组乱序到达目的站,可能出现分组丢失、误码、重复等问题,后续再详细介绍

在数据传输过程中

  • 发送方:构造分组、发送分组

  • 路由器:缓存分组、转发分组

  • 接收方:接受分组、还原报文

这里会画一个有几条线的图,我看不懂

然后还有电路交换、报文交换、分组交换的优缺点,我懒得记了

1.4 计算机网络的定义和分类

  • 计算机的精确定义并未统一

  • 计算机网络真的最简单的定义是:一些互相连接的、自治的计算机的集合

    • 互联:计算机之间可以通过有线或无线的方式进行数据传输

    • 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用

    • 集合:至少要两台计算机

  • 计算机网络的较好定义:计算机网络主要是由一些通用的、可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的(例如传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。

  • 计算机网络的分类

    • 按交换技术分类

      电路 报文 分组

    • 按使用者

      • 公用网
      • 专用网
    • 按传输介质分类

      • 有线网络
      • 无线网络
    • 按覆盖范围分类

      • 广域网 WAN (Wide Area Network) 可以覆盖国家甚至几个洲
      • 城域网 MAN (Metropolitan Area Network)
      • 局域网 LAN (Local Area Network)
      • 个域网 PAN (Personal Area Network)
    • 按拓扑结构分类

      • 总线型网络 星型网络 环型网络 网状型网络

1.5 计算机网络的性能指标

1. 速率

常用数据量单位

\(8 bit = 1 Byte\)

\(KiB = 2^{10} B\)

\(MiB = K \cdot KiB = 2^{10} KiB = 2^{20} B\)

\(GiB = K\cdot MiB = 2^{30} B\)

\(TiB = K \cdot GiB = 2^{40} B\)

常用数据率单位

\(bit/s(b/s, bps)\)

\(kb/s = 10^3 b/s\)

\(Mb/s = k \cdot kb/s = 10^6 b/s\)

\(Gb/s = 10^9 b/s\)

\(Tb/s = 10^{12} b/s\)

2. 带宽

带宽在模拟信号系统中的意义

  • 信号所包含的各种不同频率成分所占据的频率范围
  • 单位:Hz(kHz, MHz, GHz)

带宽在计算结网络中的意义

  • 用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中某一点到另一点所能通过的“最高数据率”

  • 单位:b/s(kb/s, Mb/s, Gb/s, Tb/s)

其实带宽的这两种表述之间有着密切的联系

一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。

3. 吞吐量

吞吐量表示单位时间内通过某个网络(或信道、接口)的数据量

吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能通过网络

吞吐量受网络的带宽或额定速率的限制。

4. 时延

Note

\(发送时延 = \frac{分组长度(b)}{发送速率(b/s)}\)

\(传播时延 = \frac{信道长度(m)}{电磁波传播速率(m/s)}\)

\(处理时延:一般不方便计算\)

5. 时延带宽积

Note

\(时延带宽积 = 传播时延 \times 带宽\)

  • 链路的时延带宽积有称为以比特为单位的链路长度

6. 往返时间 RTT(Round-Trip Time)

Note

很多情况下,因特网上的信息不仅仅单方向传输,而是双向交互

7. 利用率

  • 信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)

  • 网络利用率:全网络的信道利用率的加权平均

Note

  • 某信道的利用率增大时,该信道引起的时延也会迅速增加

  • 信道利用率并非越高越好

\(D_0\)表示网络空闲时的时延,\(D\)表示网络当前的时延

\(D = \frac{D_0}{1 - U}\)

  • 也不能使信道利用率太低,这会使宝贵的通信资源浪费。应该使用一些机制,动态调整输入到网络中的通信量

8. 丢包率

丢包率:传输过程中丢失的分组数量与总分组数量的比率

可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率

分组丢失的两种情况:

  • 分组在传输过程中出现误码,被结点丢弃

  • 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞

1.6 计算机网络体系结构

1.6.1 常见的计算机网络体系结构

著名的“开放系统互联参考模型”

OSI 体系结构

是一个七层协议的体系结构:

7 应用层
6 表示层
5 会话层
4 运输层
3 网络层
2 数据链路层
1 物理层

法律上的国际标准

失败的原因:

  1. OSI 专家缺乏实际经验,在完成 OSI 标准时没有商业驱动力
  2. 实现起来过于复杂,效率低
  3. 该标准制定周期过长,按 OSI 标准生产的设备无法及时进入市场
  4. 层次划分也不太合理,有些功能在多个层次中重复出现

TCP/IP 体系结构

4 应用层
3 运输层
2 网际层
1 网络接口层

事实上的国际标准

  • 将 OSI 的物理层(1)和数据链路层(2)合并成网络接口层
  • 去掉了会话层(5)和表示层(6)
  • TCP/IP 协议在网络层使用的协议是 IP 协议,IP 协议的中文是网际协议,因此网络层称为网际层

用户的操作系统中,通常都带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族

路由器中也带有符合 TCP/IP 体系结构标准的 TCP/IP 协议族,不过路由器一般只包含网络接口层和网际层

  • 网络接口层

    没有规定什么具体的内容

    可以互联全世界各种不同的网络接口(有线以太网接口、无线局域网接口)

    因此,本质上 TCP/IP 体系结构只有上面的三层

  • 网际层

    IP 协议是网际层的核心协议

  • 运输层

    TCP 和 UDP 是运输层的两个重要协议

  • 应用层

    包含了大量应用层协议:HTTP, SMTP, DNS, RTP

使用 IP 协议互联不同的网络接口

IP over everything

IP 协议可以为各种网络应用提供服务

Everything over IP

综合 OSI 和 TCP/IP 体系结构的原理体系结构

5 应用层
4 运输层
3 网络层
2 数据链路层
1 物理层

将 TCP/IP 协议的网络接口层重新划分为物理层(1)和数据链路层(2)

1.6.2 计算机网络体系结构分层的必要性

物理层的问题

  • 采用怎样的传输媒体(介质)
  • 采用怎样的物理接口
  • 使用怎样的信号表示比特 0 和 1

数据链路层的问题

  • 如何标识网络中的各主机(主机编址问题,例如 MAC 地址)
  • 如何从信号所表示的一连串比特流中区分出地址和数据
  • 如何协调各主机争用总线

网络层的问题

  • 如何标识各网络中的各主机(网络和主机共同编址问题,例如 IP 地址)
  • 路由器如何转发分组,如何进行路由选择

运输层的问题

  • 如何解决进程之间基于网络的通信问题
  • 出现传输错误时,如何处理

应用层要做的

  • 通过应用进程间的交互来完成特定的网络应用

分模块解决上述问题!!!!!也就体现了计算机网络体系结构分层的必要性

1.6.3 计算机网络体系结构分层思想举例

这节课动画做的很好 👉链接

1.6.4 计算机网络体系结构中的专用术语

我草这是今天夏波涌课上讲的

实体

任何课发送或接受信息的硬件或软件进程

对等实体

收发双方想同层次中的实体

协议

控制两个对等实体进行逻辑通信的规则的集合 alt text

协议的三要素:

  • 语法 定义所交换信息的格式
  • 语义 定义收发双方所要完成的操作
  • 同步 定义收发双方的时序关系

    先建立连接再数据传输,体现时序关系

    先建立连接再数据传输,体现时序关系

服务
  • 在协议的控制下,两个对等实体键的逻辑通信使得本层能够向上一层提供服务

  • 要实现本层协议,还需要使用下面一层所提供的服务

  • 协议是水平的,服务是竖直的

  • 实体看得见相邻下层所提供的服务,但不知道实现该服务的具体协议,也就是说,下面的协议对上面的实体是“透明”的。

  • 服务访问点 在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型

    • 数据链路层的服务访问点为帧的“类型”字段
    • 网络层的服务访问点为 IP 数据报首部中的“协议字段”
    • 运输层的服务访问点为“端口号”
  • 服务原语 上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语

  • 协议数据单元 (PDU): 对等层次之间传送的数据包称为该层的协议数据单元

    各层的协议数据单元(PDU)名称

    应用层 报文(message)
    运输层 TCP报文段(segment) 或 UDP 用户数据报(datagram)
    网络层 IP 数据报或分组(packet)
    链路层 帧(frame)
    物理层 比特流(bit stream)
  • 服务数据单元 (SDU): 同一系统内,层与层之间交换的数据包称为服务数据单元

  • 对个 SDU 可以合成一个 PDU;一个 SDU 也可以划分为几个 PDU

1.8 习题课

习题课(2) 时延

时延问题就是火车过桥问题,发送时延就是火车长度

在一段链路上,不管有多少比特:

\[总时延 = 所有比特的时延 + 信号在这段链路上的传播时延\]

在多端链路上(分组交换网):

alt text

第二章 物理层

2.1 物理层的基本概念

连接网络设备的传输媒体

  1. 导引型传输媒体

    • 双绞线
    • 同轴电缆
    • 光纤
  2. 非导引型传输媒体

    • 微波通信

物理层协议的主要任务

  • 机械特性

    指明接口所用接线器的形状、尺寸、引脚数目和排列、固定和锁定装置

  • 电气特性

    指明在接口电缆的各条线上出现的电压的范围

  • 功能特性

    指明某条线上出现的某一电平的电压表示何种意义

  • 过程特性

    指明对于不同功能的各种可能事件的出现顺序

2.2 物理层下面的传输媒体

介绍了导引型传输媒体

各种线:同轴电缆、双绞线、光纤、电力线

非导引型传输媒体指的是在自由空间中

可以使用不同频率的电磁波:无线电波、微波、红外线、可见光

2.3 传输方式

串行传输和并行传输

并行传输的速度是串行传输的n倍,缺点是成本高

计算机网络中,数据在传输线路上的传输,采用的是串行传输

计算机内部则采用并行的传输方式

同步传输和异步传输

单向通信 双向交替通信 双向同时通信

  • 单向通信(单工)
  • 双向交替通信(半双工)

    对讲机,不能同时

  • 双向同时通信(全双工)

2.4 编码与调制

  • 网络:中传输消息(文字、图片、视频)
  • 数据:是运送消息的实体
  • 信号:数据的电磁表现,由网卡将01转换成电信号
  • 基带信号:由信源发出的原始信号

    • 数字基带信号:例如计算机内部CPU与内存间传输

      • 数字信道:数字基带信号通过编码(不改变信号性质,仅对数字基带信号的波形进行变换),编码后产生的信号仍为数字信号
      • 模拟信道:调制(将数字信号的频段搬移到较高的频段,并转换为模拟信号),例如WIFI
    • 模拟基带信号:麦克风收到声音后产生的音频信号

      • 数字信道:也是通过编码
      • 模拟信道:通过调制,典型应用(频分复用FDM,充分利用带宽资源)

几种常用编码

  • 不归零编码

不出现0电平,只出现正电平和负电平,这样要想区分2个连续的负电平和3个连续的副电平就需要发送方和接收方做到严格的时间上的同步,使用额外一根传输线来传输时钟信号,但在计算机网络中我们更倾向使用传输线传输数据信号而不是时间信号

因为这样的同步问题,计算机网络中不是用不归零编码

  • 归零编码

每个码元传输结束后信号都要归零,所以接收方只要在信号归零后进行采样,不需要时钟信号

归零编码相当于把时钟信号用归零的方式编码在了数据中,称为“自同步”信号

但是,归零编码中大部分都数据带宽都用来传输归零而浪费掉了

  • 曼彻斯特编码

在每个码元的中间时刻发生跳变

  • 差分曼彻斯特编码

基本调制方法

卧槽怎么一堆频率相位的玩意

第三章 数据链路层

3.1 概述

概述
  • 数据链路层以为单位传输和处理数据

数据链路层的三个重要问题

  • 封装成帧
  • 差错检测
  • 可靠传输

封装成帧

网络层给数据链路层交付协议数据单元,数据链路层会在上面加上帧头帧尾

这个操作叫封装成帧

差错检测

帧在传输过程中遭遇干扰后可能会出现误码,接受方主机如何判断产生了误码?

可以通过检错码

发送方在发送帧之前,会基于待发送的数据和检错算法计算出检错码,封装在帧尾

可靠传输

接受方收到有误码的帧就会丢弃

  • 如果数据链路层向上层提供的是不可靠服务,丢弃就丢弃了
  • 如果提供的是可靠服务,数据链路层就会采用其他措施确保接收方

上述的是点对点的数据链路层传输,如果是使用广播信道的数据链路层则还有其他注意事项:

一根总线互联了好几台主机,主机A向主机C发送帧

A: 其他主机怎样知道不是发给自己的,主机C又如何知道是发给自己的?

把帧的目的地址添加到帧中一起传输

B: 总线上多带主机同时使用总线传输帧时的碰撞问题?

使用某种协议来多点监听

3.2 封装成帧

3.3 差错检测

误码率BER(Bit Error Rate)

奇偶校验

在待发送的数据后面加1位奇偶校验位,是整个数据中1的个数为奇数(奇校验)或偶数(偶校验)

漏检率显然较高

循环冗余校验CRC(Cyclic Redundancy Check)