2020年8月26日Coding32296 字约 215 分钟


计算机网络

概述

计算机网络在信息时代中的作用

  • 21 世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
  • 网络现已成为信息社会的命脉和发展知识经济的重要基础。

互联网概述

三大网络

  • 电信网络

  • 有线电视网络

  • 计算机网络

    • 特点

      • 连通性

        • 使上网用户之间都可以交换信息(数据,以及各种音频视频) ,好像这些用户的计算机都可以彼此直接连通一样。
        • 注意,互联网具有虚拟的特点,无法准确知道对方是谁,也无法知道对方的位置。
      • 共享

        • 指资源共享。
        • 资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享。
        • 由于网络的存在,这些资源好像就在用户身边一样,方便使用。

网络的网络

  • 网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。

image-20200826214200617

互联网基础结构发展的三个阶段

  • 第一阶段是从单个网络 ARPANET 向互联网发展的过程。

    • 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
    • 人们把 1983 年作为因特网的诞生时间。
  • 第二阶段的特点是建成了三级结构的因特网。

    • 主干网
    • 地区网
    • 校园网(或企业网)
  • 第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。

  • 出现了因特网服务提供者 ISP (Internet Service Provider)。

  • 根据提供服务的覆盖面积大小以及所拥有的 IP 地址数目的不同,ISP 也分成为不同的层次。

  • 互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。

    image-20200826214220690

  • 目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。

    image-20200826214224497

互联网的标准化工作

  • 制定互联网的正式标准要经过以下三个阶段

    • 互联网草案 (Internet Draft) ——有效期只有六个月。在这个阶段还不是 RFC 文档。(已被废弃)
    • 建议标准 (Proposed Standard) ——从这个阶段开始就成为 RFC 文档。
    • 互联网标准 (Internet Standard) ——达到正式标准后,每个标准就分配到一个编号 STD xxxx。 一个标准可以和多个 RFC 文档关联。

互联网的组成

image-20200826214359510

边缘部分

  • 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。

  • 通信方式

  • 客户—服务器方式(C/S 方式)——客户是服务的请求方,服务器是服务的提供方。

    image-20200826214230971

  • 对等连接方式(P2P 方式)——不区分客户和服务器。

    image-20200826214235159

核心部分

  • 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。

  • 交换方式

  • 电路交换

  • 两部电话机只需要用一对电线就能够互相连接起来。

    image-20200826214250558

  • 更多的电话机互相连通

    image-20200826214306361

    • 5 部电话机两两相连,需 10 对电线。
    • N 部电话机两两相连,需 N(N – 1)/2 对电线。
    • 当电话机的数量很大时,这种连接方法需要的电线对的数量与电话机数的平方成正比。
  • 使用交换机

    • 当电话机的数量增多时,就要使用交换机来完成全网的交换任务。

      image-20200826214334644

  • 电路交换的特点

    • 电路交换必定是面向连接的。

    • 电路交换的三个阶段:

      • 建立连接
      • 通信
      • 释放连接
    • 电路交换传送计算机数据效率低

      • 计算机数据具有突发性。
      • 这导致通信线路的利用率很低。
  • 分组交换

    image-20200826214429354

    • 在发送端,先把较长的报文划分成较短的、固定长度的数据段。

    • 添加首部构成分组

    • 每一个数据段前面添加上首部构成分组

    • 分组交换的传输单元

    • 分组交换网以“分组”作为数据传输单元。

    • 依次把各分组发送到接收端(假定接收端在左边)

    • 分组首部的重要性

    • 每一个分组的首部都含有地址等控制信息。

    • 分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。

    • 用这样的存储转发方式,最后分组就能到达最终目的地。

    • 收到分组后剥去首部

    • 接收端收到分组后剥去首部还原成报文

    • 最后还原成原来的报文

    • 分组交换的优点

    • 高效——动态分配传输带宽,对通信链路是逐段占用。

    • 灵活——以分组为传送单位和查找路由。

    • 迅速——不必先建立连接就能向其他主机发送分组。

    • 可靠——保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性。

    • 分组交换带来的问题

    • 分组在各结点存储转发时需要排队,这就会造成一定的时延。

    • 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。

  • 报文交换

    • 报文交换基于存储转发原理,在报文交换中心,一分分的电报被接收下来,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。
  • 三种交换方式在数据传送阶段的特点

    • 电路交换——整个报文的比特流连续的从源点直达终点,好像在一个管道中传送。

    • 报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。

    • 分组交互——单个分组(这只是整个报文的一部分)传送到相邻的结点,存储下来后查找转发表,转发到下一个结点。

      image-20200826214446252

计算机网络在我国的发展

  • 中国电信互联网 CHINANET(也就是原来的中国公用计算机互联网)
  • 中国联通互联网 UNINET
  • 中国移动互联网 CMNET
  • 中国教育和科研计算机网 CERNET
  • 中国科学技术网 CSTNET

计算机网络的类别

计算机网络的定义

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

几种不同类别的计算机网络

  • 按网络的作用范围分

    • 广域网 WAN (Wide Area Network) ——作用范围通常为几十到几千公里。
    • 城域网 MAN (Metropolitan Area Network) ——作用距离约为 5~50 公里。
    • 局域网 LAN (Local Area Network) ——局限在较小的范围(如 1 公里左右)。
    • 个人区域网 PAN (Personal Area Network) ——范围很小,大约在 10 米左右。
  • 按网络的使用者分

    • 公用网 (public network) ——按规定交纳费用的人都可以使用的网络。因此也可称为公众网。
    • 专用网 (private network) ——为特殊业务工作的需要而建造的网络。
  • 用来把用户接入到互联网的网络

    • 接入网 AN (Access Network),它又称为本地接入网或居民接入网。

计算机网络的性能

计算机网络的性能指标

  • 速率

    • 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。
    • 比特(bit)来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。
    • 速率是计算机网络中最重要的一个性能指标,指的是数据的传送速率,它也称为数据率 (data rate) 或比特率 (bit rate)。
    • 速率的单位是 bit/s,或 kbit/s、Mbit/s、 Gbit/s 等。
    • 速率往往是指额定速率或标称速率,非实际运行速率。
  • 带宽

  • “带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。

  • 现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)。

  • 常用的带宽单位

    • 更常用的带宽单位是
    • 千比每秒,即 kb/s (103 b/s)
    • 兆比每秒,即 Mb/s(106 b/s)
    • 吉比每秒,即 Gb/s(109 b/s)
    • 太比每秒,即 Tb/s(1012 b/s)
    • 请注意:在计算机界, K = 2^{10} = 1024, M = 2^{20}, G = 2^{30}, T = 2^{40}
  • 数字信号流随时间的变化

    • 在时间轴上信号的宽度随带宽的增大而变窄。

      image-20200826214529977

  • 吞吐率

    • 吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。
    • 吞吐量经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
    • 吞吐量受网络的带宽或网络的额定速率的限制。
  • 时延

    • 总时延 \space = \space 发送时延 + 传播时延 + 处理时延 + 排队时延
  • 发送时延

    • 发送时延是主机或路由器发送数据帧所需要的时间,即从数据帧的第一个比特算起,到最后一个比特发送完毕的所需时间。因此发送时延也叫传输时延,其公式为: 发送时延 = \frac{数据帧长度(b)}{信道带宽(b/s)}
  • 传播时延

    • 传播时延是电磁波在信道中传播一定距离需要花费的时间,其公式为: 传播时延 = \frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)}
  • 处理时延

    • 主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
  • 排队时延

    • 分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
  • 时延带宽积

    • 时延宽带积又被成为以比特为单位的链路长度。
    • 时延带宽积 = 传播时延 \times 带宽
  • 往返时间 RTT

    • 往返时间 RTT 表示从发送方发送数据开始,到发送方收到接收方的确认,总共经历的时间。
  • 利用率

    • 信道利用率表示信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道的利用率是零。

    • 网络利用率则是全网络的信道利用率的加权平均值。

    • 时延与网络利用率的关系

      • 若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,U 表示网络的利用率,数值在 0 到 1 之间。 则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0 之间的关系: D \space = \space \frac{D_{0}}{1 - U}
  • 信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。

image-20200826214926212

  • 从图中可以看出,当网络利用率达到其容量的 1/2 时,时延大致成指数增长,当网络利用率接近 1 时,网络时延就趋于无穷大。所以,在一些较大主干网 ISP 通常控制他们的信道利用率不超过 50%。如果超过了就要准备扩容,增大线路带宽。

  • 计算机网络的非性能指标

  • 费用

  • 质量

  • 标准化

  • 可靠性

  • 可扩展性和可升级性

  • 易于管理和维护

计算机网络的体系结构

计算机网络体系结构的形成

  • 为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。
  • 他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。

协议与划分层次

  • 协议

    • 网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。

    • 组成

      • 语法,即数据与控制信息的结构或格式。
      • 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
      • 同步,即事件实现顺序的详细说明。
  • 划分层次

    • 分层的好处

      • 各层之间是独立的。
      • 灵活性好。
      • 结构上可分割开。
      • 易于实现和维护。
      • 能促进标准化工作。
    • 分层的缺点

      • 降低效率。
      • 有些功能会在不同的层次中重复出现,因而产生了额外开销。
    • 各层完成的主要功能

      • 差错控制——使相应层次对等方的通信更加可靠。
      • 流量控制——发送端的发送速率必须使接收端来得及接收,不要太快。
      • 分段和重装——发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
      • 复用和分用——发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
      • 连接建立和释放交换——数据前先建立一条逻辑连接,数据传送结束后释放连接。

