admin 管理员组

文章数量: 887021

计算机网络原理
          ╭第一章 计算机网络概述
          |第二章 网络应用
          |第三章 传输层
          |第四章 网络层
 内容大纲<
          |第五章 数据链路层与局域网
          |第六章 物理层
          |第七章 无线与移动网络
          ╰第八章 网络安全基础

第一章 计算机网络概述
1.计算机网络基本概念(填空选择题)
 1>计算机网络定义
  *1.定义:
    1)计算机网络是 互连的、自治的 计算机的集合;
      互连: 是指利用通信链路链接相互独立的计算机系统;
      自治: 是指互连的计算机系统 彼此独立 ,不存在主从或控制与被控制的关系;

    2)一个计算机网络是由资源子网和通信子网构成的,
      资源子网负责信息的处理,通信子网负责全网中的信息传递;

  *2.起源:从技术范畴来看,计算机网络是 计算机技术 与 通信技术 相融合的产物;

  *3.互联网与因特网(了解)
     #1.互连网(internet):泛指由多个计算机网络互连而成的网络;
     #2.因特网(Internet):指当前全球最大的、应用最广泛的计算机网络;

  *4.因特网服务提供商(Internet Service Provider, ISP)

 2>网络协议的定义(填空题)
  *1.网络协议:网络通信实体之间在 数据交换 过程中需要遵循的规则或约定(例如:HTTP,FTP等);
  *2.协议的三要素(填空题)
    #1.语法: 定义实体之间交换信息的 格式与结构;
    #2.语义: 定义实体之间交换信息中的 控制信息;
    #3.时序(同步):定义实体之间交换信息的 顺序 及如何匹配或适应彼此的 速度;

 3>计算机网络功能(选择)(软硬件信息资源共享)
  *0.是指在不同主机之间实现快速的信息交换,通过信息交换,计算机网络可实现 资源共享 这一核心功能;
  *1.硬件 资源共享: 计算资源(CPU)、存储资源、打印机与扫描仪I/O等共享; 例如云存储,云计算;
  *2.软件 资源共享: SaaS(Software as a Service,软件即服务) 例如:大型办公软件、大型数据库系统等;
  *3.信息 资源共享: 信息检索,新闻浏览等, 典型为 计算机网络所支持的信息交换;

 4>计算机网络的分类
  *1.按覆盖范围分类(选择题)
     #1.个域网(PAN,Personal Area Network):随身穿戴或便携设备,通过无线技术构成的小范围网络; 1~10m
     #2.局域网(LAN,Local Area Network):通常部署在办公室,办公楼,厂区,校区等; 10m~1Km
     #3.城域网(MAN,Metropolitan Area Network):覆盖一个城市范围的网络; 5~50Km
     #4.广域网(WAN,Wide Area Network):覆盖范围在几十到几千千米,可实现异地城域网的互连;

  *2.按拓扑结构分类(选择题)
    1)按拓扑结构的形状分类
    #0.拓扑(topology)
       是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科;
       它只考虑 物体间的位置关系 而不考虑它们的形状和大小;(星型,总线,环形,网状,树形,混合)

    #1.星形拓扑结构(个域网(PAN)或局域网(LAN))
       包括一个中央结点,网络中的主机通过点对点通信
       链路与中央结点连接;                        ●
       优点:易于监控管理,故障诊断,隔离;         ●- ● -●
       缺点:中央结点一旦故障,全网瘫痪;           ●   ●
       受限制与中央结点的端口数量;

    #2.总线型拓扑结构(早期局域网(LAN))
       网络采用一条广播信道作为公共传输介质,所有结点均与总线连接,
       结点间的通信均通过共享的总线进行;                   ●   ●   ●
       优点:结构简单,电缆数量少,易于扩展.                  ┴-┬-┴-┬-┴
       缺点:通信范围受限,故障诊断与隔离困难,容易产生冲突;      ●   ●

    #3.环形拓扑结构(早期局域网(LAN),城域网(MAN))                    ●--●
       利用通信链路将所有结点连接成一个闭合的环;                    /    \
       优点:电缆长度短,可以使用光纤,易于避免冲突;                  ●      ●
       缺点:某结点故障引起全网瘫痪,加新(撤出)结点麻烦,等待时间较长;  \     /
                                                                  ●--●

    #4.网状拓扑结构(广域网(WAN)和核心网络)                      ●--●
       网络中的结点通过多条链路与不同的结点直接相连接;           /\  /\
       优点:网络可靠性高,一条或多条链路故障时,网络仍然可以联通;  ●--╳--●
       缺点:网络结构复杂,成本高;                               \/  \/
                                                              ●--●
    #5.树形拓扑结构(目前局域网LAN)                    ●
       可以看作是总线型拓扑或星型拓扑结构网络的扩展;   / \
       优点:易于扩展,故障易隔离;                    ●   ●
       缺点:根结点要求高;                          /\  /\
                                                 ● ● ● ●
                                                                ● ● ●
                                                                 ╲│╱
    #6.混合型拓扑结构(绝大多数实际网络)                         ●    ○    ●
       由两种以上简单拓扑结构网络混合连接而成的网络;               ╲ ╱  ╲ ╱
       优点:易于扩散,可以构建不同规模的网络,根据需要优选网络结构; ●──○────○──●
       缺点:结构复杂,管理与维护复杂;                             ╱      ╲
                                                              ●       ●

    2)按拓扑结构传输模式分类
     #1.点对点模式: 星形拓扑结构、网状形拓扑结构、树形拓扑结构;
     #2.点与总线相连模式: 总线形拓扑结构;

    3)按采用信道的拓扑结构分类
     #1.采用广播信道的拓扑结构
        总线型拓扑结构;
        树形拓扑结构;
        环形拓扑结构;
        无限通信与卫星通信型;

     #2.直接链路连接: 网状形拓扑结构;

  *3.按交换方式分类
    #1.电路交换网络;
    #2.报文交换网络;
    #3.分组交换网络;

  *4.按网络用户属性
    #1.公用网:是指由国家或企业出资建立,面向公众提供收费或免费服务的网络(电信网络);
    #2.私有网:某个组织(政府或企业)出资建设,专门面向该组织内部提供网络传输服务,不向公众开放;(银行,军事,铁路)

2.计算机网络结构
  *大规模现代计算机网络的结构包括 网络边缘,接入网络 与 网络核心 三部分;

 1>网络边缘(上网使用的设备)
   连接到网络上的计算机、服务器、智能手机、智能传感器、智能家电等称为
   主机 或 端系统, 连接到网上的所有端系统构成了 网络边缘;

 2>接入网络(上网的途径)
  *0.是指实现网络边缘的端系统与网络核心连接与连入的网络;

  *1.电话拨号接入:利用电话网络接入;

  *2.非对称数字用户线路ADSL(Asymmetrical Digital Subscriber Line):
     #1.利用电话网络接入;#2.基于频分多路复用技术;#3.非对称(上行小,下行大);#4.独享式接入;

  *3.混合光纤共轴电缆HFC接入网络:
     #1.利用有线电视网络接入;#2.基于频分多路复用技术;#3.非对称(上行小,下行大);#4.共享式接入;

  *4.局域网:典型的局域网技术是以太网,WIFI等;

  *5.移动接入网络:利用移动通信网络,如3G/4G/5G网络,实现智能手机,移动终端等设备的网络接入;

 3>网络核心(网络实现数据转发方式)
    是由通信链路互连的 分组交换设备(路由器和交换机) 构成的网络,
    作用:通过 数据交换 来实现网络边缘中主机之间的 中继 与 转发;

3.数据交换技术
  0>数据交换的概念
  *1.交换设备: 具有多通信端口,可同时连接多个通信结点;(交换设备互连构成网络核心)
  *2.数据交换: 是实现在大规模网络核心上进行数据传输的 技术基础;
  *3.常见的数据交换技术包括: 电路交换,报文交换,分组交换;

 1>电路交换
  *1.电路交换是 最早 出现的一种交换方式, 电话网络 是最早、最大的电路交换网络;
  *2.电路交换进行通信步骤(3个阶段): 建立电路->传输数据->拆除电路;
  *3.优点: 实时性高,时延和时延抖动小;
  *4.缺点: 不适用于猝发式通信,信道利用率低,且传输率单一;
  *5.用途:适用于语音和视频这类实时性强的业务;
  *6.特点:电路交换是有连接的,在通信时需要先建立电路连接,
         在通信过程中独占一个信道,通信结束后拆除电路连接;

 2>报文交换(消息交换)
  *1.报文: 发送方把要发送的信息(数据) 附加上 接收主机的地址和控制信息(首部);
  *2.报文交换:发送方组装好报文,发给相邻报文交换机
      示意图如下:

        源 -----交换设备-----交换设备-----目的
       报文   存储转发\        /
     首部|数据         交换设备

  *3.交换结点的这种 接收-暂存-转发 的工作方式,称为 存储-转发 的交换方式;
  *4.优点: 信道利用率高; 适用于电报通信;
  *5.缺点: 网络的延迟时间变长; 有时还需要丢弃报文;
  *6.特点:
     报文交换机必须接受一个完整的报文后,才能把报文转发到某个输出线路中;
     1)报文交换可以把一个报文发送到多个目的地,而电路交换网络很难做到这点;
     2)报文交换网络中交换结点需要缓冲存储,报文需要排队,因此会导致报文经过
       网络的延迟时间变长且不固定(数据块长度不限且可变);

 3>分组交换
  *1.分组交换(包交换):是目前计算机网络 广泛采用 的交换技术;

  *2.分组交换需将待传输的数据(即报文)分割成较小的独立的数据块,(首部/数据)
     每个数据块附加地址、序号 等控制信息构成数据分组,每个分组独立传输到目的地,
     到目的地将收到的分组重新组装,还原为报文, 采用 存储-转发 交换方式;

  *3.示意图:
        源  ----交换设备-----交换设备-----目的
       分组   存储转发\        /
      ▌▌▌▌▌▌▌         交换设备

  *4.优点:
    #1.交换设备存储容量要求低;    报文交换设备:          分组交换设备:
    #2.交换速度快;                  1400MB                1400MB
    #3.可靠传输效率高;(丢包少)      首部|数据        首部|数据    首部|数据
    #4.更加公平;(效率高)       报文1:1500MB(丢弃)  分组1:100MB  分组2:100MB

  *5.缺点: 有效传输效率降低(每组都附加地址)

  *6.分组长度的确定:
     在其他条件相同的情况下,分组长度越长,延迟时间越长;
     (每组长度越长,在交换设备中存储停留的时间越长)(16B-4096B)

  *7.ARPAnet是第一个分组交换的计算机网络,也是当今因特网的祖先。(*****)

  *8.因特网的标准都有一个(Request For Comments,RFC)编号,
     如著名的IP协议和TCP协议最早分别为RFC791 和 RFC793;

4.计算机网络性能
 1>速率与带宽
   *1.速率:是指网络 单位时间内 传送的 数据量,用以描述网络传输数据的 快慢;
      也称为数据传输速率 或 数据速率(date rate), 单位: bit/s (位每秒)

   *2.速率单位转换:
      1Kbit/s=1000bit/s=10³bit/s         1Byte(字节)=8bit(位);
      1Mbit/s=1000000bit/s=10^6bit/s     1bit=0/1
      1Gbit/s=10^9bit/s                  速率的基本单位:bit/s(位每秒)
      1Tbit/s=10^12bit/s

   *3.带宽
      在通信和信号处理领域,指的是信号的频带宽度(最高和最低频率之差),单位Hz(赫兹);
      在计算机网络中,指的是:一条链路或信道的最高数据速率,单位:bit/s(位每秒)

 2>时延
  *1.时延
      时延:也称延迟,指数据从网络中的一个结点(主机或交换设备)到达另一结点所需要的时间;
      跳:在计算机网络中,通常将连接两个结点的直接链路称为有"一个跳步",简称 "一跳";
         分组
        ↙
        ▌    第一跳     ▌     第二跳    ▌    第三跳  ▌
       源主机-------分组交换机1-----分组交换机2-----目的

                    图1:一个简单的分组交换网络

  *2.分组每跳 传输过程中主要产生 4类 时间延时:

      -----------交换设备1--------------------交换设备2----------
                A    B  c \  d: 传播时延:dp  /
               \ / \  /   ↘
    结点处理时延dc 排队时延dq 传输时延(发送时延)dt

                    图2:传输过程中产生的4类时延

  *3.时延分类
    总时延dh=结点处理时延dc+排队时延dq+发送时延dt+传播时延dp;
    1)结点处理时延,记为dc
    2)排队时延,记为dq
    3)传输时延(发送时延),记为dt:
      /**
       * L:分组长度,单位bit;
       * R:链路带宽(即速率),单位:bit/s
       * 传输时延=分组长度/链路带宽
       * 从发送第一位到发送完最后一位所用时间
       */
       dt=L/R; bit/bit/s= bit•s/bit=s;

    4)传播时延,记为dp,
      /**
       * D:物理链路长度,单位:m
       * V:信号传播速度,单位:m/s
       * 传播时延=物理链路长度/信号传播速度
       * 光速=3×10^8m/s
       */
       dp=D/V; m/m/s= m•s/m=s;

 3>时延带宽积
    时延带宽积:是物理链路的传播时延 与 链路带宽 的乘积,记为G;
    公式:G=传播时延×链路带宽=dp•R=s•bit/s=bit;//时延带宽积的单位:bit
    时延带宽积物理意义: 一段链路可以容纳的数据位数, 也称为 以位为单位的链路长度;
    示例:
    设信号传播速度 V=2500km/s, 链路长度 D=500m,链路带宽 R=10Mbit/s,
    求该段链路的时延带宽积;
    V=2500000m/s  D=500m, R(带宽)=10000000bit/s
    G=D/V•R =  (500/2500000)•10000000=2000 bit
    G=D/V•R =(5×10^2)/(25×10^5)=1/(5×10^3)×10^7=2×10^3 bit

    例题2:
    设主机A和主机B由一条带宽为R=10^8bit/s、长度为D=100m的链路互连,
    信号传播速率为V=250000km/s。如果主机A从t=0时刻开始向主机B发送
    长度为 L=1024bit的分组。
    1)求主机A和主机B间的链路传输时延dt;
      dt=L/R=1024/10^8=1.024×10^-5s;

    2)求主机A发送该分组的传播时延dp;
      dp=D/V=100/250000000=4×10^-7s;

    3)求该分组从主机A到主机B的延迟T。(忽略结点处理时延和排队时延)
      T=dt+dp=1.024×10-5s+4×10-7s=1.064×10-5s;

    4)求主机A与主机B间链路的时延带宽积G
      G=dp×R=4×10^-7 × 0^8=40bit;


 4>丢包率(选择,填空)
   作用:丢包率常被用于评价和衡量网络性能,在很大程度上反映 网络拥塞程度;
    /**
     * N1:丢失分组总数
     * Ns:发送分组总数
     * Nr:接收分组总数
     */
     η=N1/Ns=Ns-Nr/Ns

  5>吞吐量(Thr Throught)
    是指在 单位时间内 源主机通过网络向目的主机 实际送达 的数据量,
    记为Thr,单位:bit/s 或 B/s(字节每秒) : 1B=8bit
    受网络链路带宽, 网络连接复杂性, 网络协议, 网络拥塞程度 影响
    S  R1     R2    Ri   RN-1   RN
    ▋-----●------●- - -●-----●-----▉   Thr=min(R1,R2,R3)

  +-------------+---------+--------------------------------------------+
  |  速率、带宽  |  bit/s  |   网络 单位时间内 传送的 数据量, 1bit=0/1    |
  +-------------+---------+--------------------------------------------+
  |     时延    |    s    | 结点处理时延dc+排队时延dq+发送时延dt+传播时延dp|
  +-------------+---------+--------------------------------------------+
  |  时延带宽积  |   bit   |    G=传播时延dp×链路带宽R =s•bit/s=bit;     |
  +-------------+---------+--------------------------------------------+
  |    丢包率    |   %     |η=N1(丢包总数)/NS(发送总数)=Ns-Nr(接收总数)/Ns|
  +-------------+---------+--------------------------------------------+
  |    吞吐量    |bit/s,B/s| Thr(最大吞吐量)=min(R1,R2,Ri,R(N-1),RN)|
  +-------------+---------+--------------------------------------------+

  例题:
  设主机A和主机B由一条宽带为R=10^8bit/s,长度为D=100m的链路互连,信号传播率
  为V=250000Km/s如果主机A从t=0时开始向主机B发送长度为L=1024bit的分组,试求:
 1>主机A和主机B间的链路传输延时dt;
    dt=L/R=1024/10^8=1.204×10^-5 s
 2>主机A发送该分组的传播延迟dp;
    dp=D/V=100/(25×10^7)=4×10^-7 s
 3>该分组从主机A到主机B的延时T;
    1.204×10^-5+4×10^-7=(1.024+0.04)×10^-5=1.064×10^-5
 4>t=dt时,分组的第一位在何处;
    分组的第一位已经到达主机B,因为dt>dp 0.124>0.04;
  5>主机A与主机B间链路时延带宽积G;
    G=dp×R=4×10^-7×10^8=40bit;

  例2:
  如图所示的网络中,A在 t=0 时刻开始向C发送一个 4Mbit 的文件;
  B在t=(0.1+e)s(e无限趋近0的小正实数)时刻向D发送一个2Mbit文件;
  忽略传播延迟和结点处理延迟(注:M=10^6);如果采用报文交换方式,
  则A将文件交付给C需要大约多长时间? B将文件交付给D需要大约多长时间;
  //延迟时间=dt(L/R)+dp(D/V)
  dt(AC)=4Mbit/20Mbps=0.2s; dp(AC)=

    20Mbps▊→                20Mbps▊→
  A----------┐    40Mbps   ┌----------C
             ¤-------------¤
  B----------┘             └----------D
    20Mbps▊→                20Mbps▊→

5.计算机网络体系结构
 1>计算机网络体系结构定义
    计算机网络所划分的 层次 以及 各层协议 的集合就称为计算机 网络体系结构;

 2>OSI参考模型(七层)
   开发系统互连(Open System Interconnection, OSI)参考模型: 国际标准化组织;
   采用分层结构化技术,采用三级抽象,即体系结构,服务定义,协议规格说明,将整个通信
   功能分为7层,数据 由上到下 层层封装;
   (发送端)
   应用层 :为用户提供一个使用网络应用的 "接口"; HTTP/HTTPS  FTP  SMTP
     ↕       (通信软件)
   表示层 :用于处理应用实体间交换数据的语法,解决格式和数据表示的差别,不独立存在;
     ↕       (翻译)        文本压/解压缩,数据加/解密,字符编码的转换;
   会话层 :通过两台计算机建立、管理、终止通信来完成会话,不独立存在; socket
     ↕       (确认对方可通话)
   传输层 :复用/分解、处理端到端的可靠数据传输,连接控制、流量控制、拥塞控制; 传输协议 TCP UDP
     ↕       (控制速度,数据分组) 将通信子网的技术、设计和欠缺与上层相隔离
   网络层 :将分组通过交换网络传送至目的主机(路径选择功能),  转发和路由;
     ↕       (加IP地址)
   数据链路层:1.差错控制,2.流量控制,3.链路管理(建立连接),4.寻址;
     ↕ (加MAC地址,Media Access Control Address 它用来确认网络设备位置的位址,每个网卡都有一个MAC )
   物理层: 无结构比特流传输;规定数据终端设备(DTE)与数据通信设备(DCE)之间接口的相关特性,(机械,电气,功能、规程)
            (光纤,双绞线,电磁波)                     发送端                    接收端
                                                    应用层<------ 协议 ------->应用层 ╮
   *1.数据在垂直的层次中 自上而下 地逐层传递至物理层;    ↕                          ↕    │
                                                    表示层<------ 协议 ------->表示层 │
   *2.对等层不直接进行通信,称为虚拟通信;                ↕                          ↕     >端到端层(端口)
                                                    会话层<------ 协议 ------->会话层 │    虚拟通信
   *3.物理层的两个端点进制物理通信,称为实通信;           ↕                          ↕   │  信息处理服务
                                                    传输层<------ 协议 ------->传输层 ╯
   *4.中间系统通常只实现物理层、数据链路层和网络层功能;   ↕             ↕            ↕
                                                    网络层<─协议─>网络层<─协议─>网络层    ╮
       物理层、数据链路层、网络层为 结点到结点层;         ↕            ↕            ↕      |
                                                 数据链路层<协议>数据链路层<协议>数据链路层 >结点到结点层
       传输层、会话层、表示层、应用层为 端到端层;         ↕            ↕            ↕      |数据交换和传输
    (端到端层的第一个层)                              物理层<─协议─>物理<──协议──>层物理层 ╯---实通信
                                                      ↑___传输介质__↑↑__传输介质___↑
                                                     发送方      中间系统       接收方
 3>有关术语
  *1.数据单元:在层的实体之间传送的比特组,
     对等层之间传输的数据单元:协议数据单元(PDU,Protocol Data Unit)
     应用层<-->表示层<-->会话层<-->传输层<---->网络层<-->数据链路层<-->物理层
     (报文)                   数据段或报文段  分组或包      帧     比特流或位流
     (报应)                      (数段)       (络分)                (物流)

  *2.服务访问点(Service Access Point,SAP)
     相邻层的服务是通过其接口上的 服务访问点 进行的,每个SAP都
     有一个唯一的 地址号码,N层SAP就是(N+1)层可以访问N层的地方;

  *3.服务原语
     OSI参考模型中的每一层的真正功能是为其上一层服务的,第N层向(N+1)层
     N-PDU可表示为N-PC加上N-SDU,提供服务都通过一组原语描述的,包括四类:
     1)请求(Request): 用户实体请求服务做某种工作;
     2)指示(Indication): 用户实体被告知某件事发生;
     3)响应(Response): 用户实体表示对某件事的响应;
     4)证实(Confirm): 用户实体收到关于它的请求的答复;

 4>TCP/IP参考模型
   应用层(报文): 网络应用 www服务:HTTP 文件传输:FTP 电子邮件:SMTP和POP3
     ↕
   传输层(段): 面向连接:提供可靠数据流传输的传输控制协议:TCP
     ↕        无连接:不提供可靠数据传输的用户数据协议:UDP
     ↕
   网络互联层(数据报):TCP/IP参考模型 核心 ,IP协议,ICMP(互联网控制报文协议);
     ↕
   网络接口层(帧) :提供给网络互联层一个访问接口

   *Internet组织在长期运行因特网的实践中,提出了一个基于TCP/IP协议簇的
    网络管理标准协议 SNMP ,并得到众多支持,使之成为事实上的网络管理工业标准;

  5>五层参考模型
    描述计算机网络中 最常用、最接近实际网络 的参考模型;
    应用层(报文)->传输层(段)->网络层(数据报)->链路层(帧)->物理层(比特流)

第二章 应用层
1.计算机网络应用体系结构(3种)
 1>客户/服务器(C/S)结构网络应用;(Client/Server)
  *1.C/S结构网络应用 是最典型、最基本的网络应用(例如:www应用;文件传输;电子邮件;)
  *2.特点:
    #1.网络通信双方分为客户程序 和 服务器程序,客户与客户之间不进行直接通信;
    #2.服务器程序 需 先运行起来, 做好接受通信的准备;
    #3.客户程序后运行,主动与服务器进行通信;

 2>纯P2P结构网络应用;
   P2P(Peer to Peer(对等端))
   通信双方没有传统意义上的客户端服务器之分,地位对等,通信双方都具备客户端与服务器的特征;
   P2P与传统因特网C/S两者在传输层及以下各层的协议结构是相同的,差别在 应用层;
   P2P网络是一种在IP网络上构建的覆盖网;

 3>混合结构网络应用(选择);
   混合结构网络应用将C/S应用和P2P应用相结合;


2.网络应用通信基本原理
 1>网络应用的基本通信过程
   网络应用的基本通信过程就是运行在不同主机上的 应用进程 间以C/S方式进行的通信;
   (微信)客户端   应用层协议   服务器端 (微信)
         应用层----------------应用层
          接口-------API-------接口  Application Programming Interface
         传输层                传输层            (应用编程接口)

 2>网络应用编程接口
    典型的 网络应用编程接口 是套接字(Socket),对于一个传输层协议,需要
    为其接口的每个套接字分配特定的编号,标识该套接字,该编号称为 端口号;

3.域名系统(DNS,Domain Naming System)
 1>域名系统
   *1.作用(选择题):将域名映射为IP地址,实现映射的过程,称为域名解析;
                          域名解析
      域名:www.baidu<----------->IP地址:115.239.211.122;

   *2.域名解析的原理(选择题)
      为了实现域名解析,域名系统会建立 分布式 数据库,存储域名与IP地址的映射关系数据;

 2>层次化域名空间
   *1.域名的命名方式:层次树状结构命名方式,每个域名有不同级别的域名构成,各层域名间用 点 分割;
      四级域名.三级域名.二级域名.顶级域名.根  例如 www.baidu (顶二三)
      域名不区分大小写;                    (三级域名.二级域名.顶级域名)

      我国二级域名 划分为类别域名 和 行政区域名 两大类;

   *2.顶级域名的分类
     #1.国家顶级域名:cn,us,uk等;
     #2.通用顶级域名:com(公司),org(非盈利组织),gov(政府),edu(教育),
                    net(网络组织),mil(军事组织),int(国际组织)等
     #3.基础结构域名:只有一个,arpa(反向域名解析);

 3>域名服务器
  *0.区:一个服务器所负责管辖的范围;
     DNS服务器:管辖范围不以"域"为单位, 而以"区"为单位;
  *1.作用:存储着自己所管辖范围内主机的域名到IP地址的映射
  *2.分类:根据其主要保存的域名信息以及在域名解析过程的作用分为:
     #1.根域名服务器:根域名服务器是最重要的服务器(a-m),全球有13个,保存所有顶级域名服务器的域名和IP;
     #2.顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名;结尾的IP
     #3.权威域名服务器:保存该区中的 所有主机 的域名和IP地址的映射;
     #4.中间域名服务器:不是以上三种的域名服务器;
     #5.本地域名服务器:主机在网络地址配置是都会配置的,用于保存被查询域名信息;
                      是主机进行域名查询时首先被查询的域名服务器。
      本地域名服务器->根域名服务器->顶级域名服务器->中间域名服务器->权威域名服务器;

 4>域名解析过程(简答题)
    递归解析:
    主机进行域名查询时,本地域名服务器没有 被查询域名信息,则本地域名服务器 代理主机
    查询根域名服务器,根域名服务器代理本地域名服务器查询下一个域名服务,依次类推,
    直到得到被查询域名的IP地址,最后将解析结果发送给主机; 本地->根->顶级->权威
                                                     ↑---根<-顶级←--┛
    迭代解析:
    主机进行域名查询时,本地域名服务器没有查询域名信息,则先求助根域名服务器,
    根域名服务器只是将下一步要查询的服务器告知查询主机的本地域名服务器,本地
    域名服务器继续查询下一个域名服务器,直到查询到被查询的域名的IP地址;
    本地->根 本地->顶级 本地->权威

