资讯详情

计算机网络原理 笔记整理

计算机网络原理

          ╭第一章 计算机网络概述           |第二章 网络应用           |第三章 传输层           |第四章 网络层  内容大纲<           |第五章 数据链路层和局域网           |第六章 物理层           |第七章 无线和移动网络           ╰第八章 网络安全基础  第一章 计算机网络概述 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.com<----------->IP地址:115.239.211.122;

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

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

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

   *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.顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名;.com结尾的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.cn/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.com/index.html”,且该URL对应的IP地址在你的计算机上没有缓存
    (hosts中没有),文件index.html引用了 8个小图像,在域名解析的过程中,无等待的一次DNS解析请求与
    响应时间记为RTTd,HTTP请求传输Web对象过程的一次往返时间记为RTTh。试给出:
     1.该URL中的域名。 域名:www.abc.com ;

     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.com
      用户邮箱名  在 邮箱服务器域名

   *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.com     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.com  //主机
   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.com
   -------------------------------------------------------------------------------------------------

   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
   

标签: dp数字输出磁致伸缩位移传感器3c12p01770位移传感器800as无线角位移传感器2485n8ac接近传感器35fg光纤传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台