体系结构

image-20200826214958224

  • 具有五层协议的体系结构

  • 应用层 (application layer)

    • 为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
  • 运输层 (transport layer)

    • 为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。

    • 运输层包括两种协议

      • 传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段。
      • 用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。
      • TCP 主要提供完整性服务,UDP 主要提供即时性服务。
  • 网络层 (network layer)

    • 为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
  • 数据链路层 (data link layer)

    • 网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
  • 物理层 (physical layer)

    • 考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
  • OSI

多了表示层和会话层。

  • 表示层

    • 数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
  • 会话层

    • 建立及管理会话。
  • TCP/IP 的体系结构

  • 它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。

  • TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。

实体、协议、服务和服务访问点

  • 实体

    • 任何可发送或接收信息的硬件或进程。
  • 协议

    • 控制两个对等实体(或多个实体)进行通信的规则的集合。
  • 服务

    • 服务是垂直的,即服务是由下层向上层通过层间接口提供的。
  • 服务访问点

    • 在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点 SAP(Service Access Point)
  • 相邻两层之间的关系

    • 在服务提供者的上层实体又称为服务用户,因为它使用下层服务提供者所提供的服务。

      image-20200826215006302

物理层

物理层的基本概念

  • 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。

  • 物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。

  • 用物理层的协议也常称为物理层规程 (procedure)。

  • 物理层的主要任务描述为确定与传输媒体的接口的一些特性

  • 机械特性——指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。

  • 电气特性——指明在接口电缆的各条线上出现的电压的范围。

  • 功能特性——指明某条线上出现的某一电平的电压的意义。

  • 过程特性 ——指明对于不同功能的各种可能事件的出现顺序。

数据通信的基础知识

数据通信系统的模型

  • 源系统(或发送端、发送方)

    • 源点——源点设备产生要传输的数据
    • 发送器——通常源点生成的数字比特流要通过发送器编码后才能够在传输系统中进行传输。典型的发送器就是调制器。
    • 接收器——接受传输系统传送过来的信号,并把它转换成能够被目的设备处理的信息。典型的接收器就是解调器。
    • 终点——重点设备从接受获取传送来的数字比特流,然后把信息输出。终点又称为目的站,或信宿。
  • 传输系统(或传输网络)

  • 目的系统(或接收端、接收方)
    image-20200826215134753

常用术语

  • 数据 (data) —— 运送消息的实体。
  • 信号 (signal) —— 数据的电气的或电磁的表现。
  • 模拟信号 (analogous signal) ,或连续信号—— 代表消息的参数的取值是连续的。
  • 数字信号 (digital signal),或离散信号 —— 代表消息的参数的取值是离散的。
  • 码元 (code) —— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。