4.万维网应用
 1>万维网应用结构
  *1.万维网应用主要包括 浏览器、web服务器、HTTP协议;
    #1.浏览器:Web应用的客户代理;
    #2.web服务器:存储管理供用户请求浏览的Web页面(Web文档)
    #3.超文本传输协议(HTTP):客户和服务器间交换基于应用层的协议HTTP;

  *2.URL:统一资源定位符(Uniform Resource Locator)
    URL作用:URL是HTTP标识被操作资源的方法;
    URL地址主要两个部分组成:存放对象的 主机域名(或IP地址) 和 对象的路径名;
    例:http://www.abc.edu/cs/index.html    //对象:网页上的图片、文字、视频等资源
            服务器主机域名(IP地址)/对象的路径名

    URL的寻址方式确保万维网上的每个Web页面或对象都有一个唯一的标识符;

  *3.用户通常利用客户端软件来使用某个网络应用,例如,浏览器,邮件收发软件等
     这个软件被称为 用户代理(user agent);

 2>HTTP(HyperText Transfer Protocol,HTTP) (综合题)
  *1.HTTP(超文本传输协议)概述
     Web应用的应用层协议,定义浏览器如何向Web服务器发送请求,以及Web服务器
     如何向浏览器进行响应,目前主要使用HTTP/1.0和HTTP1.1,以HTTP/1.1为主流;

  *2.HTTP连接
    1)浏览器在向服务器发送请求之前,首先需要 建立TCP连接,
      然后才 发送 HTTP请求报文, 接收 HTTP响应报文;
      RTT:
      HTTP客户进程向服务器请求建立连接,从客户发送连接请求,到收到服务器连接确认,
      用时一个往返时间(Round Trip Time, RTT),RTT作为一个 时间单位 来使用
      客户端--------------->服务器
          ↖--------------↙

    2)使用TCP策略不同分为:
      #1.非持久连接的HTTP;
         指客户与服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文,然后断开连接;

       $1.一条连接(8个RTT)
         非持久连接HTTP的响应时间: 以请求浏览一个引用为例 总共8个RTT时间, 请求每个对象时,都要新建TCP连接;

       $2.多条连接(4个RTT)
         优化:典型的优化技术:并行连接和持久连接;
         并行连接:通过建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应;(4个RTT, RTT是往返时间)
         并行连接会增加客户端主机的资源开销,如内存开销,故系统通常同时建立的并行TCP连接数是有限制的;

      #2.持久连接的HTTP;
       $1.非流水(管道)方式的持久连接:
          客户端收通过持久连接到响应报文后,不断开TCP连接,继续请求接下来的文档;

       $2.流水(管道)方式持久连接(HTTP1.1):
          客户端在通过持久连接收到前一个响应报文后,不断开连接,继续并行请求所需文档;

      ① HTTP/1.0 默认是非持久连接;
      ② HTTP/1.1 默认使用流水方式持久连接,HTTP/1.1持久连接默认是激活的; 半双工
      ③ HTTP/1.1代理服务器 不应该与 HTTP/1.0客户端 建立持久连接;

    例题
    设某网页的URL为“http://www.abc/index.html”,且该URL对应的IP地址在你的计算机上没有缓存
    (hosts中没有),文件index.html引用了 8个小图像,在域名解析的过程中,无等待的一次DNS解析请求与
    响应时间记为RTTd,HTTP请求传输Web对象过程的一次往返时间记为RTTh。试给出:
     1.该URL中的域名。 域名:www.abc ;

     2.浏览器解析到该URL对应的IP地址的最短时间和最长时间。
       最短时间1个RTTd (本地), 最长4个RTTd (本地+根+顶级+权威);

     3.若浏览器没有配置并行TCP连接,则基于HTTP1.0获取该Web页的完整内容(包括引用的图像)
       所需要的时间(不包括域名解析时间):
       /**
        * 解题思路:画图
        * 连接TCP:1RTTh,
        * 请求空网页:1RTTh  获取8张图片的URL;
        * (建立TCP 1RTTh+请求图1RTTh) *8=16RTTh
        */
          1+1+16=18RTTh;

     4.若浏览器配置5个并行TCP连接,则基于HTTP1.0获取该Web页的完整内容(包括引用的图像)
       需要的时间(不包括域名解析时间):
       /**
        * 并行5个
        * 建立TCP连接 1RTTh,
        * 请求web空页面1RTTh, 获取8张图片的URL;
        * 建立5条TCP连接:1RTTh
        * 请求图片1,2,3,4,5:1RTTh
        * 建立3条TCP连接 :1RTTh
        * 请求 6,7,8:1RTTh
        */
          6RTTh;

     5.若浏览器没有配置并行TCP连接,分别计算基于非流水方式的HTTP1.1获取该Web页完整内容需要的时间
       以及基于流水方式的HTTP1.1获取该Web页的完整内容(包括引用的图像)需要的时间(不包括域名解析时间)
       /**                                     /**
        * 建立TCP连接 1RTTh,                      * 建立TCP连接 1RTTh,
        * 请求web空页面1RTTh, 获取8张图片的URL;    * 请求web空页面1RTTh, 获取8张图片的URL;
        * 请求8张图片 8RTTh,                      * 请求8张图片 1RTTh,
        */                                       */
         非流水方式=10RTTh;                        流水方式=3RTTh;

    3)HTTP报文(选择,填空)
    *1.报文结构:
      +-------+----------------------------+----------------------------------+
      |报文结构|          请求报文           |            响应报文              |
      +-------+----------------------------+----------------------------------+
      | 起始行 | 请求行:<方法><URL><协议版本> | 状态行:<协议版本><状态码><原因短语>|
      +-------+----------------------------+----------------------------------+
      | 首部行 |        携带附加信息         |          携带附加信息             |
      +-------+----------------------------+----------------------------------+
      | 空白行 |    CR回车 LF换行(必须有)    |          CRLF(回车换行)           |
      +-------+----------------------------+----------------------------------+
      |报文主体|       实际要请求的内容      |         实际要响应的内容           |
      +-------+----------------------------+----------------------------------+
      *请求报文和响应报文最大的不同在于起始行,起始行在请求报文中为请求行,在响应报文中为状态行;

     *2.请求方法:
       +------+----------------------------------------+
       | GET  |请求读取由URL所标识的信息, 是 最常见 的方法;|
       +------+----------------------------------------+
       | HEAD |请求读取由URL所标识的信息的首部;           |
       +------+----------------------------------------+
       | POST |给服务器添加信息;                         |
       +------+----------------------------------------+
       |OPTION|请求一些选项的信息;                       |
       +------+----------------------------------------+
       | PUT  |在指明的URL下存储一个文档;                 |
       +------+----------------------------------------+

     *3.状态码:2位十进制数,利用第一位十进制数字区分5类状态码;
       +---------+---------+-------------+---------------------------------+
       |状态码类别| 取值范围 |     作用    |              说明                |
       +---------+---------+-------------+---------------------------------+
       |   1××   | 100~199 |   信息提示   | 通告请求已接收,可能还需要进一步交互|
       +---------+---------+-------------+---------------------------------+
       |   2××   | 200~299 |    成功      | 成功完成客户请求操作,并进行响应   |
       +---------+---------+-------------+---------------------------------+
       |   3××   | 300~399 |   重定向     | 表示资源已移走,需要向新URL发送请求 |
       +---------+---------+-------------+---------------------------------+
       |   4××   | 400~499 |  客户端错误  |   由于客户端错误无法成功响应      |
       +---------+---------+-------------+---------------------------------+
       |   5××   | 500~599 |  服务器错误  |   由于服务器错误,无法成功响应     |
       +---------+---------+-------------+---------------------------------+

       常见状态码
       +-----+------------------------------+---------------------------------+
       |状态码|            短语              |              说明               |
       +-----+------------------------------+---------------------------------+
       | 100 |           Continue           |已成功收到请求的初始部分,请客户端继续|
       +-----+------------------------------+---------------------------------+
       | 200 |               OK             |     成功,所请求信息在响应报文中    |
       +-----+------------------------------+---------------------------------+
       | 301 |       Moved Permanently      |             重定向               |
       +-----+------------------------------+---------------------------------+
       | 400 |          Bad Request         |          客户端请求错误          |
       +-----+------------------------------+---------------------------------+
       | 401 |         Unauthorized         |    未授权,需要输入用户名和密码    |
       +-----+------------------------------+---------------------------------+
       | 404 |          Not Found           | 客户端请求的对象,在服务器上不存在  |
       +-----+------------------------------+---------------------------------+
       | 451 |   Unsupported Media Type     |          不支持的媒体类型         |
       +-----+------------------------------+---------------------------------+
       | 505 |  HTTP Version Not Supported  |  请求使用的HTTP版本,服务器不支持   |
       +-----+------------------------------+---------------------------------+

 3>cookie(选择,填空)
  *1.HTTP服务器不保存客户的任何信息,被称为无状态协议;
  *2.为了记录保存客户信息,引入Cookie机制,用于用户跟踪;
  *3.Cookie(小型文本文件):
     网站为了辨别用户身份,进行会话跟踪而存在 用户本地终端 上的数据;

  *4.Cookie技术包括4部分内容(简答)
    1)HTTP 响应报文 中的Cookie头行: Set-Cookie 用户的Cookie ID,用户偏好等;
    2)用户浏览器在本地 存储、维护、和管理的Cookie文件;
    3)HTTP请求报文中的Cookie头行:用户已访问过的网站再次访问是,浏览器会检索本地Cookie文件;
    4)网站在后台数据中存储、维护Cookie信息:分配用户ID、每个ID用户在本网站的访问特征等;

  *5.Cookie的常见用途
   1)网站可以利用Cookie的ID来准确统计网站的实际访问人数,新访问者和重复访问者的人数对比及访问频率;
   2)网站可以利用Cookie限制某些特定用户的访问;
   3)网站可以存储用户访问过程中的操作习惯和偏好;
   4)记录用户登录网站使用的用户名、密码等信息;
   5)电子商务网站利用Cookie可以实现"购物车"功能;


5.Internet电子邮件
 1>邮件系统结构(选择填空)
   *1.邮件服务器(电子邮件体系结构的核心)
      负责发送和接收邮件,向发信人报告信件传送情况(已交付,被拒绝,丢失),用户注册,分配存储空间
      xuezhihui  @    163
      用户邮箱名  在 邮箱服务器域名

   *2.用户代理(电子邮件应用的客户端软件)
      Outlook,Apple Mail, Fox Mail等支持用户撰写、显示、处理 和
      收发邮件,为用户阅读,回复,转发,保存和撰写邮件提供编辑与操作环境;

   *3.简单邮件传输协议(SMTP)
      是核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器间的 邮件传输;

   *4.邮件读取协议(POP3,IMAP,HTTP)
      第三版邮局协议    	      Post Office Protocol - Version 3	POP3
      互联网邮件访问协议	      Internet Message Access Protocol	IMAP
      Web邮件系统的邮件读取协议	HyperText Transfer Protocol	    HTTP

 2>SMTP 简单邮件传输协议 (Simple Mail Transfer Protocol)
   *1.通过3个阶段的应用层交互完成邮件传输:
      1)握手阶段
      2)邮件传输阶段
      3)关闭阶段

   *2.定义了14条命令,每条命令用4个字母组成;
      例如: HELO:标识发件人身份; DATA:通知服务器准备开始发送邮件内容, QUIT:命令退出;

   *3.SMTP定义了21种应答信息,一般只一行,由3位数字的代码开始,后面附上(可无)简单的文字说明;
      例如:220 mail.abc     SMTP服务器端口号 25;

   *4.SMTP的特点
     1)SMTP只能传送 7位 ASCII码文本内容,(包括SMTP命令,应答消息,以及邮件内容);
     2)SMTP传送的邮件内容中不能包含 "CRLF.CRLF", (因为该信息用于标识邮件内容的结束);
     3)SMTP是 "推动" 协议(HTTP是"拉动"协议);
     4)SMTP使用 TCP连接 是持久的;


 3>电子邮件格式与MIME
   *1.一封邮件的格式结构
      首部  空白  行主体

   *2.邮件中常见的首部行内容:
      To	   后面收件人的电子邮件地址  (必填)
      Subject	邮件的主题             ╮
      Cc	   表示应给发送一个邮件副本  |
      From	   表示发信人的电子邮件地址   >可选
      Date	   发信日期                |
      Reply-To 对方回信所用的地址       ╯

   *3.MIME 互联网邮件扩展(Multipurpose Internet Mail Extensions)
     0)用于传输非7位ASCII码文本内容时;
     1)有5个 MIME邮件 首部字段;
       MIME-Version(MIME版本), Content-Description(邮件概述),Content-Id(邮件唯一标识)
       Content-Transfer-Encoding(编码方式)  Content-Type(主体内容类型和格式)
     2)定义了 多种邮件内容的格式, 对多媒体电子邮件的表示方法进行了标准化;
     3)定义了邮件传送编码,可对 任何内容格式进行转换 ,从而适用于通过SMTP进行传送;

 4>邮件读取协议
   *1.POP3 第三版邮局协议(Post Office Protocol - Version 3)
      1)授权阶段(用户名和密码)
      2)事务处理阶段(list,retr,dele)
      3)更新阶段(quit)

      user  xxxx:用于向服务器传送用户名
      pass  xxxx:用于向服务器发送用户密码
      list:用于请求所有的邮件序号和邮件长度
      retr邮件号:用于请求服务器传送第几封邮件
      dele邮件号:用于将邮件标记为删除
      quit: 结束会话,并更新操作

   *2.IMAP 互联网邮件访问协议(Internet Message Access Protocol)
      IMAP 服务器将每个邮件与一个文件夹进行关联,
      通过 IMAP 收件人可以对邮件进行移动、查询、阅读、删除等操作。
      IMAP 允许用户代理只读邮件的部分内容;

      IMAP与POP3的区别:
      对邮件的操作是否会反映在服务器上 IMAP(会)  POP3(不会)

   *3.HTTP:Web邮件系统的邮件读取协议


6.FTP 文件传输协议(File Transfer Protocol,FTP)
  *1.在互联网的两个主机间实现文件互传的网络应用,其应用层协议称为FTP;

  *2.进程两大组成部分:
    #1.主进程:负责接受新的客户请求;
    #2.从属进程: 负责处理单个客户请求,与具体客户进行交互;
    应用结构
      FTP  <───控制连接(持久,端口号21)───> FTP
     客户端<---数据连接(临时,端口号20)--->服务器
       ↕                                  ↕
    文件系统                           文件系统

  *3.FTP控制信息的传送方式为 带外控制;
     #0.由于FTP专门使用一个独立的控制连接传输控制信息,与传输文件信息进行分离,故将其传送方式称为 "带外控制";
     #1.控制连接:客户和服务器之间传输控制信息。如用户标识、口令、改变远程目录,上传下载文件命令等。
     #2.数据连接:实际传送文件内容。 *.控制连接服务器端口号为21; 数据连接服务器端口号为20;

     带内控制协议: 命令、数据通过一个TCP连接传输的应用层协议,例如HTTP;
     带外控制协议: 专门使用一个独立的控制连接传输控制信息,与传输文件信息进行分离,例如FTP;

  *4.FTP是 有状态 的协议, FTP的命令是 可读的
     例如:List(文件列表), RETR下载/STOR上传 filename ,USER usename, PASS password,

  *5.不需要专门的用户名和口令就可以登录的FTP服务器称为 匿名 服务器;

 7.P2P应用
  *1.P2P:Peer to Peer  P2P应用:BitTorrent、PPLive 和 PPstream等;

  *2.P2P应用特点(选择,填空)
    #1.应用的对等方是用户的计算机;
    #2.很强的应用规模伸缩性;
    #3.应用都是动态地在对等方之间进行;
    #4.应用充分聚集利用了端系统的计算能力以及网络传输带宽;

 8.Socket编程基础
   套接字(Socket): 典型的网络应用编程接口
   端口号(Port number):标识套接字;

  *1.常见的服务器端口号(选择,填空)
     20,21   FTP文件传输协议端口号 控制端口号21,数据端口号20;
     23      Telnet远程终端协议的端口号;
     25      SMTP简单邮件传输协议端口号;
     53      DNS域名服务器端口号;
     69      TFTP简单文件传送协议端口号;
     80      HTTP超文本传输协议端口号;
     110     POP3第三版的邮局协议端口号;
     161,162 SNMP简单网络管理协议的端口号;
     520     RIP路由信息协议的端口号;

  *2.Socket API函数
    1) 创建套接字: socket();
       参数: 流式套接字: SOCK_STREAM;面向传输层: TCP接口;
            数据报套接字:SOCK_DGRAM; 面向传输层: UDP接口;
            原始套接字:  SOCK_RAW;   面向网络层: 如IP,ICMP等接口;
    2) 绑定套接字的本机地址和端口号: bind();
    3) 设置监听: listen();
    4) 建立连接: TCP客户端: connect(); TCP服务端: accept();
    5) 发送数据: TCP: send(); UDP: sendto
    6) 接收数据: TCP: recv(); UDP: recvfrom;
    7) 关闭套接字: close();

  *3.UDP及TCP的Socket
    #1.UDP Socket:
       UDP客户端                  UDP服务端
     1) 创建套接字 socket()   1)创建套接字 socket()
     2) 发送数据   sendto     2)绑定地址和端口号 bind()
     3) 接收数据   recvfrom   3)接收数据 recvfrom
     4) 关闭套接字 close()    4)发送数据 sendto
                             5)关闭套接字 close()

    #2.TCP Socket:
       TCP客户端               TCP服务端
     1) 创建套接字 socket()   1)创建套接字 socket()
     2) 建立连接 connect()    2)绑定地址和端口号 bind()
     3) 发送数据 send()       3)设置监听 listen();
     4) 接收数据 recv()       4)建立连接 accept()
     5) 关闭套接字 close()    5)接收数据 recv()
                             6)发送数据 send()
                             7)关闭套接字close()
WebSocket
特点
 1.服务器可以主动向客户端推送消息,客户端也可以主动向服务器发送信息,是真正的双向平等对话;
   实现原理:客户端向WebSocket服务器通知(notify)一个带有所有接收者ID(recipient IDs)的
   事件(event),服务器接收后立即通知所有活跃的(active)客户端,只有ID在接收者ID序列中的
   客户端才会处理这个事件,WebSocket本身是基于TCP协议的;

 2.WebSocket与Http区别
          Http                                WebSocket
   Client       Server                Client            Server
     |   Request   |                    |    Handshake     | 握手
     |------------>|                    |----------------->|
     |  Response   |                    |  Acknowledgement | 确认
     |<------------|                    |<-----------------|
     |             |                    |<---------------->|
     |   Request   |                    |Bi-directional msg| 双向通信(双全工模式)
     |------------>|                    |<---------------->|
     |  Response   |                    |  Connection end  | 连接结束
     |<------------|                    |<---------------->|
     ↓             ↓                    ↓                  ↓
   Connection lifecycle                 Connection lifecycle  连接生命周期

   *1.WebSocket 是一个持久化协议,相对HTTP这种非持久的协议来说,Http的生命周期是
      通过Request来界定的,也就是一个Request,回应一个Response,Http请求结束(HTTP1.0);

   *2.在HTTP1.1中有了改进,增加了一个keep-alive,也就是说,在一个HTTP连接中,可以发送
      多个Request,接收多个Response,但请记住 Request=Response,也就是说,一个Request
      只能有一个Response,而且这个Response也是被动的,不能主动发起;

   首先我们来看个典型的 WebSocket 握手:
   Client: 发起请求
   -------------------------------------------------------------------------------------------------
   GET /chat HTTP/1.1        //请求方式
   Host: server.classOuter  //主机
   Connection: Upgrade       //表示要升级协议
   Upgrade: websocket        //表示要升级到WebSocket协议
   Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== //与服务端响应首部的sec-WebSocket-Accept配套,来验证服务器;
   Sec-WebSocket-Protocol: chat, superchat //是一个用户定义的字符串,区分同URL下,不同的服务所需要的协议。
   Sec-WebSocket-Version: 13 //所使用的 WebSocket Draft (协议版本)
   Origin: http://classOuter
   -------------------------------------------------------------------------------------------------

   Server: 接受到请求,成功建立WebSocket
   -------------------------------------------------------------------------------------------------
   HTTP/1.1 101 Switching Protocols //状态码101表示已经切换为WebSocket协议,后续的数据交互都按照新的协议来;
   Upgrade: websocket
   Connection: Upgrade
   Sec-WebSocket-Protocol: chat
   Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= //根据客户端的set-WebSocket-key,先SHA1算出摘要,
   //toBase64( sha1(Sec-WebSocket-Key + 258EAFA5-E914-47DA-95CA-C5AB0DC85B11) ),  再转成base64字符串
   -------------------------------------------------------------------------------------------------

 3.WebSocket的特点
  *1.建立在TCP协议之上,服务器端实现比较容易;
  *2.与HTTP协议有着良好的兼容性,默认端口也是80和443,并且握手阶段
     采用HTTP协议,因此握手时不容易屏蔽,能通过各种HTTP代理服务器;
  *3.数据格式比较轻量,性能开销小,通信高效;
  *4.可以发送文本,也可以发送二进制数据;
  *5.没有同源限制,客户端可以与任意服务器通信;
  *6.协议标识符是ws(如果加密.则为wss),服务器网址就是URL;

 4.数据帧
   WebSocket客户端,服务端通信的最小单位是帧(frame),由一个或多个帧组成一条完整的消息(message);
    *1.发送端: 将消息切割成多个帧,并发送给服务端;
    *2.接收端: 接收消息帧,并将关联的帧重新组装成完整的消息;

 5.连接保持+心跳
   WebSocket为了保持客户端,服务端的实时双向通信,需要确保客户端,服务端之间的TCP保持连接没有断开,
   然而,对于长时间没有数据往来的连接,如果依旧长时间保持着,可能会浪费宝贵的连接资源,这个时候可以
   采用心跳来实现;
    *1.发送方-->接收方: ping
    *2.接收方-->发送方: pong

    ping、pong的操作,对应的是WebSocket的两个控制帧,opcode分别是0x9,0xA;

 6.关闭连接
   一旦发送或接收到Close控制帧,这就是说,_WebSocket 关闭阶段握手已启动,且 WebSocket 连接处于 CLOSING 状态。
   当底层TCP连接已关闭,这就是说 WebSocket连接已关闭 且 WebSocket 连接处于 CLOSED 状态。
   如果 TCP 连接在 WebSocket 关闭阶段已经完成后被关闭,WebSocket连接被说成已经 完全地 关闭了。

 7.关闭连接的原因状态码

   状态码	  名称	                             描述
   0–999     保留段,                             未使用.
   1000   CLOSE_NORMAL	        正常关闭; 无论为何目的而创建, 该链接都已成功完成任务.
   1001	  CLOSE_GOING_AWAY	    终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开.
   1002   CLOSE_PROTOCOL_ERROR	由于协议错误而中断连接.
   1003	  CLOSE_UNSUPPORTED	    由于接收到不允许的数据类型而断连(如仅接收文本数据的终端接收到了二进制数据).
   1004		                    保留. 其意义可能会在未来定义.
   1005   CLOSE_NO_STATUS	    保留.  表示没有收到预期的状态码.
   1006   CLOSE_ABNORMAL	    保留. 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧).
   1007	  Unsupported Data	    由于收到了格式不符的数据而断开连接 (如文本消息中包含了非 UTF-8 数据).
   1008	  Policy Violation	    由于收到不符合约定的数据而断连.这是通用状态码,用于不适用1003和1009码的场景.
   1009	  CLOSE_TOO_LARGE	    由于收到过大的数据帧而断开连接.
   1010	  Missing Extension	    客户端期望服务器商定一个或多个拓展, 但服务器没有处理, 因此客户端断开连接.
   1011	  Internal Error	    客户端由于遇到没有预料的情况阻止其完成请求, 因此服务端断开连接.
   1012   Service Restart	    服务器由于重启而断开连接.
   1013   Try Again Later	    服务器由于临时原因断开连接, 如服务器过载因此断开一部分客户端连接.
   1014		                    由 WebSocket 标准保留以便未来使用.
   1015	  TLS Handshake	        保留. 表示连接由于无法完成 TLS 握手而关闭 (例如无法验证服务器证书).
   1016–1999		            由 WebSocket 标准保留以便未来使用.
   2000–2999		            由 WebSocket 拓展保留使用.
   3000–3999		            可以由库或框架使用.不应由应用使用. 可以在 IANA 注册, 先到先得.
   4000–4999		            可以由应用使用.

 8.ajax轮询 与 long poll
  1>ajax轮询
    原理:让客户端隔个几秒就发送一次请求,询问服务器是否有新信息。

  2>long poll
    原理:采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,
         就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。

  3>实现支持
    ajax轮询 需要服务器有很快的处理速度和资源。(速度)
    long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小)

  4>WebSocket使用回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你

第三章 传输层
(一) 传输层的基本服务
 1.传输层功能
  1>传输层的核心任务: 应用进程之间提供 端到端的 逻辑通信服务;
    只有主机(协议栈)才有传输层; (端口号到端口号)
    网络核心中的路由器、交换机、集线器等只用到下三层的功能;(网络层,数据链路层,物理层)
    从传输层的角度看,端到端的通信是 应用进程 之间的通信;

  2>传输层功能
    *1.对应用层报文进行 分段 和 重组;
    *2.面向应用层实现 复用 与 分解;
    *3.实现端到端的流量控制;
    *4.拥塞控制
    *5.传输层寻址
    *6.对报文进行差错检测 crc
    *7.实现进程间的 端到端 可靠 数据传输控制;

    助记:吩咐刘墉寻差错-可靠
         分复流拥寻差错 -可靠传输

 2.传输层寻址与端口
  1>一台计算机中,不同应用进程用 进程标识符(进程ID,PID) 来区分;

  2>TCP/IP体系结构网络的解决方法:
    在传输层使用协议端口号,通常简称为 端口(port),
    在全网范围内利用 "IP地址+端口号" 唯一标识一个通信端点;
    应用层和传输层间抽象的协议端口是 软件端口;

  3>传输层端口号:
    *0.传输层端口号为16位整数,可编号65536个(2的16次方)
    *1.服务器端使用的端口号: 熟知端口号 和 登记端口号;
       例如 FTP服务器默认端口号 为 21;
           HTTP服务器默认端口号 为 80

    *3.客户端使用的端口号:临时性,在客户进程运行时
       由操作系统随机选取唯一的未被使用的端口;

       端口号小于256的端口为 常用端口;
       0——1023:	    熟知端口号 \
                                服务器端
       1024——49151:	登记端口号 /

       49152——65535:客户端口号,或短暂端口号(*3)

 3.无连接服务与面向连接服务(***** 简答题)
   +----------------------------------+------------------------------------------+
   |          无连接服务(UDP)          |              面向连接服务(TCP)            |
   +----------------------------------+------------------------------------------+
   |数据传输前:无需与对端进行任何信息交换| 数据传输前:需要双方交换一些控制信息,建立逻辑 |
   |直接构造传输层报文段,并向接收端发送; | 连接,然后再传输数据,传输结束后还需要拆除连接;|
   +----------------------------------+------------------------------------------+
   |           类型于信件通信;         |               类似于电话通信               |
   +----------------------------------+------------------------------------------+

(二)传输层的复用与分解(用)
 1.复用与分解
  1>多路复用:
    在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,
    并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,
    然后将报文段传递给网络层;

  2>多路分解
    在目的主机,传输层协议读取报文段中的字段,标识出接收套接字,
    进而通过该套接字,将传输层的报文段中的数据交付给正确的套接字;

  3>作用
    传输层的多路复用与多路分解(分用)可 支持众多 应用进程共用
    同一个传输层协议, 并能将接收的数据准确交付给不同应用进程,

 2.UDP(用户数据报协议 User Datagram Protocol)
   Internet提供 无连接服务的传输层协议;
   UDP将应用层的数据块封装成一个UDP报文段,包括应用数据,源端口号,目的端口号;
   UDP套接字二元组:<目的IP地址, 目的端口号>

   UDP套接字分配端口号的两种方法:
   1)自动为该套接字分配一个未被使用的端口号(通常从1024~65535中选一个分配);
   2)通过调用函数bind(),为该套接字绑定一个特定端口号;

 3.TCP(传输控制协议 Transfer Control Protocol)
   Internet提供 面向连接服务的传输层协议;
   TCP套接字四元组:<源IP地址, 源端口号, 目的IP地址, 目的端口号>

 4.传输层协议依据 IP地址 和 端口号 实现 多路分解 与 多路复用;