有关信道的几个基本概念

  • 信道 —— 一般用来表示向某一个方向传送信息的媒体。

  • 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。

  • 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。

  • 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。

  • 基带信号(即基本频带信号)—— 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。

  • 基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制 (modulation)。

    • 基带调制——仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。把这种过程称为编码 (coding)。

      • 常用编码方式

        • 不归零制:正电平代表 1,负电平代表 0。
        • 归零制:正脉冲代表 1,负脉冲代表 0。
        • 曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。
        • 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。
          image-20200826215211120
  • 带通调制——使用载波 (carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输(即仅在一段频率范围内能够通过信道) 。

  • 基本的带通调制方法

    • 调幅 (AM):载波的振幅随基带数字信号而变化。

    • 调频 (FM):载波的频率随基带数字信号而变化。

    • 调相 (PM) :载波的初始相位随基带数字信号而变化。

      • 正交振幅调制 QAM (Quadrature Amplitude Modulation)

        • 为了达到更高的信息传输速率,必须采用技术上更为复杂的多元制的振幅相位混合调制方法。
      • 带通信号——经过载波调制后的信号。

    image-20200826215222728

信道的极限容量

  • 任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
    码元传输的速率越高,或信号传输的距离越远,或传输媒体质量越差,在信道的输出端的波形的失真就越严重。

  • 信道能够通过的频率范围

    • 具体的信道所能通过的频率范围总是有限的。信号中的许多高频分量往往不能通过信道。
    • 1924 年,奈奎斯特 (Nyquist) 就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
  • 信噪比

    • 信噪比就是信号的平均功率和噪声的平均功率之比。常记为 S/N,并用分贝 (dB) 作为度量单位。即: 信噪比(dB) = 10 log10(S/N)(dB)

    • 香农公式

      • 1984 年,香农 (Shannon) 用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率(香农公式)。

      • 信道的极限信息传输速率 C 可表达为: C = W log_{2}(1 + S/N) (bit/s)

        W 为信道的带宽(以 Hz 为单位)
        S 为信道内所传信号的平均功率
        N 为信道内部的高斯噪声功率

      • 香农公式表明

        • 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
        • 只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
        • 若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
        • 实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。

物理层下面的传输媒体

导引型传输媒体

  • 双绞线

    • 屏蔽双绞线 STP (Shielded Twisted Pair)
    • 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
  • 同轴电缆

    • 50 Ω 同轴电缆
    • 75 Ω 同轴电缆
  • 光缆

    • 光纤是光纤通信的传输媒体。
    • 光纤的工作原理——光线在纤芯中传输的方式是不断地全反射。
    • 多模光纤——可以存在多条不同角度入射的光线在一条光纤中传输。
    • 单模光纤——若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。

非导引型传输媒体

  • 无线传输所使用的频段很广。

  • 短波通信主要是靠电离层的反射,但短波信道的通信质量较差。

  • 微波在空间主要是直线传播。

    • 卫星通信
    • 地面微波接力通信

信道复用技术

频分复用 FDM

  • 按频率划分不同的信道。

时分复用 TDM

  • 按时间划分不同的信道。

统计时分复用 STDM

  • 对 TDM 的一种改进,动态的分配所需的时隙大小,使用集中器作为连接部件。提高了信道的利用率。

波分复用 WDM

  • 光纤传输时主要存在色散问题(即光脉冲的不同频率的分量传输速率不同),用波长而不用频率来表示光的载波

码分复用 CDM (码分多址 CDMA)

  • CDMA 也是一种共享信道的方法,主要采用扩频通信。
    在 CDMA 中每一个比特时间再划分为 m 个短的间隔,称为码片(chip)。
    通常 m 的值设为 128 或 64。使用 CDMA 的每一个站被指派一个唯一的 m bit 码片序列。

数字传输系统

  • 脉码调制 PCM 体制最初是为了在电话局之间的中继线上传送多路的电话。
  • 同步光纤网 SONET 为光纤传输系统定义了同步传输的线路速率等级结构
  • 同步数字系列 SDH 的基本速率为 155.52 Mbit/s,称为第 1 级同步传递模块 (Synchronous Transfer Module),即 STM-1,相当于 SONET 体系中的 OC-3 速率。

宽带接入技术

  • xDSL 技术

    • ADSL (Asymmetric Digital Subscriber Line):非对称数字用户线
    • HDSL (High speed DSL):高速数字用户线
    • SDSL (Single-line DSL):对线的数字用户线
    • VDSL (Very high speed DSL):甚高速数字用户线
    • DSL:ISDN  用户线
    • RADSL (Rate-Adaptive DSL):速率自适应  DSL,是  ADSL  的一个子集,可自动调节线路速率
  • 光纤同轴混合网 (HFC 网)

    • HFC 网是在目前覆盖面很广的有线电视网 CATV 的基础上开发的一种居民宽带接入网。HFC 网除可传送 CATV 外,还提供电话、数据和其他宽带交互型业务。
  • FFTx 技术

    • 光纤到家  FTTH (Fiber To The Home):光纤一直铺设到用户家庭可能是居民接入网最后的解决方法。
    • 光纤到大楼  FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。
    • 光纤到路边  FTTC (Fiber To The Curb):从路边到各用户可使用星形结构双绞线作为传输媒体。

数据链路层

使用点对点信道的数据链路层

数据链路层和帧

  • 数据链路层使用的信道主要有以下两种类型

    • 点对点信道(一对一)
    • 广播信道(一对多)
  • 数据链路层模型

  • 链路是一条无缘的点到点的物理线路段,中间没有任何其他的交换节点。

  • 数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

  • 帧是点对点信道的数据链路层的协议单元。

  • 数据链路层传送的是帧

三个基本问题

  • 封装成帧

    • 将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
  • 透明传输

    • 透明表示一个实际存在的事物看起来好像不存在一样。

    • 发送端的数据链路层——为避免数据中的 EOT 和 SOH 控制字符被错误界定,在其前端插入转义字符 ESC (十六进制为 0x1B,二进制为 00011011)。该方法称为字节填充或字符填充。

      image-20200826215440697

    • 接收端数据链路层——在把数据发送往网络层之前删除转移字符 ESC (0x1B)。

  • 差错控制

    • 循环冗余校验 CRC
    • 帧检验序列 FCS
    • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
      FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

点对点协议 PPP

PPP 协议的特点

  • 互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

  • PPP 协议应满足的要求

    • 简单——这是首要要求。
    • 封装成帧 —— 必须规定特殊的字符作为帧定界符。
    • 透明性 —— 必须保证数据传输的透明性。
    • 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
    • 多种类型链路 —— 能够在多种类型的链路上运行。
    • 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
    • 检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。
    • 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值,促进各种实现之间的互操作性。
    • 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
    • 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。
  • PPP 协议不需要的功能

    • 纠错
    • 流量控制
    • 序号
    • 多点线路
    • 半双工或单工链路
  • PPP 协议的组成

    • 一个将 IP 数据报封装到串行链路的方法。
    • 链路控制协议 LCP (Link Control Protocol)。
    • 网络控制协议 NCP (Network Control Protocol)。

PPP 协议的帧格式

  • 示意图:

image-20200826215513540
F 字段为帧的定界符
A 和 C 字段暂时没有意义
FCS 字段是使用 CRC 的检验序列
信息部分的长度不超过 1500

PPP 协议的工作状态

  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
  • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
  • 这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
    image-20200826215617288

使用广播信道的数据链路层

局域网的数据链路层

  • 局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

  • 主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。

  • 可以按照网络拓扑结构对局域网进行分类

    • 星型网
    • 环形网
    • 总线网
    • 树形网
  • 媒体共享技术

    • 静态划分信道

      如先前介绍过的频分服用,时分复用,波分复用和码分复用等。用户只要分配了信道就不会和其他用户发生冲突。但这种划分信道的方法代价较高,不适合局域网使用。

    • 动态媒体接入控制(多点接入)

      • 随机接入

        随机接入的特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。

      • 受控接入

        受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询 (polling) 或称为轮询。

  • 以太网的两个标准

    • DIX Ethernet V2

      世界上第一个局域网产品(以太网)的规约。

    • IEEE 802.3

      第一个 IEEE 的以太网标准。

  • 数据链路层的两个子层

    • 逻辑链路控制 LLC
    • 媒体介入控制 MAC
  • 适配器

    • 网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”。

      • 适配器的重要功能

        • 进行串行/并行转换。
        • 对数据进行缓存。
        • 在计算机的操作系统安装设备驱动程序。
        • 实现以太网协议。

CSMA/CD 协议

  • CSMA/CD 表示载波监听多点接入 / 碰撞检测。

  • 以太网发送的数据都使用曼彻斯特 (Manchester) 编码。

  • CSMA/CD 协议的要点

    • 多点接入

      说明这是总线型网络,许多主机以多点的方式连接到总线上。

    • 载波监听

      每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。

    • 碰撞检测

      在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

  • 具体内容

    • 记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    • 当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, …, (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。
      image-20200826215746746

使用集线器的星形拓扑

  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
    这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)

  • 集线器的特点

    • 集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是 CSMA/CD 协议。

      网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。

    • 一个集线器有许多接口。

    • 集线器工作在物理层

    • 集线器采用了专门的芯片,进行自适应串音回波抵消。

以太网的信道利用率

  • 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。

image-20200826215811991

  • 以太网中定义了参数 a,他是以太网单程端到端时延 τ 与帧的发送时间 T0 之比

    • a = \frac{\tau}{T_{0}}
  • 发送一帧占用线路的时间是 T0 + τ ,而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax 为:

    • S_{max} = \frac{T_{0}}{T_{0} + \tau} = \frac{1}{1 + a}

以太网的 MAC 层

  • MAC 层的硬件地址

    • MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
    • 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
  • MAC 帧

    • 单拨帧(一对一)

      即收到的帧的 MAC 地址与本站的硬件地址相同。

    • 广播帧(一堆全体)

      (一对全体),即发送给本局域网上所有站点的帧(全 1 地址)。

    • 多拨帧(一对多)

      即发送给本局域网上一部分站点的帧。

  • MAC 帧的格式

    • 类型 :标记上层使用的协议;

    数据 :长度在 46-1500 之间,如果太小则需要填充;
    FCS :帧检验序列,使用的是 CRC 检验方法;

image-20200826215832308

扩展的以太网

在物理层扩展以太网

  • 使用光纤扩展

    • 主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器。
    • 很容易使主机和几公里以外的集线器相连接。
  • 使用集线器扩展

    • 将多个以太网段连成更大的、多级星形结构的以太网。

    • 优点

      • 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。
      • 扩大了以太网覆盖的地理范围。
    • 缺点

      • 碰撞域增大了,但总的吞吐量并未提高。

        碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。
        碰撞域越大,发生碰撞的概率越高。

      • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

在数据链路层扩展以太网

  • 网桥

    • 它根据 MAC 帧的目的地址对收到的帧进行转发和过滤。
    • 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。
  • 交换式集线器(常被称为以太网交换机或第二层交换机)

    • 特点

      • 以太网交换机实质上就是一个多接口的网桥。

        • 通常都有十几个或更多的接口。
      • 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。

      • 以太网交换机具有并行性。

        • 能同时连通多对接口,使多对主机能同时通信。
      • 相互通信的主机都是独占传输媒体,无碰撞地传输数据。

      • 以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。

      • 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。

      • 以太网交换机使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。

      • 以太网交换机的性能远远超过普通的集线器,而且价格并不贵。

    • 优点

      • 用户独享带宽,增加了总容量。
      • 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
      • 以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
    • 交换方式

      • 存储转发方式

        • 把整个数据帧先缓存后再进行处理。
      • 直通方式

        • 接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
        • 缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
    • 自我学习能力

      • 以太网交换机运行自学习算法自动维护交换表。

        image-20200826215914894

      • 为解决回路问题,交换机使用了生成树协议

        • 不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
    • 从总线以太网到星型以太网

      • 早期,以太网采用无源的总线结构。
      • 现在,采用以太网交换机的星形结构成为以太网的首选拓扑。
      • 总线以太网使用 CSMA/CD 协议,以半双工方式工作。
      • 以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,以全双工方式工作。但帧结构未改变,仍然采用以太网的帧结构。

虚拟局域网

  • 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。

  • 例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。

    image-20200826215936970

  • IEEE 批准了 802.3ac 标准,该标准定义了以太网的帧格式的扩展,以支持虚拟局域网。
    虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记 (tag),用来指明该帧属于哪一个虚拟局域网。
    插入 VLAN 标记得出的帧称为 802.1Q 帧或带标记的以太网帧。

    image-20200826215943193

  • 优点

    • 改善了性能
    • 简化了管理
    • 降低了成本
    • 改善了安全性
  • 划分局域网的方法

    • 基于交换机端口
    • 基于计算机网卡的 MAC 地址
    • 基于协议类型
    • 基于 IP 子网地址
    • 基于高层应用或服务

高速以太网

100BASE-T 以太网(快速以太网)

  • 100BASE-T 在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,仍使用 IEEE 802.3 的 CSMA/CD 协议。

  • 1995 年 IEEE 已把 100BASE-T 的快速以太网定为正式标准,其代号为 IEEE 802.3u。

  • 特点

    • 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议。
    • MAC 帧格式仍然是 802.3 标准规定的。
    • 保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 米。
    • 帧间时间间隔从原来的 9.6 μs 改为现在的 0.96 μs 。
  • 物理层标准

    • 100BASE-TX

      • 媒体:铜缆
      • 使用 2 对 UTP 5 类线 或 屏蔽双绞线 STP。
      • 网段最大长度:100 米。
    • 100BASE-T4

      • 媒体:铜缆
      • 使用 4 对 UTP 3 类线 或 5 类线。
      • 网段最大长度:100 米。
    • 100BASE-FX

      • 媒体:光缆
      • 使用 2 对光纤。
      • 网段最大长度:2000 米。

吉比特以太网

  • 吉比特以太网的产品己在 1996 年夏季问市。IEEE 在 1997 年通过了吉比特以太网的标准 802.3z,并在 1998 年成为正式标准。

  • 特点

    • 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
    • 使用 IEEE 802.3 协议规定的帧格式。
    • 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议。
    • 与 10BASE-T 和 100BASE-T 技术向后兼容。
  • 物理层标准

    • 1000BASE-SX

      • 媒体:光缆
      • 多模光纤 (50 和 62.5 μm)
      • 网段最大长度:550m
    • 1000BASE-LX

      • 媒体:光缆
      • 单模光纤 (10 μm) 和多模光纤 (50 和 62.5 μm)
      • 网段最大长度:5000m
    • 1000BASE-CX

      • 媒体:铜缆
      • 一使用 2 对屏蔽双绞线电缆 STP
      • 网段最大长度:25m
    • 1000BASE-T

      • 媒体:铜缆
      • 使用 4 对 UTPS 类线
      • 网段最大长度:100m
  • 半双工方式工作的吉比特以太网

  • 吉比特以太网工作在半双工方式时,就必须进行碰撞检测。

  • 为保持 64 字节最小帧长度,以及 100 米的网段的最大长度,吉比特以太网增加了两个功能

    • 载波延伸 (carrier extension)

      • 使最短帧长仍为 64 字节(这样可以保持兼容性),同时将争用时间增大为 512 字节。
      • 凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面,使 MAC 帧的发送长度增大到 512 字节。接收端在收到以太网的 MAC 帧后,要将所填充的特殊字符删除后才向高层交付。
      • image-20200826220001716
    • 分组突发 (packet bursting)

      • 当很多短帧要发送时,第一个短帧要采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止。

        image-20200826220007837

  • 全双工方式工作的吉比特以太网

    • 不使用载波延伸和分组突发。

10 吉比特以太网 (10GE) 和更快的以太网

  • 10 吉比特以太网 (10GE) 特点

  • 与 10 Mbit/s、100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同。

    • 保留了 802.3 标准规定的以太网最小和最大帧长,便于升级。
    • 不再使用铜线而只使用光纤作为传输媒体。
    • 只工作在全双工方式,因此没有争用问题,也不使用 CSMA/CD 协议。
  • 端到端的以太网传输

  • 优点

    • 技术成熟
      • 互操作性很好
      • 在广域网中使用以太网时价格便宜
      • 采用统一的以太网帧格式,简化了操作和管理
  • 使用以太网进行宽带接入

  • 特点

    • 可以提供双向的宽带通信。
    • 可以根据用户对带宽的需求灵活地进行带宽升级。
    • 可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本。
    • 但是不支持用户身份鉴别。
  • PPPoE

    • PPPoE (PPP over Ethernet) 的意思是“在以太网上运行 PPP”,它把 PPP 协议与以太网协议结合起来 —— 将 PPP 帧再封装到以太网中来传输。
    • 现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了。
    • 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的。

网络层

网络层提供的两种协议

  • 虚电路服务
  • 数据报服务
    image-20200826220051103

网际协议 IP

与 IP 协议配套使用的还有三个协议

  • 地址解析协议 ARP (Address Resolution Protocol)

    逆地址解析协议 RARP  (Reverse Address Resolution Protocol) 和 ARP 协议配合使用,但现在已被淘汰。

  • 网际控制报文协议 ICMP (Internet Control Message Protocol)

  • 网际组管理协议 IGMP (Internet Group Management Protocol)

虚拟互联网络

  • 网络互相连接起来要使用一些中间设备

    • 物理层中继系统:转发器( repeater)。
    • 数据链路层中继系统:网桥或桥接器 (bridge)。
    • 网络层中继系统:路由器 (router)。
    • 网桥和路由器的混合物:桥路器 (brouter)。
    • 网络层以上的中继系统:网关 (gateway)。
  • 虚拟互连网络也就是逻辑互连网络——就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

  • 使用 IP 协议的虚拟互连网络可简称为 IP 网。

  • 好处:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。

分类的 IP 地址

  • IP 地址及其表示方法

    • 编址方法经过的三个历史阶段

      • 分类的 IP 地址

        这是最基本的编址方法,在 1981 年就通过了相应的标准协议。

        • 表示方法

          • IP地址 ::= \{<网络号>, <主机号>\}

          • image-20200826220224123

      • 子网的划分

        这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。

      • 构成超网

        这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

    • IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。

    • IP 地址现在由互联网名字和数字分配机构 ICANN (Internet Corporation for Assigned Names and Numbers)进行分配。

  • 常用的三种类别的 IP 地址

    • A 类

      • 最大可指派的网络数: 126 (2^7 – 2)
      • 第一个可指派的网络号:1
      • 最后一个可指派的网络号:126
      • 每个网络中最大主机数:16777214
    • B 类

      • 最大可指派的网络数: 16383(2^14 – 1)
      • 第一个可指派的网络号:128.1
      • 最后一个可指派的网络号:191.255
      • 每个网络中最大主机数:65534
    • C 类

      • 最大可指派的网络数: 2097151(2^21 – 1)
      • 第一个可指派的网络号:192.0.1
      • 最后一个可指派的网络号:223.255.255
      • 每个网络中最大主机数:254

IP 地址与硬件地址

  • 硬件地址(或物理地址)是数据链路层和物理层使用的地址。
  • IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(称 IP 地址是逻辑地址是因为 IP 地址是用软件实现的)。
    image-20200826220239981

地址解析协议 ARP

  • ARP 实现由 IP 地址得到 MAC 地址

    • 每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。

image-20200826220250273

  • ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
    如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。

IP 数据报的格式

image-20200826220307238

  • 首部

  • 版本——占 4 位,指 IP 协议的版本,有 4 (IPv4) 和 6 (IPv6) 两个值。

  • 首部长度——占 4 位,可表示的最大数值
    是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。

  • 区分服务——占 8 位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。

  • 总长度——占 16 位,指首部和数据之和的长度,
    单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。

  • 标识(identification) ——占 16 位,它是一个计数器,用来产生 IP 数据报的标识。

  • 标志(flag) ——占 3 位,目前只有前两位有意义。

    • 标志字段的最低位是 MF (More Fragment)。MF=1 表示后面“还有分片“。MF=0 表示最后一个分片。
    • 标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF=0 时才允许分片。
  • 片偏移——占 13 位,指出:较长的分组在分片后
    某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。

    image-20200826220318400

  • 生存时间——占 8 位,记为 TTL (Time To Live),它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。

  • 协议——指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。

  • 首部检验和——占 16 位,只检验数据报的首部,
    不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。

  • 源地址——占 32 位

  • 目的地址——占 32 位。

  • 数据部分

IP 层转发分组的流程

  • 分组转发算法

    • 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
    • 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 (3)。
    • 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
    • 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
    • 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
    • 报告转发分组出错。

    image-20200826220342472

划分子网和构造超网

划分子网

  • 从两级 IP 地址到三级 IP 地址

  • 在 ARPANET 的早期,IP 地址的设计不够合理

    • IP 地址空间的利用率有时很低。
    • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
    • 两级的 IP 地址不够灵活。
  • 解决方法

    • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
      这种做法叫做划分子网 (subnetting) 。
      划分子网已成为互联网的正式标准协议。

    • 基本思路

      • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。

      • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。

        IP地址 ::= \{<网络号>, <子网号>, <主机号>\}

      • 凡是从其他网络发送给本单位某台主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号找到连接在本单位网络上的路由器。
        但此路由器在收到 IP 数据报后,再按目的网络号和子网号找到目的子网,把 IP 数据报交付目的主机。

  • 子网掩码

  • 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。

  • 组成

    image-20200826220657241

    • 子网掩码长度 = 32 位
    • 子网掩码左边部分的一连串 1,对应于网络号和子网号
    • 子网掩码右边部分的一连串 0,对应于主机号
  • 默认子网掩码

    • image-20200826220704803
    • A 类地址的默认子网掩码是 255.0.0.0,或 0xFF000000。
    • B 类地址的默认子网掩码是 255.255.0.0,或 0xFFFF0000。
    • C 类地址的默认子网掩码是 255.255.255.0,或 0xFFFFFF00。
  • B 类地址的子网划分选择(使用固定长度子网)

    子网号的位数 子网掩码 子网数 每个子网的主机数
    2 255.255.192.0 2 16382
    3 255.255.224.0 6 8190
    4 255.255.240.0 14 4094
    5 255.255.248.0 30 2046
    6 255.255.252.0 62 1022
    7 255.255.254.0 126 510
    8 255.255.255.0 254 254
    9 255.255.255.128 510 126
    10 255.255.255.192 1022 62
    11 255.255.255.224 2046 30
    12 255.255.255.240 4094 14
    13 255.255.255.248 8190 6
    14 255.255.255.252 16382 2
  • 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。

使用子网时分组的转发

  • 从收到的分组的首部提取目的 IP 地址 D。
  • 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
  • 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)。
  • 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。
  • 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)。
  • 报告转发分组出错。