(三)停等协议与滑动窗口协议
 1.可靠数据传输基本原理
  1>不可靠传输信道在不可靠性表现:
    *1.比特差错: 1001-1000
    *2.乱序: 数据块 1,2,4,5,6,3,
    *3.数据丢失: 数据块 1,2,5

  2>基于不可靠信道实现可靠数据传输采取的措施
    *1.差错检测: 利用差错编码实现数据包传输过程中的比特差错检验;
    *2.确认:  接收方向发送方反馈接收状态,ACK(肯定确认); NAK(否定确认)
    *3.重传:  发送方重新发送接收方没有正确接收的数据;
    *4.序号:  确保数据按序提交;(对数据进行编号,即便不按编号到达,可以按编号提交)
    *5.计时器:解决 数据丢失 问题;

  3>传输层实现可靠数据传输的理论协议有 等-停协议 和 滑动窗口协议;

 2.停-等协议(自动重传请求协议ARQ)
   *1.工作流程:
      ┌────────┐─────────①发送数据,等待确认───────>┌────────┐
      │ 发送方 │<─────────②肯定确认/否定确认────────│ 接收方 │
      └────────┘──────────③后续数据/重传数据──────>└────────┘

      #1.发送方发送经过差错编码的报文段,等待接收方的确认;
      #2.接收方如果正确接收报文段,即差错检测无误且序号正确,
         则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK;
      #3.发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段;

   *2.特点:所需缓冲空间小,但信道利用率低

 3.滑动窗口协议
  1>流水线协议(管道协议)
    允许发送方在没有收到确认前,连续发送 多个 分组;
    最典型的流水线协议: 滑动窗口协议;

  2>流水线协议实现可靠传输需要:
    *1.增加分组序号;
    *2.协议的发送方和接收方可以缓存多个分组

  3>滑动窗口协议
    *1.分组连续编号;
    *2.以流水线方式依次发送分组;
    *3.接收方接收分组,按分组序号向上有序提交;
    *4.通过确认,向发送方通告正确接收的分组序号;
       确认只采用ACK,例如,正确接收分组01, 则返回ACK01;
    *5.发送方根据收到的ACK的序号以及计时器,重发或继续发送新的分组;

    滑动窗口协议的窗口大小与接收窗口大小之和 小于等于 分组序号空间大小;
    即:Ws+Wr≤2^k; 报文段的序号采用k位二进制位串进行编号,其编号空间为:0~2^K-1,共2^k个编号;

  4>滑动窗口协议工作流程图
                    发送窗口
    发送方 ① ② ③ ④ |5|6|7|8|9| 10 11 12
                   已发送 ↓ ↘
                        已用 下一个可用序号;
    1)发送窗口Ws=5;
    2)1,2,3,4(发送窗口左侧)收到ACK;
    3)5,6,7,8,9(发送窗口中)当前可以发送的;
    4)10,11,12(发送窗口右侧)当前不可以发送的;

                      接收窗口
    接收方 ① ② ③ ④ ⑤ ⑥ |7|8|9| 10 11 12
    1)1,2,3,4,5,6(接收窗口左侧)正确接收,并提交给协议用户的序号;
    2)7,8,9期望接收但未收到;
    3)10,11,12 暂时不能接收的;

    注意事项:
    1)发送方的发送窗口(Ws):发送方可发送的 未被确认分组 的最大数量;
    2)接收方的接收窗口(Wr):接收方可缓存的 正确到达的分组 的最大数量;
    3)发送窗口内序号可能存在3种状态:
     *1.已用 未被确认序号, 如:5,6,7;
     *2.已用且已被确认序号,如:8
     *3.可用但尚未使用的序号,如:9;

  5>分类(根据接收窗口的大小)
   *1.GBN协议(GO-Back-N) 回退N步协议
     1)特点:
       #1.发送方(Ws≥1)缓存能力高,可以在没有得到确认前连续发送多个分组;

       #2.接收方(Wr=1)缓存能力很低,只接收1个按序到达的分组,不能缓存
          未按序到达 的分组,未按序到达 的分组丢弃,并让发送方重传;

       例如:要收0~7序号分组, 现在收到 0,1,4,7号分组,只接收0,1,再重发2~7;

     2)GBN发送方响应的3类事件:
      #1.上层调用,请求发送数据

      #2.收到1个ACKn,GBN采用 累积确认 方式,即当发送方收到ACKn时,
         表明接收方已正确接收 序号为n 以及 序号小于n的所有分组;

      #3.计时器超时时,发送方只使用一个计时器,且只对
         当前发送窗口的"基序号"指向的分组进行计时;


    *2.SR协议(Selective Repeat) 选择重传协议:
      1)特点
        发送方(Ws>1)缓存能力高,可以在未接到确认前连续发送多个分组;
        接收方(Wr>1)缓存能力高,对每个正确接收的分组进行 逐个确认,
        让发送方仅重传那些 未被确认接收 的分组;

      2)SR发送方响应事件:
       #1.上层调用,请求发送数据
       #2.定时器超时,SR协议在发送方对每个已发送的分组进行计时;
       #3.接收确认: 收到ACKn,SR协议采取 逐个确认 方式

       发送窗口Ws>1,接收窗口Wr>1,发送方重传未被接收方确认的分组;
       发送方:|1|2|3| 4 5 6  7 8 9 10
       接收方: ① ② ③ |4|5|6| 7 8 9 10 只接收 4 5 6 返回ACK4,ACK5,AKC6
       发送方: ① ② ③ |4|5|6| 7 8 9 10 向右滑动
       接收方: ① ② ③  ④ ⑤ ⑥ |7|8|9|10 直接收 7 8 9 返回ACK7,ACK8,ACK9

    无论是停-等协议,GBN协议, 还是SR协议,其信道利用率都与发送窗口大小有关:
    /**
     * 信道利用率:
     * Ws:    发送窗口的大小
     * t(Seg):发送方发送报文段的时间;
     * t(ACK):接收方发送ACK的时间;
     */
    U(sender)=(Ws•t(Seg))/(t(Seg)+RTT+t(ACK))

(四)UDP(用户数据报协议 User Datagram Protocol)
 0.是Internet传输层协议:提供无连接、不可靠、数据报尽力传输服务;
 1.UDP特点
   1>应用进程 容易控制 发送什么数据及何时发送,会出现分组的 丢失 和 重复;
   2>无需建立连接;
   3>无连接状态;
   4>首部开销小,只有8个字节;

 2.UDP数据报结构
                   0       15          31
                   |        |          |
   ----------------+-------------------+
                   |源端口号 |目的端口号 |
        UDP首部    +---------+----------+
                   |长度     | 校验和   |
   ----------------+-------------------+
      UDP数据字段   |   应用层数据占用   |
   ------------------------------------+

   UDP首部四个字段:每个字段长度都是2字节,共8个字节。
   源端口号和目的端口号:用于UDP实现复用和分解
   长度:指示UDP报文段中的字节数(首部和数据的总和)。首部(8个)+数据(应用数据长度);
   校验和:接收方使用来检测数据报是否出现差错,没有时全填0,求出校验和后替换;

 3.UDP校验和
  1>作用:提供差错检测功能,即检测UDP报文段从 源到目的地传送过程中,数据是否发生了改变;

  2>UDP校验和计算的内容包括3部分: UDP伪首部、UDP首部、应用数据
              0           7           15                        31
              |           |           |                          |
    +---------+--------------------------------------------------+
    |         |                    源IP地址                       |
    |UDP伪首部 |--------------------------------------------------+
    |只用校验和|                   目的IP地址                      |
    |不在报文段|--------------------------------------------------+
    |         |     全0   | 协议号(17) |        UDP长度           |
    +---------+--------------------------------------------------+
    |         |          源端口号      |      目的端口号           |
    | UDP首部  |--------------------------------------------------+
    |         |           长度        |        校验和              |
    +-------------------------------------------------------------+
    |UDP数据字段| 应用层数据,填充(没有全是0) 16位对齐                 |
    --------------------------------------------------------------+

    源IP地址、目的IP地址、协议号: 对应封装UDP数据报的IP分组的字段;
    UDP长度字段:是该UDP数据报的字段,该字段参与计算两次(伪首部和首部);
    UDP协议号:17;

  3>UDP校验和计算规则
   *1.所有参与运算的内容 按 16位 对齐求和;(求数值和)

   *2.求和过程中遇到 溢出(即进位)都被 回卷(即进位与和的最低位再相加),(溢出回卷)
      得到的和取反码(1,0互换),就是UDP的校验和,填入UDP数据报的校验和字段;(求反码)

   *3.UDP在生成校验和时,校验和字段全取0,待算出校验和后赋值给UDP首部校验和字段

  4>UDP计算校验和 示例
    数值1:0110 0110 0110 0000;
    数值2:0101 0101 0101 0101;
    数值3:1000 1111 0000 1100;

   *1.第一步: 求3个数的和(16位)
       0110 0110 0110 0000
     + 0101 0101 0101 0101
     = 1011 1011 1011 0101
     + 1000 1111 0000 1100
     =10100 1010 1100 0001

   *2.第二步: 溢出回卷
       0100 1010 1100 0001
      +                  1
      =0100 1010 1100 0010

   *3.求反码(0变1,1变0)
                0100 1010 1100 0010
      按位取反码:
      校验和:    1011 0101 0011 1101

(五)TCP(传输控制协议 Transfer Control Protocol)
 1.TCP报文结构(选择,填空)
  1>传输控制协议(TCP):Internet传输层协议,提供面向连接、可靠、有序、字节流传输服务;
    *1.应用进程先建立连接;(面向连接)
    *2.每一条TCP连接只有两个端点;
    *3.可靠交付: 无差错, 不丢失, 不重复, 按序到达;
    *4.全双工通信  (全双工:通信双方可 同时 传输及接收数据;半双工(对讲机),单工(广播))
    *5.面向字节流; 流:字节序列,应用程序和TCP的交互是一个个数据块,TCP把他们看做无结构字节流;

  2>TCP报文结构

              0                        15                        31
              |                        |                          | 每行 32位,4字节
    +---------+---------------------------------------------------+
    |         |       源端口号          │      目的端口号           | 分解复用
    |         |--------------------------------------------------+\
    |         |      序号(seq) (对每个应用层数据的每个字节进行编号)  |
    |         |---------------------------------------------------+
    |         |      确认序号(ack_seq)(接收方期望接收客户数据序号)   |   前5行
    | TCP首部 |---------------------------------------------------+  固定首部
    |         | 首部 | 保留  |U|A|P|R|S|F|                         |  20个字节
    |         | 长度 | 占6位 |R|C|S|S|Y|I|        接收窗口          |
    |         |单位4B| 全取0 |G|K|H|T|N|N|                         |
    |         |---------------------------------------------------+
    |         |          检验和          |        紧急指针         |/
    |         |---------------------------------------------------+
    |         |              选项(长度可变)                | 填充  | 可选首部
    +-------------------------------------------------------------+
    | TCP数据 |        应用层数据,填充(全是0) 16位对齐               |
    --------------------------------------------------------------+

   1)源端口号字段,目的端口号字段:各占16位,用于分解和复用来自或送到上层应用的数据
   2)序号字段: TCP的序号是对每个应用层数据的 每一个字节 进行编号;占32位,
   3)确认序号字段:接收方 期望 从对方 接收数据的字节,即该序号对应字节尚未收到;占32位,

   4)首部长度:占4位(1111->15: 5~15), 用于指出TCP段的首部长度,以 4字节 为计算单位;
     例:首部长度为15,则TCP首部长度为15×4=60字节,固定长度为20字节,数据长度为40字节

   5)保留字段:保留位今后使用,目前值为0; 占6位,

   6)标志位字段(各占1位,共6位,取值0或1)
     URG:紧急URG=1,紧急指针字段有效,优先传送;
     ACK:确认ACK=1,确认序号字段有效,ACK=0时,确认序号字段无效;
     PSH:推送PSH=1,尽快将报文段中的数据交付接收应用进程,不要等缓存满了在交付;
     RST:重置RST=1,TCP连接出现严重差错,释放连接,在重新建立TCP连接;
     SYN:同步SYN=1,建立新连接请求控制段 或 同意建立新连接的确认段;
     FIN:终止FIN=1,TCP报文段的发送端数据已经发送完毕,请求释放连接;

   7)接收窗口字段:向对方通告我方接收窗口的大小,占16位;
   8)校验和字段:计算方法与UDP相同,协议号是6,占16位;
   9)紧急指针:URG=1时,才有效,指出在本TCP报文段中紧急数据共有多少个字节;
   10)选项字段(长度可变):最短为0字节,最长为40个字节;
      例如:发送方告诉接收方其缓存能够接收的数据段的最大长度是MSS个字节;//不包括首部
      最长报文长度(Maximum Segment Size,MSS):报文段中封装的应用层数据的最大长度(1480);

   11)填充字段:取值全为0,目的是为了整个首部长度是4字节的整数倍;

 2.TCP连接管理(三次握手与四次挥手)
  以客户端的一个应用进程与服务器上的一个应用进程建立一条TCP连接为例;

  1>连接建立(三次握手)

     客户端                         服务器
                                  ┌───────────┐
                                  │  CLOSED   │
     ┌────────┐                   ├───────────┤
     │ CLOSED │  SYN=1, seq=x     │  LISTEN   │ 第一次握手(SYN段)
     └────────┘------------------>│(服务器独有)│
     ┌────────┐<------------------├───────────┤
     │SYN_SENT│  SYN=1,ACK=1      │           │ 第二次握手(SYNACK段)
     └────────┘•seq=y,ack_seq=x+1 │           │
                    •             │ SYN_RCVD  │
     ┌───────────┐         •      │           │
     │ESTABLISHED│ ACK=1,seq=x+1•>├───────────┤ 第三次握手(可携带数据)
     └───────────┘ ack_seq=y+1    │ESTABLISHED│
                                  └───────────┘

   *1.第一次握手 (发起连接请求):
      客户端向服务器发送连接请求报文:SYN报文段(SYN=1,seq=x);
      SYN=1:建立连接请求控制段,
      seq=x:表示传输的报文段的第1个数据字节的序号是x,
      并以此代表整个报文段的序号(sequence number,序号)
      客户端进度SYN_SEND(同步发送);
      此时服务器知道客户端能发

   *2.第二次握手 (返回确认,同意建立连接):
      服务器收到TCP连接请求后,如同意,则返回确认报文段:
      (SYN=1,ACK=1,seq=y,ack_seq=x+1)
      SYN=1:同意建立新连接的确认段
      ack_seq=x+1:表示已经收到了序列号为 x 的报文段,准备接收序列号为 x+1 的报文段。
      seq=y:服务器告诉客户确认报文段的第 1 个数据字节的序列号是 y。
      服务器由 LISTEN 进入 SYN_RCVD(同步收到)
      此时客户端知道服务器能发能收

   *3.第三次握手 (返回确认,建立连接):只有第三次握手可携带收据
      客户对服务器的 同意连接报文段 进行确认:
      (ACK=1,seq=x+1,ack_seq=y+1)
      seq=x+1:客户传输的报文段的第一个数据字节的序列号是 x+1
      ack_seq=y+1:客户期望接收服务器序列号为 y+1 的报文段。
      当客户端发送ACK时,客户端进入ESTABLISHED(已连接)状态;
      当服务器收到ACK时,也进入ESTABLISHED(已连接)状态;
      此时服务器知道客户端能收;

   *为什么需要三次握手?
    第一次握手:客户发送请求,此时服务器知道客户能发。
    第二次握手:服务器发送确认,此时客户知道服务器能发能收。
    第三次握手:客户发送确认,此时服务器知道客户能收

  2>连接拆除(四次挥手)

     客户端                                       服务器
   ┌───────────┐                              ┌───────────┐
   │ESTABLISHED│         FIN=1,seq=u          │           │
   ├───────────┤----------------------------->│ESTABLISHED│
   │FIN_WAIT_1 │  ACK=1,seq=v,ack_seq=u+1     │           │
   ├───────────┤<-----------------------------├───────────┤
   │FIN_WAIT_2 │ FIN=1,ACK=1,seq=w,ack_seq=u+1│CLOSE_WAIT │
   ├───────────┤<-----------------------------└───────────┘
   │ TIME_WAIT │•                             ┌───────────┐
   ├───────────┤     •                        │ LAST_ACK  │
   │  CLOSED   │ ACK=1,seq=u+1,ack_seq=w+1    └───────────┘
   └───────────┘                 •            ┌───────────┐
                                              │  CLOSED   │
                                            •>└───────────┘
  *1.第一次挥手 (客户端发送断开连接请求):
    客户端向服务器发送释放连接报文段:(FIN=1,seq=u)
    FIN=1:发送端数据发送完毕,请求释放连接;
    seq=u:传输的第一个数据字节的序号是u;
    客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态)

  *2.第二次挥手 (服务器确认,数据还没传完,继续发送):
    服务器向客户端发送确认段:(ACK=1,seq=v,ack_seq=u+1);
    ACK=1:确认字号段有效;
    ack_seq=u+1:服务器期望收到数据序号u+1;
    seq=v:服务器传输的数据序号v;
    服务器状态由 ESTABLISHED状态 进入 CLOSE_WAIT(等待关闭)
    客户端状态由 FIN_WAIT_1 进入 FIN_WAIT_2;

  *3.第三次挥手 (服务器数据发送完毕,同意断连):
    服务器向客户端发送释放连接报文段:(FIN=1,ACK=1,seq=w,ack_seq=u+1);
    FIN=1:请求释放连接;
    ACK=1:确认字号段有效;
    ack_seq=u+1:服务器期望收到客户数据序号u+1;
    seq=w:表示服务器传输的第一个数据字节的序号是w;
    服务器状态由 CLOSE_WAIT(等待关闭) 进入 LAST_ACK(最后确认状态);

  *4.第四次挥手 (两端确认断开连接):
    客户端向服务器发送确认段:(ACK=1,seq=u+1,ack_seq=w+1);
    ACK=1:确认字号段有效;
    ack_seq=w+1:表示客户期望接收服务器数据序号为w+1。
    seq=u+1:表示客户传输的数据的序号是u+1;
    客户端状态由 FIN_WAIT_2 进入TIME_WAIT(等待2MSL时间),进入CLOSED;
    服务器在收到最后一次ACK后,由LAST_ACK 进入 CLOSED;

 3.TCP可靠数据传输
  1>TCP实现可靠数据传输服务的工作机制:
   1)应用层数据被 分割成 TCP认为最适合发送的数据块; (因为数据链路层只能接收1500字节)
   2)TCP发出一个段后,启动一个 计时器,等待目的端确认收到这个报文段;
   3)TCP首部中设有 校验和字段, 用于检测数据在传输过程中是否发生差错;
   4)TCP报文段到目的端可能会失序,TCP会 重新排序;
   5)接收端收到重复的报文段,接收端根据序号把重复的报文段 丢弃;
   6)TCP提供流量控制;

   文件:6  5  4 3 2 1
       12 11 10 9 8 7

   TCP缓存 6 5 4 3 2 1         TCP缓存| | | | |2|1|
          │     2|1|首部|                    ↑
          └─────────────────────────────────┘
       发送方                              接收方

   可靠:保证接收方应用进程从缓冲区读出的字节流与发送方发出的字节流是完全一样的;
   1)校验:与UDP一样; $1 序号字段指一个报文段第一个字节的序号(图中序号为1);
   2)序号:发送方对发送的数据包进行编号,1字节占用1序号,确保数据按序提交给接收方; $1
   3)确认:TCP采用累积确认,此时返回确认序号为3; $2
   4)差错检测:利用差错编码实现数据报传输过程中的比特差错检测(甚至纠正);
   5)快速重传:TCP发送方接收到对相同序号的3次重复ACK,即被重复确认的报文段已丢失,即使无超时,也需重发该报文段;
   6)计时器:计时器超时时间的调整,解决数据丢失问题;
     超时时间策略:
     //超时间隔=抽样RTT的加权移动平均值+4×偏差RTT
     TimeoutInterval=EstimatedRTT+4*DevRTT;
     //SampleRTT:抽样RTT,指数加权移动平均, α指数加权系数,典型值为0.125;
     EstimatedRTT=(1-α)•EstimatedRTT+α•SampleRTT;
     //DevRTT:偏差RTT,RTT变化剧烈,网络不稳定,反之稳定; 加权系数β:推荐值0.25;
     DevRTT=(1-β)•DevRTT+β•|SampleRTT-EstimatedRTT|
     TCP的发送方在规定时间内没有收到确认就要重传已发送的报文;
     TCP协议用于控制数据段是否重传的依据是设立重发定时器;

   $2.TCP生成ACK的策略
   *1.具有所期望序号的报文段按序到达,所有在期望序号以及之前的报文段都已被确认,TCP延迟500ms发送ACK;
      示例:接收方收到1,2,3,且返回对1,2,3的确认,此时4来了,则接收方等待500ms,再返回ACK5

   *2.具有所期望序号的报文段按序到达,且另一个按序报文段在等待ACK传输,TCP接收方立即发送单个累计ACK,
      确认以上两个按序到达报文段;
      示例:接收方刚刚接收到4,正准备返回ACK5,此时5来了,则接收方返回ACK6;

   *3.拥有序号大于期望序号的失序报文段到达,TCP接收方立即发送重复ACK(3次),指示下一个期望接收字节的序号;
      示例:接收方返回ACK5,但6到了,则接收方返回三次重复的ACK5;

   *4.接收一个报文段,部分或完全填充接收数据间隔;
      接收方收到1,2,且返回对1,2的确认,后来又收到4,5,6,此时3来了,则接收方返回ACK7;


4.TCP流量控制(选择,填空)
   流量控制:
   *1.协调发送方与接收方的 数据发送 与 接收速度;
   *2.在通信过程中,接收方设置报文段的 接收窗口字段 来将窗口大小通知给发送方,实现流量控制;

5.TCP拥塞控制(综合题)
 0>网络拥塞:
   太多的主机以太快的速度向网络中发送太多的数据,超出了网络处理能力,
   导致大量数据分组拥挤在中间设备队列中等待转发,网络性能显著下降的现象;

 1>拥塞控制:
    通过合理调度,规范,调整向网络中发送数据的 主机数量、
    发送速率、数据量 以避免拥塞或消除已发生的拥塞;
    拥塞窗口:在连接建立时发送方一次可以发送几个分组,窗口大小随RTT的变化而变化;

 2>拥塞控制的算法:
   *1.慢启动
   *2.拥塞避免
   *3.快速重传
   *4.快速恢复

    窗口大小(MSS)
       ↑                     窗口大小值
     24|                         •
     22|                   •
     20|               •      拥塞避免阶段
     18|           •  阈值之后的阶段称为 拥塞避免阶段,
     16|阈值     •    每经过一个RTT,拥塞窗口大小增加加1MSS;
     14|        •
     12|       •
     10|      •                          窗口机制
      8|     •   ↖                      阈值(Threshold):临界值;初始值一般为:16MSS
      6|    •   慢启动阶段                拥塞窗口(CongWin):初始值为1MSS; 1个最大报文段长度;
      4|  • 阈值之前的阶段称为 慢启动阶段,  |1|2 3 4 5 6 7 8 9 10 拥塞窗口,初始值为1;
      1•   每经过一个RTT,拥塞窗口大小加倍; 1|2|3|4 5 6 7 8 9 10 经过RTT时间,窗口增大一倍;
      0------------------------------>时间(RTT)
        1  2  3  4 5 6 7 8 9 10 11 12


 3>拥塞判断与窗口调节
  1)三次重复确认(报文段丢失)
   *0.收到三次重复确认,可判定拥塞不严重;
   *1.快速重传:
     接收端收到3次重复确认,则推断被重复确认的报文段已丢失,则立即发送被重复确认的报文段;

   *2.快速恢复:
     当发生3次重复确认时,不再重新从慢启动阶段开始,而是直接从新阈值开始,直接进入拥塞避免阶段;
     操作:
     新阈值(12)=当前窗口(24)的一半,
     新拥塞窗口=新阈值=12;
     从拥塞避免阶段开始增加窗口数量;

    窗口大小
     (MSS)
       ↑
     24|                         •
     22|                   •
     20|               •          •
     18|           •   拥塞避免阶段   新阈值
     16|阈值     •                  •         •
     14|        •                        •
     12|新阈值 •                      • 拥塞避免阶段
     10|      •
      8|     •   慢启动阶段
      6|    •
      4|  •
      1•
      0------------------------------------------------------------>时间(RTT)
        1  2  3  4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

  2)计时器超时(报文段丢失)
    计时器超时时,可判定发生拥塞,且拥塞严重;
    操作:
    发生计时器超时时,新阈值是当前拥塞窗口的一半;
    新拥塞窗口大小下降为1MSS;
    新阈值(12)=当前拥塞窗口(24)的一半,
    新拥塞窗口=1
    然后再从慢启动阶段、拥塞避免阶段增加窗口数量;
    慢启动:1~12:1,2,4,8,12;
    拥塞避免阶段:13,14,...;

    窗口大小
     (MSS)
       ↑
     24|                         •
     22|                   •
     20|               •          •
     18|           •   拥塞避免阶段
     16|阈值     •                •             •
     14|        •                •         •  拥塞避免阶段
     12|新阈值 •                  •     •
     10|      •                  •     •
      8|     •   慢启动阶段       •    •
      6|    •                    •   • 慢启动阶段
      4|  •                      • •
      1•                         • 1MSS
      0------------------------------------------------------------>时间(RTT)
        1  2  3  4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

  3)窗口调整的基本策略AIMD(Additive Increase,Multiplicative Decrease)
    *1.网络未发生拥塞时,逐渐"加性"增大窗口;
    *2.网络拥塞时"乘性"减小窗口;

  4)拥塞控制的分类
    *1.拥塞消除策略:先拥塞检测,再采取措施;
    *2.拥塞预防策略:流量整形技术,规范主机向网络发送数据的流量

  示例:下图是某通信过程中拥塞窗口RTT的变化过程,请回答如下问题:
    窗口大小
     (MSS)                    1)在第一个慢启动阶段拥塞窗口的阈值是多少? 答:阈值为:16MSS;
       ↑                      2)说明该过程中哪些时间段为慢启动阶段? 0-4RTT和17-20RTT;
     22|                   •  3)第10个RTT时,发生了什么事件? 答:三次重复确认事件;
     21|                 •  • 4)第16个RTT时,发生了什么事件? 答:计时器超时事件;
     20|               •
     19|             •       •
     18|           •
     17|         •            •               •
     16|       •               •           •   •
     15|                       •        •       •
     14|      •                •     •          •
     13|      •                •  •             •
     12|      •                •                •                     •
     11|      •                                 •                  •
     10|      •                                 •               •
      9|      •                                 •            •
      8|     •                                  •         •
      7|                                        •         •
      6|    •                                   •        •
      5|                                        •       •
      4|   •                                    •      •
      3|  •                                     •    •
      2| •                                      •  •
      1•                                        •
      0--------------------------------------------------------------------> 时间(RTT)
         1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

  例2.图展示了TCP Reno 拥塞控制算法中拥塞窗口的变化情况,请参照该示意图回答一下问题;

     cwnd
       ↑         A
       |         •           C
       |        • ⊹          ⊹           E
       |       •  ⊹    ⊹     •        •  •               ⊹
       |      •  B⊹          •   •       ⊹    G    ⊹
       | S   •             D •           ⊹    ⊹
       |   •                             ⊹   ⊹
       •                                F⊹
       └--------------------------------------------->time

     1)图中SA、BC 和 FG分别是拥塞控制中的哪个阶段?
       答:SA:慢启动阶段, BC:拥塞避免阶段, FG:慢启动阶段;

     2)结点A、C、E、G处引起cwnd变化的原因分别是什么?
       答:A和C:发生三次重复确认事件,分组丢失,执行快速恢复算法;
          E:发生计时器超时事件,未收到分组,执行慢启动算法;
          G:达到了拥塞窗口的阈值,改变阈值增大策略,即将开始执行拥塞避免算法;

     3)若图中A和C处的高度是一样的,那么B和D两点的阈值有什么关系?
       答: B点与D点阈值相等

     4)假设这个网络中只存在一个TCP连接,这个TCP连接的速度是否仍要不停地改变?
       答:需要不停改变,由于网络拥塞普遍存在,需要要实施拥塞控制,所以TCP连接的速度仍需视情况不断改变;