无分类编制 CIDR (构造超网)

  • 网络前缀

  • CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间

  • CIDR 使用各种长度的“网络前缀” (network-prefix) 来代替分类地址中的网络号和子网号。
    IP 地址从三级编址(使用子网掩码)又回到了两级编址。

  • IP地址 \space ::= \space \{<网络前缀>, <主机号>\}

  • CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。

  • CIDR 把网络前缀都相同的连续的 IP 地址组成一个“CIDR 地址块”。

    • 为了更方便地进行路由选择,CIDR 使用 32 位的地址掩码(address mask)o
      • 斜线记法中,斜线后面的数字就是地址掩码中 1 的个数。
  • 最长前缀匹配

    • 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
    • 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
    • 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
    • 最长前缀匹配又称为最长匹配或最佳匹配。
  • 使用二叉线索查找路由表

image-20200826221535288

  • 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索 (binary trie)。
  • IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
  • 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

网际控制报文协议 ICMP

  • ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议。

  • ICMP 报文的种类

  • ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。 最后面是数据字段,其长度取决于 ICMP 的类型。

  • ICMP 差错报告报文

    • 终点不可达
    • 源点抑制(Source quench)
    • 时间超过
    • 参数问题
    • 改变路由(重定向)(Redirect)
  • ICMP 询问报文

    • 回送请求和回答报文
    • 时间戳请求和回答报文

ICMP 的应用举例

  • PING

    • PING 用来测试两个主机之间的连通性。
    • PING 使用了 ICMP 回送请求与回送回答报文。
    • PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP。
  • traceroute

    • 用来跟踪一个分组从源点到终点的路径。
    • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