第四章 网络层
(一)网络层服务
 0.网络层是网络核心的最高层,是实现大型网络互连的关键,是网络体系结构中最重要的一层;

 1.网络层 核心任务
   将数据从源主机送达目的主机;

 2.网络层 主要功能(转路连)
   1>转发
     路由器在收到IP数据报时,会利用IP数据报的目的IP地址检索匹配路由表,如果路由表中没有匹配成功的路由项
     则通过默认路由对应的接口转发该IP数据报,如果除默认路由外,有一条路由项匹配成功,则选择该路由项对应的
     接口转发该IP数据报,如果除默认路由外,有多条路由项匹配成功,则选择 网络前缀匹配成功位数最长 的路由项,
     通过该路由项指定接口转发该IP数据报;

   2>路由选择
     当分组从源主机流向目的主机时,必须通过某种方式决定分组经过的路由或路径;

   3>连接建立
     网络层连接是从源主机到目的主机经过的一条路径,这条路径所经过
     的每个路由器等网络设备都要参与网络层连接的建立;

                      路由选择
      输入端口            ↕           输入端口
   -> |1|2|3| ->       转发表      -> |1|2|3| ->
                  目的地址|输出链路
      ......        地址1    3
                    ...     ...
                    地址4    1
    -> |4|5|6| ->     路 由 器     -> |4|5|6| ->
                        转发

(二)数据报网络与虚电路网络
 0.根据是否在网络层提供连接服务,分组交换网络可分为:
   在网络层提供连接服务的 虚电路网络(Virtual-Circuit,VC);
   在网络层提供无连接服务的 数据报网络(datagram network);

 1.数据报网络(无连接服务)
   1>数据报网络是指 按照 目的主机地址 进行路由选择的网络;
     源主机每发送一个分组,就为该分组加上 目的主机地址, 然后将该
     分组推进网络,每个路由器使用分组的 目的主机地址 来转发该分组;

 2.虚电路网络
   1>虚电路(virtual circuit,VC):
     是指源主机到目的主机的一条路径上建立的一条网络层逻辑连接;

   2>虚电路网络:
     指在网络层提供面向连接的分组交换服务,双方通信前先虚电路建立连接,通信结束后在拆除连接;

   3>一条虚电路由3个要素构成:
     1)从源主机到目的主机之间的一条路径(一系列的链路和分组交换机)
     2)该路径上的每条链路的 虚电路标识(VCID)
     3)分组交换机的转发表中记录虚电路标识的 接续 关系;
        |输入接口|输入VCID|输出接口|输出VCID|

   4>数据报网络 与 虚电路网络 对比表
     +-----------+-------------------------+---------------------------+
     |   项目    |        虚电路网络        |        数据报网络          |
     +-----------+-------------------------+---------------------------+
     |是否建立连接|        先建立连接        |        不建立连接          |
     +-----------+-------------------------+---------------------------+
     |   地址    |每个分组含有一个短的虚电路号|每个分组包含源地址和目的端地址| 源IP地址, 目的IP地址
     +-----------+-------------------------+---------------------------+
     |  分组顺序  |  按序发送, 按序接收      |  按序发送, 不一定按序接收    |
     +-----------+-------------------------+---------------------------+
     |  路由选择  | 建立VC时需路由选择,之后  |   每个分组独立路由选择       |
     |           | 所有分组均沿此路由转发;   |                           |
     +-----------+-------------------------+---------------------------+
     |  典型网络  |   X.25、帧中继、ATM      |    因特网(Internet)       |
     +-----------+-------------------------+---------------------------+
     *.ATM网络在信元交换前必须建立 虚拟 连接;

(三)网络互连与网络互连设备
 1.异构网络互连
  1>异构网络:
    主要是指两个网络的通信技术和运行的协议不同,例如:WiFi和网线;

  2>实现异构网络互连的基本策略(协议转换 和 构建虚拟互联网络)
   *1.协议转换:
      采用一类支持异构网络之间协议转换的网络中间设备,
      来实现异构网络数据分组的转换与转发;
      例如:交换机或 多协议路由器;

   *2.构建虚拟互联网络
      在异构网络的基础上构建一个同构的虚拟互联网络;

   3>实现 同构网络 互连的典型技术: 隧道技术;

 2.路由器
  1>最典型的网络层设备
    具有多个输入端口 和 多个输出端口的专用计算机,
    主要任务就是 获取与维护 路由信息 以及 转发分组;

  2>路由器从功能体系结构角度(输入,输出,交换,处理):
    *1.输入端口:查找,转发,到达分组 缓存排队功能;
               线路端接收信号->数据链路处理(协议封装)->查找,转发排队->交换结构;

    *2.交换结构:完成具体的转发工作,将输入端口的IP数据报交换到指定的输出端口;
               主要包括: 基于内存交换(性能低,价低),
                        基于总线交换(独占式),
                        基于网络交换(性能高,价高);

    *3.输出端口:缓存排队,从队列中取出分组进行数据链路层数据帧的封装,发送;
               1.先到先服务(FCFS)调度策略;(通常)
               2.优先级调度,按IP数据报的服务类型调度;
               交换结构->排队,缓存管理->数据链路处理(协议封装)->线路端接->

    *4.路由处理器: 1)执行命令, 2)路由协议运行, 3)路由计算以及路由表的更新和维护


(四)网络层拥塞控制
 1.网络拥塞(选择,填空)
  1>拥塞:
    一种持续过载的网络状态,用户对网络资源(包括链路带宽、
    存储空间和处理器处理能力等)的总需求 超过了网络固有的容量;

    吞吐量吞吐量
      ↑                     |               响应时间
    Q2|---------------------•                   ↑                     •
      |                 •   |•                  |                     •
      |             •       | •                 |                     •
      |       |  •          |  •                |                     •
    Q1|-------•             |   •               |         |       |  •
      |      •|             |    •              |         |       | •
      |     • |             |     •           t2|-----------------•
      |    •  |             |      •            |         |     • |
      |   •   |             |       •           |         |   •   |
      |  •    |             |        •        t1|---------•       |
      | •     |             |         •         |     •   |       |
      |•      |             |          •        | •       |       |
      0-------┴-------------┴-----------•-->    0---------┴-------┴---------->
             膝点          崖点            负载           膝点    崖点        负载

  2>网络负载在 膝点 附近时,吞吐量 和 分组平均延迟达到理想的平衡,网络的使用率最高;(t1=t2, Q1(膝点)>Q2(崖点))

  3>发生拥塞的原因(三有限,一故障)
    *1.缓冲区容量有限;
    *2.传输线路的带宽有限;
    *3.网络结点的处理能力有限;
    *4.网络中某些部分发生了故障;

  4>网络层拥塞控制措施(4条)(选择填空)
    *1.流量感知路由:
       网络抽象为一张带权无向图,路由器抽象为图的结点,链路抽象为图的边,每一条链路有自己的链路费用
       权值根据网络负载动态调整,则可将网络流量引导到不同的链路上,均衡网络负载,从而延缓或避免拥塞的发生;
                         区域一             区域二
                         ┌───────────┐  ┌─────────┐
                         │      B.   │  │         │
                         │     / |  .│10│         │
                         │    /  |   │  .         │  带权无向图
                         │   A   |   │  │   .E    │ 时延小=权值小
                         │     \ |   │  │   /  \  │
                         │       C---+--+--D   F  │
                         └───────────┘20└─────────┘

    *2.准入控制: 是对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立新虚电路;

    *3.流量调节: 在网络拥塞时,可以通过调整发送方的发送数据的速率来消除拥塞; ICMP报文↓
                抑制分组:感知到拥塞的路由选择一个被拥塞的数据报,给该数据报的源主机返回一个抑制分组;
                背压: 抑制分组在从拥塞结点到源结点的路径上的每一跳(结点间直接链路),都发挥抑制作用;

    *4.负载脱落: 通过有选择地主动 丢弃一些数据报,来减轻网络负载,从而缓解或消除拥塞;
                从最大的开始丢,例如 |6|5|4|3|2|1| 先丢6;
  简述网络拥塞解决的两个方面
  +--------------------+-----------------------------------------------------------------------+
  |增加网络资源(拥塞预防)| 在网络出现拥塞前为网络中的各个结点分配更多可用的资源,从而降低拥塞出现的可能性|
  +--------------------+-----------------------------------------------------------------------+
  |减小网络负载(拥塞消除)| 指在网络中已出现负载大于资源的情况下,通过减小当前网络的负载劳实现对拥塞的消除|
  +--------------------+-----------------------------------------------------------------------+

  流量控制和拥塞控制的区别
  +-------+----------------------------------------------+--------------------------------------+
  |拥塞控制|考虑系统间的网络环境,使网络负载不超过网络传送能力 |确保网络能够承载所到达的流量            |
  +-------+----------------------------------------------+--------------------------------------+
  |流量控制|考虑接收端数据接收处理能力,使发送速率不超过接收能力|只与特定的发送方和接收方间的点到点流量有关|
  +-------+----------------------------------------------+--------------------------------------+

(五)Internet网络层
 0.Internet网络层主要协议
   1>网际协议(Internet Protocol,IP)
   2>路由协议
   3>互联网控制报文协议(Internet Control Message Protocol,ICMP)

 1.IPv4协议(网络层最核心的协议)
   1>定义了如何封装上层协议(如UDP、TCP)的报文段;
     定义了Internet网络层寻址(IP地址)以及如何转发IP数据报等内容;
     IP目前前两个版本:IPv4(32位) 和 IPv6(128位);

     IP对输入数据报的处理分为主机对数据报的处理和网关对数据报的处理;

   2>IPv4数据报格式
    ┌-----------------------------32位----------------------------┐
    |-------------------------------------------------------------+
    |版本(4位)|首部长度(4位)|区分服务(8)|      数据报长度(16位)      |4B\
    |-------------------------------------------------------------+   |
    |          标识(16位)           |标志(3位)|    片偏移量(13位)   |4B |
    |-------------------------------------------------------------+   |
    | 生存时间(8位)  | 上层协议(8位) |        首部检验和(16位)       |4B  >固定首部20字节
    |-------------------------------------------------------------+   |
    |                        源IP地址(32位)                        |4B |
    |-------------------------------------------------------------+   |
    |                        目的IP地址(32位)                      |4B/
    |-------------------------------------------------------------+
    |                       选项(可选,长度可变)                     |40B 可选首部
    +-------------------------------------------------------------+
    |                              数据                            | 传输层报文段
    +-------------------------------------------------------------+
    *1.版本号(4位):IPv4(32位)、IPv6(128位);
    *2.首部长度(4位):20B-60B(字节), 单位 4字节
    *3.分区服务(8位):在旧标准中成服务类型(Type of Service,TOS) 用来指示期望获取那种类型服务;
    *4.数据报长度(16位):指出IP数据报的总字节数;(首部+数据)
    *5.生存时间(8位):表示IP数据报在网络中可以通过的路由器数(跳步数);TTL
    *6.上层协议(8位):指示该IP数据报封装的是哪个上层协议: TCP:6, UDP:17;
    *7.首部校验和(16位):利用校验和对IP数据报 首部 进行差错检测; (求和,溢出回卷,取反码)
    *8.源IP地址(32位):发出IP数据报源主机的IP地址,
    *9.目的主机地址(32位):IP数据报需送达的主机IP地址;
    *10.选项:长度可变;
    *11.数据:存放IP数据报所封装的传输层报文段;

    *12.标识(16位):
        标识一个IP数据报,每产生一个IP数据报,IP协议的计数器加1; 1号IP数据报  分片1 分片2
        在IP数据报 分片 和 重组 过程中用于标识属于同一IP数据报,2号IP数据报  分片1 分片2
        该字段不可唯一标识一个IP数据报; 要(主机IP+目的主机IP+标识位)
    *13.标志(3位):其结构如下:
         1 2 3
        ┌-┬-┬-┐ DF(Don't Fragment):禁止分片标志: DF=0,MF=0:是一个分片,且是最后一片,
        | |D|M| DF=0,允许分片, DF=1,禁止分片;    DF=0,MF=1;表示是一个分片,且不是最后一片;
        | |F|F| MF(More Fragment):更多分片标志; DF=1,MF=0;没有分片
        └-┴-┴-┘ MF=0,未被分片 或 分片的最后一片, MF=1,一定是分片,且不是最后一个;

    *14.片偏移量:
        以8B(8字节)为单位,表示一个IP数据报分片与原IP数据报数据的相对偏移量;
        该字段值为0时,且MF=1,则表示这是一个IP分片,且是第一个分片;

 3>IP数据报分片
   *1.最大传输单元(Maximum Transmission Unit,MTU):
      数据链路层帧能承载的最大数据量;(网络层要将传输层的数据报 先分组 再分片);

   *2.IP数据报分片的原则
      #1.尽可能少分片;
      #2.一个最大分片可封装的数据字节数是8的倍数;
         每个分片的标识字段复制原IP数据报的标识字段
         MF标志位,除了最后一个分片为0外,其余分片全为1;

   *3.IP数据报分片的相关计算
      原数据IP报总长度为 L字节,待转发链路的MTU为 M字节;
      最大分片封装的数据长度: d=⌊(M-20)/8⌋×8
      分片总数: n=⌈(L-20)/d⌉
      每个分片片偏移字段取值: Fi=d/8×(i-1),1≤i<n;
                           ╭d+20,1≤i<n
      每个分片的总长度: Li=<
                           ╰L-d×(n-1),i=n

                           ╭1,1≤i<n
      每个分片的MF字段: MFi=<
                           ╰0,i=n

      通过PingPlotter 工具发送一个总长度为3400字节的IP数据报,
      通过MTU=1500字节的链路转发,试求以下内容:
      第1步:每片最多可以封装多少字节的数据;
            分片包括两个部分内容(首部+数据):首部:20,数据:1500-20=1480字节
      第2步:分片数
            一片可封装的数据字节数为:1500-20=1480字节   |首部|  1  |  2  | 3 |
            IP数据报的总长度:3400字节(首部+数据)              /      |     \
            IP数据报的数据长度:3400-20=3380字节        |首部|1|  |首部|2|  |首部|3|
            分片数: 3380/1480=2.28向上取正,取 3

      第3步:标志位: DF:0 分片, MF=0(最后一片) 其余为1;

      第4步:片偏移量(单位为8字节)
            第1片:0/8=0; 第2片:1480/8=185; 第3片:2960/8=370
     +-------+------------+-----+--------+-------------------------+
     |  片   | 总长度/字节 |偏移量| MF标志 |封装原IP数据报中数据的字节流|
     +-------+------------+-----+--------+-------------------------+
     | 第1片 |    1500    |  0   |   1   |    1480字节(0-1479)      |
     +-------+------------+------+-------+-------------------------+
     | 第2片 |    1500    | 185  |   1   |    1480字节(1480-2959)   |
     +-------+------------+------+-------+-------------------------+
     | 第3片 |    440     | 370  |   0   |     420字节(2960-3379)   |
     +-------+------------+------+-------+-------------------------+
              3440=3个首部(20字节)+数据;          3380

   例2:发送一个总长度为5000字节的IP数据报,通过MTU=1500字节的链路转发,
       求:分片;每片总长度; DF、MF标志;封装原数据报中的字节数;片偏移量;
      1) 一个分片可装的最大字节数: MTU-首部=1500-20=1480字节;
         IP数据报的数据总长度: 5000-20=4980字节
         分片数:n=⌈4980/1480⌉=4;

      2)每片总长度分别为:
        第1片:1500字节;   第2片:1500字节;
        第3片:1500字节;   第4片:560字节;

      3)DF1=0,MF1=1;  DF2=0;MF2=1;  DF3=0,MF3=1;  DF4=0,MF4=0;

      4)每片封装原数据报中的字节数分别为:
        第1片:1480字节;   第2片:1480字节;
        第3片:1480字节;   第4片:540字节;

      5)第1片偏移量:0/8=0;      第2片偏移量:1480/8=185;
        第3片偏移量:2960/8=370; 第4片:偏移量:4440/8=555;
     +-------+------------+-----+------+------+--------------------------+
     |  片   | 总长度/字节 |偏移量|DF标志|MF标志 |封装原IP数据报中数据的字节流|
     +-------+------------+-----+------+------+--------------------------+
     | 第1片 |    1500    |  0  |   0  |   1   |    1480字节(0-1479)      |
     +-------+------------+-----+------+-------+-------------------------+
     | 第2片 |    1500    | 185 |   0  |   1   |    1480字节(1480-2959)   |
     +-------+------------+-----+------+-------+-------------------------+
     | 第3片 |    1500    | 370 |   0  |   1   |    1480字节(2960-4439)   |
     +-------+------------+-----+------+-------+-------------------------+
     | 第4片 |    560     | 555 |   0  |   0   |     540字节(4440-4979)   |
     +-------+------------+-----+------+-------+-------------------------+

   *路由器进行IP数据报分片后,目的主机在重组分片时,用到的字段不包括 首部长度字段
   *4.IP数据报分片在目的主机重组:
     1)根据各片首部的标识字段来判断这些分片是否属于同个IP数据报,同个IP数据报分出来的IP分片具有相同的标识字段;
     2)目的主机通过各分片首部的标志字段,可以判断某个分片是否是最后一个分片;
     3)目的主机根据各分片的片偏移字段,判断IP分片的先后顺序,综合每个IP分片首部的数据报长度字段,判断是否缺少分片;

 例题:已知IPv4数据报第1个字节和数据报长度字段内容分别为16进制数 45H 和 3FCH,求该数据报封装的数据长度;
      封装数据长度=数据报总长度-首部长度(20字节)=(3×16²+15×16+12)-20
                 =768+240+12-20=1200-20=1000字节
                 
 2.IPv4编址
  1>IPv4地址的长度为32位,共有2^32个不同的IP地址,约为43亿个;

  2>IPv4地址192.168.1.101的三种标记方式:
    +-------------------+-------------------------------------+
    |        方法       |             表示方式                 |
    +-------------------+-------------------------------------+
    |    二进制标记法    | 11000000 10101000 00000001 01100101 |
    +-------------------+-------------------------------------+
    |  点分十进制标记法  |          192.168.1.101              |
    +-------------------+-------------------------------------+
    |    十六进制标记法  |         0xC0A80165                  |
    +-------------------+-------------------------------------+

  3>IP地址分配
    具有3个接口的路由器,通过两台交换机,互连了6台主机;
    IP子网:三台主机+路由器左侧接口;               子网地址:203.1.1.0
    主机A: 203.1.1.2───────────┐     203.1.1.1  路由器接口地址:203.1.1.1
    主机B: 203.1.1.3──────────交换机─── 路由器   主机地址: 203.1.1.2
    主机C: 203.1.1.4───────────┘                         203.1.1.3
          |IP前缀|                                       203.1.1.4

    主机划分为两个部分
    1)前缀(prefix):即网络部分(NetID) 用于描述主机所归属的网络范围;
       分类地址: 定长前缀,
       无类地址:前缀长度可变    网络位(前缀) 主机位(后缀)
    2)后缀(Postfix),即主机部分(HostID)用于表示主机在网络中的唯一地址;

    3)分类地址(定长前缀)
       +----+----------+-------------------------------------+----------+-----------+
       | 类 |  前缀长度 |                 前缀                 |  首字节  |  分类寻址  |
       +----+----------+--------------------------------------+---------+-----------+
       |  A |   8位    |               0xxxxxxx               |  0-127  |主机或路由器|
       +----+----------+--------------------------------------+---------+-----------+
       |  B |   16位   |          10xxxxxx xxxxxxxxx          | 128-191 |主机或路由器|
       +----+----------+--------------------------------------+---------+-----------+
       |  C |   24位   |     110xxxxx xxxxxxxxx xxxxxxxxx     | 192-223 |主机或路由器|
       +----+----------+--------------------------------------+---------+-----------+
       |  D |  不可用  | 1111xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx| 224-239| 组广播地址 |
       +----+----------+--------------------------------------+---------+-----------+
       |  E |  不可用  | 1111xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx| 240-255 |    保留   |
       |    |          |              xxxxxxxxx               |         |           |
       +----+----------+--------------------------------------+---------+-----------+

       *1.IP地址中:
         前缀中的后几位:表示网络地址个数;   (网络范围)
         后缀位数:表示这类网络中的IP地址总数 (主机数)
         +--+-----+----+-------+--------+--------------------+
         |类| 前缀| 固定|前缀中后| 网络地址|  每个类网IP地址总数 |
         +--+-----+----+-------+--------+--------------------+
         |A |  8  | 0  |  7位  |2^7=128个|   2^24个(主机数)   |
         +--+-----+----+-------+--------+--------------------+
         |B | 16  |10  | 14位  | 2^14个  |   2^16个(主机数)   |
         +--+-----+----+-------+--------+--------------------+
         |C | 24  |110 | 21位  | 2^21个  |   2^8个(主机数)    |
         +--+-----+----+-------+--------+--------------------+

       *2.特殊地址(用途特殊的IP地址)
         +------+---------+---------+---------+-----------------------------+
         |Net ID| Host ID | 作为IP数|作为IP数据|           用途               |
         |      |         |据报源地址|报目的地址|                             |
         +------+---------+---------+--------+------------------------------+
         | 全0  |   全0   |  可以    | 不可以 |在本网范围表示主机,在路由表是路由 |
         +------+---------+---------+--------+------------------------------+
         | 全0  |  特定值  |  可以    | 不可以 |     表示本网内某个特定主机     |
         +------+---------+---------+--------+------------------------------+
         | 全1  |   全1   |  不可以  |  可以  |         本网广播地址          |
         +------+---------+---------+--------+------------------------------+
         |特定值|   全0   |  不可以  | 不可以  |        表示一个网络           |
         +------+---------+---------+--------+------------------------------+
         |特定值|   全1   |  不可以  |  可以   |  对特定网络上的所有主机进行广播 |
         +------+---------+---------+--------+------------------------------+
         | 127  |非全0或非全1| 可以  |  可以   |用于本地软件环回测试,称为环回地址|
         +------+---------+---------+--------+------------------------------+

       *3.私有地址:除特殊地址外,还有部分分类地址用于内部网络使用,但不能在公网上使用;
         +-------------+------------------------------------------------+
         | 私有地址类别 |                    范围                         |
         +-------------+------------------------------------------------+
         |     A类     |     10.0.0.0——10.255.255.255(或10.0.0.0/8)    |
         +-------------+------------------------------------------------+
         |     B类     |   172.16.0.0——172.31.255.255(或172.16.0.0/12) |
         +-------------+------------------------------------------------+
         |     C类     | 192.168.0.0——192.168.255.255(或192.168.0.0/16)|
         +-------------+------------------------------------------------+

    4)无类地址(前缀长度可变)
      在无类寻址方案中,不存在如分类寻址中的网络类别,网络前缀不再被设计为定长的
      8位、16位、24位,而是变为可以是0-32位的任意值; 网络书写形式:a.b.c.d/x;
      例如:203.1.1.0/24, (/24后缀)主机位有24个,这种地址形式称为无类域间路由(CIDR);
      例如: 10.0.0.0/8 表示的IP地址范围是 10.0.0.0~10.255.255.255
    5)子网划分
      *1.子网化:将一个较大的子网划分为多个较小子网的过程;(大变小)大子网表示主机位(后缀)多
      *2.超网化:将具有较长前缀的相对较小的子网合并为一个具有稍短前缀的相对较大的子网;(小变大)
      *3.子网掩码:32位; 对应网络前缀,全是1, 其余位(主机部分),全是0;   (超网化是子网化的逆过程)
         例如:子网213.111.0.0/24的子网掩码为:255.255.255.0;(子网掩码中1的个数,确定子网前缀是几位);

      *4.综合题:
         已知子网中某主机地址和子网掩码,就可以计算出子网地址,子网广播地址,IP地址总数和可分配IP数
         #1.子网掩码和主机地址 按位与 运算可得出 子网地址;
            与运算: 0&0=0 0&1=0; 1&0=0; 1&1=1;

         #2.子网掩码的反码 与 主机地址 按位或 运算可得出 直接广播地址;
            反码: 1────0;0────1;
            或运算: 0|0=0; 0|1=1; 1|0=1; 1|1=1;

         #3.IP地址总数
            IPv4地址共32位, 分为网络位(前缀)+主机位(后缀);
            通过子网掩码可以确定网络位(子网掩码中1的个数),
            则主机位 = 32-网络位,IP地址总数:2^(主机位);

         #4.可分配IP地址总数                                    ┌────IP地址总数─────┐
            在IP地址总数中分配 一个子网地址 和 一个直接广播地址    |        |         |
            所有可分配地址总数: IP地址总数-2;                    头    可分配IP     尾
            可分配地址范围: (子网地址+1)  ~ (直接广播地址-1)   子网地址 (主机数-2) 广播地址

         例题:
         假设某子网中的一个主机的IP地址是 203.123.1.135, 子网掩码是:255.255.255.192
         1)求该子网的子网地址;(写出计算过程)
           子网掩码:11111111 11111111 11111111 11000000 (子网掩码中1的个数,确定子网前缀是几位)
         IP主机地址:11001011 01111011 00000001 10000111
          进行&运算:11001011 01111011 00000001 10000000
           子网地址:    203  . 123    .  1     . 128 /26 (子网掩码有26个1,代表子网前缀为26位)

         2)求直接广播地址;
           子网掩码:11111111 11111111 11111111 11000000
           取反结果:00000000 00000000 00000000 00111111
         IP主机地址:11001011 01111011 00000001 10000111
          进行|运算:11001011 01111011 00000001 10111111
           直接广播地址: 203  . 123    .  1     . 191

         3)求子网IP的地址总数;
           主机位有32-26=6位,即2^6=64个;

         4)求该子网的可分配IP地址数;
           64-2=62个 (子网地址占1个,广播地址占1个,所以64-2=62);

         5)求可分配地址范围;
           可分配IP地址范围: 203.123.1.129~203.123.1.190(去掉头和尾)

   题1.已知IP地址172.32.1.113对应的子网掩码为255.255.254.0;
     1)求该IP地址所在网络的网络地址;(子网地址)(写出计算过程)
         子网掩码:11111111 11111111 11111110 00000000
       IP主机地址:10101100 00100000 00000001 01110001
        进行&运算:10101100 00100000 00000000 00000000
         子网地址:   172  .   32   .    0   .  0/23

     2)求该网段的IP地址范围;
       IP地址范围:172.32.0.0~172.32.1.255;

     3)求该网段可分配的IP地址范围(掐头去尾)
       IP地址可分配范围:172.32.0.1~172.32.1.254;

     4)求该网段的广播地址
         子网掩码:11111111 11111111 11111110 00000000
         取反结果:00000000 00000000 00000001 11111111
       IP主机地址:10101100 00100000 00000001 01110001
        进行|运算:10101100 00100000 00000001 11111111
        直接广播地址: 172  .  32   .  1     . 255

   题2.某公司总部与其子公司A,B,C分别位于四个不同的地区,假设公司拥有子网地址是 202.119.110.0/24,
       总部与子公司A、B、C联网的主机数分别是53、26、12、12、要求子公司B和子公司C的主机位于相邻
       的子网,请写出下表中序号处的IP地址和子网掩码;
       +---------+----------------------+-----------------+
       |         |  主机IP地址范围       |    子网掩码      |
       +---------+----------------------+-----------------+
       |   总部  | 202.119.110.129 ~(1) | 255.255.255.192 |   子网地址:主机位全是0;
       +---------+----------------------+-----------------+   广播地址:主机位全是1;
       | 子公司A |  (2)~202.119.110.94  |       (3)        |  起始地址:主机位最后1位为1;(子网后)
       +---------+----------------------+-----------------+  终止地址:主机位最后1位为0;(广播前)
       | 子公司B |  202.119.110.97~(4)  | 255.255.255.240  |  起始与最终地址 网络位相同,主机位不同;
       +---------+----------------------+-----------------+
       | 子公司C |       (5)~(6)        | 255.255.255.240  |
       +---------+----------------------+-----------------+

       1) 由 总子网掩码 255.255.255.192 得出
          网络位 26位, 主机位:6位
          主机IP起始地址: 202.119.110.129
          起始地址后6位主机位 10|000001
          终止地址后6位主机位 10|111110  255-65=190;
          所以总部广播地址是:202.119.110.190; (1)

       2)由子公司A主机的主机数量为26台,2^4=16<26;(不够)
         可得:子公司A的主机位为 5 即 2^5=32>26;(可用)
         可得:子公司A的网络位为 27, 11111111 11111111 11100000
         可得:子网掩码为255.255.224;(3)  主机位: 5位
         由 终止地址 202.119.110.94 得   终止后8位为:010|11110
         可得:起始地址为:202.119.110.65; 起始后8位为:010|00001 (2)

       3)由255.255.255.240 可知 主机位为: 4位
         由 起始地址 202.119.110.97 得  起始后8位为:0110|0001 可得:
         终止地址为: 202.119.110.110;   终止后8位为:0110|1110 (4)

       4)B的广播地址:202.119.110.111,因为BC相邻,故子公司C的子网地址为202.119.110.112
         的IP起始地址为:202.119.110.113; 起始后8位 0111|0001; (5) 主机位4位(由子网掩码得)
         的IP终止地址为:202.119.110.126; 终止后8位 0111|1110; (6)



  4>路由聚合
    1)用途:减少路由表项数,提高路由效率,将可以聚集在一起的子网聚合成一个大的子网;
    +-------------------+---------+------+
    |      网络地址      |下一跳地址| 接口 |
    +-------------------+---------+------+  后两位是连续的四个数
    |  15.65.154.0/26   |    A    |  S1  |   00000000
    +-------------------+---------+------+   01000000
    |  15.65.154.64/26  |    A    |  S1  |   10000000
    +-------------------+---------+------+   11000000
    |  15.65.154.128/26 |    A    |  S1  |
    +-------------------+---------+------+
    |  15.65.154.192/26 |    A    |  S1  | 聚合->  网络地址     下一跳   接口
    +-------------------+---------+------+       15.65.154.0/24   A     S1
       前24位一样

 3.动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)
  1>当组织分配到一个网络地址块后,就可以为该组织内的主机和路由器接口分配IP地址;
    静态分配:手动配置;              DHCP客户端          DHCP服务器
    动态分配:动态主机配置协议来分配;    |    DHCP Discover   | DHCP服务器发现:广播方式
                                     |------------------->|
  2>动态主机配置协议(DHCP)端口号       |      DHCP Offer    | DHCP服务器提供:广播方式
    DHCP服务器端口号: 67;             |<-------------------|
    DHCP客户端口号: 68;               |     DHCP Request   | DHCP请求: 广播方式
                                     |------------------->|
                                     |      DHCP ACK      | DHCP确认
                                     |<-------------------|

 4.NAT(网络地址转换,Notwork Address Translation)(解答题)
  1>NAT用途:使私有地址的主机能在公共Internet上进行正常通信的技术;
  2>网络地址转换(NAT)工作原理
    1)从内网出去的IP数据报,将其 IP地址 替换为 NAT服务器拥有的
      合法的公共IP地址,同时替换源端口号,并将替换关系记录到NAT转换表中;

    2)从公共互联网返回的IP数据,依据其目的IP地址与目的端口号检索 NAT转换表,并利用检索到的
      内部私有IP地址 和 对应的端口号 替换 目的IP地址 和 目的端口号,将IP数据报转发到内部网络;
      
  3>基于UPnP(Universal Plug and Play,即插即用)协议可通过动态配置的方法事先建立NAT映射实现NAT穿透技术;
 
 5.ICMP(互联网控制报文协议,Internet Control Message Protocol)
  1>ICMP用途:在主机或路由器间实现网络层 差错报告 与 信息探测; ping 域名 

  2>ICMP结构:
    0           7          15                       31
    |           |           |                       |
    +-----------+-----------------------------------+
    |   类型    |   代码     |        校验和         |
    +-----------------------------------------------+
    |             由ICMP报文的类型决定                |
    +-----------------------------------------------+
    |                ICMP的数据部分                  |
    +-----------------------------------------------+

  3>ICMP报文类型:(差错报文和询问报文)
   1)差错报告报文:
     *1.终点不可达;  TTL(生存时间 跳步数)不够, 返回ICMP报文
     *2.源点抑制;    处理报文超载
     *3.时间超时;
     *4.参数问题;    例如:DF=1, 不分片,驳回;
     *5.路由重定向;  路由选择;

   2)询问报文(信息探测)
     *1.回声请求/应答; ping 域名 例如 ping baidu; //向特定主机发送ICMP请求报文,测试是否可达;
     *2.时间戳请求/应答; 回复时间;

 6.IPv6(128位)
  0>IPv6地址长度为128位
  1>IPv6数据报格式(基本首部)[选择、填空]
    ┌-----------------------------32位----------------------------┐
    |------------------------------┴------------------------------+
    |版本(4位)|  流量类型(8位)  |           流标签(20位)            |
    |-------------------------------------------------------------+
    |      有效荷载长度(16位)       |下一个首部(8位) | 跳数限制(8位) |
    |-------------------------------------------------------------+
    |                        源IP地址(128位)                       |
    |-------------------------------------------------------------+
    |                        目的IP地址(128位)                     |
    |-------------------------------------------------------------+
    |                             数据                            |
    +-------------------------------------------------------------+
    IPv6与IPv4数据报首部对比
    IPv6删除字段:
    *1.分片相关字段
    *2.首部校验和
    *3.选项字段不是IPv6基本首部字段

  2>IPv6地址表示方法:
    1)8组冒号分隔的十六进制数:
      8000:0000:0000:0000:4321:0501:AB96:56CD
      0000:0000:0000==>:: (::只能出现一次)
      8000::4321:0501:AB96:56CD (字母最大为F)

    2)在IPv6地址中嵌入IPv4的点分十进制:
      6700:89A1:0321:206.36.45.19;

  3>IPv6地址分类(单任组)
   *1.单播地址(源地址和目的地址)(可标识一个主机或路由器接口)
   *2.任播地址(目的地址)(某)(该任播地址标识的 某个主机 可收到该IP数据报)
   *3.组播地址(目的地址)(都)(该组播地址标识的 所有主机 都能收到该IP数据报)

  4>IPv4到IPv6的迁移方法(选择、填空)
    1)双协议栈: 网络结点同时具备发送IPv4 与 IPv6 数据报的能力;
             IPv4 \
             IPv6--路由器1---DNS--->路由器2(使用DNS判断是IPv4还是IPv6)

    2)隧道: 很好的解决IPv6通信中经过IPv4路由器的问题,同时也不会出现信息丢失的问题
           给IPV6加一层IPv4的封装,
                 IPv6         IPv4(v6)         IPv6
          源主机-------路由器1---------->路由2--------->目的主机

(六)路由算法与路由协议
 1.路由选择算法分类
  0>路由选择:选择转发IP分组的通路的过程称为"路由选择"
    路由选择的核心是 路由选择算法;

  1>带权无向图
    将网络抽象为一个带权无向图G(N,E),N表示结点集合,E是边的集合;
    网络中的路由器抽象为图G的结点,连接两个路由器的网络链路抽象为G的边;
    例如:X,Y  网络链路的费用(比如延时)抽象为G中的权值;
             ( X )        若两个结点间有边,例如从结点X到结点Y,
         10 / \   \ 100   则从结点X到结点Y耗费的费用记作C(X,Y)=10;
           /   \30 \      若两个结点间没有边,例如结点x到结点U,
         (Y)    \ (W)     则结点X到结点U耗费的费用记作C(X,U)=∞;
        50  \  10╳ /60
             (U)--(V)
                 20
  2>路由选择算法分类
   ┌-----------+------+-----------------+---------------------------┐
   | 分类标准   |子分类|     适用算法     |         典型算法           |
   |-----------+------+-----------------+---------------------------+
   |  是否需要  | 需要 | 全局式路由选择算法| 链路状态路由选择算法(LS算法) | 全状
   |   网络的   |------+-----------------+---------------------------+
   |  完整信息  |不需要| 分布式路由选择算法| 距离向量路由选择算法(DV算法) | 分离
   |-----------+------+-----------------+---------------------------+
   |           | 静态 |     人工配置     |                           |
   |  静动状态  |------+-----------------+---------------------------+
   |           | 动态 | 变化时自动计算路径|     LS算法      DV算法     |
   |-----------+------+-----------------+---------------------------+
   |           | 敏感 |         负载敏感的路由选择算法                 |
   |  是否敏感  |------+---------------------------------------------+
   │           | 迟钝 |         负载迟钝的路由选择算法                 |
   +-----------+------+---------------------------------------------+

 2.链路状态路由选择算法(LS算法)
   链路状态路由选择算法是一种全局式路由选择算法,每个路由器在计算路由时,
   需构建整个网络拓扑图(利用Dijkstra(迪杰斯特拉算法)求最短路径)
   ┌--------+-----------------------------------------------------------+
   |  D(v)  |    到本次迭代为止,源结点(计算结点)到目的结点v的当前路径距离    |
   +--------+-----------------------------------------------------------+
   |  P(v)  | 到本次迭代为止,在源结点到目的结点v的当前路径上,结点v的 前序结点 |
   +--------+-----------------------------------------------------------+
   | C(x.y) |结点x与结点y之间直接链路的费用,若x和y之间没有链路相连,则c(x,y)=∞|
   +--------+-----------------------------------------------------------+
   |   S    |是存储从源结点到该结点已求出的最短路径的 结点集合,初值:源结点本身|
   +--------+-----------------------------------------------------------+

   例题:如下图从X结点出发,分别求 到达Y,U,V,W的最短路径;

                        结点X上的路由转发表
         ( X )       +--------+-------------+
    10  / \  \100    |  目的  |    链路      | 链路: (源结点, 目的结点(可直达)),
       /   \   W     +--------+-------------+       (源结点, 目的前驱(不直达))
     Y    30\ /|     |   y    |    (x,y)    |
       \     ╳ |60   +--------+-------------+ 路由器X上的转发表只存放 下一跳 路由器,而不是 最终路由器;
      50\ 10/ \|     |   v    |    (x,v)    |
          U----V     +--------+-------------+
            20       |   u    |    (x,v)    |
                     +--------+-------------+
                     |   w    |    (x,v)    |
                     +--------+-------------+
   +-------+-----------+------------+----------+----------+-----------+----------+
   |  循环 |      S    | 每轮选择结点 |D[y],P[y]| D[u],P[u] | D[v],P[v] |D[w],P[w] |
   +-------+-----------+------------+----------+----------+-----------+----------+
   |   0   | {x}       |     -      |  10,y    |    ∞     |   30,v    |  100,w   |
   +-------+-----------+------------+----------+----------+-----------+----------+
   |   1   | {x,y}     |     y      |          |   60,y   |   30,v    |  100,w   |
   +-------+-----------+------------+----------+----------+-----------+----------+
   |   2   | {x,v}     |     v      |          |   50,v   |           |   90,v   |
   +-------+-----------+------------+----------+----------+-----------+----------+
   |   4   | {x,v,u}   |     u      |          |          |           |   60,u   |
   +-------+-----------+------------+----------+----------+-----------+----------+
   |   5   |{x,v,u,w}  |     w      |          |          |           |          |
   +-------+-----------+------------+----------+----------+-----------+----------+
   2>如果某个结点在选择下一跳结点时,有多个结点的最短路径相同,则选择结点编号小的结点作为下一跳节点。
   3>适用情景:需要全网网络链路状态分组;
   例:结点x到 结点y和结点z的路径代价相同,且都是x到所有下一跳结点中的最短路径,则选择y为x的下一跳结点。
                          下一跳: 只关心 起点 的下一跳
               Z         +-------+-------------+------------+  利用Dijkstra最短路径算法计算
            10/ \2       |  目的 |    下一跳    |    代价    |  结点x 到网络中所有结点的最短路径,
             /   \       +-------+-------------+------------+  填写表中序号处的内容。
            y--4--t      |   s   |     w       |      6     |
         7 / \1 8/ \1    +-------+-------------+------------+            x
          /   \ / | \    |   t   |     w       |      5     |             \1
         x--3--v  2  s   +-------+-------------+------------+              w
          \   / \ | /    |   u   |     w       |      3     |               \1
          1\ /1 1\ /6    +-------+-------------+------------+                v
            w--5--u      |   v   |     w       |      2     |              1/ \1
                         +-------+-------------+------------+              y   u
                         |   w   |     w       |      1     |                   \2
                         +-------+-------------+------------+                    t
                         |   y   |     w       |      3     |                  2/ \1
                         +-------+-------------+------------+                  z   s
                         |   z   |     w       |      7     |
                         +-------+-------------+------------+
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |      S        |D[y],P[y]|D[w],P[w]|D[v],P[v]|D[u],P[u]|D[s],P[s]|D[t],P[t]|D[z],P[z]|
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x}            |   7,y   |   1,w   |   3,v   |    ∞    |    ∞    |    ∞    |    ∞    |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w}          |         |    ─    |   2,w   |   6,w   |         |         |         |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w,v}        |   3,v   |    ─    |    ─    |   3,v   |         |  10,v   |         |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w,v,u}      |   ─     |    ─    |    ─    |    ─    |   9,u   |   5,u   |         |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w,v,u,t}    |   ─     |    ─    |    ─    |    ─    |   6,t   |    ─    |   7,t   |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w,v,u,t  }  |   ─     |    ─    |    ─    |    ─    |    ─    |    ─    |   7,t   |
   +---------------+---------+---------+---------+---------+---------+---------+---------+
   |{x,w,v,u,t,z}  |   ─     |    ─    |    ─    |    ─    |    ─    |    ─    |    ─    |
   +---------------+---------+---------+---------+---------+---------+---------+---------+

 3.距离向量路由选择算法(DV算法)
  1>距离向量路由选择算法的基础是Bellman-Ford方程(简称B-F方程);
    令dx(y)表示结点x到结点y的路径的最低费用,根据B-F方程,有以下公式:
    dx(y)=min{c(x,v)+dv(y)} v∈{x的邻居}
    Y---3---Z             x到z, z到z     x到Y  Y到Z
     \     /   dx(z)=min{c(x,z)+dz(z), C(x,y)+dy(z)}
      2   7         =min(7+0, 2+3)
       \ /          =min(7, 5)
        X           =5
    所以得到结点x到结点y的最短路径是{x,y,z}

  2>网络中每个结点x,估计自己到网络中结点y的最短距离,记为Dx(y)称为结点x的距离向量;

  3>适用网络规模范围:需要在邻居路由器之间交换距离向量;
    *1.路由器分别维护自己的转发表(Dv),并收到邻居的通告;
    *2.收到通告会进行对比更新;

 4.层次化路由选择
   1>作用:实现大规模路由选择最有效、可行的解决方案

   2>自治系统(autonomous system, AS)
     互联网按组织边界、管理边界、网络技术边界或功能划分为多个自治系统,
     每个自治系统由运行 相同 路由协议和路由选择算法的路由器组成;

   3>网关路由器:每个AS存在至少一个与其他AS互连的路由器(例如:3C, 2C 1A );
     3B----3A 2B--3A   网关路由器过滤路由的规则:
       \AS3/  \AS2/    1)本地偏好值属性,这个属性由AS网络管理员来设定,具有最高偏好值的路由被选择
        3C     2c      2)若多条路由具有相同的本地偏好值,那么具有最短AS-PATH的路由将被选择;
         \     /       3)若多条路由具有相同的本地偏好值即相同长度的AS-PATH,那么具有最近NEXT-HOP的路由将被选择;
         1B---1A
          \AS1/
           1C

   4>层次化路由选择原理
     将大规模互联网的路由划分为两层:
     1.自治系统 内 路由选择: 计算到达自治系统内目的网络的路由;
     2.自治系统 间 路由选择:负责其他自治系统网络的可达性信息;(通过网关路由器转发表)
                                 ↓
   5>路由器转发表:
     由自治系统内路由选择协议和自治系统间路由选择协议 共同设置
     转发表包含的主要信息有网络地址、子网掩码、下一跳地址以及路由器接口;

 5.层次化路由选择相关协议
  1>Internet自治系统内路由选择协议称为:内部网关协议(IGP,Interior Gateway Protocol);
   1)路由信息协议(RIP,Routing Information Protocol)
     RIP:广泛使用,基于距离向量路由选择算法的IGP
     RIP报文:封装进UDP数据报
     RIP特性:
     *1.在度量路径时采用的是跳数;
     *2.RIP的费用定义在源路由和目的子网之间;
     *3.RIP被限制的网络直径不超过 15跳 的自治系统内使用;
        路由器间能收到通告,之间距离为1跳;

   2)例题
     设网络中路由器使用RIP协议,路由器B的当前路由表如表1所示,
     B收到从路由器C发来的路由信息,如表2所示,试给出路由器B更新后的路由表;

               B的路由表                       C的路由信息
     +---------+------+-----------+       +---------+------+
     | 目的网络 | 距离 | 下一跳路由 |       | 目的网络 | 距离 |
     +---------+------+-----------+       +---------+------+
     |    N1   |  7   |     A     |       |    N2   |  4   |
     +---------+------+-----------+       +---------+------+
     |    N2   |  2   |     C     |       |    N3   |  8   |
     +---------+------+-----------+       +---------+------+
     |    N6   |  8   |     F     |       |    N6   |  4   |
     +---------+------+-----------+       +---------+------+
     |    N8   |  4   |     E     |       |    N8   |  3   |
     +---------+------+-----------+       +---------+------+
     |    N9   |  4   |     F     |       |    N9   |  5   |
     +---------+------+-----------+       +---------+------+

     路由B更新后的路由表(相邻代表隔1跳)
     +---------+------+-----------+
     | 目的网络 | 距离 | 下一跳路由 |
     +---------+------+-----------+
     |    N1   |  7   |     A     |  表C中没有达到N1的信息,所以不变
     +---------+------+-----------+
     |    N2   |  5   |     C     |  B-1->C C-4->N2  =>B->N2=4+1=5
     +---------+------+-----------+
     |    N3   |  9   |     C     |  B-1->C C-8->N3  =>B->N3=1+8=9
     +---------+------+-----------+
     |    N6   |  5   |     C     |  B-1-C  C-4->N6  =>B->N6=1+4=5
     +---------+------+-----------+
     |    N8   |  4   |     E     |  B->C->N8 等于 B->E->N8 不变
     +---------+------+-----------+
     |    N9   |  4   |     F     |  B->F->N9 小于 B-C->N9  不变
     +---------+------+-----------+

   2)开放最短路径优先协议(OSPF,Open Shortest Path First)
     *1.OSPF的优点:
       #1.安全
       #2.支持多条 相同 费用路径;
       #3.支持区别化费用度量;
       #4.支持单播路由与多播路由;
       #5.分层路由;

     *2.OSPF分类
                       |
                  AS边界路由器
                    /      \ 主干区
              主干路由器     \
                /          区域边界路由器1 区域3
       区域1 区域边界路由器1    \
              /            区域边界路由器2
       区域边界路由器2
  2>Internet自治系统间路由选择协议称为:外部网关协议(EGP,Exterior Gateway Protocol);
   1)边界网关协议(BGP,Border Gateway Protocol)
     实现跨自治系统的路由信息交换,典型版本是BGP4
     BGP应用进程实现的,传输层使用TCP;
     每个AS可以通过BGP实现如下功能:
     *1.从相邻AS获取某子网的可达性信息;
     *2.向本AS内部的所有路由传播跨AS的某子网可达性信息;
     *3.基于某子网可达信息和AS路由策略,决定到达该子网的最佳路由;

   2)BGP主要有4种报文
     *1.OPEN(打开)报文: 用于与BGP对等方建立BGP会话;
     *2.UPDATE(更新)报文: 用于通告某一路由可达性信息,或撤销已有路由;
     *3.KEEPALIVE(保活)报文: 用于打开报文的确认,或周期性地证实会话的有效;
     *4.NOTIFICATION(通知)报文: 用来通告差错;
  
   3)比较重要的路由属性
     *1.AS-PATH 即AS路径,是到达前缀需要经过的AS路径,该属性包含一条路由已经通知过的AS,可预防重复通告;
     *2.NEXT-HOP 一个开始AS-PATH的路由器接口
     
  3>Internet路由选择协议
    +-----------+----------------+-----------------+
    |  协议名称  |      封装      |    适用范围      |
    +-----------+----------------+-----------------+ IGP
    |    RIP    |    UDP数据报    |   较小规模AS内  |
    +-----------+----------------+-----------------+
    |   OSPF    |    IP数据报     |   大规模AS内    |
    +-----------+----------------+-----------------+
    |    BGP    |      TCP       |      跨AS       | EGP
    +-----------+----------------+-----------------+
    

第5章 数据链路层与局域网
(一)数据链路层服务
 1.数据链路层提供的服务内容
  1)结点: 主机、路由器;
  2)链路: 网络中两个结点之间的物理通道;
  3)数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议
            (TCP协议)的硬件和软件加到链路上就构成数据链路;
  4)数据链路层: 负责通过一条链路,从一个结点向另一个物理链路直接相连
               的相邻结点,传送网络数据报,中间不经过任何其他交换结点;

  5)数据链路在物理链路之上,基于通信协议来控制数据帧传输的逻辑数据通路,

  6)实现数据链路层协议的典型硬件实体是: 网络适配器(NIC,网卡);

  7)数据链路层的传输单元是: 帧;

  8)数据链路层提供的服务(4条): 组帧、链路接入、可靠交付、差错控制
   *1.组帧(成帧)
      帧头(帧首):发送结点和接收结点的地址信息、定界字符(区分帧头);
      帧尾:用于差错检测的差错编码,定界字符(区分帧尾);01111110

                发送结点                    接收结点
                │数据报│                    │数据报│
                   ↓                           ↑
      |帧头(帧首)|数据报|帧尾|----->|帧头(帧首)|数据报|帧尾|
          加             加            减             减

   *2.链路接入
      物理链路可分为 点对点链路 和 广播链路 两大类;
      点对点链路:发送结点和接收结点独占信道;
      广播链路:通信链路多被多个结点共享;
      采用 分组存储转发 和 路由选择机制 是点对点式链路和广播式链路的重要区别之一;
      
   *3.可靠交付
      无线链路(出错率高):支持可靠数据传输;(电磁波)
      光纤,双绞线(出错率低): 不提供可靠数据传输服务;

   *4.差错控制
      数据链路层帧在物理媒介上的传播过程,可能会出现比特翻转的差错;
      误比特率:出现差错的比特数/传输比特总数;

(二)差错控制
 1.差错控制的基本方式
  1>噪声导致的传输差错
   1)随机噪声: 随机差错 或 独立差错;
   2)冲击噪声: 突发差错, 通常是连续成片的信息差错,差错之间具有相关性,差错通常集中发生
    (物理信道) 在某段信息,突发错误发生在第一位错误与最后一位错误之间的长度称为 突发长度;

  2>差错控制(4种)
    通过差错编码技术,实现对信息传输差错的检验,并基于某种机制运行差错纠正和处理;
    具体措施:(检错重发, 前向纠错, 反馈校验, 检错丢弃)
   *1.检错重发(利用差错编码)
      发送端: 待发送数据进行差错编码,然后发送;
      接收端: 利用差错编码检测数据是否出错,若出错,接收端请求发送端重发数据加以纠正;

   *2.前向纠错(FEC,Forward Error Correction)(利用纠错编码)
      发送端: 对数据进行纠错编码,然后发送;
      接收端: 收到数据,利用纠错编码进行差错检测,且纠错;
      适用: 单工链路 或 对实时性要求比较高的应用;

   *3.反馈校验
      接收端:将收到的数据 原封不动 发回发送端;
      发送端:通过 对比 接收端反馈的收据与发送的数据确认
            接收端是否正确接收已发送数据,若有不同,立即重传数据;

      优点:原理简单,易于实现,无须差错编码
      缺点: 需要相同传输能力的反向信道,传输效率低,实时性差;

   *4.检错丢弃:
      网络应用对可靠性要求不高,可采用不纠正出错数据,直接丢弃错误数据,
      适用于实时性较高的系统;

   +-------------------+-----------------+
   |  差错控制基本方法   |      特点       |
   +-------------------+-----------------+
   |      检错重发      | 重发数据加以纠正 |
   +-------------------+-----------------+
   |      前向纠正      | 检错、定位、纠正 |
   +-------------------+-----------------+
   |      反馈校验      |    数据返回     |
   +-------------------+-----------------+
   |      检错丢弃      | 实时性较高的系统 |
   +-------------------+-----------------+


 2.差错编码的基本原理
   香农信道编码定理指出:对于一个给定的有干扰信道,只要发送端以低于信道容量C
   的数据速率R发送信息,则一定存在一种编码方法,使得编码错误概率P随着码长n的
   增加而按指数下降至任意小的值;

   在待传输(或待保护)数据信息基础上,附加一定的冗余信息,该冗余信息与数据信息
   建立某种关联关系(复制一次等);将数据信息以及附加的冗余信息一同发送到接收端,
   接收端可以检测冗余信息表征的数据信息的关联关系是否存在,如果存在则没有错误,
   否则有错误;
   例如:发送端向接收端发送2位数据信息,如果不进行差错编码,则接收端可能收到:
   00、01、10、11、如果进行差错编码:增加两位冗余信息:对数据进行一次复制,
   经过差错编码后,4个码字分别为:0000,0101,1010,1111;接收端收到码字后,如果
   发生了1位差错,比如收到1011,10和11不满足复制关系,则断定出现差错,



 3.差错编码的检错与纠错能力
  1>不同差错编码的检错和纠错能力不同;
    差错编码的检错或纠错能力与 编码集 的 汉明距离 有关;
   *1.编码集: 差错编码的所有有效码字的集合;
   *2.编码集的汉明距离:编码集中任意两个码字之间汉明距离的最小值;记为ds;
      编码集{1010,0101,1111,0000}
      汉明距离:
      表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的
      汉明距离,对两个字符串进行异或运算(同假异真),其结果为1的个数即汉明距离;
      就是两个等长码字之间,对应位数不同的位数;
      例如:01011101⊕01001001 汉明距离dc=2
      编码集{1010,0101,1111,0000}
      1010⊕0101=4; 1010⊕1111=2; 1010⊕0000=2;
      0101⊕1111=2; 0101⊕0000=2; 1111⊕0000=4;
      编码集的汉明距离:ds=min{4,2,2,2,2,4}
      编码集的汉明距离: ds=2;//最小汉明距离越大,码组越具有抗干扰能力;

  2>检错编码
    对于检错编码,若编码集的汉明距离ds=r+1,则该差错编码可以检测r位的差错;
    例:发送2位数据信息,冗余信息是数据的一次复制
       编码集{0000,0101,1010,1111}
       ds=r+1=2=1+1,r=1, 因此可以检测出1位差错

  3>纠错编码
    对于纠错编码,若编码集的汉明距离ds=2r+1,则该差错编码可以纠正r为差错;
    例如:发送2位数据信息,冗余信息是数据的两次复制;
         编码集{000000,010101,101010,111111}
         ds=3=2*1+1,因此可以纠正出1位差错;

    若发生1位差错,则错码距离发生错误的有效码字的汉明距离最近,可恢复为有效码字;
    若收到码字为100010,下列码字那个为有效码字;
    100010与000000,010101,101010,111111的汉明距离分别为:
              2       5       1      4
    则有效码字为101010 , 用有效码字替换收到码字;

 4.典型的差错编码
   典型的差错编码: 奇偶校验码、循环冗余码;
   异或逻辑运算;符号:⊕ , 1⊕1=0;1⊕0=1;0⊕0=0;0⊕1=1;(同假异真)

  1>奇偶校验码
   *0.最简单的检验码,利用1位冗余信息实现差错检测,分为 奇校验码、偶校验码;
   *1.奇校验码
     1位冗余位的取值为0或1,使得编码后的码字中 1的个数 为 奇数;
     例如:数据10110111,采用奇校验码编码后的码字为:10110111|1  7个1 ;
          数据10110110,采用奇校验码编码后的码字为:10110110|0  5个1 ;

   *2.偶校验码
     1位冗余位的取值为0或1,使得编码后的码字中 1的个数 为 偶数数;
     例如:数据10110111,采用偶校验码编码后的码字为:10110111|0  6个1 ;
          数据10110110,采用偶校验码编码后的码字为:10110110|1  6个1 ;

   *3.优点:编码简单、编码效率高、开销最小的检错编码;
   *4.缺点:检错率不高;

  2>循环冗余码( CRC码,Cyclic Redundancy Check)
   *0.地位:在 数据链路层 广泛应用的差错编码;(检错码)
   *1.基本思想
      将二进制位串看成是系数为0或1的多项式的系数;
      例如: 100101有6位,写一个多项式,位串的数字就是每个多项式的系数
      +-----------+------+--------+------+-------+--------+------+
      | 多项式拆解 | X^5  |  X^4   | X^3  |  X^2  |  X^1   | X^0  |
      +-----------+------+--------+------+-------+--------+------+
      |    位串   |   1   |   0   |   0  |   1   |   0    |  1   |
      +-----------+------+--------+------+-------+--------+------+
      |    相乘   | 1*X^5 | 0*X^4 | 0*X^3 | 1*X^2 | 0*X^1 | 1*X^0|
      +-----------+------+--------+------+-------+--------+------+
      多项式:X^5+X^2+1;//任何数的0次方都为1; 第0位, 第2位 第5位为1;

   *3.编码过程:
     1)在帧的低位端加上r个0位,使该帧扩展为m+r位(相当于左移r位).对应多项式为X^rM(x);
     2)用G(x)系数对应的位串,去除(模2除法) X^rM(x)系数对应的位串,求的r为余数R;
     3)用XrM(x)系数对应的位串,减(模2减法)去余数R,结果就是完成CRC编码的帧;

   *4.方法总结:用编码多项式G(x),对为串进行CRC编码;
	  第1步: 写出多项式对应的位串,并确定有r位 (r=多项式x的最高指数幂+1, x^r);
      第2步: r-1的值是需要在待编码为串后面添加0的个数:添加(r-1)个0;
      第3步: 用得到的新的待编码位串除以多项式对应的比特串;
      第4步: 求得的 余数 添加在待编码位串后,即为CRC编码后的码;

     例:假设CRC编码采用的生成多项式G(x)=x^4+x+1,请为位串10111001进行CRC编码;
        第1步:写出多项式对应的位串
        +-----------+--------+------+-------+--------+------+
        | 多项式拆解 |  X^4   | X^3  |  X^2  |  X^1   | X^0  |
        +-----------+--------+------+-------+--------+------+
        |    位串   |   1    |   0  |   0   |   1    |  1   | (5位)
        +-----------+--------+------+-------+--------+------+
        第2步:5-1的值是需要在待编码为串后面添加0的个数:添加4个0, r=4;//x^4
              待编码位串: 10111001------101110010000

        第3步:用得到的新的待编码位串(101110010000)除以多项式对应的比特串(10011);
                        10100111
              10011√101110010000
                    10011
                      10000    模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0//无进位,无借位
                      10011    相当于异或运算;同0异1;同假异真;
                         11100
                         10011
                          11110
                          10011
                           11010
                           10011
                            1001 (最终余数)
        第4步:求得的余数(1001)添加在待编码位串后,即为CRC编码后的码: 10111001|1001

   题1.设生产多项式G(X)=X^4+X^2+X+1,求对位串100111011101进行CRC编码后的结果;
       1>将多项式转换成对应的位串:
       +-----------+--------+------+-------+--------+------+
       | 多项式拆解 |  X^4   | X^3  |  X^2  |  X^1   | X^0  |
       +-----------+--------+------+-------+--------+------+
       |    位串   |   1    |   0  |   1   |   1    |  1   | (5位)
       +-----------+--------+------+-------+--------+------+
       2>待编码位串:100111011101 补4位0得新待编码位串 1001110111010000
       3>新待编码位串/以多项式对应的比特串得余数为1100;(过程如下)
                   1010000000
         10111√1001110111010000
               10111          模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0
                 10010        相当于异或运算;同0异1;同假异真; //无进位,无借位
                 10111
                   10111
                   10111
                        10100
                        10111
                           1100
       4>待编码位串+上步余数=100111011101|1100

   *5.接收方在收到带校验和的帧后,怎样判断是否有错?
      收到的串除以多项式对应的比特串;
      余数为0,无错, 余数不为0,有错,丢弃;

   *6.优选的典型G(x)
      +----------------+----------------------------------------------------+
      |名称            | 生成多项式                                          |
      +----------------+----------------------------------------------------+
      |CRC-12          | x12+x11+x3+x2+x+1                                  |
      +----------------+----------------------------------------------------+
      |CRC-16          | x16+x15+x2+1                                       |
      +----------------+----------------------------------------------------+
      |CRC-CCITT       | x16+x12+x5+1                                       |
      +----------------+----------------------------------------------------+
      |CRC-32-IEEE802.3| x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 |
      +----------------+----------------------------------------------------+
      |CRC-64-ISO      | x64+x4+x3+x+1                                      |
      +----------------+----------------------------------------------------+