互联网的路由选择协议

有关路由选择协议的几个基本概念

  • 理想的路由算法

    • 应具有的特点

      • 算法必须是正确的和完整地。
      • 算法在计算上应简单
      • 算法应能适应通信量和网络拓扑的变化
      • 算法应具有稳定性
      • 算法应是公平的
      • 算法应是最佳的
    • 最佳路由

      • 不存在一种绝对的最佳路由算法。
      • 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
    • 从路由算法的自适应性考虑

      • 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
      • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
  • 分层次的路由选择协议

    • 自治系统 AS

      • 自治系统 AS 是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。
      • 一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略 [RFC 4271 ]。

互联网有两大类路由选择协议

  • 内部网关协议 IGP (Interior Gateway Protocol)

  • 在一个自治系统内部使用的路由选择协议。

  • 内部网关协议 RIP

    • 工作原理

      • 基本概念

        • RIP 是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大优点就是简单。
        • 距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。
      • 特点

        • 仅和相邻路由器交换信息。
        • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
        • 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
      • 路由表的建立

        • 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为 1)。它的路由表是空的。
        • 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
        • 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
        • RIP 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
    • 距离向量算法

      • 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
      • 对修改后的 RIP 报文中的每一个项目,进行以下步骤:
      • 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
      • 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;
        否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);
        否则什么也不做。
      • 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。
    • RIP 协议的报文格式

      image-20200826221553191

    • 特点

      • 好消息传播得快,坏消息传播得慢。
      • 当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。
  • 内部网关协议 OSPF

    • OSPF 协议的基本特点

      • 简介

        • 开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的。
        • OSPF 的原理很简单,但实现起来却较复杂。
      • 要点

        • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。

        • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

          • “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
          • OSPF 将这个“度量”用来表示费用、距离、时延、带宽,等等。
        • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

      • 链路状态数据库 (link-state database)

        • 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
        • 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
        • OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。

        OSPF 的更新过程收敛得快是其重要优点。

      • OSPF 的区域 (area)

        • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域 (area)。

          • 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
          • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
        • 划分区域

          • 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
          • 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
      • OSPF 不用 UDP 而是直接用 IP 数据报传送。

        image-20200826221602615

    • OSPF 的五种分组类型

      • 类型 1,问候 (Hello) 分组。
      • 类型 2,数据库描述 (Database Description) 分组。
      • 类型 3,链路状态请求 (Link State Request) 分组。
      • 类型 4,链路状态更新 (Link State Update) 分组,用洪泛法对全网更新链路状态。
      • 类型 5,链路状态确认 (Link State Acknowledgment)分组。
  • 外部网关协议 EGP (External Gateway Protocol)

  • 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。

  • 外部网关协议 BGP

    • BGP 是不同自治系统的路由器之间交换路由信息的协议。

    • AS 之间的路由选择很困难,主要是由于:

      • 互联网规模很大
      • 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量
      • AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过
    • BGP 只能寻找一条比较好的路由,而不是最佳路由。

      每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。

      image-20200826221649902

    • BGP-4 共使用四种报文

      • 打开 (OPEN) 报文,用来与相邻的另一个 BGP 发言人建立关系。

      • 更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。

      • 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。

      • 通知 (NOTIFICATION) 报文,用来发送检测到的差错。

      • BGP 报文具有通用的首部

        image-20200826221751347

路由器的构成

  • 基本

    • 路由器是一种典型的网络层设备。

    • 路由器是互联网中的关键设备。

    • 主要作用

      • 连通不同的网络。
      • 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
  • 路由器的结构

  • 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。

  • 整个的路由器结构可划分为两大部分

    • 路由选择部分

      • 也叫做控制部分,其核心构件是路由选择处理机。

        • 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
    • 分组转发部分

      image-20200826221842653

      • 交换结构 (switching fabric):又称为交换组织,其作用是根据转发表 (forwarding table) 对分组进行处理。

        • 交换方法

          • 通过存储器
          • 通过总线
          • 通过纵横交换结构
      • 一组输入端口

      • 一组输出端口

IPv6

简介

  • IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组,而不是 IPv4 的数据报。

  • 引进的基本变化

    • 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
    • 扩展的地址层次结构。
    • 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
    • 改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。
    • 允许协议继续扩充。
    • 支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。
    • 支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。
    • IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。

IPv6 数据报

  • 基本首部 (base header)

  • 更改

    • 取消了首部长度字段,因为首部长度是固定的 40 字节。
    • 取消了服务类型字段。
    • 取消了总长度字段,改用有效载荷长度字段。
    • 把 TTL 字段改称为跳数限制字段。
    • 取消了协议字段,改用下一个首部字段。
    • 取消了检验和字段。
    • 取消了选项字段,而用扩展首部来实现选项功能。
  • 各字段作用

    image-20200826221858196

    • 版本(version)—— 4 位。它指明了协议的版本,对 IPv6 该字段总是 6。
    • 通信量类(traffic class)—— 8 位。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
    • 流标号(flow label)—— 20 位。 “流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
    • 有效载荷长度(payload length)—— 16 位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
    • 下一个首部(next header)—— 8 位。它相当于 IPv4 的协议字段或可选字段。
    • 跳数限制(hop limit)—— 8 位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。当跳数限制的值为零时,就要将此数据报丢弃。
    • 源地址—— 128 位。是数据报的发送站的 IP 地址。
    • 目的地址—— 128 位。是数据报的接收站的 IP 地址。
  • 有效载荷 (payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extension header),再后面是数据部分。

    • 扩展首部

      • IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。

      • 六种扩展首部

        • 逐跳选项
        • 路由选择
        • 分片
        • 鉴别
        • 封装安全有效载荷
        • 目的站选项

IPv6 的地址

  • IPv6 数据报目的地址的三种基本类型

    • 单播 (unicast):传统的点对点通信。
    • 多播 (multicast):一点对多点的通信。
    • 任播 (anycast):这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
  • 结点

    • 实现 IPv6 的主机和路由器
    • 一个结点就可能有多个与链路相连的接口。
    • 一个接口可以有多个单播地址。
    • 其中的任何一个地址都可以当作到达该结点的目的地址。即一个结点接口的单播地址可用来唯一地标志该结点。
  • IPv6 使用冒号十六进制记法 (colon hexadecimal notation,简写 colon hex)

    • 如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

    • 冒号十六进制记法可以允许零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代。
      在任一地址中只能使用一次零压缩。 - 冒号十六进制记法可结合使用点分十进制记法的后缀,这种结合在 IPv4 向 IPv6 的转换阶段特别有用。

      • 0:0:0:0:0:0:128.10.2.1 => ::128.10.2.1

      • CIDR 的斜线表示法仍然可用。

        • 12AB:0000:0000:CD30:0000:0000:0000:0000/60
          => 12AB::CD30:0:0:0:0/60 (零压缩)
          或 12AB:0:0:CD30::/60 (零压缩)
  • IPv6 地址的分类

image-20200826221908115

  • 未指明地址

    • 这是 16 字节的全 0 地址,可缩写为两个冒号“::”。
    • 这个地址只能为还没有配置到一个标准的 IP 地址的主机当作源地址使用。
    • 这类地址仅此一个。
  • 环回地址

    • 即 0:0:0:0:0:0:0:1(记为 ::1)。
    • 作用和 IPv4 的环回地址一样。
    • 这类地址也是仅此一个。
  • 多播地址

    • 功能和 IPv4 的一样。
    • 这类地址占 IPv6 地址总数的 1/256。
  • 本地链路单播地址 (Link-Local Unicast Address)

    • 有些单位的网络使用 TCP/IP 协议,但并没有连接到互联网上。连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和互联网上的其他主机通信。
    • 这类地址占 IPv6 地址总数的 1/1024。
  • 全球单播地址

    • IPv6 的这一类单播地址是使用得最多的一类。
    • 曾提出过多种方案来进一步划分这 128 位的单播地址。
    • 根据 2006 年发布的草案标准 RFC 4291 的建议, IPv6 单播地址的划分方法非常灵活。

从 IPv4 向 IPv6 过渡

  • 向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容:IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

  • 向 IPv6 过渡的策略

    • 使用双协议栈

      • 双协议栈 (dual stack) 是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
      • 双协议栈的主机(或路由器)记为 IPv6/IPv4,表明它同时具有两种 IP 地址:一个 IPv6 地址和一个 IPv4 地址。
      • 双协议栈主机在和 IPv6 主机通信时是采用 IPv6 地址,而和 IPv4 主机通信时就采用 IPv4 地址。
      • 根据 DNS 返回的地址类型可以确定使用 IPv4 地址还是 IPv6 地址。
    • 使用隧道技术

      • 在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报,整个的 IPv6 数据报变成了 IPv4 数据报的数据部分。
      • 当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。

ICMPv6

  • IPv6 也不保证数据报的可靠交付,因为互联网中的路由器可能会丢弃数据报。因此 IPv6 也需要使用 ICMP 来反馈一些差错信息。新的版本称为 ICMPv6。
  • 地址解析协议 ARP 和网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中。

image-20200826221919971

  • ICMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。
  • ICMPv6 还增加了几个定义报文的功能及含义的其他协议。