(三)多路访问控制协议
 0.数据链路层使用的信道
   1> 点对点信道,一对一通信方式,信道被双方独享;如拨号上网;
   2> 广播信道(共享介质),一对多通信方式,信道上连接的点很多,信道被结点共享; 如总线以太网, WIFI
                 ↓
      两个或两个以上结点同时传输数据: 冲突->接收失败;
                 ↓
      多路访问控制(Multiple Access Control,MAC)协议;
                 ↓
      MAC协议的根本任务: 解决信道的共享问题(填空选择);

 1.信道划分MAC协议
  0>信道划分MAC协议:利用多路复用技术实现信道共享的MAC;
     多路复用的基本思想: 将信道资源划分后,分配给不同的结点,
     各结点通信时只使用其分配到的资源,避免多结点通信时的相互干扰;

  1>频分多路复用(FDM,Frequency-division multiplexing)
     在频域内将信道带宽划分为多个子信道,将原始信号调制到对应的某个子信道的载波信号上,
     使同时传输的多路信号在整个物理信道带宽的允许范围内 波谱不重叠, 从而共用一个信道;

     信号1->
              | 信号1
              └-------------------  \
     信号2->
              |       信号2                信号1  信号2  信号3
              └-------------------   ->  └------------------- ->
     信号3->
              |              信号3
              └------------------- /
      频率/HZ       频率/HZ                   频分多路复用后
       调制前       调制后

    *1.优点:分路简单,目前模拟通信中常采用,特别是有线和微波通信;
    *2.缺点:信号之间相互干扰,即串扰;
            所需设备输入路数增大而增多;
            不提供差错检测,不便于性能监测;


  2>时分多路复用(TDM,Time-Division Multiplexing)
    在时域内将通信信道的传输信号划分为多个等长的 时隙, 每路信号占用不同的时隙,
    使多路信号合用单一的通信信道在时域上不重叠,从而实现信道共享;

   *1.同步时分多路复用(STDM,Synchronism Time-Division Multiplexing)
      按照固定顺序把时隙分配给各路信号;

   *2.异步时分多路复用(ATDM,Asynchronism Time-Division Multiplexing)
      统计时分多路复用(STDM,Statistic Time-Division Multiplexing)
      时隙和用户间没有固定的对应关系; ATM采用的就是异步时分复用方式


  3>波分多路复用(WDM,Wave Division Multiplexing)
     广泛用于光纤通信,在光纤通信中,光载波频率很高,通常用光的波长代替频率讨论;
     在光纤通信中,为了实现长距离的高速传输,通常采用 波分多路复用 和 光纤放大器;


  4>码分多路复用(CDM,Code Division Multiplexing)
     通过利用更长的 相互正交的码组 分别 编码各路原始信息 的每个码元(比如1位),
     使得编码后的信号(已调信号)在同一信道中混合传输,接收端利用码组的正交特性分离各路信号,
     从而实现信道的共享, 是一种 扩频 的通信形式;
     相互正交: 码组1:{1,0,1}
              码组2:{0,1,0}
              1×0+0×1+1×0=0

 2.随机访问MAC协议
   所有用户都可以根据自己的意愿随机地向信道发送信息,
   没有其他用户: 发送成功;
   有两个及以上用户:
   产生 冲突或碰撞,用户发送信息失败,每个用户随机退让一段时间后,再次尝试,直至成功;

  1>ALOHA协议(只说不听):
    最早的, 最基本的 无线数据通信协议;
                 ╭纯ALOHA
    ALOHA协议分类<
                 ╰时隙ALOHA
    1)纯ALOHA
     *1.工作原理:
        任何一个站点有数据发送时就可以直接发送至信道;发送数据后对信道进行侦听:
        如果收到应答信号,说明发送成功;否则说明发生冲突,等待一个随机时间重新发送,直至成功;

      *2.性能:
         G网络负载:表示在一帧的发送时间内发送的平均帧数;
         S吞吐率: 在一帧的发送时间内成功发送的平均帧数;
         网络负载率不能大于0.5;//G≤0.5

    2)时隙ALOHA
     *1.工作原理:
        把信道时间划分为离散的时隙,每个时隙为发送一帧所需的时间,每个通信站点
        只能在每个时隙开始的时刻发送帧,如果在一个时隙内发送帧出现冲突,下一个
        时隙以 概率P 重发该帧,指导帧发送成功, P不能为1 ,否则会出现 死锁;

     *2.性能:网络负载不能大于1;//G≤1

  2>载波监听多路访问协议(CSMA,Carrier Sense Multiple Access)
   *1.工作原理(先听后说)
      通过硬件装置(载波监听装置),在通信站发送数据之前,
      先监听信道上其他站点是否在发送数据,如果在发送,则暂时不发送;

   *2.分类:根据监听策略不同:非坚持CSMA; 1-坚持CSMA; P-坚持CSMA;
      1)非坚持CSMA:
        若通信站有数据发送,先侦听信道,若发现信道空闲,则立即发送数据,若发现信道忙,
        则等待一个随机时间,然后重新开始侦听信道,尝试发送数据,若发送数据时产生冲突,
        则等待一个随机时间,然后重新开始侦听信道,尝试发送数据;

      2)1-坚持CSMA:
        若信道站有数据发送,先侦听信道,若发现信道空闲,则立即发送数据,若发现信道忙,
        则继续侦听信道直至发现信道空闲,然后立即发送数据;

      3)P-坚持CSMA(适用于时隙信道(即同步划分时隙)):
        若通信站有数据发送,先侦听信道,若发现信道空闲,则以概率P在最近时隙开始时刻
        发送数据,以概率Q=1-P延迟至下一个时隙发送, 若下一个时隙仍空闲,重复此过程,
        直至数据发出或时隙被其他通信站占用,若信道忙,则等待下一个时隙,重新开始发送过程,
        若发送数据时发生冲突,则等待一个随机时间,然后重新开始发送过程;

  3>带冲突检测的载波监听多路访问协议(CSMA/CD ,CSMA/Collision Detection)(选择,综合)
    *1.工作原理(先听后说,边听边说)
       通信站点使用CSMA协议进行数据发送,在发送期间如果能检测到碰撞,立即终止发送,并发出
       一个 冲突强化信号,使所有通信站点都知道冲突的发生,发出冲突强化信号后,等待一个
       随机时间,在重复上述过程;

    *2.CSMA/CD的工作状态分为: 传输周期、竞争周期、空闲周期;
               信道有3中状态: 传输状态、竞争状态、空闲状态;

    *3.使用CSMA/CD协议实现多路访问时,通过共享信道通信的两个通信站之间相距的最远距离D,
       信号的传播速度V,数据帧长度L,以及信道信息传输速率R之间满足以下约束:
       数据帧最小长度      两通信站之间的最远距离
          ↓             ↗
        Lmin/R    ≥  2Dmax/V      => 信息传输时延≥2个信息传播时延
             ↑             ↑         (最大冲突检测时间:一个往返传播时延=>1个信号传播+1个冲突信号返回传播)
     信息传输速率  ≥ 2倍的信号传播速率

  例1:在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,数据传输速率为1Gbit/s,
     电缆中的信号传播速度是200000Km/s,若最小数据帧长度减少800bit,
     则最远的两个站点之间的距离至少需要减少多少;
     L=800bit
     V=200000Km/s
     R=1Gbit/s
     D=[(L/R)•V]/2=(800×200000000/1000000000)/2=160/2=80m

  例2.设有长度为1km,数据传输速率为10Mbps的以太网,信号传播速度为200m/μs,
      求MAC帧的最小帧长度;
      D=1×10^3 m   R=1×10^7 bit/s;
      V=200×10^6=2×10^8 m/s
      由 L/R=2D/V
      得:L/1×10^7=2×10^3/2×10^8;
         L=1×10^(-5)×10^7=100bit


 3.受控接入MAC协议
   各个用户不能随意的接入信道而必须服从一定的控制;
   分类: 集中式控制、分散式控制;

  1>集中式控制:
    系统有一个主机负责调度其他通信站接入信道.从而避免冲突;
    方法:轮询(轮叫轮询 和 传递轮询)
                  1        2  ... N-1       N
            ↙   ███  ←  ███  ←  ███   ←   ███ 传递轮询
        收       ↓↑↑      ↓↑↑     ↓↑↑       ↓↑↑
    ██<----------┘┘↑------┘┘↑-----┘┘↑-------┘↑↑轮叫轮询
    〓  -----------┘--------┘-------┘--------┘↑
   主机---------------------------------------┘
        发

  2>分散式控制(令牌技术)
    令牌是一种特殊的帧,代表了通信站使用信道的许可,在信道空闲时
    一直在信道上传输,一个通信站想要发送数据就必须首先获得 令牌;
                            ██
                         ↗  | ↖ 令牌
                       ↗    |    ↖
                     ██─────◎─────██
                       ↘环形|信道 ↗
                         ↘  | ↗
                            ██

  3>令牌环的操作过程:
    *1.网络空闲时,只有一个令牌在环路上绕行;

    *2.当一个站点要发送数据时,必须等待并获取一个令牌,将令牌的标志位置为"1",
       随后便可发送数据;(空令牌:标志位置为"0",被占用:标志位置为"1");

    *3.环路中的每个站点边转发数据,边检测数据帧中的目的地址,
       若为本站点的地址,便读取其中所携带的数据;

    *4.数据帧环绕一周返回时,发送站将其从环路撤销, 即"自生自灭";

    *5.发送站点完成数据发送后,重新产生一个令牌传至下一个站点,
       以使其它站点获得发送数据帧的许可;

  4>令牌丢失 和 数据帧无法撤销 是环网上最严重的两种错误;

(四)局域网(LAN)
 1.数据链路层 与 ARP寻址
  1>局域网(LAN):一般采用 广播 的方式,局部区域网络,覆盖面积小,网络传输 速率高,传输的 误码率低;
  2>为了使数据链路层更好的适应多种局域网标准,IEEE802委员会将局域网的数据链路层拆分为两个子层:
    *1.逻辑链路控制(Logical Link Control,LLC)子层(面向网络层, 名存实亡)
    *2.介质访问控制MAC子层;//在数据链路层子层中,与介质访问控制有关的子层;

  3>MAC地址(物理地址、局域网地址)
    MAC地址具有 唯一性,每个接口(网络适配器,NIC)对应一个MAC地址;
    *1.以太网和IEEE 802.11无线局域网,使用的MAC地址长度为 6字节,共2^48个可能的MAC地址;
       48位 的MAC地址通常采用 十六进制 表示法,每个字节表示一个十六进制,用-或:连接起来;
       例如: 00-2A-E1-76-8C-39 或 00:2A:E1:76:8C:39
       补充:十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;

    *2.MAC地址空间的分配由电器和电子工程协会(IEEE,Institute of Electrical and Electronics
       Engineers)统一管理;MAC共48位,IEEE负责分配MAC地址前24位的MAC地址块,厂商自己分配后24位;

    *3.MAC广播地址: FF-FF-FF-FF-FF-FF ;

  4>地址解析协议(ARP,Address Resolution Protocol)
    ARP是根据本网内目的主机或默认网关的 IP地址 获取其 MAC地址;(IP地址到MAC地址的映射)
    *1.ARP的基本思想:
       在每一台主机中设置专用内存区域,称为ARP高速缓存(也称为ARP表),
       存储该主机所在局域网中,其他主机和路由器的 IP地址 与 MAC地址 的映射关系;
    *2.ARP协议内容
      1)ARP查询分组是通过一个 广播帧 发送的,而ARP响应分组是通过一个标准的 单播帧 发送的;
      2)ARP是 即插即用的 , 一个ARP表是自动建立的, 他不需要系统管理员来配置; 一般存放20min;
      3)即可认为是网络层协议(IP) 也可认为是数据链路层协议(MAC);

    +--------------+-------------------+----------+
    |    IP地址    |       MAC地址      |   TTL    |
    +--------------+-------------------+----------+
    | 178.169.1.96 | 00-53-2B-49-1A-1F | 13:45:00 |
    +--------------+-------------------+----------+
    | 178.169.1.94 | 00-BD-2A-90-17-C2 | 13:52:00 |
    +--------------+-------------------+----------+

 2.以太网
  1>以太网(IEEE802.3):目前最流行的 有线局域网 技术,无连接不可靠服务;
    IEEE802.3MAC帧的起始定界符SFD字段的比特模式为:10101011

  2>以太网成功的原因(物美价廉)(4条)
   *1.以太网是 第一个 广泛部署的高速局域网;
   *2.令牌环网、FDDI(光纤分布式数据接口)、ATM(异步传输模式)比以太网更加复杂、昂贵;
   *3.以太网在 数据速率 方面比 FDDI、ATM(只参加第一层功能)毫不逊色;
   *4.以太网硬件价格极其便宜,网络造价成本低;
   *5.以太网在发送数据时,若发生冲突采用 截断二进制指数退避 算法计算推迟的随机时间;
   
  3>经典的以太网是采用 粗同轴电缆 连接的总线型 以太网(10Base-5)
   *1.数据传输速率为10Mbit/s,无连接不可靠;
   *2.相距最远主机信号往返的传播时延为51.2μs,所以以太网最短帧长为 64字节;
   *3.网段和网段之间用中继器连接,最多有4个中继器;
   *4.MAC协议采用CSMA/CD协议(带冲突检测的载波监听多路访问协议);
   *5.Base是采用的基带传输,5是可连接5个网段;
    数据传输速率为10Mbit/s, 信号往返的传播时延为51.2μs,所以以太网最短帧长为64字节;
    R=10Mbit/s, 2dp=51.2μs;
    Lmin/R=2D/V=2dp
    L=51.2•10=512bit=512/8=64字节;

  4>以太网帧结构
       6字节     6字节   2字节  46-1500字节  4字节
    | 目的地址 | 源地址 | 类型 |    数据    | CRC |
       MAC地址  MAC地址
    *1.目的地址和源地址: MAC地址;
    *2.类型:标识上层协议,例如:0x0800=IP数据报
    *3.数据:封装的上层协议的分组;
    *4.CRC:校验采用循环冗余校验;
    *5.以太网最短帧长64字节(首部+数据),18字节(首部长度),46字节(数据字段长度) ;

  5>以太网技术
  +-----------+----------------------+---------+-------------------+
  | 分类	  |       传输介质	     |传输速率  |       标准        |
  +-----------+----------------------+---------+-------------------+
  |10Base-5	  |      粗同轴电缆   	 |10Mbit/s |                   |
  +-----------+----------------------+---------+-------------------+
  |10Base-T	  |  非屏蔽双绞线(UTP)	 |10Mbit/s |     IEEE 802.3    |
  +-----------+----------------------+---------+-------------------+
  |100Base-T  |      UTP	         |100Mbit/s|     IEEE 802.3u   |
  |(快速以太网)|	                     |         |                   |
  +-----------+----------------------+---------+-------------------+
  |千兆位以太网|光纤,UTP,屏蔽双绞线(STP)|1000Mb/s |IEEE 802.3标准的扩展|
  +-----------+----------------------+---------+-------------------+
  |万兆位以太网|		                 |10Gbit/s |    IEEE 802.3ae   |
  +-----------+----------------------+---------+-------------------+


 3.交换机
  1>交换机:应用最广泛的数据链路层设备; 实现帧的转发;(实现存储-转发)

    网桥:和交换机功能类似,对数据帧实现存储-转发,
         交换机可以认为是多端口的网桥

    集线器(Hub):物理层:转发数据;

  2>以太网交换机转发和过滤
   *1.交换机的基本工作原理
      当一帧达到时,交换机首先需要决策将该帧丢弃还是转发,
      如果是转发,还必须进一步决策应该将 该帧 转发到哪个/些
      端口去,决策依据是,以 目的MAC为主键 查询内部转发表;
      转发表:通过自学算法建立起来;

   *2.以太网交换机的自学习(建立转发表)
     1)以太网交换机有4个端口,各连接一台计算机,其MAC地址分别是A,B,C,D;
     2)一开始,以太网交换机里面的转发表是空白的;
     3)A向B发送一个帧,从端口1进入交换机;
     4)交换机查询转发表,没找到往哪里转发该帧;
     5)交换机把这个帧的源MAC地址A和端口1写入交换表,完成第一次学习;
     6)除向端口1以外所有端口泛洪(广播)这个帧;
     7)C和D丢失该帧,B收下该帧;

  3>以太网交换机的优点
	1)消除冲突(*1)     //交换机可以隔离冲突域,但不能隔离广播域
    2)支持异质链路;
    3)易于进行网络管理;

    *1.冲突域:早期所有主机共享总线的一个网络范围,现在在以太网中,CSMA/CD 能检测到冲突的网络范围;


 4.虚拟局域网(VLAN,Virtual Local Area Network)
  1)虚拟局域网:是一种基于交换机(必须支持VLAN功能) 逻辑分割(或限制)
    广播域的局域网应用形式,以 软件 的方式划分和管理 局域网中的工作组,
    限制接收广播信息的主机数,不会因传播过多的广播信号而引起性能的恶化;
    端口交换(Port Switch) 帧交换(Frame Switch), 信元交换(Cell Switch)
    
  2)划分虚拟局域网的方法(3种)
   *1.基于 交换机端口 划分;
   *2.基于 MAC地址 划分;
   *3.基于 上层协议类型或地址 划分;


(五)点对点链路协议
 1.点对点协议(PPP协议,Point to Point Protocol)
  1>是全世界使用得最多的点对点链路协议,适合单个发送方和单个接收方的点对点链路;

  2>PPP主要提供3类功能
    1)成帧:确定一帧的开始和结束, 支持错误检测
          开始标志字节:01111110
          结束标志字节:01111110

       1字节       1字节      1字节    1或2字节  可变长度 2和4字节  1字节
    |   标志   |   地址    |   控制   |  协议  |  信息  | 校验和 |   标志   |
    | 01111110 | 11111111 | 00000011 |       |        |       | 01111110 |

    2)链路控制协议(LCP,Link Control Protocol)
       启动线路、检测线路、协商参数、关闭线路;

    3)网络控制协议(NCP,NetWork Control Protocol)
       协商网络层选项; 初始网络参数;

  3>PPP是面向字节的
    PPP帧的长度都是整数字节;
    遇到数据中有标志位 01111110时,使用字节填充技术
    在01111110标志位后,插入特殊的控制转义字节01111101;
    传输数据为 Byte1 01111110 Byte2
    PPP帧: Byte1 01111110  01111101 Byte2;
    控制字段是00000011     字节填充技术

 2.高级数据链路控制协议(HDLC协议,High-level Data Link Control)
  1>应用于点对点链路和点对多点链路;无站地址不分配给任何站,仅做测试;

  2>HDLC帧格式(6字节)

       1字节     1字节  1字节  ≥0字节  2字节     1字节
    | 01111110 | 地址 | 控制 | 数据 | 校验和 | 01111110 |

  3>根据控制位的不同,HDLC有3种类型的帧
    1)信息帧(I格式):传送数据;
    2)管理帧(监控帧)(S格式):差错控制,流量控制
    3)无序号帧(U格式):链路的建立,拆除
    S帧第1,2位为"10"来标志,第3,4字段为S帧类型编码 00(接收就绪),01(拒绝),10(接收未就绪),11(选择拒绝);
    
  4>HDLC协议是面向位的
    使用位填充技术;
    数据字段出现与标志字段相同的比特流   1 0 0|0 1 1 1 1 1 1 0|0 1 0 0 1 0

    发送端: 发现5个连续的1后插入0       1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0
                                                        ↑
                                     发送数据只要连续出现5个1发送端插入0
    接收端: 发现5个连续的1后删除其后的0  1 0 0 0 1 1 1 1 1   1 0 0 1 0 0 1 0
                                                        ↑
                                      接收数据只要连续出现5个1,接收端删除0

  5>HDLC中常用的操作方式:(3种)
   1)正常响应方式(Normal Responses Mode,NRM)
   2)异步响应方式(Asynchronous Response Mode,ARM)
   3)异步平衡方式(Asynchronous Balanced Mod, ABM)


第六章 物理层
(一)数据通信基础
 1.数据通信基本概念
  1)信息与消息
   *1.消息: 人类能够感知的描述; 文字/图像/声音/气味, 消息是信息的载体;
   *2.信息: 对事物状态或存在方式的不确定性表述; 消息中包含的有意义的内容;

  2)通信:在一点精确或近似地再生另一点的信息;
  3)通信系统:能够实现通信功能的各种技术、设备和方法的总体;
  4)信号:在通信系统中,传递信息需要合适的载体在传输道中传播,这个载体就是信号;
  5)数据:对客观事物的性质状态以及相互关系等进行记录的符号及其组合,(数字、文字、图像/抽象符号)
  6)信道: 信息传输的介质
  
 2.数据通信系统模型
  1>数据通信系统的构成(通信系统的一般模型):6个部分
    1.信源-->2.发送设备-->3.信道-->4.接收设备-->5.信宿
                            ↓
                        6.噪声源
                                    1  0  1  0  1  0 1  0
   1)信源:将消息转换为信号的设备;   ▁|▔|▁|▔|▁|▔|▁|▔|▁ 信源
                                              ↓
                                 ▁╱╲  ╱╲  ▁╱╲   ╱╲   ▁ 发送设备
   2)发送设备(进行编码和调制)          ╲╱  ╲╱    ╲╱   ╲╱
     将信源产生的信号进行适当变换的装置;      | ↓ |
                                           | ↓ |            信道
   3)信道:传输信号的媒介;                    | ↓ |           噪声源
                                           | ↓ |
   4)接收设备(进行译码和解调)       ▁|▔|▁|▔|▁|▔|▁|▔|▁ 接收设备
     完成发送设备的反变换                      ↓
                                    1  0  1  0  1  0 1  0   信宿
   5)信宿:信号的终点,将信号转换为功人们识别的消息;

   6)噪声源:自然界和通信设备所固有的,对通信信号产生干扰和影响的各种信号;

  2>模拟通信和数字通信
   1)模拟信号
     信号的因变量完全随连续消息的变化而变化的信号;
     ①自变量:可以是连续的,可以是离散的;
     ②因变量:一定是连续的(不可列举);

     y(t)↑
         |
         |        •     •         •        •
         |      •   •  •  •     •   •    •    •
         |    •      •      •  •      •
         •   •                •
         | •
         └---------------------------------------->
        0               模拟信号                  t

   2)数字信号
     ①自变量:离散的(可列举);
     ②因变量:离散的;
     ③离散数据是连续数据的采样;

     y(t)↑
         |
         | 1  0    1 1 0 0 1
         ├──┐     ┌─────┐     ┌───┐
         |  |     |     |     |   |
         |  |     |     |     |   |
         |  |     |     |     |   |
         └--┘-----└-----┘-----└---┘---------->
        0             数字信号                t

  3>数据通信方式
   1)数据传输方向:单向通信(单工)、双向交替通信(半双工)和双向同时通信(全双工);
   2)数据传输时空顺序:并行通信和串行通信;
                      1
             并行通信  0
                      0
     |1|0|0|1|        1

             串行通信 1001

   3)数据同步技术
     异步通信:发送 字符, 不需建立同步时钟,实现简单,适用低速网络;
     同步通信:发送 数据块, 双方建立同步时钟,实现复杂,适用高速网络;

   4)数据通信系统的功能
    *1.信道的利用;
    *2.接口及信号产生;
    *3.同步;
    *4.差错检测与纠正;
    *5.寻址与路由;
    *6.网络管理;
    *7.安全保证;

   5)对于数字电话、数字电视等数字通信系统,与模拟系统相比
     其传输具有 保密性好 和 抗干扰性强 两个显著的优点;

(二)物理介质
 1.导引型传输介质(有线信道)
   以导线为传输介质,信号沿导线进行传输,信号的能量集中在导线附近,
   因此传输效率高,但部署不够灵活;(架空明线, 双绞线, 同轴电缆, 光纤)

  1>架空明线
    优点:传输损耗较低;
    缺点:易受天气和外界电磁干扰;
         对外界噪声敏感;
         带宽有限;

  2>双绞线
    将两根相互绝缘的铜线并排绞合在一起,可以减少对相邻导线的电磁干扰,
    这样的一对线称为 双绞线; (STP屏蔽双绞线 和 UTP非屏蔽双绞线)

    1)屏蔽双绞线(STP):(性能好,价格高,安装工艺复杂)
      (聚氯乙烯套层(屏蔽层(绝缘体(铜线))))

    2)非屏蔽双绞线(UTP)(适用更普遍)
      (聚氯乙烯套层(绝缘体(铜线)))

    3)美国电子工业协会规定了 5种 非屏蔽双绞线(UTP)标准
      +-----------+----------+----------------------------------------+
      |  UTP分类  |  带宽/MHz |               典型应用                 |
      +-----------+----------+----------------------------------------+
      |     3	  |    16    | 低速网络,电话网络;                       |
      +-----------+----------+----------------------------------------+
      |     4	  |    20    | 10Base-T以太网                          |
      +-----------+----------+----------------------------------------+
      |     5     |   100    | 10Base-T以太网,100Base-T快速以太网       |
      +-----------+----------+----------------------------------------+
      | 5E(超5类) |   100    | 100Base-T快速以太网, 1000Base-T千兆以太网 |
      +-----------+----------+----------------------------------------+
      |     6     |   250    | 100Base-T千兆以太网, ATM网络             |
      +-----------+----------+----------------------------------------+


  3>同轴电缆
    对外界干扰具有较好的屏蔽作用,具有较好的抗电磁干扰性能,目前多用于 有线电视 网络;
    (绝缘保护外套(绝缘保护套层(绝缘层(内导体))))

  4>光纤
   1)基本原理是利用了光的 全反射 现象;
     (包层(纤芯[入射角,折射角])
       ↓           ↘
    低折射率的媒体   高折射率的媒体

   2)按光纤内光波传输模式的不同: 单模光纤;  多模光纤;

   3)光纤优点
    *1.光纤通信容量非常大,最高可达100Gbit/s
    *2.传输损耗小,中继距离长,对远距离传输特别经济;
    *3.抗雷电和电磁干扰性好;
    *4.无串音干扰,保密性好,也不易被窃听或截取数据;
    *5.体积小,重量轻;

   4)缺点: 易脆断;

 2.非导引型传输介质(无线信道)
   电磁波在自由空间的传播;
   频率越高,波长越小;
  1>根据电磁波频率、通信距离与位置的不同,电磁波的传播可以分为
  +----------------------+---------+-------------------+
  | 电磁波传播方式 		 |传输速率  |   距离地表高度     |
  +----------------------+---------+-------------------+
  | 地波传播          	 |2MHz以下 |    沿地表(WIFI)    |
  +----------------------+---------+-------------------+
  | 天波传播(电离层反射波) | 2-30MHz |  距离地表60-400Km  |
  +----------------------+---------+-------------------+
  | 视线传播(两点间无障碍) |高于30MHz|   电离层之上(卫星)  |
  +----------------------+---------+-------------------+

(三)信道与信道容量
 1.信道分类与模型
  1>信道:通信系统中连接发送端与接收端的通信设备,实现从发送端到接收端的信号传送。
   1)狭义信道:仅指信号的传输介质;
   2)广义信道:包括传输介质和通信系统中的一些变换装置;(调制信道(连续信道) 和 编码信道(离散信道))
   3)广义信道的分类与组成
   
     信源->编码器->调制器->发射设备->传输介质->接收设备->解调器->译码器->信宿;
                 |      |----------调制信道---------|       |
                 |-----------------编码信道-----------------|

    *1.编码信道:数字信号由 编码器输出端 传输到 译码器输入端 经过的部分;  输入/出信号离散  离散信道
    *2.调制信道:从 调制器的输出端 传输到 解调器的输入端 经过的部分;      输入/出信号连续  连续信道

 2.信道传输特性
   不同类型的信道对信号的影响差异较大:随参信道 和 恒参信道
   1)随机参数信道(随参信道):信号通过信道发生畸变是 时变的。
     传输特性: 大部分无线信道(依靠地波和天波传播的无线电信道)
     *1.信号的传输衰变随时间随机变化;
     *2.信号的传输时延随时间随机变化;
     *3.存在 多径 传播现象;

   2)恒定参数信道(恒参信道):信号通过信道发生畸变和 时间无关。
     传输特性: 各种有线信道和部分无线信道(微波视线传播链路、卫星链路)
     *1.对信号幅值产生 固定的 衰减;
     *2.对信号输出产生 固定的 时延;

 3.信道容量
  1>信道容量概念
   0)信道容量:信道无差错传输信息的最大平均信息速率,是用来描述或衡量 信道的传输能力;
   1)信道的宽带:指能够有效通过该信道的信号的 最大频带宽度,用码元速率(或符号速率)描述, 单位:Baud;
   2)传输速率是信道 单位时间 内传输的码元(或符号)或信息的能力用传信率(或信息速率)描述,单位bit/s;

  2>连续信道容量(调制信道)
   1)奈奎斯特理想的,无噪音的信道容量
     /**
      * C:信道容量 单位bit/s;
      * B:信道带宽,单位Hz;
      * M:进制数,信号状态数;
      */
      C=2Blog₂M; //信道容量=2(信道带宽)log₂信号状态数
      最大信号传输速率=2B;//2倍带宽(最大频带利用率)
      
     示例.利用带宽为4000Hz的无噪声信道传输二进制基带信号,求最大的数据传输速率(信道容量);
     C=2×4000log₂2=8000bps; (M=2;//二进制)

   2)香农有噪声连续信道容量
     /**
      * C:信道容量 单位bit/s;
      * B:信道带宽,单位Hz;
      * S:输入信号功率
      * N:高斯白噪音的功率
      * S/N: 信噪比;
      */
       C=Blog₂(1+S/N);// 信道容量=带宽log₂(1+信噪比)

     信噪比的单位为功率,但题目中一般给到的是分贝(dB)
     分贝和功率的换算公式:
     (S/N)dB=10log10(S/N)功率 <=>(S/N)功率=10^(dB/10)

     示例:
     已知某信道带宽为8kHz,信噪比为30dB,试求该信道的信道容量C;
     解(S/N)dB=10log10(S/N)功率;
     30=10log10(S/N)功率 简化得 3=log10(S/N)功率
     可得: S/N=1000;
     C=Blog₂(1+S/N)
      =8×10³log₂(1+1000)
      =8×10³×log₂(1001)
      ≈80kbit/s

(四)基带传输
 1.基带传输基本概念
   1>基带信号: 信源发出的没有经过调制的原始信号;
     模拟信源: 发出的原始信号是 模拟基带信号;(电话)
     数字信源: 发出的原始信号是 数字基带信号;(计算机)
     基带传输: 直接在信道传送基带信号;
     基带传输系统: 在信道中传输数字基带信号,相应的系统成为数字基带传输系统;
     数字基带传输系统结构:

     数字基带信号                                      再生数字基带信号
     ----------->信号形成器->信道->接收过滤器->抽样判决器--------------->
                              ↓           ↓    ↑
                             噪声      同步提取-┘

 2.数字基带传输编码
  1>将数据映射为脉冲信号的 信息码(5种);
   1)单极不归零码(Not Return to Zero,NRZ)
     *1.脉冲幅值要么是正电平,要么是零电平,只有一个极性; 单极
     *2.整个脉冲持续时间内,电平保持不平,且脉冲持续期结束也不要求回归零电平; 不归零
     二进制 0:零电平表示, 1:正电平表示;
     例如: 1100100111
     y(t)↑
         |
         | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
         ├───┼───┐   |   ├───┤   |   ├───┼───┼───┤
         |   |   |   |   |   |   |   |   |   |   |
         |   |   |   |   |   |   |   |   |   |   |
         └---|---|---|---└---|---|---|---|---|---|--->
        0              单极不归零码信号波形          t

   2)单极归零码(Return to Zero , RZ)
     每个正脉冲持续期的 中间时刻, 电平要由正电平回到零电平;
     二进制 0:零电平表示, 1:正电平表示;
     例如: 1100100111
     y(t)↑
         |
         |  1  |  1  |  0  |  0  |  1  |  0  |  0  |  1  |  1  |  1  |
       +E├──┐  ├──┐  |     |     ├──┐  |     |     ├──┐  ├──┐  |──┐  |
         |  |  |  |  |     |     |  |  |     |     |  |  |  |  |  |  |
         |  |  |  |  |     |     |  |  |     |     |  |  |  |  |  |  |
         └--┴--├--┴--|-----├-----├--┴--|-----|-----├--┴--├--┴--├--┴--|-->
        0                    单极归零码信号波形                        t


   3)双极不归零码
     每个正、负脉冲持续期的中间时刻,电平都要回到零电平;
     二进制 0:负电平表示, 1:正电平表示;
     例如: 1100100111
     y(t)↑
         |
         | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
       +E├───┼───┐   |   ├───┐   |   ├───┼───┼───┤
         |   |   |   |   |   |   |   |   |   |   |
         |   |   |   |   |   |   |   |   |   |   |
        0|---┴---┼---┼---┼---┼---|---┼---|---|---|---->
         |       |   |   |   |   |   |   |   |   |   t
         |       |   |   |   |   |   |   |   |   |
       -E|       └───┼───┘   └───┼───┘   |   |   |

                  双极不归零码信号波形
   4)双极归零码
     每个正、负脉冲持续期的中间时刻,电平都要回到零电平;
     二进制 0:负电平表示, 1:正电平表示;
     例如: 1100100111
     y(t)↑
         |
         |  1  |  1  |  0  |  0  |  1  |  0  |  0  |  1  |  1  |  1  |
       +E├──┐  ├──┐  |     |     ├──┐  |     |     ├──┐  ├──┐  |──┐  |
         |  |  |  |  |     |     |  |  |     |     |  |  |  |  |  |  |
         |  |  |  |  |     |     |  |  |     |     |  |  |  |  |  |  |
        0|--┴--|--┴--┼--┐--┼--┐--|--┴--┼--┐--┼--┐--┼--┴--|--┴--|--┴--|-->
         |     |     |  |  |  |  |     |  |  |  |  |     |     |     | t
         |     |     |  |  |  |  |     |  |  |  |  |     |     |     |
       -E|     |     └──┘  └──┘  |     └──┘  └──┘  |     |     |     |

                              双极不归零码信号波形


   5)差分码(相对码)
     利用电平的变化与否来表示信息;
     和前一个脉冲时间的电平比, 当前脉冲时间表示0 波形无跳变 , 表示1时, 波形有跳变
     二进制 0:相邻电平无跳变, 1:相邻电平有跳变;*.这个也要看题目给出的限制,有时候相反;
     例如:1100100111(默认初始为零电平)
     y(t)↑
         |
         | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
         ├───┤   |   |   ├───┼───┼───┤   ├───┤   |
         |   |   |   |   |   |   |   |   |   |   |
         |   |   |   |   |   |   |   |   |   |   |
         └---|---|---|---└---|---|---|---|---|---|--->
        0              差分码信号波长                t

  2>将数字基带信号的 基本码型 变换为合适传输的数字传输基带 传输码型
    AMI码; 双相码; 米勒码; CMI码; nBmB码; nBmT码;
   1)信号交替反转码(Alternative Mark Inversion , AMI码)
     用3中电平(正电平、负电平、零电平)进行编码;
     0:零电平表示;
     1与-1:交替用正电平和负电平表示;
     例如:1100100111(默认初始为零电平)
     | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
     |+1 |-1 | 0 | 0 |+1 | 0 | 0 |-1 |+1 |-1 |
     y(t)↑
         |
         |1 |1 |0 |0 |1 |0 |0 |1 |1 |1 |
       +E├──┤  |  |  ├──┐  |  |  ├──┐  |
         |  |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |  |
        0|--|--┼--┴--└--┴--┴--┼--┼--┼--|----->
         |  |  |              |  |  |  |    t
         |  |  |              |  |  |  |
       -E|  └──┘              └──┘  └──┘
               AMI(RZ)码信号波

   2)双相码(Biphase Code),又叫曼彻斯特(Manchester)码
     只有正负电平,脉冲持续时间的中间时刻都要进行 电平跳变
     1:正电平跳到负电平(1:正负);
     0:负电平跳到正电平(0:负正);
    例如:11001001(默认初始为零电平)
     y(t)↑
         |
         |  1  |  1  |  0  |  0  |  1  |  0  |  0  |  1
       +E├──┐  |──┐  |  ┌──┐  ┌──┼──┐  |  ┌──┤  ┌──┼──┐  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
        0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|----->
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |    t
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
       -E|  └──┘  └──┼──┘  └──┘  |  └──┼──┘  └──┘  |  └──┘
                            曼彻斯特信号波形

   2-1)差分双相码(差分曼彻斯特码)
     1:相邻电平有跳变 (和前一个电平的落脚点不同,前一个落脚到负,当前从正开始, 反之从负开始)
     0:相邻电平无跳变 (和前一个电平的落脚点相同,前一个落脚到负,当前从负开始, 反之从正开始)
     例如:11001001(默认初始为零电平)

     y(t)↑
         |
         |  1  |  1  |  0  |  0  |  1  |  0  |  0  |  1
       +E├──┐  ├──┐  |  ┌──┼──┐  ├──┐  |  ┌──┼──┐  ├──┐  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
        0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|----->
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |    t
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
       -E|  └──┘  └──┼──┘  |  └──┘  └──┼──┘  |  └──┘  └──┘
                            差分双相码信号波形

   3)米勒码(Miller Code): 延迟调制码
     1:正负或负正。
     11:交替编码。前面正,后面负;前面负,后面正;
     0:延续前面1的电平,正或负。脉冲期间不跳变。
     00:交替编码, 前面正,后面负;前面负,后面正;
     01:延续0的电平,正负或负正
     10: 延续前面1的电平,脉冲期间不跳变;

     1 1 00 10110 1

     y(t)↑
         |
         |  1  |  1  |  0  |  0  |  1  |  0  |  1  |  1  |  0  |  1  |
       +E├──┐  |  ┌──┼─────┤     |  ┌──┼─────┼──┐  |  ┌──┼─────┼──┐  |
         |  |  |  |  |     |     |  |  |     |  |  |  |  |     |  |  |
         |  |  |  |  |     |     |  |  |     |  |  |  |  |     |  |  |
        0|--|--|--|--|-- --|-----|--|--|-----|--|--|--|--|-----|--|--|->
         |  |  |  |  |     |     |  |  |     |  |  |  |  |     |  |  |     t
         |  |  |  |  |     |     |  |  |     |  |  |  |  |     |  |  |
       -E|  └──┼──┘  |     └─────┼──┘  |     |  └──┼──┘  |     |  └──┤
                            CMI码信号波形

   4)传号反转码(Coded Mak Inversion,CMI码)
     1:正、负,交替编码。
     0:负正。
     y(t)↑
         |  正   负   负正
         |  1 |  1 |  0  |   0 |  1 |  0  |   0 |  1 |
       +E├────┤    |  ┌──┤  ┌──┼────┤  ┌──┤  ┌──┤    |
         |    |    |  |  |  |  |    |  |  |  |  |    |
         |    |    |  |  |  |  |    |  |  |  |  |    |
        0|----|----|--|--|--|--|----|--|--|--|--|----|-------->
         |    |    |  |  |  |  |    |  |  |  |  |    |       t
         |    |    |  |  |  |  |    |  |  |  |  |    |
       -E|    └────┼──┘  └──┘  |    └──┘  └──┘  └────┘
                            CMI码信号波形

  例题:下图为曼彻斯特编码和差分曼城斯特编码的脉冲波形,试给出对应的比特串
       (假定差分曼彻斯特编码的初始信号为高电平) //表示初始值 停在 +E
       
     y(t)↑  1:正电平跳到负电平(1:正负);  0:负电平跳到正电平(0:负正);
         |
         |  0  |  1  |  1  |  0  |  0  |  0  |  1  |  1  |
       +E|  ┌──┼──┐  ┌──┐  |  ┌──┐  ┌──┐  ┌──┼──┐  ┌──┐  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
        0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|-->
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | t
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
       -E└──┘  |  └──┘  └──┼──┘  └──┘  └──┘  |  └──┘  └──┘
                            曼彻斯特信号波形

     y(t)↑ 当前电平起点和前一个电平的落脚点相比,不同电平为1, 相同为0;
         |
         |  1  |  0  |  1  |  0  |  0  |  1  |  0  |  1  |
       +E|  ┌──┼──┐  ┌──┐  |  ┌──┼──┐  ┌──┐  |  ┌──┐  ┌──┐
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
        0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--->
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | t
         |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
       -E└──┘  |  └──┘  └──┼──┘  |  └──┘  └──┼──┘  └──┘  |
  初始信号为高电平,        差分曼彻斯特信号波形

(五)频带传输
 1.频带传输基本概念
  1>基带信号,具有低通特性(低频信号可通过),可用在低通特性的信道(有线信道)
    中进行传输;无线信道,是带通特性(对频率有要求),因此只能利用基带信号去
    调制与对应信道传输特性相匹配的载波信号;

  2>数字调制
    利用数字基带信号控制载波信号的特征参量,使载波信号的这些参量的变化
    反映数字基带信号的信息,进而将数字基带信号转为数字通带信号的过程;

  3>数字解调
    是指在 接收数据端 需将调制到载波信号中的数字基带信号卸载下来,还原为数字基带信号的过程;

  4>数字频带传输系统:实现 调制、传输 与 解调 的传输系统 ;//将慢波载到快波上

  5>数字调制系统基本结构
                          噪音                               幅值      相位
    数字基带信号             ↓          数字基带信号            ↑         ↑
    ------------>调制器--->信道-->解调器------------>     y(t)=acos(2πft+φ)
                   ↑                                                ↑
                  载波                                             频率

    幅值: 最高点到x的距离; 频率:快1; 慢0;    相位:左右平移;

  6>数字调制的基本方法:
    利用数字基带信号控制载波信号的某个(或某些)参数的变化,
    (利用0或1控制 或选择 载波的不同幅值、频率或相位);
    1)如果调制载波的幅值: 幅移键控(ASK);
    2)如果调制载波的频率: 频移键控(FSK);
    3)如果调制载波的相位: 相移键控(PSK);

 2.频带传输中三种调制方式;
  1>二进制数字调制 :数字通信系统频带传输的基本方式
   1)数字基带信号:   _|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_

   2)二进制数字调制方式:
     通过数字调制将慢波的信号特征表现在载它的快波上(3种+1个变种);
     二进制幅移键控  二进制频移键控  二进制相移键控   二进制差分相移键控
        (2ASK)        (2FSK)        (2PSK)            (2DPSK)
         福啊           频发          橡皮              2D橡皮
      高(1)矮(0)     疏(0)密(1)    x下(1) x上(0)   重叠(0)    不重叠(1)
        101001       111  0 1       /\   /\  /    /\   /\     /\  /\  /
        W_W__W       WWW\/\/W     \/  \    \/   \/  \\/  \  \/  \   \/

      +-----------------------+-------------+--------------+
      |       调制方式         |      1      |       0      | _|﹋|_|﹋|_ 数字信号
      +-----------------------+-------------+--------------+
      |  二进制幅移键控(2ASK)   |     有波形   |    无波形    | _/\  /\   _
      +------------------------+-------------+--------------+    \/  \/
      |  二进制频移键控(2FSK)   |          频率不同           |WW\/\/W
      +------------------------+----------------------------+
      |  二进制相移键控(2PSK)   |         1和0相位不同        ||  /\  /\|/\  /\
      +------------------------+----------------------------+|\/  \/  |  \/  \/
      |二进制差分相移键控(2DPSK) |      看前一个周期波形       |    /\     /\     /\  /\   /
      +------------------------+----------------------------+ \/   \ \/   \ \/  \    \/

   3)二进制数字调制性能主要体现
    *1.频带利用率: 2FSK(二进制频移键控)最低;
    *2.误码率: 2ASK(二进制幅移键控)最高; 2PSK(二进制相移键控)最低;
    *3.对信道特性的敏感性: 2ASK(二进制幅移键控)变化敏感;


  2>多进制数字调制
      _|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_|﹋|_
   1)码元: 一个固定时长的信号波形;
        一个脉冲时间(二进制码元):2¹
        两个脉冲时间(四进制码元):2²
        三个脉冲时间(八进制码元):2³

   2)码元的传输速率:单位时间内数字通信系统所传输的码元个数;

   3)数据传输速率Rb(bit/s) 与 码元传输速率RB(Baud) 以及 进制数M 间的关系为:
          Rb=RBlog₂M
     示例:若采用4进制数字调制方式使数据传输速率达到4800bit/s,求码元速率;
     4800=RBlog₂4; => 4800=2RB; 可得 RB=4800/2=2400Baud;


  3>正交幅值调制 QAM, 也称为幅值相位联合键控(APK)
   1)基本思想:二维调制技术,对载波信号的 幅值和相位 同时进行调制的联合调制技术;
   2)优点: 频带利用率高; 抗噪声能力强; 调制解调系统简单;


(六)物理层接口规程
 1.物理层主要任务
  1)在传输介质上实现 无结构比特流 的传输;
  2)规定 数据终端设备(DTE) 和 数据通信设备(DCE)之间接口的相关特性;
    DTE:Data Terminal Equipment      数据终端设备
    DCE:Data Communication Equipment 数据通信设备

 2.物理层接口特性(4个)
  1)机械特性: 指明通信实体间硬件连接口的机械特点:例如:常用的电源插头的尺寸有严格规定;
  2)电气特性: 规定了物理连接上,导线的电气连接及有关电路特性; 例如:接收器和发送器电路特性的说明;
  3)功能特性: 指明物理接口各条 信号线 的用途等; 例如:数据信号线、控制信号线;
  4)规程特性: 通信协议,指明利用接口传输比特流的全过程; 例如:事件执行顺序;


第七章 无线与移动网络
(一)无线网络
 1.无线网络基本结构
  1)无线主机
  2)无线链路
  3)基站(base station)
    蜂窝网络中的蜂窝塔(cell tower)
    IEEE 802.11无线局域网中的接入点(Access Point,AP)
  4)网络基础设施

 2.无线网络模式
  1)基础设施模式: 无线主机与基站关联;
  2)自组织网络(AD Hoc网络,特定网络):无线主机不通过基站而直接与其他无线主机通信;
    自组织网络: 由一组用户群构成,不需要基站、没有固定的路由器的移动通信模式;
    自组织网络中的每个结点都 兼有 路由器 和 主机 两种功能;

 3.无线链路与无线网络特性
  1>无线链路的特点(3条):
   1)信号强度的衰减:路径损耗(大多数无线链路为随参信道);
   2)干扰;
   3)多径传播;(出现信号反射)

  2>隐藏站现象
   1)站点A、C都向站点B发送数据;
   2)站点A、C之间有物理阻挡,双方都无法检测出对方发送的信号;
   3)站点A、C都向站点B发送数据时,发生碰撞,站点B无法正确接收任何一方的数据;

(二)移动网络
 1.移动网络基本原理
  1>原理内容(3条)
   1)从网络层的角度分析用户的移动性;
   2)移动结点的地址始终保持不变的重要性;
   3)可用的有线基础设施的支持;

  2>移动网络的术语
   1)移动结点的永久居所: 归属网络,家网;
   2)在归属网络中代表移动结点执行移动管理功能的实体: 归属管理, 家代理;
   3)移动结点当前所在非归属网络: 外部网络, 被访网络;
   4)在外部网络中帮助移动结点做移动管理功能的实体: 外部代理;
   5)通信者: 与该移动结点通信的实体;

 2.寻址
  1>移动寻址:
    当某移动结点位于一个外部网络时,所有指向此结点永久地址的流量需要导向外部网络;

  2>保持地址不变的解决办法
   1)外部网络通过向所有其他网络发通告,告诉它们盖移动结点正在它的网络中(不适用于大规模网络);
   2)将移动性功能从网络核心搬到网络边缘,由该移动结点的归属网络来实现(实际上移动网络采取的做法);
    *1.将外部代理放置在外部网络路由器上,外部代理为        归属网络               被访网络
       移动结点创造一个转交地址(Care-Of Address,COA);   永久地址:        永久地址  ▆ 转交地址:
    *2.移动结点与永久地址和COA都连接;                   127.198.6.7   127.198.6.7╱ 79.168.14.2
    *3.外部代理告诉归属代理该移动结点的COA;              ▆---------●            ●
                                                        归属代理   ╲         ╱
  3>移动结点的路由选择                                               |-互联网-|
    数据报寻址并转发的方法: 间接路由选择 和直接路由选择                      ╲
   1)移动结点的 间接 路由选择:通信者将数据报寻址到移动结点的 永久地址          ■通信者
     网络层新功能:
     *1.移动结点到外部代理的协议:注册,取消;
     *2.外部代理到归属代理的注册协议:外部代理告诉归属代理COA;
     *3.归属代理数据报封装协议: 归属代理封装原始数据报,转发;
     *4.外部代理拆封协议:从封装好的数据宝报中提取原始数据报转发;
     三角路由问题
     通信者和移动结点之间存在一条更有效的路由,发往移动结点的数据也要先发给归属代理,然后再发送到被访网络;

   2)移动结点的直接路由选择
     通信者所在网络中的通信者代理先获取移动结点的COA,通信者代理将数据报发往移动结点的COA;
     引入的两个问题
     *1.需要一个移动用户定位协议,以便通信者代理向归属代理查询获得移动结点的COA;
     *2.归属代理仅在会话开始时被通信代理询问一次COA;