image-20200826221923648

IP 多播

IP 多播的基本概念

  • 目的

    • 更好地支持一对多通信
  • 优点

    • 与单播相比,在一对多的通信中,多播可大大节约网络资源。
  • 在互联网范围的多播要靠路由器来实现,这些路由器必须增加一些能够识别多播数据报的软件。
    能够运行多播协议的路由器称为多播路由器(multicast router)。
    多播路由器当然也可以转发普通的单播 IP 数据报。

  • 在互联网上进行多播就叫做 IP 多播。

  • IP 多播所传送的分组需要使用多播 IP 地址。

    • 在多播数据报的目的地址写入的是多播组的标识符。

      • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。
      • 每一个 D 类地址标志一个多播组。
    • 多播地址只能用于目的地址,不能用于源地址。

在局域网上进行硬件多播

image-20200826221939693

  • 互联网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
  • 因此 TCP/IP 协议使用的以太网地址块的范围是
    从 00-00-5E-00-00-00
    到 00-00-5E-FF-FF-FF
  • 不难看出,在每一个地址中,只有 23 位可用作多播。
  • D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

网际组管理协议 IGMP 和多播路由选择协议

  • 网际组管理协议 IGMP

    • 使多播路由器知道多播组成员信息

    • 工作阶段

      • 第一阶段:加入多播组。
      • 第二阶段:探询组成员变化情况。
    • 具体措施

      • 在主机和多播路由器之间的所有通信都是使用 IP 多播。
      • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。
      • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
      • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10 秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
      • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。
  • 多播路由选择协议

    • 连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。

    • 转发多播数据报时使用的三种方法

      • 洪泛与剪除

        这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
        一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。
        为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting) 的策略。

      • 隧道技术 (tunneling)

        隧道技术适用于多播组的位置在地理上很分散的情况。

      • 基于核心的发现技术

        这种方法对于多播组的大小在较大范围内变化时都适合。
        这种方法是对每一个多播组 G 指定一个核心(core) 路由器,给出它的 IP 单播地址。
        核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。

    • 建议使用的多播路由协议

      • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)
      • 基于核心的转发树 CBT (Core Based Tree)
      • 开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)
      • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode)
      • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

虚拟专用网 VPN 和网络地址转换 NAT

虚拟专用网 VPN

  • 前提

    • 产生原因

      • 由于 IP 地址的紧缺,一个机构能够申请到的 IP 地址数往往远小于本机构所拥有的主机数。
      • 考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。
    • 本机地址与全球地址

      • 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。

      • 全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请

      • 存在问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。

        • 解决方法:RFC 1918 指明的专用 IP 地址

          • 10.0.0.0 ~ 10.255.255.255
          • 172.16.0.0 ~ 172.31.255.255
          • 192.168.0.0 ~ 192.168.255.255
    • 专用网

      • 采用专用 IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。
      • 因为这些专用地址仅在本机构内部使用。专用 IP 地址也叫做可重用地址 (reusable address)。
  • 概念

    • 利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。
  • 构建

image-20200826222008600

  • 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。

  • 一个机构要构建自己的 VPN 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

  • 内联网 intranet 和外联网 extranet
    它们都是基于 TCP/IP 协议的。

    • 内联网

      由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN。

    • 外联网

      一个机构和某些外部机构共同建立的虚拟专用网 VPN

  • 远程接入 VPN

远程接入 VPN (remote access VPN) 可以满足外部流动员工访问公司网络的需求。

网络地址转换 NAT

  • 专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。
  • 在以前,NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT。

image-20200826222028162

多协议标记交换 MPLS

特点

  • 支持面向连接的服务质量。
  • 支持流量工程,平衡网络负载;
  • 有效地支持虚拟专用网 VPN。

MPLS 的工作原理

  • 基本工作过程

    • MPLS 在入口结点给每一个 IP 数据报打上固定长度的“标记”,然后根据标记在第二层(链路层)用硬件进行转发(在标记交换路由器中进行标记对换),因而转发速率大大加快。
    • MPLS 域中的各 LSR 使用专门的标记分配协议 LDP 交换报文,并找出标记交换路径 LSP。各 LSR 根据这些路径构造出分组转发表。
    • 分组进入到 MPLS 域时, MPLS 入口结点把分组打上标记,并按照转发表将分组转发给下一个 LSR。给 IP 数据报打标记的过程叫做分类 (classification)。
    • 一个标记仅仅在两个标记交换路由器 LSR 之间才有意义。分组每经过一个 LSR,LSR 就要做两件事:一是转发,二是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换 (label swapping)。
    • 当分组离开 MPLS 域时,MPLS 出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。
  • 转发等价类 FEC

    • 路由器按照同样方式对待的分组的集合。

MPLS 首部的位置与格式

  • 位置

  • 从层次的角度看,MPLS 首部就处在第二层和第三层之间。

    image-20200826222039190

  • 格式

image-20200826222045860

  • 标记值——占 20 位,可以同时容纳高达 220 个流(即 1048576 个流)。实际上几乎没有哪个 MPLS 实例会使用很大数目的流,因为通常需要管理员人工管理和设置每条交换路径。
  • 试验——占 3 位,目前保留用作试验。
  • 栈 S——占 1 位,在有“标记栈”时使用。
  • 生存时间 TTL——占 8 位,用来防止 MPLS 分组在 MPLS 域中兜圈子。

传输层

运输层协议概述

进程之间的通信

  • 运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
  • 两个主机进行通信实际上就是两个主机中的应用进程互相通信。
  • 应用进程之间的通信又称为端到端的通信。
  • 运输层协议和网络层协议的主要区别

image-20200826222114568

运输层的两个主要协议

  • 用户数据报协议 UDP (User Datagram Protocol)

    • UDP 传送的数据单位协议是 UDP 报文或用户数据报。
  • 传输控制协议 TCP (Transmission Control Protocol)

    • TCP 传送的数据单位协议是 TCP 报文段(segment)

运输层的端口

  • 服务器端使用的端口号

    • 熟知端口号或系统端口号

      数值为 0~1023。

    • 登记端口号

      数值为 1024~49151。

  • 客户端使用的端口号

    数值为 49152~65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。

用户数据报协议 UDP

UDP 概述

  • UDP 只在 IP 的数据报服务之上增加了很少一点的功能

    • 复用和分用的功能
    • 差错检测的功能
  • 主要特点

    • UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。
    • UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
    • UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
    • UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
    • UDP 支持一对一、一对多、多对一和多对多的交互通信。
    • UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。

UDP 的首部格式

  • 首部字段有 8 个字节,由 4 个字段组成,每个字段都是 2 个字节。

  • 字段

image-20200826222144093

  • 源端口——源端口号。在需要对方回信时选用。不需要时可用全 0。
  • 目的端口——目的端口号。这在终点交付报文时必须使用。
  • 长度—— UDP 用户数据报的长度,其最小值是 8(仅有首部)。
  • 检验和——检测 UDP 用户数据报在传输中是否有错。有错就丢弃。

传输控制协议 TCP 概述

TCP 最主要的特点

  • TCP 是面向连接的运输层协议。

  • 每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。

  • TCP 提供可靠交付的服务。

  • TCP 提供全双工通信。

  • 面向字节流

    • TCP 中的“流” (stream) 指的是流入或流出进程的字节序列。
    • “面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

TCP 的连接

  • TCP 把连接作为最基本的抽象。

  • TCP 连接的端点叫做套接字 (socket) 或插口。

    • 套接字 socket = (IP 地址: 端口号)
  • 每一条 TCP 连接有两个端点。

    TCP \space ::= \{socket_{1}, \space socket_{2}\} ::= \{(IP_{1}:port_{1}), \space (IP_{1}:port_{1})\}

可靠传输的工作原理

理想的传输条件

  • 传输信道不产生差错。
  • 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

停止等待协议

  • 无差错情况

  • A 发送分组 M1,发完就暂停发送,等待 B 的确认 (ACK)。B 收到了 M1 向 A 发送 ACK。A 在收到了对 M1 的确认后,就再发送下一个分组 M2。

    image-20200826222211480

  • 出现差错

  • 出错情况

    image-20200826222223751

    • B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)。
    • M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。
  • A 都必须重发分组,直到 B 正确接收为止,这样才能实现可靠通信。

  • 确认丢失和确认迟到

    image-20200826222234819

  • 丢弃重复的的分组

  • 确认丢失时要重发确认

  • 信道利用率

    image-20200826222250782

  • 信道利用率太低

    U = \frac{T_{D}}{T_{D} + RTT + T_{A}}

连续 ARQ 协议

image-20200826222309845

  • 基本思想

  • 发送方一次可以发出多个分组。

  • 使用滑动窗口协议控制发送方和接收方所能发送和接收的分组的数量和编号。

  • 每收到一个确认,发送方就把发送窗口向前滑动。

  • 接收方一般采用累积确认的方式。

  • 累积确认:对按序到达的最后一个分组发送确认。

    • 优点:容易实现,即使确认丢失也不必重传。
    • 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
  • 采用回退 N(Go-Back-N)方法进行重传。

TCP 报文端的首部格式

image-20200826222427688

  • 源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
  • 序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
  • 确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
  • 数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
  • 保留字段——占 6 位,保留为今后使用,但目前应置为 0。
  • 紧急 URG —— 当 URG  1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
  • 确认 ACK —— 只有当 ACK =1 时确认号字段才有效。当 ACK =0 时,确认号无效。
  • 推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
  • 复位 RST (ReSeT) —— 当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  • 同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
  • 终止 FIN (FINish) —— 用来释放一个连接。FIN=1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
  • 窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。
  • 检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
  • 紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
  • 选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
  • 填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。

TCP 可靠传输的实现

以字节为单位的滑动窗口

  • TCP 使用流水线传输和滑动窗口协议实现高效、可靠的传输。

  • 发送方 A 和接收方 B 分别维持一个发送窗口和一个接收窗口。

    • 发送窗口表示——在没有收到确认的情况下,可以连续把窗口内的数据全部发送出去。
    • 接收窗口表示——只允许接收落入窗口内的数据。
  • 工作原理

    • 窗口是缓存的一部分,用来暂时存放字节流。发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其它信息设置自己的窗口大小。
      发送窗口内的字节都允许被发送,接收窗口内的字节都允许被接收。如果发送窗口左部的字节已经发送并且收到了确认,那么就将发送窗口向右滑动一定距离,直到左部第一个字节不是已发送并且已确认的状态;接收窗口的滑动类似,接收窗口左部字节已经发送确认并交付主机,就向右滑动接收窗口。
      接收窗口只会对窗口内最后一个按序到达的字节进行确认,例如接收窗口已经收到的字节为 {31, 34, 35},其中 {31} 按序到达,而 {34, 35} 就不是,因此只对字节 31 进行确认。发送方得到一个字节的确认之后,就知道这个字节之前的所有字节都已经被接收。

      image-20200826222439089

      image-20200826222442697

      image-20200826222447304
      image-20200826222451969

  • 超时重传时间的选择

  • 重传时间的选择却是 TCP 最复杂的问题之一。

  • TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。
    一个报文段从发送再到接收到确认所经过的时间称为往返时间 RTT,加权平均往返时间 RTTs 计算如下:

    新的 RTT_{S} = (1 + \alpha) \times (旧的 RTT_{S}) + \alpha \times (新的 RTT 样本)

  • 其中,0 ≤ a < 1,RTTs 随着 a 的增加更容易受到 RTT 的影响。
    超时时间 RTO 应该略大于 RTTs,TCP 使用的超时时间计算如下:(其中 RTTd 为偏差的加权平均值)

    RTO = RTT_{S} + 4 \times RTT_{D}

  • Karn 算法

    • 在计算平均往返时间 RTT 时,只要报文段重传了,就不采用其往返时间样本。

选择确认 SACK

  • 只传送缺少的数据而不重传已经正确到达接收方的数据

TCP 的流量控制

利用滑动窗口实现流量控制

  • 流量控制 (flow control) 是为了控制发送方发送速率,保证接收方来得及接收。
  • 接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。

TCP 的传输效率

  • 可以用不同的机制来控制 TCP 报文段的发送时机

    • 第一种机制是 TCP 维持一个变量,它等于最大报文段长度 MSS。只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去。
    • 第二种机制是由发送方的应用进程指明要求发送报文段,即 TCP 支持的推送 (push) 操作。
    • 第三种机制是发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去。
  • 糊涂窗口综合症

每次仅发送一个字节或很少几个字节的数据时,有效数据传输效率变得很低的现象。

  • Nagel 算法

    image-20200826222541015

TCP 的拥塞控制

拥塞控制的一般原理

  • 前提:网络能够承受现有的网络负荷。

  • 拥塞控制所起的作用

    image-20200826222550887

  • 解决拥塞的两条思路

    • 增加网络可用资源。
    • 减少用户对资源的需求。

TCP 的拥塞控制方法

  • 慢开始与拥塞避免

  • 发送的最初执行慢开始,令 cwnd = 1,发送方只能发送 1 个报文段;当收到确认后,将 cwnd 加倍,因此之后发送方能够发送的报文段数量为:2、4、8 …
    注意到慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1。
    如果出现了超时,则令 ssthresh = cwnd / 2,然后重新执行慢开始。

    image-20200826222558388

  • 快重传与快恢复

  • 在接收方,要求每次接收到报文段都应该对最后一个已收到的有序报文段进行确认。例如已经接收到 M1 和 M2,此时收到 M4,应当发送对 M2 的确认。
    在发送方,如果收到三个重复确认,那么可以知道下一个报文段丢失,此时执行快重传,立即重传下一个报文段。例如收到三个 M2,则 M3 丢失,立即重传 M3。
    在这种情况下,只是丢失个别报文段,而不是网络拥塞。因此执行快恢复,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免。
    慢开始和快恢复的快慢指的是 cwnd 的设定值,而不是 cwnd 的增长速率。慢开始 cwnd 设定为 1,而快恢复 cwnd 设定为 ssthresh。

    image-20200826223036075

主动队列管理控制方法 AMQ

  • 网络层的策略对 TCP 拥塞控制影响最大的就是路由器的分组丢弃策略。

    • 路由器的队列通常都是按照“先进先出”FIFO (First In First Out) 的规则处理到来的分组。
    • 当队列已满时,以后再到达的所有分组(如果能够继续排队,这些分组都将排在队列的尾部)将都被丢弃。这就叫做尾部丢弃策略 (tail-drop policy)。
  • 所谓“主动”就是不要等到路由器的队列长度已经达到最大值时才不得不丢弃后面到达的分组,而是在队列长度达到某个值得警惕的数值时(即当网络拥塞有了某些拥塞征兆时),就主动丢弃到达的分组。

  • 随机早期检测 RED

    • 使路由器的队列维持两个参数:队列长度最小门限 THmin 和最大门限 Thmax 。

    • RED 对每一个到达的分组都先计算平均队列长度 LAV 。

      • 若平均队列长度小于最小门限 THmin,则将新到达的分组放入队列进行排队。
      • 若平均队列长度超过最大门限 Thmax ,则将新到达的分组丢弃。
      • 若平均队列长度在最小门限 THmin 和最大门限 Thmax 之间,则按照某一概率 p 将新到达的分组丢弃。
  • AQM 实际上就是对路由器中的分组排队进行智能管理,而不是简单地把队列的尾部丢弃。

TCP 的运输连接管理

前提

  • TCP 连接有三个阶段

    • 连接建立
    • 数据传送
    • 连接释放
  • TCP 连接建立过程中要解决的三个问题

    • 要使每一方能够确知对方的存在。
    • 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。
    • 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
  • TCP 连接的建立采用客户服务器方式。

    • 主动发起连接建立的应用进程叫做客户 (client)。
    • 被动等待连接建立的应用进程叫做服务器 (server)。
  • TCP 连接的管理就是使 TCP 连接的建立和释放都能正常地进行。

TCP 的连接建立

  • 假设 A 为客户端,B 为服务器端。
    首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
    A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。
    B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
    A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
    B 收到 A 的确认后,连接建立。

    image-20200826223138242

TCP 的连接释放

  • 以下描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK,因为 ACK 在连接建立之后都为 1。
    A 发送连接释放报文,FIN=1。
    B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。
    当 B 不再需要连接时,发送连接释放报文,FIN=1。
    A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。
    B 收到 A 的确认后释放连接。

    image-20200826223142244

  • 时间等待计时器 (TIME_WATE timer)

    • 保证 A 发送的最后一个 ACK 报文段能够到达 B。
    • 防止 “已失效的连接请求报文段”出现在本连接中。
  • 保活计时器 (keepalive timer)

    • 用来防止在 TCP 连接出现长时期的空闲。
    • 通常设置为 2 小时 。若服务器过了 2 小时还没有收到客户的信息,它就发送探测报文段。若发送了 10 个探测报文段(每一个相隔 75 秒)还没有响应,就假定客户出了故障,因而就终止该连接。

TCP 的有限状态机

image-20200826223154471

粗实线箭头表示对客户进程的正常变迁。
粗虚线箭头表示对服务器进程的正常变迁。
细线箭头表示异常变迁。

应用层

域名系统 DNS

域名系统概述

  • DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。

互联网的域名结构

  • 域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。

    image-20200826223226622

域名服务器

image-20200826223231210

  • 根域名服务器

最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。

  • 顶级域名服务器(即 TLD 服务器)

负责管理在该顶级域名服务器注册的所有二级域名。

  • 权限域名服务器

负责一个区的域名服务器。

  • 本地域名服务器

当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。

文件传输协议

FTP 概述

  • 文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。
  • FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
  • FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

FTP 的基本工作原理

  • 问题

    • 计算机存储数据的格式不同。
    • 文件的目录结构和文件命名的规定不同。
    • 对于相同的文件存取功能,操作系统使用的命令不同。
    • 访问控制方法不同。
  • 特点

    • 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
    • FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
  • FTP 使用客户服务器方式。
    一个 FTP 服务器进程可同时为多个客户进程提供服务。
    FTP 的服务器进程由两大部分组成:
    一个主进程,负责接受新的请求;
    另外有若干个从属进程,负责处理单个请求。

    image-20200826223256309

  • 主进程工作步骤

    • 打开熟知端口(端口号为 21),使客户进程能够连接上。
    • 等待客户进程发出连接请求。
    • 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
    • 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
  • 两个连接

    • 控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
    • 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。