(三)无线局域网 IEEE 802.11
 1.IEEE 802家族由一系列局域网(LAN)技术规范组成
   IEEE 802.11发表于1997年,是原始标准,频率:2.4GHz,支持速率2Mbit/s;
  +--------------+-------------+-------------------+
  |    标准	     | 频率范围/GHz |       数据率       |
  +--------------+-------------+-------------------+
  | IEEE 802.11b |     2.4     |  最高为 11 Mbit/s  | b11
  +--------------+-------------+-------------------+
  | IEEE 802.11a |      5      |  最高为 54 Mbit/s  | a54
  +--------------+-------------+-------------------+
  | IEEE 802.11g |     2.4     |  最高为 54 Mbit/s  | g54
  +--------------+-------------+-------------------+
  | IEEE 802.11n |    2.4/5    |  最高为 600Mbit/s  | n600
  +--------------+-------------+-------------------+

 2.共同点:
  1)都是使用相同的介质访问控制协议CSMA/CA(冲突避免)
  2)链路层帧使用相同的帧格式;
  3)都具有降低传输速率以传输更远距离的能力;
  4)都支持"基础设施模式" 和 "自组织模式" 两种模式;

 3.IEEE 802.11体系结构的基本构建:
  1)基站:接入点(Access Point,AP)
  2)基本服务集(Basic Service Set,BSS)
    BSS包含: 一个接入点,一个或多个无线站点;

 4.AP发现(无线主机怎么找到AP)
  1)被动扫描:无线主机扫描信道 和 监听信标帧;
  2)主动扫描:无线主机向其范围内的所有AP广播 探测帧;

 5.IEEE 802.11的MAC协议
  1>IEEE 802.11的MAC协议采用CSMA/CA协议
    Carrier Sense Multiple Access with Collision Avoidance
    带碰撞避免的载波监听多路访问协议;

  2>CSMA/CA协议工作原理(简答题)
    通过 请求发送(RTS)帧 和 允许发送(CTS)帧 的交换,
    实现信道预约占用,避免数据帧传送过程中的冲突;

  3>CSMA/CA协议工作步骤
   1)源站发送数据之前,先监听,若空闲,等待一个分布式帧间间隔(Distributed Inter-Frame
     Space, DIFS)的短时间后,发送一个很短的请求发送(Request To Send,RTS) 控制针;
     RTS控制帧: 源地址 目的地址, 本次通信所需的 持续时间;

   2)若目的站正确收到源站发来的RTS帧,且无力介质空闲,等待一个短帧间间隔(Short Inter-Frame
     Spacing,SIFS)时间后,发送一个很短的允许发送(Clear To Send, TCS)控制帧作为响应;
     CTS控制帧: 本次通信持续时间等;

   3)源站和目的站周围的其他站点可以监听到两者要通信,其他站点在其持续通信时间内不会发送,
     这个时间被称为网络分配向量(Network Allocation Vector, NAV);
     NAV是其他站根据监听到的RTS或CTS帧中的持续时间来确定数据帧传输的时间;

   4)源站收到CTS帧后,在等待一段时间SIFS时间后,即可发送数据帧,
     若目的站正确接收到数据帧,在等待时间SIFS后,就向源站发送确认帧(ACK);

 6.IEEE 802.11 帧类型(3种:控制帧; 数据帧; 管理帧)

 7.IEEE 802.11 数据帧结构
  1>MAC首部:共30字节
   1)帧控制:包含多个子字段:如 类型和子类型字段:用于区分RTS帧、CTS帧、ACK帧 和 数据帧;
   2)持续期:IEEE 802.11的MAC协议允许传输结点 预约信道一段时间,包括传输其
           数据帧的时间 和 传输确认帧的时间,该持续值在该帧的 持续期字段中;
   3)有4个地址字段:最特殊;
   4)序号控制: 在IEEE 802.11网络中,站点正确收到其他站点的帧后,都会发一个确认帧,确认帧可能丢失,
              发送站点会发送一个帧等多个副本,使用序号可以区分新传输的帧和以前帧的重传;

  2>帧主体:帧的数据部分,不超过2312字节;通常IEEE 802.11帧长都小于1500字节;
  3>尾部: 帧检验序列FCS,共4字节;
                              MAC首部(30字节)
        ╭------------------------^--------------------------╮         MAC尾部
   字节 2       2       6      6      6        2          6    0-2312    4
    | 帧控制 | 持续期 | 地址1 | 地址2 | 地址3 | 序号控制 | 地址4 | 帧主体 | FCS|
    ╭----^----------------------------------------------╮
   位| 2 | 2 |   4   | 1 |  1 | 1 |  1  | 1 | 1 | 1 | 1 |
     协议 类型 子类型  去往 来自 更多 重试 功率 更多    顺序
     版本  ↘  ↙      AP  AP  分片      管理 数据
             ↓用于
     区分RTS帧、CTS帧、ACK帧 和 数据帧;

    +--------+-------+--------+--------+-------+------+
    | 去往AP | 来自AP | 地址1  |  地址2 | 地址3  | 地址4 |
    +--------+-------+--------+--------+-------+------+
    |    0   |   1   |目的地址 | AP地址 | 源地址 |      |
    +--------+-------+--------+--------+-------+------+
    |    1   |   0   | AP地址 | 源地址  |目的地址|      |
    +--------+-------+--------+--------+-------+------+

(四)蜂窝网络
 0.小区(cell): 蜂窝网覆盖的区域分成的六边形的区域;
 1.蜂窝网络体系结构:
  0>蜂窝:小区的地理覆盖区域;
  1>基站系统(BSS,Base Station System)
   1)收发基站(BTS,Base Transceiver Station):负责小区内的移动站点 发送或接收信号;
   2)基站控制器(BSC):服务于收发基站,为用户分配BTS无线信道、执行寻呼,执行移动用户的切换;
   3)移动交换中心(MSC):管理5个基站控制器,在用户鉴别和账号管理以及呼叫建立和切换中起着决定作用;

 2.间接路由选择方法管理移动性
  1)归属网络维护一个归属位置注册器(Home Location Register, HLR)的数据库:
    每个用户的永久蜂窝电话号码,用户个人信息,用户当前的位置信息;
  2)被访网络维护一个访问位置注册器(Visitor Location Register,VLR)的数据库:
    为每一位当前在其服务网络的移动用户提供一个表项;

 3.通信过程
  1)通信者拨打移动用户的电话号码;
  2)归属移动交换中心收到该呼叫,查询归属位置注册器来确定 移动用户的位置及其漫游号码;
  3)漫游号码确定后,归属移动交换中心通过网络呼叫被访网络的移动交换中心,
    被访网络的移动交换中心呼叫移动用户;

 4.移动通信2G/3G/4G/5G网络
  1>第一代蜂窝移动通信(1G) 淘汰

  2>第二代蜂窝移动通信(2G)
   1)全球移动通信系统(GSM,Global System for Mobile Communication)
    *1.GSM系统是第二代移动电话系统的开端。
    *2.GSM业务可以分为承载业务、电信业务、附加业务三大类。
    *3.GSM系统采用的是FDMA(频分)和TDMA(时分)混合接入的方式。
   2)短信服务
   3)通用分组无线业务(GPRS,General Packet Radio Service)
   4)增强数据速率的 GSM 演迚技术 (EDGE,Enhanced Data Rate for GSM Evolution)

  3>第三代移动通信系统(3G)
   1)国际电信联盟(ITU)提出并研究 WCDMA(欧洲)、CDMA2000(美国)、TD-SCDMA(中国)三大技术标准;
   2)3G是采用CDMA(码分多路复用)技术的通信系统;
   3)关键技术:无线传输技术;

  4>4G/LTE
   1)3GPP组织在2004年开始长期演迚(LTE)标准化项目,在2008年9月开使LTE-Advanced项目。
   2)4G特点:高速率传输、智能化、业务多样化、无缝接入、后向兼容、经济;
   3)LTE系统:
    *1.核心网(EPC):
      #1.移动管理实体(MME):负责移动性控制;
      #2.服务网关(S-GW):负责数据分组的路由与转发;
    *2.接入网(E-UTRAN):基站(E-NodeB);

    *3.接入网中e-Node B 与 e-NodeB之间 X2的接口;
       LTE核心网与接入网之间是 S1的接口;
  5>5G
   1)5G技术目的: 构建网络社会
   2)5G特点: 超高速率传输, 超高容量、超可靠性、随时随地可接入性;

(五)移动IP网络
 1.移动IP(Mobile IP)
   因特网工程任务组(IETF,the Internet Engineering Task Force)
   允许计算机移动到外地时,任然保持其原来的IP地址;
              ╭代理发现(代理通告, 代理请求);
    移动IP标准< 向归属代理注册;
              ╰数据报的间接路由选择;

    移动代理通告扩展包含了该移动结点所需的附加信息:
    包括归属代理位(H), 注册要求为(R), 转交地址(COA)字段;

 2.代理发现
   当移动IP站点到达一个新网络时,移动结点都必须知道相应的外部代理或归属代理身份;
   代理发现的实现方式:
   1)代理通告: 代理周期性的广播一个类型字段为9(路由器发现)的ICMP报文;
   2)代理请求: 移动结点广播ICMP报文;

 3.向归属代理注册
   移动IP定义了外部代理向一个移动结点的归属代理注册或注销COA所使用的的协议;
   一旦某个移动IP结点收到一个COA,则该地址必须要向归属代理注册,这可通过
   外部代理来完成,共涉及4个步骤:
   1)当收到一个外部代理通告后,移动结点立即向外部代理发送一个移动IP注册报文;
   2)外部代理收到注册报文并记录移动结点的永久IP地址,分配一个COA;
   3)外部代理把注册请求发送给归属代理,归属代理接收注册请求并检查 真实性 和 正确性;
   4)外部代理接收注册应答,然后将其转发给移动结点;

(六)其他典型无线网络简介(WiMax 蓝牙 ZigBee)
 1.全球微波互联接入(WiMax,World Interoperability for Microwave Access)
   又名IEEE 802.16标准,宽带无线标准;

  1>WiMax优势:
   1)更远的传输距离(可达50Km),
   2)更高速的带宽接入(最高300Mbit/s);

  2>WiMax劣势:
   1)不支持用户在移动过程中无缝切换;
   2)产业基础薄弱;
   3)和传统的蜂窝网络无法完全兼容;

 2.蓝牙(BlueTooth)
  1)IEEE 802.15.1标准, 无线个人区局域网(WPAN)标准;
  2)工作在全球通用的2.4GHz的频段;
  3)特点: 小范围, 低功率, 低速率, 低成本运行;(一小三低)

 3.ZigBee
  1)IEEE 802.15.4标准, 第二个个人区域网络标准;
  2)特点: 低功率, 低数据速率, 低工作周期;(三低);


第八章 网络安全
(一)网络安全概述
 0>网络安全概念
   网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的 或
   恶意的原因而遭受到破坏、更改、泄漏, 系统连续可靠正常地运行,网络服务不中断;

   *相对性是指网络永远只有相对的安全,没有绝对的安全;

 1>典型的网络安全威胁
  1)报文传输: 传输过程面临窃听、插入、假冒、劫持等安全威胁;
  2)拒绝服务DoS、分布式拒绝服务DDoS(利用多个源主机协同淹没接收方);
  3)映射: 先探路, 再攻击;
  4)分组 "嗅探";(Wireshark 是一个典型的分组嗅探软件);
  5)IP欺骗;

 2>网络安全通信需要的基本属性
  1)机密性: 只有发送方 和 接收方能理解报文内容;
  2)消息完整性: 消息未被篡改, 发生篡改一定会被检测到;
  3)可访问与可用性: 对授权用户提供有效服务;
  4)身份认证: 双方确认彼此的真实身份;

(二)数据加密
 1.通信加密模型
  0>密码学包括: 密码编码学 和 密码分析学 两部分;
    密码技术是 保障信息安全的核心基础;
    密码分析学: 研究密码变化客观规律中的固有缺陷,并应用于破译密码以获取通信情报;
    密码编码学: 是指将密码变化的客观规律应用于编制密码来保守通信秘密;

  1>通信加密流程:

              密钥Ke          ━━━━━━━━━━━        密钥Kd
   明文M->加密C=E(M Ke)->密文C    信道    >密文->解密M=D(C Kd)->明文
                              ▔▔▔▔▔▔
   +-------+-------+--------+--------+--------+
   |   M   |   C   |   K    |   E    |   D    |
   +-------+-------+--------+--------+--------+
   |明文空间|密文空间|密钥空间 |加密算法| 解密算法|
   +-------+-------+--------+--------+--------+

  2>密码分类
    分类标准:密码体制的特点、出现的先后时间;
    1)传统加密方式: 替代密码; 换位密码;
    2)对称密钥加密;
    3)非对称/公开密钥加密;

 2.传统密码算法
  1>替代密码
    包括:移位加密,乘数加密,仿射密码等;
    凯撒密码是替代密码的典型应用;
    例:对明文"bob, I love you Alice", 利用k=3的凯撒密码加密,得到密文;
       a b c d e f g h i g k l m n
       o p q r s t u v w x y z
       k=3的含义就是明文的每个字母表顺序推后3位;
       bob, I love you Alice
         加密后(字母后移3位)
       ere, L oryh brx Dolfh

  2>换位密码(置换密码):列置换密码
    包括列置换密码, 周期置换密码;
   1)加密原则:
     根据一定规则重新排列明文,以便打破明文的结构特性, 只改变明文结构,不改变内容;

   2)列置换密码加密过程:
    *1.首先将明文P按密钥K的长度n进行分组,并每组一行安行排列, 即每行有n个字符;
    *2.若明文长度不是n的整数倍,则不足部分用双方约定的方式填充,如双方约定用字母"x"替代空缺处;
    *3.设最后得到的字符矩阵为Mmn,m为明文划分的行数,然后,按照密钥规定的次序将Mmn对应的列输出,即可得到密文序列C;

   示例:假设采用密钥K=nice的列置换密码,对明文"bob i love you"进行加密;求得到的密文;
    1)密钥k=nice  密钥长度:n=4;  密钥字母顺序:n(4)i(3)c(1)e(2);
    2)将明文按密钥长度分组,每组一行,按行排列;
       4 3 1 2
       b o b i 密文按数字顺序,按列输出字母
       l o v e ========================> bvu iex ooo bly
       y o u x(双方约定x为填充字母)

   示例2 key=code,密钥长度n=4,故加密过程分 4列,每列24/6=6个字母,即把密文分为4段
         每段6个字母; 密文:cunorimetknlprwpceoterip;求明文;
                       c(1)o(4)d(2)e(3)    按行输出得到明文为:
         cunori 第一列   c   o   m   p    computer network principle;
         metknl 第二列   u   t   e   r
         prwpce 第三列   n   e   t   w
         oterip 第四列   o   r   k   p
                         r   i   n  c
                         i   p   l  e

 3.对称密钥加密
                                               ╭DES
                                      ╭分组密码< AES
                                      |        ╰IDEA
                    ╭相同(对称密钥加密)<
   加密密钥和解密密钥<                  ╰序列密码(流密码),利用密钥产生密钥流对明文串分别加密的过程;
                    ╰不同(非对称密钥加密);

  1>DES加密算法(Data Encryption Standard)
   1)加密: 明文分为64位分组序列,使用56位的密钥,进行16轮加密;
   2)三重DES: 使用两个密钥,执行三次DES算法,密钥长度达到 112位;
   3)DES过时原因:密钥长度太短,利用高性能计算机可在短时间内蛮力攻击破解;

  2>AES加密算法(Advanced Encryption Standard)
   1)密钥长度:128/192/256位
   2)AES加密算法的特点
    *1.分组长度和密钥长度均可变;
    *2.循环次数允许在一定范围内根据安全要求进行修正;
    *3.安全、效率、易用、灵活;
    *4.抗线性攻击 和 抗差分攻击 的能力大大增强;
    *5.如果1秒暴力破解DES,则需要149万亿年破解AES;

   3)AES加密过程涉及4种操作: 字节替代、行位移、列混淆、轮密钥加;

  3>IDEA加密算法(International Data Encryption Algorithm)
    密钥长度:128位;

  4>对称密钥加密算法面临的一个最大的问题是 密钥分发 问题;

 4.非对称/公开密钥加密
  1>非对称密钥加密(公开密钥加密)
   1)通信双方都有两个密钥: 公钥:任何人都可以得到; 私钥:只有自己知道;
   2)典型的公开密钥加密算法: Diffie-Hellman算法 和 RSA算法;
   3)Diffie=Hellman算法: 基于数学中素数理论;
     RSA算法: 基于数论设计,安全性建立在大数分解的难度上, 应用比较广泛,安全性高;
   4)利用公开密钥加密在报文传输中,分别用接收方的公钥和接收方的私钥来加密和解密报文;

  2>非对称密钥加密过程
   Alice给Bob写信:
   1)Alice用Bob的公钥加密明文,发送;
   2)Bob收到密文后,用自己的私钥解密得到明文;
   3)加密用私钥,解密用公钥也是可以的;
     公钥KB+  私钥KB-   KB-(KB+(m))=m=KB+(KB-(m));

(三)消息完整性与数字签名
 0.报文/消息完整性(message integrity),也称报文/消息认证
  1)证明报文确实来自声称的发送方;
  2)验证报文在传输过程中没有被篡改;
  3)预防报文的时间、顺序被篡改;
  4)预防报文持有期被篡改;
  5)预防抵赖;

 1.消息完整性检测方法:用散列函数, 对报文m进行散列化;
  1>典型的散列函数
   1)MD5(Message-Digest Algorithm 5):128位散列值;
   2)SHA-1:160位散列值;

  2>散列函数的特性
   1)一般的散列函数算法公开;
   2)能够快速计算;
   3)对任意长度报文进行散列产生定长输出; MD5:128位 SHA-1:160位;
   4)对任意报文无法预知其散列值;
   5)不同报文不产生相同的散列值;
   6)单向性,抗弱碰撞性,抗强碰撞性;

 2.报文认证
  1>消息完整性检测一个重要目的:完成 报文认证 的任务;
    报文认证: 消息的接受者能够检验收到的消息是否是真实的方法;
    报文认证要完成 消息源的认证 和 消息的认证;

  2>消息完整性检测重要目的:报文认证;
    对报文m应用散列函数H,得到固定长度的散列码,称为报文摘要,记为H(m);
    报文摘要可以作为报文m的数字指纹(fingerprint);
             报文m---->H:散列函数--->H(m)
                      密码散列函数

  3>简单报文验证
    1)发送方对报文m应用散列函数H,得到固定长度的散列码,获得
      报文摘要h,将扩展报文(m,h)发送给接收方;|报文m|报文摘要h|

    2)接收方收到扩展报文后,提取报文m 和 报文摘要h, 同样对报文m
      应用散列函数H,获得新的报文摘要H(m), 将H(m) 和 H进行比较;

    3)若相同,报文认证成功,否则报文认证失败;

    *简单报文认证不足: 无法达到对消息源认证;

  4>报文认证码MAC(Message Authentication Code)
    1)发送方和接收方共享一个认证密钥s,发送方对 报文m 和 认证密钥s
      应用散列函数H得到报文认证码h,将 扩展报文(m,h) 发送给接收方;

    2)接收方收到扩展报文后,提取出报文m和报文认证码h, 对报文m 和 认证密钥s
      应用散列函数H获得新的报文认证码H(m+s),将H(m+s)与h进行比较;
                                                    |密钥s|报文m|    报文认证码h
    3)若相同,报文认证成功,否则报文认证失败;             散列化↓
                                                    新报文认证码H(m+s)
    *报文认证码MAC不足:无法保证消息在接收方没有被篡改;

 3.数字签名
  1>数字签名原理:
   在非对称密码体制中,一个主体使用自己的私钥加密消息,得到密文,密文可使用
   该主体公钥解密来恢复成原来的消息,如此生成的"密文"对该消息提供认证服务;

   应用广泛的数字签名方法主要有三种: RSA签名、DSS签名、 Hash签名等;

  2>数字签名应满足
   1)接收方能确认发送方的签名,但不能伪造;
   2)发送方发出签名的消息给接收方后,就不能再否认他所签发的消息;
   3)接收方对已收到的签名消息不能否认,即有收报认证;
   4)第三者可以确认收发双方之间的消息传送, 但不能伪造这一过程;

  3>简单的数字签名                                  私钥加密
   1)Bob利用自己的私钥对报文m加密,创建签名报文,  报文m--------->签名报文
     将扩展报文(报文、签名报文)发送给Alice;       |报文m|签名报文|

   2)Alice收到扩展报文,利用Bob的公钥解密签名报文,  报文m    签名报文
     并检验解密后的签名报文和报文m是否一致;     是否一致 \     ↓公钥解密
                                                    解密后的报文
   3)若一致,则签名报文m的一定是Bob的私钥;

  4>签名报文摘要
   1)Bob对报文m应用散列函数H生成报文摘要H(m),然后Bob通过其私钥 对 报文摘要
     进行加密生成加密的报文摘要,将扩展报文(报文,加密的报文摘要)发送给Alice;

   2)Alice收到报文m及加密的报文摘要, Alice利用Bob的公钥解密加密的报文摘要,
     并对m应用散列函数生成新的报文摘要; 报文m            加密的报文摘要
                                      ↓ 散列化  比较       ↓公钥解密
                                  新的报文摘要<-------->报文摘要
   3)若一致,则签名报文m的一定是Bob的私钥;

(四)身份认证
 0.作用:身份认证(身份鉴别)是一个实体经过计算机网络向另一个实体证明其身份的过程;

 1.基于共享对称密钥的身份认证(使用一次随机数R进行身份认证)   Alice            Bob
  1)Alice向Bob发送报文"I'm Alice"                         |----I'm Alice->|
  2)Bob选择一个 一次性随机数R,然后把这个值发送给Alice;       |<------R-------|
  3)Alice使用她与Bob共享的 对称秘密密钥 加密这个一次性随机数  |------KA-B(R)->|
    (避免重放攻击),然后把加密的一次性随机数发回给Bob;         ↓              ↓
  4)Bob解密收到的报文;                                    时间           时间

 2.基于公开密钥的身份认证
  1)Alice向Bob发送报文"I'm Alice";                           Alice            Bob
  2)Bob选择一个一次性随机数R,然后把这个值发送给Alice;            |----I'm Alice->|
  3)Alice使用她的私钥来加密R, 然后把加密的一次性随机数发回给Bob;  |<------R-------|
  4)Bob向Alice索要她的公钥;                                    |------KA-(R)-->|
  5)Alice向Bob发送自己的公钥;                                  |<--给我你的公钥-|
  6)Bob利用Alice的公钥解密收到的报文;                           ↓------KA+----->↓
                                                             时间            时间
(五)密钥分发中心与证书认证
 1.密钥分发中心
   对称密钥分发的典型解决方案:通过各方建立一个大家都信赖的密钥分发中心
   (Key Distribution Center, KDC),解决 对称密钥 安全可靠的分发;

  1>通信发起方会生成会话密钥
   1)Alice 和 Bob进行保密通信, Alice随机选择一个会话密钥, Alice           KDC             Bob
     用Alice和KDC之间长期的共享密钥加密会话密钥,发送给KDC;  |-KA-KDC(Ks,B)->|               |
                                                        |               |-KB-KDC(Ks,A)->|
   2)KDC得到后,解密获得会话密钥,以及所希望通信方Bob,       时间            时间            时间
     KDC利用其和Bob的长期共享密钥加密会话密钥,发送给Bob;           通发起方生成会话密钥

   3)Bob解密,获得会话密钥,并得知期望和自己通信的是Alice;

  2>KDC为Alice、Bob生成通信的会话密钥
   1)Alice在希望和Bob通信时,首先向KDC发送请求消息,        Alice            KDC            Bob
   2)KDC收到消息后,随机选择一个会话密钥,并将会话密钥分别用   |-请求与Bob通信->|               |
     和Alice、Bob的长期共享密钥加密,再分别发送给ALice、Bob; |<-KA-KDC(Ks,B)-|-KB-KDC(Ks,A)->|
   3)Alice、Bob收到KDC的密文后,分别解密,获得会话密钥;     时间            时间             时间
                                                                由KDC生成通信的会话密钥

 2.证书认证机构
  1>证书认证机构用途
    要使公钥密码有效,需要证实你拥有的公钥,实际上就是要与你通信的实体公钥;
    将公钥与特定的实体绑定,通常由认证中心(Certification Authority,CA)完成;

  2>认证中心(CA)的作用:
   1)CA可以证实一个实体的真实身份;
   2)一旦CA验证了某个实体的身份,CA会生成一个把其身份和实体的公钥绑定起来的证书,
     其中包含该实体的公钥及其全局唯一的身份识别信息等,并由CA对证书进行数字签名;
     Bob获取个人数字证书(如图)↓

     Bob的公钥K+B---->数字签名--->由CA签发的Bob的公钥证书
            ↖         (加密)
                ↖       ↑         _
                    ↖   |CA的私钥KCA
     Bob的识别信息---->认证中心(CA)

(六)防火墙与入侵检测系统
 1.防火墙基本概念
   防火墙是能够隔离组织内部网络与公共互联网,允许某些分组通过,
   而阻止其他分组进行或离开内部网络的软件、硬件或软件硬件结合的一种设施;

 2.防火墙的分类
  1)无状态分组过滤器
    典型部署在内部网络和网络边缘路由器上的防火墙,路由器逐个检查数据报,
    根据访问控制表(Access Control List,ACL)实现防火墙规则;

  2)有状态分组过滤器
    跟踪每个TCP连接建立、拆除、根据状态确定是否允许分组通过;

  3)应用网关
    应用网关实现 授权 用户通过网关访问外部网络的服务;

 3.入侵检测系统(IDS,Intrusion Detection System)
   是当观察到潜在的恶意流量时,能够产生警告的设备或系统;


(七)网络安全协议
 自顶向下介绍各层解决安全性的实例协议
 1.安全电子邮箱(应用层)
  1>电子邮件对网络安全的需求
   1)机密性
   2)完整性
   3)身份认证性
   4)抗抵赖性

  2>安全电子邮件标准:PGP标准(Pretty Good Privacy)

  3>PGP提供的服务
   1)邮件加密; 报文完整性; 数字签名;
   2)加密算法: 公钥加密算法(如RSA)、对称加密算法(如3DES)、散列算法(如SHA-1);

 2.安全套接字层SSL(传输层)
  1>SSL使用原因
   1)一般Web服务器越强大,包含安全漏洞的概率越高;
   2)Web浏览器也会遇到各种各样的安全威胁;
   3)普通Web应用的应用层数据,在传输过程中都以明文形式传输,可能受到攻击;

  2>在电子背景下,提出HTTP安全电子商务交易协议;
    在传输层之上构建一个安全层:
    安全套接字层(Secure Socket Layer,SSL)
    传输层安全(Transport Layer Security,TLS)

  3>SSL可以提供的服务
    机密性,完整性、身份认证等安全服务;

    用到的加密算法: 公开密钥加密算法, 对称密钥加密算法, MAC算法;

  4>SSL协议栈(协议的总和)
    SSL是介于TCP传输层和HTTP等应用层协议之间的一个可选层,
    大多数应用层协议直接建立在SSL协议之上,SSL是两层协议;
    +-------------+----------------+------------+
    | SSL握手协议  | SSL更改密码协议 | SSL警告协议 |
    +-------------+----------------+------------+
    |               SSL记录协议                  |
    +-------------------------------------------+
    |                  TCP                      |
    +-------------------------------------------+
    |                   IP                      |
    +-------------------------------------------+

   1)SSL握手协议:
     在握手过程中需要用到SSL握手协议、SSL更改密码协议,SSL警告协议;
     作用:协商密码组 和 建立密码组; 服务器认证与鉴别 和 客户认证与鉴别;

   2)SSL更改密码协议: 通信双方修改密码组,标志着加密策略的改变;
     +-------------------+----------------------------------------+
     |  公开密钥加密算法	 | SSL主要是用RSA,其他多种公钥加密算法也支持 |
     +-------------------+----------------------------------------+
     |  对称密钥加密算法	 |    SSL支持DES分组加密、3DES分组密码等    |
     +-------------------+----------------------------------------+
     |      MAC算法    	 |              MD5 或 SHA-1              |
     +-------------------+----------------------------------------+

   3)SSL警告协议:
     在发生出错或异常时,为对等实体传递SSL警告或终止当前连接;
     包含两个字段: 警告级别 和 警告代码;

   4)SSL记录协议:
     描述信息交换过程中的消息格式,前3个协议需要记录协议进行封装与传输;


 3.虚拟专用网VPN 和 IP安全协议IPSec(网络层)
  1>虚拟专用网VPN
    建立在公共网络上的安全通道,是用户通过公用网络建立的临时的、安全的连接
    实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对
    特定组织机构的专用网络,虚拟专用网络最重点的特点就是 虚拟;
    虚拟专用网一般指 构建在Internet上能够 自我管理 的专用网络;
    关键技术: 隧道技术(IPSec), 数据加密; 身份认证; 密钥管理; 访问控制; 网络管理;

  2>隧道:通过Internet提供的点对点的数据传输的安全通道;
         通过数据加密保证安全,数据进入隧道时,由VPN封装成IP数据报,
         通过隧道在Internet上传输;离开隧道后,进行解装,数据便不受VPN保护;

  3>IPSec体系
    IPSec是网络层使用的最广泛的安全协议,待IPSec不是一个单一的协议,
   1)主要包括的协议: 封装安全荷载协议(ESP), 认证头(AH)协议;
   2)IPSec传输模式: 传输模式 和 隧道模式
    *1.传输模式: 主机模式, IPSec数据报的发送和接收都是由 端系统完成;
    *2.隧道模式: 将IPSec的功能部署在网络边缘的路由器上,路由器之间建立安全隧道,数据报在其中封装装传输;

  4>传输模式和协议组合
   1)传输模式AH;
   2)隧道模式AH;
   3)传输模式ESP;
   4)隧道模式ESP:最广泛 和 最重要的IPSec形式; //隧道式安全荷载协议


本文标签: 计算机网络 原理 笔记