简单文件传送协议 TFTP

  • TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。

  • TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。

  • TFTP 只支持文件传输而不支持交互。

  • TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

  • TFTP 的主要特点

    • 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
    • 数据 PDU 也称为文件块 (block),每个块按序编号,从 1 开始。
    • 支持 ASCII 码或二进制传送。
    • 可对文件进行读或写。
    • 使用很简单的首部。

远程终端协议 TELNET

  • TELNET 是一个简单的远程终端协议,也是因特网的正式标准。
  • 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
  • TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。

万维网 WWW

万维网概述

  • 概念

    • 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
    • 万维网是一个大规模的、联机式的信息储藏所。
    • 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
    • 这种访问方式称为“链接”。
    • 万维网是分布式超媒体 (hypermedia) 系统,它是超文本 (hypertext) 系统的扩充。
  • 解决的问题

    • 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
    • 使用超文本传送协议 HTTP (HyperText Transfer Protocol) 来实现万维网上各种超链的链接
    • 使用超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
    • 用户可使用各种的搜索工具(即搜索引擎)在万维网上方便地查找信息。

统一资源定位符 URL

  • 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
  • URL 的一般形式是:<协议>://<主机>:<端口>/<路径>

超文本传输协议 HTTP

  • 特点

    • HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
    • HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
    • HTTP 是面向事务的客户服务器协议。
    • HTTP 1.0 协议是无状态的 (stateless)。
  • HTTP 的操作过程

    • HTTP/1.1 协议的持续连接

      • 非流水线方式——客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
      • 流水线方式——客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
  • 代理服务器

    • 又称为万维网高速缓存。
      • 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
      • 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源。
  • HTTP 的报文结构

由于 HTTP 是面向正文的 (text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

image-20200826223334575

  • 请求报文——从客户向服务器发送请求报文。

  • 响应报文——从服务器到客户的回答。

  • 在服务器上存放用户的信息

    • 万维网站点可以使用 Cookie 来跟踪用户。
    • Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。

万维网的文档

  • 静态文档

    • 超文本标记语言 HTML
    • 可扩展标记语言 XML
    • 可扩展超文本标记语言 XHTML
    • 层叠样式表 CSS
  • 动态文档

    • 指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。

    • 万维网服务器功能的扩充

      • 应增加另一个应用程序,用来处理浏览器发来的数据,并创建动态文档。
      • 应增加一个机制,用来使万维网服务器把浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回 HTML 文档。
  • 活动万维网文档

    • 活动文档 (active document) 技术把所有的工作都转移给浏览器端。

万维网的信息检索系统

  • 全文检索搜索

    • 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
  • 分类目录搜索

    • 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
    • 分类目录搜索也叫做分类网站搜索。
  • 垂直搜索引擎

    • 垂直搜索引擎 (Vertical Search Engine) 针对某一特定领域、特定人群或某一特定需求提供搜索服务。
    • 垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。

博客和微博

  • 博客是万维网日志 (weblog) 的简称
  • 微博就是微型博客 (microblog),又称为微博客。

社交网站

  • 社交网站 SNS (Social Networking Site) 是近年来发展非常迅速的一种网站,其作用是为一群拥有相同兴趣与活动的人创建在线社区。

电子邮件

电子邮件简述

  • 概述

    • 电子邮件 (e-mail):指使用电子设备交换的邮件及其方法。
    • 电子邮件是互联网上使用得最多的和最受用户欢迎的一种应用。
    • 优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)。
  • 电子邮件的重要的标准

    • 简单邮件发送协议 SMTP
    • 互联网文本报文格式
    • 通用互联网邮件扩充 MIME
  • 主要组成构件

    image-20200826223528470

  • 用户代理

    • 用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
    • 用户代理的功能:撰写、显示、处理和通信。
  • 邮件服务器

    • 邮件服务器的功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
    • 邮件服务器按照客户 - 服务器方式工作。
  • 邮件发送协议

    • 邮件发送和读取使用不同的协议协议。
    • 简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。
    • 邮局协议 POP3:用于用户代理从邮件服务器读取邮件。

简单邮件传送协议 SMTP

  • 特点

    • SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法。
    • SMTP 使用客户–服务器方式。
    • SMTP 基于 TCP 实现客户与服务器的通信。
    • SMTP 是一个基于文本的 (即 ASCII 码) 的协议。
    • SMTP 客户与服务器之间采用命令-响应方式进行交互。
  • 三个通信阶段

    • 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。
    • 邮件传送
    • 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。

电子邮件的信息格式

  • 信封

  • 内容

    • RFC 822 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。

    • 首部

      • “To:” 后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上。
      • “Subject:” 是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。
      • “Cc:” 表示应给某某人发送一个邮件副本。
      • “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。
      • “Reply-To” 是对方回信所用的地址。

邮件读取协议 POP3 和 IMAP

  • 邮局协议 (Post Office Protocol) 第 3 个版本 POP3

    • POP3 支持用户鉴别。
    • POP3 服务器删除被用户读取了的邮件。
  • 网际报文存取协议 IMAP (Internet Message Access Protocol)

    • IMAP 是一个联机协议。
    • 连接后只下载邮件首部(部分下载)。
    • 用户直接在 IMAP 服务器上创建和管理文件夹。
    • 用户可以搜索邮件内容。
    • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
    • 允许收信人只读取邮件中的某一个部分。
    • 要想查阅邮件,必须先联网。
操作位置 操作内容 IMAP POP3
收件箱 阅读、标记、移动、删除邮件等 客户端与邮箱更新同步 仅在客户端内
发件箱 保存到已发送 客户端与邮箱更新同步 仅在客户端内
创建文件夹 新建自定义的文件夹 客户端与邮箱更新同步 仅在客户端内
草稿 保存草稿 客户端与邮箱更新同步 仅在客户端内
垃圾文件夹 接收并移入垃圾文件夹的邮件 支持 不支持
广告邮件 接收并移入广告邮件夹的邮 支持 不支持

基于万维网的电子邮件

  • 不需要在计算机中再安装用户代理软件。
  • 计算机能联网,就能非常方便地收发电子邮件。
  • 电子邮件界面非常友好。

通用互联网邮件扩充 MIME

  • 通用互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。
  • MIME 的意图是继续使用目前的 [RFC 822] 格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

动态主机配置协议 DHCP

前提

  • 在协议软件中,给协议参数赋值的动作叫做协议配置。一个软件协议在使用之前必须是已正确配置的。

  • 连接到互联网的计算机的协议软件需要配置的参数

    • IP 地址
    • 子网掩码
    • 默认路由器的 IP 地址
    • 域名服务器的 IP 地址

特点

  • 互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
  • 这种机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。
  • DHCP 给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。

工作过程

image-20200826223727759

  1. DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。
  2. DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文。
  3. 凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文,因此 DHCP 客户可能收到多个 DHCP 提供报文。
  4. DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文。
  5. 被选择的 DHCP 服务器发送确认报文 DHCPACK。从这时起,DHCP 客户就可以使用这个 IP 地址了。这种状态叫做已绑定状态,因为在 DHCP 客户端的 IP 地址和硬件地址已经完成绑定,并且可以开始使用得到的临时 IP 地址了。
  6. DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别是 0.5T 和 0.875T。当超时时间到了就要请求更新租用期。
  7. 租用期过了一半 (T | 时间到),DHCP 发送请求报文 DHCPREQUEST 要求更新租用期。
  8. DHCP 服务器若同意,则发回确认报文 DHCPACK。DHCP 客户得到了新的租用期,重新设置计时器。DHCP 服务器若不同意,则发回否认报文 DHCPNACK. 这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址 (回到步骤 2)。
  9. 若 DHCP 服务器不响应步骤 6 的请求报文 DHCPREQUEST,则在租用期过了 87.5% 时 (T2 时间到),DHCP 客户必须重新发送请求报文 DHCPREQUEST (重复步骤 6),然后又继续后面的步骤。
  10. DHCP 客户可以随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文 DHCPRELEASE 即可。

简单网络管理协议 SNMP

网络管理的基本概念

  • 网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。网络管理常简称为网管。

  • SNMP 的网络管理由三个部分组成

    • SNMP 本身

      • SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象(变量)名及其状态(值)。
    • 管理信息结构 SMI (Structure of Management Information)

      • SMI 定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。
    • 管理信息库 MIB(Management Information Base)。

      • MIB 在被管理的实体中创建了命名对象,并规定了其类型。

管理信息结构 SMI

  • SMI 的功能:

    • 被管对象应怎样命名;
    • 用来存储被管对象的数据类型有哪些种;
    • 在网络上传送的管理数据应如何编码。

管理信息库 MIB

  • 被管对象必须维持可供管理程序读写的若干控制和状态信息。这些信息总称为管理信息库 MIB 。

SNMP 的协议数据单元和报文

  • SNMP 的操作只有两种基本的管理功能,即:

    • “读”操作,用 get 报文来检测各被管对象的状况;
    • “写”操作,用 set 报文来改变各被管对象的状况。
  • SNMP 的报文格式

    image-20200826223843777

附件

参考