计算机网络

计算机网络




第1章 绪论

在这里插入图片描述

▶ \blacktriangleright 思维导图
在这里插入图片描述


1.1 计算机网络概述

▶ \blacktriangleright 思维导图
在这里插入图片描述

▶ \blacktriangleright 计算机网络基本概念

  1. 定义:
    ∙ \bullet 是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
    ∙ \bullet 计算机网络是互连的、自治的计算机集合。
  2. 功能
    ∙ \bullet 数据通信、资源共享、分布式处理、提高可靠性、负载均衡

▶ \blacktriangleright 计算机网络组成

  1. 组成部分
    硬件:主机、链路、通讯设备(路由器、交换机)
    软件:端系统上的软件,例如:qq、微信
    协议:一系列约定规则的集合
  2. 工作方式
    ∙ \bullet 边缘部分:连接在互联网上的所有主机(端系统);
    端系统之间的两种通信方式:C/S方式、P2P方式
    例如:
    端系统:小:普通个人电脑、智能手机、网络摄像头,大:大型计算机(服务器)
    ∙ \bullet 核心部分:大量的网络和路由器,
    作用:为边缘部分服务,使众多主机之间能够互相通信并交换或共享信息(提供连通性和交换)。
  3. 功能组成
    ∙ \bullet 通信子网:实现数据通信
    ∙ \bullet 资源子网:实现数据处理/资源共享
    在这里插入图片描述

▶ \blacktriangleright 计算机网络分类

  1. 按分布范围
    广域网(交换技术)、城域网、局域网(广播技术)、区域网
  2. 按使用者
    公用网、专用网
  3. 按交换技术分
    电路交换、报文交换、分组交换
  4. 按拓扑结构分
    总线、星型、环型、网状型
  5. 按传输技术
    广播式网络、点对点网络

▶ \blacktriangleright 标准化工作
在这里插入图片描述

  1. RFC(Request For Comments)一因特网标准的形式
    ∙ \bullet 因特网草案(Internet Draft):这个阶段还不是RFC文档。
    ∙ \bullet 建议标准(Proposed Standard):从这个阶段开始成为RFC文档。
    ∙ \bullet 因特网标准(Internet Standard)
  2. 相关组织
    ∙ \bullet 国际标准化组织ISO:OSI参考模型、HDLC协议
    ∙ \bullet 国际电信联盟ITU:制定通信规则
    ∙ \bullet 国际电气电子工程师协会IEEE:学术机构、IEEE802系列标准、5G
    ∙ \bullet Internet.工程任务组IETF:负责因特网相关标准的制定


1.2 计算机网络体系结构

▶ \blacktriangleright 概念总结

  1. 网络体系结构是从功能上描述计算机网络结构。
  2. 计算机网络体系结构是计算机网络的各层及其协议的集合

1.2.1 分层结构、协议、接口、服务

▶ \blacktriangleright 分层结构基本概念

  1. 实体:
    定义:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。
  2. 协议:
    定义:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】
    ∙ \bullet 语法:规定传输数据的格式
    ∙ \bullet 语义:规定所要完成的功能 01010001111000
    ∙ \bullet 同步:规定各种操作的顺序
  3. 接口(访问服务点SAP)
    定义:上层使用下层服务的入口。
  4. 服务:
    定义:下层为相邻上层提供的功能调用。【垂直】
  5. SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
  6. PCI协议控制信息:控制协议操作的信息。
  7. PDU协议数据单元:对等层次之间传送的数据单位。
    ∙ \bullet 网络层:网络对等层通信原则,接受站点的网络层收到的IP分组必须与发送站点发送的IP分组相同,所以接受站点的网络层必须把沿途被分片的分组进行重组,还原成原来的IP分组
    ∙ \bullet 传输层:网络层的IP分组不一定按序到达,由传输层进行排序
    在这里插入图片描述

▶ \blacktriangleright 基本原则

  1. 分层的基本原则
    ∙ \bullet 各层之间相互独立,每层只实现一种相对独立的功能。
    ∙ \bullet 每层之间界面自然清晰,易于理解,相互交流尽可能少。
    ∙ \bullet 结构上可分割开。每层都采用最合适的技术来实现。
    ∙ \bullet 保持下层对上层的独立性,上层单向使用下层提供的服务。

1.2.2 OSI参考模型

▶ \blacktriangleright 参考模型
在这里插入图片描述

▶ \blacktriangleright 通信过程

  1. 图1
    在这里插入图片描述
  2. 图2
    在这里插入图片描述

▶ \blacktriangleright 各层功能与协议

  1. 应用层
    ∙ \bullet 所有能和用户交互产生网络流量的程序
    ∙ \bullet 典型应用层服务:
    文件传输(FTP)
    电子邮件(SMTP
    万维网(HTTP)N
  2. 表示层
    ∙ \bullet 用于处理在两个通信系统中交换信息的表示方式(语法和语义)
    ∙ \bullet 功能一:数据格式变换翻
    ∙ \bullet 功能二:数据加密解密
    ∙ \bullet 功能三:数据压缩和恢复
  3. 会话层
    ∙ \bullet 向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)
    ∙ \bullet 功能一:建立、管理、终止会话
    ∙ \bullet 功能二:校验点/同步点:可使会话在通信失效时,从校验点/同步点继续恢复通信,实现数据同步。
  4. 传输层
    ∙ \bullet 负责主机中两个进程的通信即端到端的通信。传输单位是报文段或用户数据报。
    ∙ \bullet 功能一:可靠传输、不可靠传输
    ∙ \bullet 功能二:差错控制
    ∙ \bullet 功能三:流量控制
    ∙ \bullet 功能四:复用分用
    复用:多个应用层进程可同时使用下面运输层的服务。
    分用:运输层把收到的信息分别交付给上面应用层中相应的进程。
  5. 网络层
    ∙ \bullet 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
    ∙ \bullet 功能一:路由选择:最佳路径
    ∙ \bullet 功能二:流量控制
    ∙ \bullet 功能三:差错控制
    ∙ \bullet 功能四:拥塞控制
  6. 数据链路层
    数据链路层在不可靠的物理介质上提供可靠的传输。其作用包括物理寻址、成帧、流量控制、差错校验、数据重发等。
    ∙ \bullet 主要任务是把网络层传下来的数据报组装成帧
    数据链路层/链路层的传输单位是帧。
    ∙ \bullet 功能一:成帧(定义帧的开始和结束)…10000
    ∙ \bullet 功能二:差错控制帧错+位错
    ∙ \bullet 功能三:流量控制
    ∙ \bullet 功能四:访问(接入)控制:控制对共享信道的访问
    在这里插入图片描述
  7. 物理层
    ∙ \bullet 主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。
    ∙ \bullet 透明传输:
    指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
    ∙ \bullet 功能一:定义接口特性
    ∙ \bullet 功能二:定义传输模式单工、半双工、双工
    ∙ \bullet 功能三:定义传输速率
    ∙ \bullet 功能四:比特同步
    ∙ \bullet 功能五:比特编码

在这里插入图片描述

在这里插入图片描述


1.2.3 TCP/IP参考模型和5层参考模型

▶ \blacktriangleright TCP/IP参考模型

  1. 分层
    在这里插入图片描述
  2. 协议簇
    ∙ \bullet 反映出互联网的一个十分重要的设计理念:
    这就是网络的核心部分越简单越好,把一切复杂的部分让网络的边缘部分去实现。

在这里插入图片描述

▶ \blacktriangleright 5层参考模型
在这里插入图片描述




------------------------------------------------------------------------

第2章 物理层

在这里插入图片描述

2.1 物理层的概念与特性

▶ \blacktriangleright 概念与特性

  1. 作用:
    ∙ \bullet 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
    ∙ \bullet 物理层主要任务:确定与传输媒体接口有关的一些特性。
    (定义标准)
  2. 特性
    ∙ \bullet 机械特性
    定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
    ∙ \bullet 电气特性
    规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
    ∙ \bullet 功能特性
    指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
    ∙ \bullet 规程特性
    (过程特性)定义各条物理线路的工作规程时序关系


2.2 数据通信的基础知识

2.2.1 数据通信基础知识

▶ \blacktriangleright 数据通信系统的模型

  1. 数据通信模型
    在这里插入图片描述

▶ \blacktriangleright 术语、通信方式、数据传输方式

  1. 术语
    ∙ \bullet 数据:传送信息的实体,通常是有意义的符号序列。
    ∙ \bullet 信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。
    数字信号:代表消息的参数取值是离散的。
    模拟信号:代表消息的参数取值是连续的。
    ∙ \bullet 信源:产生和发送数据的源头。
    ∙ \bullet 信宿:接收数据的终点。
    ∙ \bullet 信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
  2. 三种通信方式
    ∙ \bullet 单工通信:
    只有一个方向的通信而没有反方向的交互,仅需要一条信道。
    ∙ \bullet 半双工通信:
    通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。
    ∙ \bullet 全双工通信:
    通信双方可以同时发送和接受信息,也需要两条信道。
  3. 两种数据传输方式
    ∙ \bullet 串行传输:
    速度慢,费用低,适合远距离
    ∙ \bullet 并行传输:
    速度快,费用高,适合近距离

2.2.2 码元、时延 ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 码元

  1. 码元
    ∙ \bullet 定义:
    是指用一个固定时长信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
  • 1码元可以携带k比特的信息量,即:单位码元比特数k
  • 单位码元含k比特,则码元的离散值个数为 2 k 2^k 2k
  1. 比特率(数据传输率) = 波特率 ( 采样频率 ) ∗ 单位码元比特数 k 比特率(数据传输率)=波特率(采样频率)*单位码元比特数k 比特率(数据传输率)=波特率(采样频率)单位码元比特数k ★ \bigstar
    在这里插入图片描述
  • eg:一个16进制码元,有16个离散状态,用四位二进制数表示,即4bit,如0000是一个16进制码元携带4个比特的信息
    在这里插入图片描述

1.速率相关的性能指标 ★ \bigstar

▶ \blacktriangleright 波特、速率、带宽

  1. 速率定义:
    也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示
  2. 码元传输速率:
    ∙ \bullet 别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数)。
    ∙ \bullet 单位是波特(Baud)。1波特表示数字通信系统每秒传输一个码元。这里的码元可以是多进制的,也可以是二进制的,但码元速率与进制数无关。
    ∙ \bullet 1s传输多少个码元
  3. 信息传输速率:
    ∙ \bullet 别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),
    ∙ \bullet 单位是比特/秒(b/s)。
    ∙ \bullet 1s传输多少个比特
  4. 关系:
    若一个码元携带n bit的信息量,则M Baud的码元传输速率所对应的信息传输速率为 M ∗ n M*n Mn bit/s。

▶ \blacktriangleright 带宽(多义词)

  1. 带宽Max net bitrate:(理想的速率)
    表示在单位时间内从网络中的某一点到另一点所能通过的 最高数据率即:指链路上每秒所能传送上信道的比特数
    常用来表示网络的通信线路所能传输数据的能力。单位是b/s。
  2. 吞吐量:throughput
    ∙ \bullet 和带宽是很容易搞混的一个词,两者的单位都是Mbps
    ∙ \bullet 需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量) ★ \bigstar
    ∙ \bullet 如:
    因为实现受各种低效率因素的影响,所以由 一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发数据。
  3. 信道利用率=最大吞吐量÷带宽
    这个地方我也不知道为啥有两个计算公式
2.信道利用率

▶ \blacktriangleright 信道利用率

  1. 定义:
    发送方在一个发送周期内,有效地发送数据L所需要的时间t (发送时延) 占 整个发送周期T的比率。
  2. 发送周期T(总时间):
    发送周期T=发送时延+传播时延+接收时延
  3. 发送时延:
    发送时延 t = 数据长度 L ( 帧长 ) / 信道带宽 C ( 发送速率 ) 发送时延t=数据长度L(帧长)/信道带宽C(发送速率) 发送时延t=数据长度L(帧长)/信道带宽C(发送速率)
  4. 信道利用率 =传输帧的有效时间/传输帧的周期。 ★ \bigstar
    信道利用率 = t / T = ( L / C ) / T 信道利用率=t/T=(L/C)/T 信道利用率=t/T=(L/C)/T
    在这里插入图片描述
    在这里插入图片描述
  5. 最大信道利用率:帧长最小时,传输的次数最多,对应的帧序号最大最大帧序号能够满足不同帧长的需要
  6. 最大平均数据传输率(实际)=一个周期内传输的数据量 ÷ \div ÷发送周期T(总时间)

  • 12
    即求从发送一个帧接收到这个帧的确认为止的时间内最多可以发送多少数据帧。
    数据大小/帧长=帧数
    求出帧序号比特数
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 14 最大平均数据传输率(实际)=一个周期内传输的数据量 ÷ \div ÷发送周期T(总时间)
    在这里插入图片描述
  • 15
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


▶ \blacktriangleright 时延 ★ \bigstar

  1. 发送时延(主机内) ★ \bigstar
    ∙ \bullet 公式: 发送时延 = 数据长度 / 信道带宽 ( 发送速率 ) 发送时延=数据长度/信道带宽(发送速率) 发送时延=数据长度/信道带宽(发送速率)
    ∙ \bullet 高速链路:提高的是信道带宽,减小发送时延。
  2. 传播时延 ★ \bigstar
    ∙ \bullet 取决于电磁波的传播速度和链路长度
    ∙ \bullet 公式: 传播时延 = 链路长度 / 电磁波在信道上的传播速率 传播时延=链路长度/电磁波在信道上的传播速率 传播时延=链路长度/电磁波在信道上的传播速率
  3. 排队时延
    等待输出/入、链路可用
  4. 处理时延
    检错、找出口
  5. 时延带宽积(容量)
    ∙ \bullet 公式: 时延带宽积 = 传播时延 ∗ 带宽 时延带宽积=传播时延*带宽 时延带宽积=传播时延带宽
    在这里插入图片描述
  6. 往返时延RTT
    ∙ \bullet 定义:从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
    ∙ \bullet 包括
    在这里插入图片描述
  7. 利用率
    在这里插入图片描述

为什么要以码元作为传输单位呢?


2.2.3 奈氏准则(内)和香农定理(外) ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 失真

  1. 影响失真程度的因素:
    ∙ \bullet 码元传输速率
    ∙ \bullet 信号传输距离
    ∙ \bullet 噪声干扰
    ∙ \bullet 传输媒体质量
  2. 码间串扰:
    ∙ \bullet 接收端收到的信号波形失去了码元之间清晰界限的现象。
    在这里插入图片描述
    ∙ \bullet 信道带宽是信道能通过的最高频率和最低频率之差。

▶ \blacktriangleright 奈氏准则(奈奎斯特定理)

  1. 极限码元传输速:
    在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰
    ∙ \bullet 极限码元传输速率 = 2 W B a u d 极限码元传输速率= 2 W Baud 极限码元传输速率=2WBaud(W是信道带宽,单位是Hz)
  2. 极限数据传输率
    在这里插入图片描述

▶ \blacktriangleright 香农公式

  1. 信噪比
    ∙ \bullet 信噪比=信号的平均功率/噪声的平均功率,常记为S/N
    ∙ \bullet 并用分贝(dB)作为度量单位,即:
    信噪比 ( d B ) = 10 l o g 10 ( S / N ) 信噪比(dB)=10log_{10}(S/N) 信噪比(dB)=10log10(S/N)数值等价
  2. 极限数据传输率
    在这里插入图片描述

▶ \blacktriangleright 例题

  • 既给出单个码元的离散电平数,又给出信噪比 ★ \bigstar ★ \bigstar ★ \bigstar
    取Nice准则和香农定理中最小的作为最大数据传输速率
    在这里插入图片描述

  1. 例.电话系统的典型参数是信道带宽为3000Hz,信噪比为30dB,则该系统最大数据传输速率是多少?
    ∙ \bullet 已知信噪比为30dB,则S/N=1000
    ∙ \bullet 极限数据传输速率 = 3000 ∗ l o g 2 ( 1 + 1000 ) ≈ 30 k b / s 极限数据传输速率=3000*log_2{(1+1000)}\approx30kb/s 极限数据传输速率=3000log2(1+1000)30kb/s
  2. 例:二进制信号在信噪比为127:1的4kHz信道上传输,最大的数据速率可达到多少?
    ∙ \bullet Nice准则: 极限数据传输速率 = 2 ∗ 4000 ∗ l o g 2 2 = 8 k b / s 极限数据传输速率=2*4000*log_22=8kb/s 极限数据传输速率=24000log22=8kb/s
    ∙ \bullet 香农定理: 极限数据传输速率 = 4000 ∗ l o g 2 ( 1 + 127 ) = 28 k b / s 极限数据传输速率=4000*log_2{(1+127)}=28kb/s 极限数据传输速率=4000log2(1+127)=28kb/s

2.2.4 编码&调制

▶ \blacktriangleright 导图
在这里插入图片描述
在这里插入图片描述

▶ \blacktriangleright 数字数据编码为数字信号
在这里插入图片描述
在这里插入图片描述

  • 归零编码【RZ】
  • 非归零编码【NRZ】 ★ \bigstar 不含同步
  • 反向不归零编码【NRZI】保持为1
  • 曼彻斯特编码 ★ \bigstar 中间跳变
  • 差分曼彻斯特编码 ★ \bigstar 中间跳变,保持为1
  • 4B/5B编码 ★ \bigstar

▶ \blacktriangleright 数字数据调制为模拟信号

  1. 数字数据调制技术:
    在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。
  2. 调制方法
    在这里插入图片描述
  3. 采样定理
    在这里插入图片描述
    在这里插入图片描述

▶ \blacktriangleright 例题:某通信链路的波特率是1200Baud,采用4个相位,每个相位有4种振幅的QAM调制技术,则该链路的信息传输速率是多少?

  • 分析:
    4个相位,4种振幅,16种波形,对应16种码元,需要4个比特位
    信息传输速率(1s传输多少个比特)
  • 答:
    信息传输速率=1200*4=4800b/s


2.3 物理层传输介质

▶ \blacktriangleright 传输介质

  1. 分类
    导向性传输介质
    非导向性传输介质
    在这里插入图片描述

2.3.1 导向性传输介质

▶ \blacktriangleright 导向性传输介质
电磁波被导向沿着固体媒介(铜线/光纤)传播。

  1. 双绞线
    ∙ \bullet 是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。
    ∙ \bullet 绞合可以减少对相邻导线的电磁千扰。
  2. 同轴电缆
    ∙ \bullet 由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。
  3. 光纤通信
    ∙ \bullet 利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示。
    ∙ \bullet 而可见光的频率大约是108MHz,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
    ∙ \bullet 光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲;
    ∙ \bullet 在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。
    ∙ \bullet 光纤主要由纤芯(实心的!)和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。

2.3.2 非导向性传输介质

▶ \blacktriangleright 导向性传输介质

  1. 无线电波:
    ∙ \bullet 较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。
    ∙ \bullet 信号向所有方向传播
  2. 微波:
    ∙ \bullet 通信频率较高、频段范围宽,因此数据率很高。
    ∙ \bullet 信号固定方向传播

2.4 物理层设备

▶ \blacktriangleright 中继器

  1. 中继器的功能:
    对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。
  2. 中继器的两端:
    ∙ \bullet 两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。
    ∙ \bullet 中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。
    ∙ \bullet 两端可连相同媒体,也可连不同媒体。
    ∙ \bullet 中继器两端的网段一定要是同一个协议。(中继器不会存储转发,傻)
  3. 5-4-3规则
    ∙ \bullet 网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障。
    ∙ \bullet 在采用粗同轴电缆的10BASE5以太网规范中,互相串联的中继器的个数不能超过4个,而且用4个中继器串联的5段通信介质中只有3段可以挂接计算机,其余两段只能用作扩展通信范围的链路段,不能挂接计算机。

在这里插入图片描述

▶ \blacktriangleright 集线器(多口中继器)

  1. 集线器的功能:
    ∙ \bullet 对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。
    ∙ \bullet 不具备信号的定向传送能力,是一个共享式(广播)设备。
  2. 结构
    在这里插入图片描述



------------------------------------------------------------------------

第3章 数据链路层

3.1 数据链路层功能概述

3.1.1 基本概念

▶ \blacktriangleright 基本概念

  1. 基本名词概念
    ∙ \bullet 结点:主机、路由器
    ∙ \bullet 链路:
    网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
    ∙ \bullet 数据链路:
    网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
    即:把实现协议的硬件和软件加到链路上就构成了数据链路;
    即:物理链路加上必要的通信协议。
    ∙ \bullet 帧:
    链路层的协议数据单元,封装网络层数据报。
  2. 数据链路层
    ∙ \bullet 定义:
    负责通过一条物理链路直接相连,从一个结点向另一个相邻结点传送数据报。
    ∙ \bullet 主要作用:
    加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
  3. 数据链路层功能
    ∙ \bullet 为网络层提供服务
    无确认无连接服务,有确认无连接服务,有确认面向连接服务(有连接就一定需要确认)
    ∙ \bullet 链路管理:
    即连接的建立、维持、释放(用于面向连接的服务)。
    ∙ \bullet 组帧
    ∙ \bullet 流量控制:限制发送方
    ∙ \bullet 差错控制(帧错/位错)
  4. 数据链路层结构
    ∙ \bullet 上层LLC(逻辑链路控制)
    ∙ \bullet 下层的MAC(介质访问控制)
    MAC主要负责控制与连接物理层的物理介质
  5. 下层的MAC(介质访问控制)
    ∙ \bullet 在发送数据的时候
    MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据和控制信息以规定的格式发送到物理层;
    ∙ \bullet 在接收数据的时候
    MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。

在这里插入图片描述



3.2 数据链路层功能

3.2.1 封装成帧、透明传输

▶ \blacktriangleright 封装成帧、透明传输

  1. 封装成帧:
    ∙ \bullet 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
    ∙ \bullet 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
  2. 透明传输:
    透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。

▶ \blacktriangleright 组帧的四种方法

  1. 字符计数法
    帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
    在这里插入图片描述
  2. 字符(节)填充法
    ∙ \bullet 插入转义字符 ESC(16进制1B,二进制0001 1011)
    在这里插入图片描述
  3. 零比特填充法
    ∙ \bullet 发送端操作:
    扫描整个信息字段,只要连续5个1,就立即填入1个0。
    ∙ \bullet 接收端操作:
    收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
  4. 违规编码法
    ∙ \bullet 可以用“高高”,“低-低”来定界帧的起始和终止。
    在这里插入图片描述

3.2.2 差错控制

在这里插入图片描述

▶ \blacktriangleright 差错控制概念

  • 数据的传输差错是由噪声引起的
  • 通信信道的噪声可以分为两类:热噪声和冲击噪声
    ∙ \bullet 热噪声一般是信道固有的,引起的差错是随机差错,可以通过提高信噪比来降低它对数据传输的影响。
    ∙ \bullet 冲击噪声一般是由外界电磁干扰引起的,引起的差错是突发差错,它是引起传输差错的主要原因,无法通过提高信噪比来避免。通常利用编码技术来解决。

  1. 分类
    ∙ \bullet 位错
    【比特位出错,1变成0,0变成1。】
    ∙ \bullet 帧错
    丢失、重复、失序
  2. 无差错接收
    数据链路层发送端发送什么,接收端就收到什么。无帧被丢弃。
  3. 链路层为网络层提供服务:
    ∙ \bullet 通信质量好,有线传输链路:
    无确认无连接服务,不采用确认重传机制,不要求链路层向网络层提供可靠传输服务。(无确认无连接服务
    发送差错时,由上层处理(传输层)。
    ∙ \bullet 通信质量差的无线传输链路
    链路层协议采用确认重传机制,链路层需要向上提供可靠传输服务(有确认无连接服务,有确认面向连接服务(连接就必须确认))。
  4. 控制方式(比特错)
    ∙ \bullet 检错编码:
    奇偶校验码、循环冗余码CRC
    ∙ \bullet 纠错编码
    海明码
  5. 数据链路层:
    ∙ \bullet 在数据链路层仅仅使用循环冗余检验CRC差错检测技术
    ∙ \bullet 只能做到对帧的无差错接收,不是可靠传输。
    ∙ \bullet 接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。
    ∙ \bullet 凡是接收端数据链路层接收的帧均无差错”。

▶ \blacktriangleright 检错编码

  1. 奇偶校验码:只能检查出奇数个比特错误
    当出错个数为奇数时,将导致1的个数的奇偶发生变化,可以检测出错误,而为偶数时,1的个数的奇偶不变,故检测不出。
    在这里插入图片描述
    在这里插入图片描述
  2. 循环冗余码CRC
  3. 海明码
    ∙ \bullet “纠错”d位,需要码距为2d+1的编码方案;
    ∙ \bullet “检错”d位,则只需码距为d+1。

1.循环冗余码 ★ ★ ★ \bigstar\bigstar\bigstar ★★★

▶ \blacktriangleright 循环冗余码概念

  1. 发送端:
    ∙ \bullet 原始数据 ÷ 生成多项式 = 商 . . . 余数 ( F C S 帧检验序列 / 冗余码 ) 原始数据\div生成多项式=商...余数(FCS帧检验序列/冗余码) 原始数据÷生成多项式=...余数(FCS帧检验序列/冗余码)
    ∙ \bullet 发送数据=原始数据+余数(冗余码)
  2. 接收端:
    ∙ \bullet 接收数据 ÷ 生成多项式 = 商 . . . 余 0 接收数据\div生成多项式=商...余0 接收数据÷生成多项式=...0
    ∙ \bullet 余数为0,判定无错,就接受。

例1:要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?

  1. 计算冗余码:
    ∙ \bullet 先加0:求二进制数的阶r (最高位的阶)
    假设生成多项式G(x)的阶为r,则加r个0。
    如:10000 ⇒ 2 4 \rArr 2^4 24,阶为4
    ∙ \bullet 模2除法
    除数与被除数作商时异或运算,余数为 冗余码/FCS/CRC检验码的比特序列。
    在这里插入图片描述
  2. 发送数据
    发送数据=原始数据+余数(冗余码)
    最终发送的数据:1101011011 1110
  3. 接收端检错过程
    ∙ \bullet 把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
    ∙ \bullet 余数为0,判定这个帧没有差错,接受。
    ∙ \bullet 余数为不为0,判定这个帧有差错(无法确定到位),丢弃

2.汉明码 ★ ★ ★ \bigstar\bigstar\bigstar ★★★

▶ \blacktriangleright 汉明码概念

  1. 概念
    ∙ \bullet 汉明码采用奇偶检验
    ∙ \bullet 汉明码采用分组校验
    汉明码的分组是一种非划分方式
    ∙ \bullet 原理:
    非划分方式分组,对每一组分别做校验,校验的值排在一起,用二进制数方式表示,得到出错位
  2. 分组方式 ★ \bigstar
    ∙ \bullet 根据二进制代码中1的位置分组,重复的位置是每个小组共同校验的的数据位。
    ∙ \bullet 例:
    第一组:1(校验位)、3、5、7、9
    第二组:2(校验位)、3、6、7、10
    第三组:4(校验位)、5、6、7、12
    第四组:8(校验位)、9 、10、11、12
    在这里插入图片描述
  3. 例:
    ∙ \bullet 分成3组
    每个圆是一组,每组有1位校验位,共包括4位数据位
    ∙ \bullet 校验的值:P3、P2、P1
    ∙ \bullet 校验位为:1、2、4
    在这里插入图片描述
    ∙ \bullet 二进制数方式表示,得到出错位在这里插入图片描述

▶ \blacktriangleright 求汉明码

  1. 求需增添几位检测位
    ∙ \bullet 设欲检测代码为n位,需要增添k位检测位
    ∙ \bullet 公式: 2 k ≥ n + k + 1 2^k≥n+k+1 2kn+k+1
  2. 确定检测位的位置
    2 i ( i = 0 , 1 , 2 , 3 , … ) 2^i(i=0,1,2,3,…) 2i(i=0,1,2,3,),即:二进制的阶(1、2、4、8、16、32…)
    在这里插入图片描述
  3. 求检测位的取值
    ∙ \bullet 与该位所在的检测小组承担的奇偶校验任务有关
    ∙ \bullet 采用偶校验:
    P ( 校验位 ) ⊕ B 数据位 = 0 P(校验位)\oplus B数据位=0 P(校验位)B数据位=0
    ∙ \bullet 例如:
    第一组负责校验:1(校验位)、3、5、7、9
    C 1 ( 校验位 ) ⊕ B 3 ⊕ B 5 ⊕ B 7 ⊕ B 9 = 0 C_1(校验位)\oplus B_3\oplus B_5\oplus B_7\oplus B_9=0 C1(校验位)B3B5B7B9=0
    C 1 ( 校验位 ) = B 3 ⊕ B 5 ⊕ B 7 ⊕ B 9 C_1(校验位)= B_3\oplus B_5\oplus B_7\oplus B_9 C1(校验位)=B3B5B7B9
  4. 汉明码纠错 ★ \bigstar
    对每一组进行校验:异或运算
    组1: P 1 = C 1 ( 校验位 ) ⊕ B 3 ⊕ B 5 ⊕ B 7 ⊕ B 9 P_1=C_1(校验位)\oplus B_3\oplus B_5\oplus B_7\oplus B_9 P1=C1(校验位)B3B5B7B9

    组3: P 4 = C 4 ( 校验位 ) ⊕ B 5 ⊕ B 6 ⊕ B 7 ⊕ B 12 P_4=C_4(校验位)\oplus B_5\oplus B_6\oplus B_7\oplus B_{12} P4=C4(校验位)B5B6B7B12

    ∙ \bullet 无错
    则检测小组 P i = 0 ( i = 1 , 2 , 4 , 8 , . . . ) P_i=0(i=1,2,4,8,...) Pi=0(i=1,2,4,8,...),即 P 4 P 2 P 1 = 000 P_4P_2P_1=000 P4P2P1=000
    ∙ \bullet 有错
    则检测小组存在 P i ≠ 0 ( i = 1 , 2 , 4 , 8 , . . . ) P_i\ne0(i=1,2,4,8,...) Pi=0(i=1,2,4,8,...)
    出错位即为 P i . . . P 4 P 2 P 1 P_i...P_4P_2P_1 Pi...P4P2P1对应二进制代码的十进制值。
    例: P 4 P 2 P 1 = 110 P_4P_2P_1=110 P4P2P1=110,对应第六位出错,纠正该位即可。

▶ \blacktriangleright 已知原传输代码,求汉明码
例:求0101按“偶校验”配置的汉明码

  1. 求需增添几位检测位
    通过公式 2 k ≥ n + k + 1 2^k≥n+k+1 2kn+k+1,得k=3
  2. 通过偶检验计算检测位的值
    在这里插入图片描述
  3. 得到0101的汉明码为0100101

▶ \blacktriangleright 已知汉明码,求原传输代码
例:已知接收到的汉明码为0100111,试问要求传送的信息是什么?(按配偶原则配置)

  1. 判断是否有错,判断检测小组 P i ( i = 1 , 2 , 4 , 8 , . . . ) P_i(i=1,2,4,8,...) Pi(i=1,2,4,8,...)是否全为0。
    在这里插入图片描述
  2. 纠错
    出错位为 P i . . . P 4 P 2 P 1 P_i...P_4P_2P_1 Pi...P4P2P1对应二进制代码的十进制值。
    在这里插入图片描述


3.3 流量控制与可靠传输机制ARQ自动重传请求在这里插入图片描述

  • 滑动窗口大小为n,最多可以有n-1个帧已发送但没有确认
    滑动窗口=发送+接受

  • 连续ARQ协议:即SR和GBN

3.3.1 流量控制

▶ \blacktriangleright 流量控制概念

  1. 定义:
    较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
  2. 数据链路层的流量控制是点对点的
    数据链路层流量控制手段:接收方收不下就不回复确认。
  3. 传输层的流量控制是端到端的
    传输层流量控制手段:接收端给发送端一个窗口公告。

▶ \blacktriangleright 流量控制的方法

  1. 停止等待协议
    ∙ \bullet 每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
    ∙ \bullet 发送窗口大小=1,接收窗口大小=1;
    在这里插入图片描述
  2. 滑动窗口协议
    ∙ \bullet 后退N帧协议(GBN):
    发送窗口大小>1,接收窗口大小=1;
    ∙ \bullet 选择重传协议(SR):
    发送窗口大小>1,接收窗口大小>1;

3.3.2 停止-等待协议 ★ \bigstar ★ \bigstar ★ \bigstar 帧序号机制 ★ \bigstar ★ \bigstar

▶ \blacktriangleright 停止-等待协议

  1. 定义:
    ∙ \bullet 发送和接收窗口都为1;
    ∙ \bullet “停止等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
  2. 研究停等协议的前提
    虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
  3. 停等协议应用
    ∙ \bullet 无差错
    ∙ \bullet 有差错
    在这里插入图片描述
  4. 丢包:
    物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。(数据包即数据,在链路层叫帧,在网络层叫IP数据报或者分组,在传输层叫报文段)

▶ \blacktriangleright 停等协议–有差错 ★ \bigstar

  1. 数据帧丢失 或检测到 帧出错
    ∙ \bullet 超时计时器:
    每次发送一个帧就启动一个计时器。
    ∙ \bullet 重传时间:
    超时计时器设置的重传时间应当比帧传输的平均RTT更长一些。
  2. ACK丢失
    在这里插入图片描述
  3. ACK延迟
    在这里插入图片描述
  4. 信道利用率
    ∙ \bullet 定义:
    发送方在一个发送周期内,有效地发送数据L所需要的时间t占整个发送周期T的比率。
    ∙ \bullet 发送周期T:
    发送周期T=发送时延+传播时延+接收时延
    ∙ \bullet 发送时延:
    发送时延 t = 数据长度 L ( 帧长 ) / 信道带宽 C ( 发送速率 ) 发送时延t=数据长度L(帧长)/信道带宽C(发送速率) 发送时延t=数据长度L(帧长)/信道带宽C(发送速率)
    ∙ \bullet 信道利用率: ★ \bigstar
    信道利用率 = t / T = ( L / C ) / T 信道利用率=t/T=(L/C)/T 信道利用率=t/T=(L/C)/T
    在这里插入图片描述
  • 注意:是否忽略确定帧的传输时延数据帧长与确定帧长是否相等

▶ \blacktriangleright 例题1 ★ \bigstar ★ \bigstar

  • 例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为()。
    在这里插入图片描述

▶ \blacktriangleright 使得链路利用率>80% ,就是信道利用率 ★ \bigstar ★ \bigstar
信道利用率的分母可变,增加的传输的数据的总量,可使得信道利用率提高

  • 链路利用率:
    发送方在一个发送周期T内(通过帧长计算),有效地发送 数据L(发送周期T内发送的总数据) 所需要的时间t占整个发送周期T的比率。
  • 即:改变信道利用率中的分母,使得在发送一个数据到接受到他的确认前 (发送周期T)的过程中,持续发送帧(总数据量)
    在这里插入图片描述

▶ \blacktriangleright 使得链路利用率>80%,求出总数据量 ⇒ \rArr 帧序号数=总数据量/帧长
在这里插入图片描述

  • L>7200B
  • 在一个周期T内需要发送7.2个帧(相当于发送窗口大小W)
  • 1 ≤ W ≤ 2 n − 1 1≤W≤2^n-1 1W2n1,n=4
    开始忘记这个以为3位就能编码,但是如果使用3位编码,则发送窗口=滑动窗口,无法区别新帧和旧帧

3.3.3 选择重传协议(SR) ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 选择重传协议(Selective Repeat)

  1. 定义:
    ∙ \bullet 发送窗口大小>1,接收窗口大小>1;
    ∙ \bullet 设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧
  2. 发送方
    ∙ \bullet 上层的调用:
    从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;
    否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
    ∙ \bullet 收到了一个ACK
    如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
    ∙ \bullet 超时事件 ★ \bigstar ★ \bigstar ★ \bigstar
    每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
    在这里插入图片描述
  3. 接收方
    ∙ \bullet 来者不拒(窗口内的帧)
    SR接收方将确认一个正确接收的帧而不管其是否按序
    失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】;
    直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
    在这里插入图片描述
    ∙ \bullet 超时重传
    ACK丢失或者延迟: 如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。

▶ \blacktriangleright 运行中的SR

  1. 运行中的SR
    在这里插入图片描述
  2. 数据传输的二义性
    ∙ \bullet 原因:
    窗口长度与二进制数据位
    在这里插入图片描述
  3. 滑动窗口长度 ★ \bigstar ★ \bigstar ★ \bigstar
    采用个n比特对帧编号 2 n 2^n 2n 个滑动窗口,即帧序号大小
    ∙ \bullet 发送窗口最好等于接收窗口。(大了会溢出,小了没意义)
    ∙ \bullet W T m a x = W R m a x = 2 ( n − 1 ) W_{Tmax}=W_{Rmax}=2^{(n-1)} WTmax=WRmax=2(n1)
    在这里插入图片描述

3.3.4 后退N帧协议(GBN) ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 后退N帧协议(GBN)

  1. 定义
    ∙ \bullet 发送窗口大小>1,接收窗口大小=1;
    发送窗口:发送方维持一组连续的允许发送的帧的序号。
    接收窗口:接收方维持一组连续的允许接收帧的序号。
  2. 发送方
    ∙ \bullet 上层的调用
    上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
    ∙ \bullet 收到了一个ACK
    GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
    ∙ \bullet 超时事件
    定时器用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
  3. 接收方
    ∙ \bullet 确认:
    如果正确收到n号帧,并且按序,那么接收方为帧发送一个ACK,并将该帧中的数据部分交付给上层。
    ∙ \bullet 重传:
    其余情况都丢弃帧,并为最近按序接收的最后一个帧重新发送ACK接收方无需缓存任何失序帧,只需要维护一个信息expectedsegnum(下一个按序接收的帧序号)。
  4. 运行中的GBN
    在这里插入图片描述
  5. 滑动窗口长度
    采用个n比特对帧编号,那么发送窗口的尺寸W应满足: 1 ≤ W ≤ 2 n − 1 1≤W≤2^n-1 1W2n1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
  • 最大信道利用率问题:
    发送一个数据到接受到他的确认前,最多能发送多少个帧(数据) ⇒ \rArr 求至少用几位比特编号最小帧序号
  • 最大平均数据传输速率问题
    发送一个数据到接受到他的确认前 (发送周期T),最多能发送多少个帧(总数据量)
    最大平均数据传输速率=总数据量 ÷ \div ÷发送周期T

▶ \blacktriangleright 最大信道利用率问题:
求:最小帧序号的大小、至少用几位比特编号最小帧序号

在这里插入图片描述
在这里插入图片描述

  • 数据帧长度是不确定的,范围是128~512B,但在计算至少窗口大小时,为了保证无论数据帧长度如何变化,信道利用率都能达到最高,应以最短的帧长计算。
  • 首先计算出发送一帧的时间
    128×8/(16×103)=64ms;
  • 发送一帧到收到确认为止的总时间
    64+270×2+64=668ms;
  • 帧的最小帧序号数:帧的序号数>=帧的最小帧序号数(一个发送周期中传输的帧数)
    这段时间总共可以发送668/64=10.4帧,发送这么多帧至少需要用4位比特进行编号。
  • 信道利用率都能达到最高的目的下,提出最小帧序号数的概念;
    如果序号数小于帧的最小帧序号数,则信道利用率达不到最高

    在这里插入图片描述

▶ \blacktriangleright 最大平均数据传输速率问题
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

▶ \blacktriangleright
连续ARQ协议包括两种,后退N帧(GBN),以及选择性重传(SR)
在这里插入图片描述
在这里插入图片描述



3.4 PPP协议和HDLC协议

3.4.1 广域网

▶ \blacktriangleright 概述

  1. 广域网定义
    广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
  2. 广域网的通信子网
    主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
    在这里插入图片描述
3.4.2 PPP协议(点对点)

▶ \blacktriangleright PPP协议

  1. PPP协议的特点
    ∙ \bullet 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入
    ∙ \bullet PPP提供差错检测
    不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验),它是有连接的不可靠的传输协议,因此也不使用序号和确认机制。
    ∙ \bullet 它仅支持点对点的链路通信,不支持多点线路。
    ∙ \bullet PPP只支持全双工链路。
    ∙ \bullet PPP的两端可以运行不同的网络层协议,但仍然可使用同一个PPP进行通信。
    ∙ \bullet PPP是面向字节的(透明传输:0比特插入法、字节填充法)
    当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:
    若PPP用在异步线路(默认),则采用字符填充法;
    若PPP用在SONET/SDH等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。
  2. PPP协议的三个组成部分
    ∙ \bullet 封装IP数据报
    一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
    ∙ \bullet 链路控制协议LCP
    建立并维护数据链路连接。实现身份验证链路层与链路层得逻辑连接
    ∙ \bullet 网络控制协议NCP
    PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。链路层与网络层逻辑连接
    在这里插入图片描述
  3. PPP协议的帧格式
    ∙ \bullet 标志字段:
    帧定界符
    ∙ \bullet 地址字段、控制字段
    ∙ \bullet 协议字段
    标识信息部分是什么:IP数据报、LCP的数据、网络层控制数据
    ∙ \bullet 帧检验字段
    在这里插入图片描述

3.4.3 HDLC协议(高级数据链路控制)

▶ \blacktriangleright HDLC协议

  1. HDLC协议特点
    ∙ \bullet 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议
    ∙ \bullet 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
    ∙ \bullet 采用全双工通信
    ∙ \bullet 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
  2. 协议的帧格式
    ∙ \bullet 控制C字段:决定帧类型(无奸细)
    信息帧(I)第1位为0:用来传输数据信息,或使用捎带技术对数据进行确认;
    监督帧(S)10:用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能
    无编号帧(U)11:用于提供对链路的建立、拆除等多种控制功能。
    在这里插入图片描述

▶ \blacktriangleright PPP协议和HDLC协议对比

  1. 相同:
    ∙ \bullet HDLC、PPP都只支持全双工链路。
    ∙ \bullet 都可以实现透明传输。
    ∙ \bullet 都可以实现差错检测,但不纠正差错。
  2. 区别
    链路层和网络层基本不实现可靠传输,可靠传输都交由传输层
    在这里插入图片描述


3.5 介质访问控制

在这里插入图片描述

▶ \blacktriangleright 传输数据使用的两种链路

  1. 点对点链路
    两个相邻节点通过一个链路相连,没有第三者。
    应用:PPP协议,常用于广域网。
  2. 广播式链路
    ∙ \bullet 所有主机共享通信介质。
    ∙ \bullet 应用:
    早期的总线以太网、无线局域网,常用于局域网。
    ∙ \bullet 典型拓扑结构:
    总线型、星型(逻辑总线型)
  3. 介质访问控制
    ∙ \bullet 介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
  4. 静态划分信道
    预先分配信道,按照时间、空间、时隙、频率分配
  5. 动态划分信道
    动态媒体接入控制/多点接入
    特点:信道并非在用户通信时固定分配给用户。

▶ \blacktriangleright 比较

  1. 信道划分介质访问控制(MAC Multiple Access Control)协议:
    ∙ \bullet 基于多路复用技术划分资源。
    ∙ \bullet 网络负载重:共享信道效率高,且公平
    ∙ \bullet 网络负载轻:共享信道效率低
  2. 随机访问MAC协议:(有冲突)
    ∙ \bullet 用户根据意愿随机发送信息,发送信息时可独占信道带宽。
    ∙ \bullet 网络负载重:产生冲突开销
    ∙ \bullet 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
  3. 轮询访问MAC协议、轮流协议、轮转访问MAC协议:
    既要不产生冲突,又要发送时占全部带宽。


3.5.1 信道划分介质访问控制(MAC Multiple Access Control)

▶ \blacktriangleright 信道划分介质访问控制概念

  1. 信道划分介质访问控制:
    ∙ \bullet 基于多路复用技术划分资源。
    ∙ \bullet 将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
  2. 多路复用技术
    ∙ \bullet 原理:
    基于多路复用技术划分资源(时间、频率、码片),把划分的资源分配给各个主机或站点。
    ∙ \bullet 即:
    把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
    ∙ \bullet 具体实现:
    把一条广播信道,逻辑上分成几条用于两个书点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
    在这里插入图片描述

▶ \blacktriangleright 信道划分介质访问控制分类

  1. 频分多路复用FDM
    用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资
    源。

    在这里插入图片描述
  2. 时分多路复用TDM
    ∙ \bullet 将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
    ∙ \bullet TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。
    在这里插入图片描述
    ∙ \bullet 同步时分多路复用
    是一种静态时分复用技术,它预先分配时间片(即时隙)
    ∙ \bullet 异步时分多路复(又称统计时分复用)
    是一种动态时分复用技术,它动态地分配时间片(时隙)。
  3. 波分多路复用
    就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
  4. 码分多路复用CDM

▶ \blacktriangleright 码分多路复用CDMA 码片序列
在这里插入图片描述

  1. 例1

    在这里插入图片描述
  2. 例2
    在这里插入图片描述

3.5.2 随机访问介质访问控制 ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 随机访问介质访问控制概念

  1. 随机访问介质访问控制:
    ∙ \bullet 所有用户可随机发送信息。发送信息时占全部带宽。
  2. 协议:
    随机性导致不协调,产生冲突,需要由协议解决由不协调产生的冲突问题。
    在这里插入图片描述

ALOHA协议

▶ \blacktriangleright ALOHA协议

  1. 纯ALOHA协议
    纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。
    想发就发
  2. 时隙ALOHA协议
    ∙ \bullet 时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,
    ∙ \bullet 若发生冲突,则必须等到下一个时间片开始时刻再发送。
  3. 冲突如何检测?
    ∙ \bullet 如果发生冲突,接收方在就会检测出差错,然后不予确认
    ∙ \bullet 发送方在一定时间内收不到确认帧就判断发生冲突。
  4. 冲突如何解决?
    超时后等一随机时间再重传。
    在这里插入图片描述

CSMA

▶ \blacktriangleright CSMA协议 ★ \bigstar

  1. 载波监听多路访问协议CSMA(carrier sense multiple access)
    ∙ \bullet CS载波侦听/监听:
    每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
    ∙ \bullet MA多点接入:
    表示许多计算机以多点接入的方式连接在一根总线上。
    ∙ \bullet 协议思想:
    发送帧之前,监听信道。
  2. 1-坚持CSMA
    坚持指的是对于监听信道忙之后的坚持。
    ∙ \bullet 如果一个主机要发送消息,那么它先监听信道。
    ∙ \bullet 空闲则直接传输,不必等待。
    ∙ \bullet 忙则一直监听,直到空闲马上传输。
    ∙ \bullet 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
    ∙ \bullet 优点:
    只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
    ∙ \bullet 缺点:
    假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
  3. 非坚持CSMA
    ∙ \bullet 如果一个主机要发送消息,那么它先监听信道。
    ∙ \bullet 空闲则直接传输,不必等待。
    ∙ \bullet 忙则等待一个随机的时间之后再进行监听。
    ∙ \bullet 优点:
    采用随机的重发延迟时间可以减少冲突发生的可能性。
    ∙ \bullet 缺点:
    可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
  4. p-坚持CSMA
    p-坚持指的是对于监听信道空闲的处理。
    ∙ \bullet 如果一个主机要发送消息,那么它先监听信道。
    ∙ \bullet 空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。
    ∙ \bullet 忙则等待一个随机的时间之后再进行监听。
    ∙ \bullet 优点:
    既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
    ∙ \bullet 缺点:
    发生冲突后还是要坚持把数据帧发送完,造成了浪费。
    在这里插入图片描述
  5. 冲突如何检测
    当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。

CSMA-CD 半双工通信 ★ \bigstar

▶ \blacktriangleright CSMA-CD协议
先监听再发送,边监听边发送。

  1. 载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
    ∙ \bullet CS载波侦听/监听:
    每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据
    ∙ \bullet MA多点接入:
    表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
    ∙ \bullet CD碰撞检测(冲突检测):
    边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。半双工网络
  2. 先听后发为什么还会冲突?
    ∙ \bullet 因为电磁波在总线上总是以有限的速率传播的。
    ∙ \bullet 传播时延对载波监听的影响 ★ \bigstar
    在这里插入图片描述
  3. 最迟多久才能知道自己发送的数据没和别人碰撞?总线的端到端往返传播时延/争用期/冲突窗口/碰撞窗口
    最多是两倍的总线端到端的传播时延 2 τ 2\tau 2τ:信号在最远两个端点之间往返传输的时间。

▶ \blacktriangleright 最小帧长问题 ★ \bigstar

  1. 问题:
    A站发了一个很短的帧。但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,没法停止发送,因为发完了。
  2. 解决方法:
    ∙ \bullet 帧的传输时延至少要两倍于信号在总线中的传播时延 ★ \bigstar ★ \bigstar ★ \bigstar
    帧的传输时延 = 帧长 ( b i t ) / 数据传输速率 > 2 τ 帧的传输时延=帧长(bit)/数据传输速率>2\tau 帧的传输时延=帧长(bit)/数据传输速率>2τ
    ∙ \bullet 得: 帧长 ( b i t ) > 数据传输速率 ∗ 2 τ 帧长(bit)>数据传输速率*2\tau 帧长(bit)>数据传输速率2τ在这里插入图片描述
  3. 以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
    最大帧碎片长度不得超过最小帧长

▶ \blacktriangleright 截断二进制指数规避算法—确定碰撞后的重传时机 ★ \bigstar

  1. 基本退避(推迟)时间:争用期2 τ \tau τ
  2. 重传次数k:
    定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]
    当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而直等于10。
  3. 重传所需要退避的时间:
    从离散的整数集合 [ 0 , 1 ,, 2 k − 1 ] [0,1,,2^k-1] [0,1,,2k1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间
    即: r ∗ 2 τ r*2\tau r2τ
  4. 最大重传次数:
    当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错

▶ \blacktriangleright
在这里插入图片描述

▶ \blacktriangleright 题:减少的往返时延=减少的发送时延
在这里插入图片描述
在这里插入图片描述


CSMA-CA

▶ \blacktriangleright CSMA-CA协议 理解就行

  1. 发送数据前,先检测信道是否空闲。
    ∙ \bullet 空闲:
    则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;
    ∙ \bullet 信道忙则等待。
  2. 接收端收到RTS后:
    将响应CTS(clear to send)。
  3. 发送端收到CTS后:
    开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
  4. 接收端收到数据帧后:
    将用CRC来检验数据是否正确,正确则响应ACK帧

▶ \blacktriangleright CSMA/CD与CSMA/CA

  1. 相同点:
    CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。
  2. 不同点:
    ∙ \bullet 传输介质不同:
    CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
    ∙ \bullet 载波检测方式不同:
    因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。
    ∙ \bullet CSMA/CD检测冲突,CSMA/CA避免冲突(不需要在发送过程中进行冲突检测),二者出现冲突后都会进行有上限的重传。

3.5.3 轮询访问介质访问控制

▶ \blacktriangleright 轮询协议

  1. 定义
    ∙ \bullet 主结点轮流“邀请”从属结点发送数据。

▶ \blacktriangleright 令牌传递协议:多负载

  1. 令牌:
    ∙ \bullet 定义:
    一个特殊格式的MAC控制帧,不含任何信息。
    ∙ \bullet 作用:
    控制信道的使用,确保同一时刻只有一个结点独占信道。
    ∙ \bullet 令牌环网无碰撞
  2. 每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
  3. 问题:
    令牌开销、等待延迟、单点故障
  4. 应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
    在这里插入图片描述


3.6 局域网

3.6.1 局域网基本概念和体系结构

▶ \blacktriangleright 概述

  1. 局域网(Local Area Network):
    ∙ \bullet 简称LAN,是指在某一区域内由多台计算机互联成的计算机组使用广播信道
  2. 决定局域网的主要要素为:
    网络拓扑,传输介质与介质访问控制方法。
  3. 网络拓扑
    ∙ \bullet 逻辑拓扑:逻辑上数据传输的顺序和规程,由通信思想决定
    ∙ \bullet 物理拓扑:实际线路和设备的连接
    ∙ \bullet 星型拓扑:
    使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。
    在这里插入图片描述
  4. 传输介质
    ∙ \bullet 有线局域网常用介质:双绞线、同轴电缆、光纤
    ∙ \bullet 无线局域网
  5. 介质访问控制方法:
    ∙ \bullet CSMA/CD:
    常用于总线型局域网,也用于树型网络
    ∙ \bullet 令牌总线:
    常用于总线型局域网,也用于树型网络它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
    ∙ \bullet 令牌环:
    用于环形局域网,如令牌环网
  6. 局域网的分类
    ∙ \bullet 以太网
    以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.↑
    ∙ \bullet 令牌环网
    物理上采用了星形拓扑结构,逻辑上是环形拓扑结构
    ∙ \bullet FDDl网(Fiber Distributed Data Interface)
    ∙ \bullet ATM网(Asynchronous Transfer Mode)
    ∙ \bullet 无线局域网(Wireless Local Area Network;WLAN)
    采用IEEE802.11标准。

▶ \blacktriangleright MAC子层和LLC子层

  1. IEEE802标准:
    ∙ \bullet IEEE802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层
    ∙ \bullet 将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
    在这里插入图片描述
  2. LLC层:
    ∙ \bullet 负责识别网络层协议,然后对它们进行封装。
    LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。
    ∙ \bullet 为网络层提供服务:
    无确认无连接、面向连接、带确认无连接、高速传送。
    ∙ \bullet 主要功能:
    逻辑连接、差错控制、给帧加序号
  3. MAC子层:
    ∙ \bullet 主要功能:
    数据帧的封装/卸装、帧的寻址和识别、帧的接收与发送、链路的管理、帧的差错检测等。
    ∙ \bullet MAC子层的存在屏蔽了不同物理链路种类的差异性。

3.6.2 以太网

▶ \blacktriangleright 以太网概念

  1. 以太网(Ethernet):
    是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
  2. 以太网在局域网各种技术中占统治性地位:
    ∙ \bullet 造价低廉(以太网网卡不到100块);
    ∙ \bullet 是应用最广泛的局域网技术;
    ∙ \bullet 比令牌环网、ATM网便宜,简单;
    ∙ \bullet 满足网络速率要求:10Mb/s~10Gb/s.
  3. 以太网两个标准
    ∙ \bullet DIX Ethernet V2:
    第一个局域网产品(以太网)规约。
    ∙ \bullet IEEE802.3:
    IEEE802委员会802.3工作组制定的第一个EEE的以太网标准。(帧格式有一丢丢改动)
  4. 特点:
    以太网提供无确认无连接、不可靠的服务
    ∙ \bullet 无连接:
    发送方和接收方之间无“握手过程”。
    ∙ \bullet 不可靠:
    不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
    以太网只实现无差错接收,不实现可靠传输。
  5. 以太网帧
    ∙ \bullet 前导码:实现位同步
    ∙ \bullet 目的地址:单播、广播(全1)、多播
    ∙ \bullet 类型:标识数据中协议的类型
    在这里插入图片描述在这里插入图片描述

▶ \blacktriangleright 10BASE-T以太网

  1. 概念
    ∙ \bullet 10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
    ∙ \bullet 物理上采用星型拓扑,逻辑上总线型,每段双绞线(5类UDP)最长为100m
    ∙ \bullet 采用曼彻斯特编码。
  • 既支持全双工方式,又支持半双工方式可在全双工方式下工作而无冲突发生,因此在全双工方式下不使用CSMA/CD协议。
  • 10吉比特以太网
    10吉比特以太网与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同。
    这种以太网不再使用铜线而只使用光纤作为传输媒体。只工作在全双工方式,因此没有争用问题,也不使用CSMA/CD协议

▶ \blacktriangleright 网卡

  1. 定义
    ∙ \bullet 计算机与外界有线局域网的连接是通过通信适配器的。
    又称:网络接口板、网络接口卡NIC(network interface card)(NOW,不再使用单独网卡)
    ∙ \bullet 适配器上装有处理器和存储器(包括RAM和ROM)。
    ROM上有计算机硬件地址MAC地址。
  2. 工作在数据链路层的网络组件。
    ∙ \bullet 网卡和局域网的通信是通过电缆或双绞线以串行方式进行的
    ∙ \bullet 网卡和计算机的通信则是通过计算机主板上的IO总线以并行方式进行的。因此,网卡的重要功能就是进行数据的串并转换。
  3. 网卡控制着主机对介质的访问,因此网卡也工作在物理层,因为它只关注比特,而不关注任何地址信息和高层协议信息。
  1. MAC地址
    ∙ \bullet 在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】
    ∙ \bullet MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由EEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。

3.6.3 无线局域网

▶ \blacktriangleright 无线局域网

  1. 定义:
    IEEE802.11是无线局域网通用的标准,它是由EEE所定义的无线网络通信的标准。
  2. 无线局域网通信方式
    通过基站(接入点)进行通信
  3. 802.11的MAC帧头格式
    接收/发送、接收/发送
    在这里插入图片描述

3.6.4 虚拟局域网 VLAN

▶ \blacktriangleright 虚拟局域网技术

  1. 虚拟网VLAN
    ∙ \bullet 建立在交换技术基础上
    ∙ \bullet 以软件方式实现逻辑分组与管理,把用户的终端设备划分为若干个逻辑工作组,每个逻辑工作组就是一个VLAN。在这里插入图片描述
  2. VLAN的特征
    ∙ \bullet VLAN工作在数据链路层,即OSI参考模型的第二层。
    ∙ \bullet VLAN可隔离广播信息,每个VLAN为一个广播域,VLAN中的广播信息只能发送给这个VLAN内部的成员,并不发送给其他VLAN成员。
    ∙ \bullet 一个VLAN就是一个独立的逻辑网络,每个VLAN都具有唯一的子网号。不同VLAN中的主机之间必须通过路由器或者三层交换机,才能实现相互通信。
    ∙ \bullet 同一个VLAN的计算机不一定连接在相同的物理网段,它们可以连接在相同的交换机上,也可以连接在不同的局域网交换机上,只要这些交换机互连即可
  3. 一般有三种划分VLAN的方法。
    基于端口
    将交换机的若干端口划为一个逻辑组,这种方法最简单、最有效,如果主机离开了原来的端口,那么就可能进入一个新的子网。
    基于MAC地址
    按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置从一个交换机移动到另一个交换机时,它仍然属于原来的子网。
    基于IP地址
    根据网络层地址或协议划分VLAN,这样VLAN就可以跨越路由器进行扩展,将多个局域网的主机连接在一起。


3.7 链路层设备

▶ \blacktriangleright 物理层扩展以太网

  1. 通过光纤
    在这里插入图片描述
  2. 主干集线器Hub
    在这里插入图片描述

▶ \blacktriangleright 链路层扩展以太网

  1. 网桥
    ∙ \bullet 网桥作用:
    根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
    ∙ \bullet 网段:
    一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
    在这里插入图片描述
  2. 交换机 (多接口网桥)
    在这里插入图片描述
  3. 直通式交换机
    ∙ \bullet 查完目的地址 (6B) 就立刻转发。(交换机转发一个数据帧的时间,转发6字节的时间
    ∙ \bullet 延迟小,可靠性低,无法支持具有不同速率的端口的交换。
    在这里插入图片描述
  4. 存储转发式交换机
    ∙ \bullet 将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
    ∙ \bullet 延迟大,可靠性高,可以支持具有不同速率的端口的交换。

▶ \blacktriangleright 交换机的自学习功能

  • 交换机收到一个帧时,源主机的方向确定,目的主机的转发方向不确定
    ∙ \bullet 表中有目的mac地址,直接转发
    ∙ \bullet 表中无目的mac地址,将源mac地址和发出接口加入表项。即自学习源mac地址 ★ \bigstar

▶ \blacktriangleright 冲突域和广播域

  1. 冲突域:
    在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围
  2. 广播域:
    网络中能接收任一设备发出的广播帧的所有设备的集合。
    简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域
    在这里插入图片描述



------------------------------------------------------------------------

第4章 网络层

学习步骤:

  1. 网络层在层次中的功能或作用,
  2. 网络层数据传输基本概念
    IP地址、IP数据报
  3. 网络层数据在互联网上传输的方式方法
    分组转发、路由选择
  4. 网络层数据传输的具体过程

4.1 网络层功能概述

4.1.1 功能概述

▶ \blacktriangleright 网络层功能概述

  1. 网络层
    ∙ \bullet 主要任务:
    把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
    ∙ \bullet 网络层传输单位是数据报。
  2. 网络层功能
    ∙ \bullet 功能一:路由选择与分组转发
    ∙ \bullet 功能二:异构网络互联
    ∙ \bullet 功能三:拥塞控制
    若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。


4.1.2 网络层数据交换方式:电路交换 & 报文交换 & 分组交换(数据报与虚电路) ★ \bigstar ★ \bigstar ★ \bigstar

在这里插入图片描述

▶ \blacktriangleright 电路交换:时延最小、不保证数据无差错

  1. 过程
    在这里插入图片描述
    面向连接,按序到达

▶ \blacktriangleright 报文交换:报文大小不定

  1. 报文:
    ∙ \bullet 定义:
    应用层的数据单元:源应用发送的信息整体,如:PDF文件
    ∙ \bullet 运输层可以将报文分段处理
  2. 优点:
    ∙ \bullet 无需建立连接
    ∙ \bullet 存储转发,动态分配线路
    ∙ \bullet 线路可靠性较高
    ∙ \bullet 线路利用率较高
    ∙ \bullet 多目标服务
  3. 缺点:
    ∙ \bullet 有存储转发时延
    ∙ \bullet 报文大小不定,需要网络节点有较大缓存空间

▶ \blacktriangleright 分组交换:传输单位小且长度固定,减少了传输时延

  1. 分组:
    把大的数据块分割成小的数据块。
    在这里插入图片描述
  2. 优点:
    ∙ \bullet 无需建立连接
    ∙ \bullet 存储转发,动态分配线路
    ∙ \bullet 线路可靠性较高
    ∙ \bullet 线路利用率较高
    ∙ \bullet 相对于报文交换,存储管理更容易
  3. 缺点:
    ∙ \bullet 有存储转发时延
    ∙ \bullet 需要传输额外的信息量
    ∙ \bullet 乱序到目的主机时,要对分组排序重组

▶ \blacktriangleright 三种数据交换方式比较总结 ★ \bigstar

  1. 报文交换和分组交换都采用存储转发。
  2. 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
  3. 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。
    在这里插入图片描述

关注中间有几个路由器,有几段链路:一个路由器两段链路
在这里插入图片描述
在这里插入图片描述
分组在同一个链路上是串行的,在不同链路是并行的,即t是第2个分组等待第1个分组从第1个结点(第一段链路)发送完毕的时间


4.1.3 数据报 & 虚电路(分组交换的两种方式)

背景知识:

  1. 有些人认为应当借助于电信网的成功经验,让网络负责可靠交付。大家知道,传统电信网的主要业务是提供电话服务。电信网使用昂贵的程控交换机(其软件也非常复杂),用面向连接的通信方式,使电信网络能够向用户(实际上就是电话机)提供可靠传输的服务。
    因此他们认为,计算机网络也应模仿打电话所使用的面向连接的通信方式。当两台计算机进行通信时,也应当先建立连接(但在分组交换中是建立一条虚电路VC(Virtual Circuit)),以预留双方通信所需的一切网络资源。然后双方就沿着已建立的虚电路发送分组。这样的分
  2. 但互联网的先驱者却提出一种崭新的网络设计思路。他们认为,电信网提供的端到端可靠传输的服务对传统的电话业务无疑是很合适的,因为那时电信网的终端(电话机)非常简单,没有智能,更没有差错处理能力。因此电信网必须负责把用户电话机话筒产生的话音信号可靠地传送到对方的电话机,使其耳机发出的声音符合话音质量的技术规范要求。但计算机网络的端系统是有智能的计算机。
    计算机有很强的差错处理能力(这点和传统的电话机有本质上的差别)。因此,互联网在设计上就采用了和电信网完全不同的思路。

▶ \blacktriangleright 数据报(因特网在用):适合出错率高

  1. 数据报方式为网络层提供无连接服务
    在这里插入图片描述
  2. 无连接服务:
    ∙ \bullet 独立发送:
    不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同
    ∙ \bullet 网络层不提供服务质量的承诺:
    也就是说,所传送的分组可能出错、丢失、重复和失序(即不按序到达终点),当然也不保证分组交付的时限。
    如果主机(即端系统)进程之间需要进行可靠的通信,那么就由主机中的运输层负责(包括差错处理、流量控制等)。
  • 每个分组携带源和目的地址
  • 路由器根据分组的目的地址 转发分组
    基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。
    在这里插入图片描述

▶ \blacktriangleright 虚电路:连接、虚电路标识、按序

  1. 虚电路定义
    一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,
    ∙ \bullet 维持一张虚电路表
    每一项记录了一个打开的虚电路的信息。
    ∙ \bullet 两结点间可能同时有多条虚电路通过,一个结点也可能同与多个结点间建立虚电路
    在这里插入图片描述
  2. 虚电路方式为网络层提供连接服务。
    ∙ \bullet 虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
  3. 虚电路通信过程:
    ∙ \bullet 虚电路建立:交换型虚电路、永久性虚电路
    确定传输路径(建立连接):每个分组携带虚电路号,而非自的地址。源主机发送“呼叫请求”分组并收到“呼叫应答”分组后才算建立连接。
    ∙ \bullet 数据传输
    全双工通信,系列分组传输路径相同在建立连接后,分组只需携带虚电路标识,而不必带有源地址和目的地址
    ∙ \bullet 释放连接(虚电路释放)
    源主机发送“释放请求”分组以拆除虚电路。交换型虚电路传输结束后拆除连接。
  4. 数据报&虚电路
    在这里插入图片描述

在这里插入图片描述


4.1.4 网络层数据传输基本概念(分组转发、路由选择)、过程、协议 ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 数据传输中的知识概念

  1. 网络层分层
    网络层抽象地划分为数据层面(或转发层面)和控制层面
    在这里插入图片描述
  2. 传输过程
    不同网络中的两个主机之间的通信,要经过若干个路由器转发分组来完成,分组查找路由器中的转发表,从指明的接口转发到下一个路由器。
  3. 基本概念
    ∙ \bullet 转发表
    是从路由表导出的
    ∙ \bullet 路由表
    是由互联网中许多的路由器,按照共同选定的路由选择协议,通过许多次的相互交换路由信息而产生的。
    ∙ \bullet 在路由器之间传送的信息有以下两大类:
    ∙ \bullet 第一类:
    是转发源主机和目的主机之间所传送的数据,把源主机所发送的分组,像接力赛跑那样从一个路由器转发到下一个路由器,最后把分组传送到目的主机。
    ∙ \bullet 第二类:
    则是传送路由信息,是根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此导出为转发分组而用的转发表。这一类信息的传送是为第一类数据的传送服务的。
  4. 协议分层
    ∙ \bullet 数据层面的协议IPv4、IPv6
    ∙ \bullet 控制层面的各种路由选择协议


4.2 网际协议IPv4(数据层面的协议IP)

在这里插入图片描述


4.2.1 IP地址

▶ \blacktriangleright IP地址

  1. 概念
    整个的互联网就是一个单一的、抽象的网络。地址就是给连接到互联网上的每一台主机(或路由器)的每一个接口,分配一个在全世界范围内是唯一的32位的标识符。地址的结构使我们可以在互联网上很方便地进行寻址
  2. 点分十进制记法(dotted decimal notation)
    在这里插入图片描述
  3. IP地址组成 ::={<网络号>,<主机号>}
    地址采用两级结构,由两个字段组成。指明了连接到某个网络上的一个主机(或路由器)
    ∙ \bullet 第一个字段:网络号
    标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。
    ∙ \bullet 第二个字段:主机号
    标志该主机(对路由器来说,就是标志该路由器)。一个主机号在所连接的网络(即前面的网络号所指明的网络)中必须是唯一的。

处于不同的网段,需通过路由器才能进行正常的IP通信
在这里插入图片描述
在这里插入图片描述


1.常用二进制对应表

在这里插入图片描述


2.分类的IP地址

▶ \blacktriangleright 分类的IP地址

  1. 分类的IP地址
    在这里插入图片描述
    在这里插入图片描述
  2. 各类IP地址占比
    在这里插入图片描述
  3. A类地址
    ∙ \bullet 组成:
    网络号字段占1个字节,其中7位可供使用(该字段的第一位已固定为0)。
    ∙ \bullet 特殊地址:网络号为全0
    表示“本网络”;
    ∙ \bullet 特殊地址:网络号为127(即01111111)
    保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。
    ∙ \bullet A类地址可指派的网络号是126个
    0000 0000 ⇒ \rArr 0111 1111 (1~126)
  4. B类地址
    ∙ \bullet 组成:
    网络号字段占2个字节,其中14位可供使用(该字段的前2位已固定为10)。
    ∙ \bullet 特殊地址:网络号为全0
    表示“本网络”;
    ∙ \bullet 特殊地址:网络号为全1
    多播地址
    ∙ \bullet B类地址可指派的网络号是65534个
    1000 0000.0 ⇒ \rArr 1011 1111.1 (128.0~192.255)
  5. 特殊的IP地址
    在这里插入图片描述

3.子网划分

▶ \blacktriangleright 子网划分

  1. 背景
    分类的IP地址的弱点:
    ∙ \bullet IP地址空间的利用率有时很低
    ∙ \bullet 两级IP地址不够灵活
    开通新网络时需要向网络服务提供商ISP 申请网络号。
  2. 定义:
    ∙ \bullet 把主机号当中部分较高位作为子网号,剩下为主机号
    ∙ \bullet 该网络能够随时划分新子网络
    某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

▶ \blacktriangleright 地址掩码

  1. 定义
    地址掩码(常简称为掩码)由一连串1和接着的一连串0组成,而1的个数就是网络前缀的长度。又称为子网掩码。
    在CIDR记法中,斜线后面的数字就是地址掩码中1的个数
    ∙ \bullet 默认子网掩码
    现在的因特网标准规定:所有的网络都必须使用子网掩码。如果一个网络未划分子网,那么就采用默认子网掩码。A、B、C类地址的默认子网掩码分别为255.0.0.0、255.255.0.0、255.255.255.0。
    在这里插入图片描述在这里插入图片描述
  2. 求子网网络地址
    子网掩码与IP地址逐位相与,就得到子网网络地址(网络前缀或子网网络号)
    在这里插入图片描述
    在这里插入图片描述
  • 子网内第一个可用的IP地址:
    子网内第一个可用的IP地址是子网号(网络地址)后的第一个地址,例如网络地址为194.55.128.0,则子网内第一个可用的IP地址为194.55.128.1;
  • 子网内最后一个可用的IP地址:
    子网内最后一个可用的IP地址是直接广播地址前一个地址,例如直接广播地址为194.55.191.255,则子网内最后一个可用的IP地址为194.55.191.254.

4.无分类编址CIDR ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright 无分类编址CIDR

  1. 定义
    无分类域间路由选择CIDR(Classless Inter-Domain
    Routing,CIDR的读音是“sider’”)[RFC4632]
    ∙ \bullet 一个CIDR地址块包含的IP地址数目,取决于网络前缀的位数。
    ∙ \bullet 消除了传统的A类,B类和C类地址以及划分子网的概念。
    在这里插入图片描述
  2. CIDR记法:
    CIDR使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线“/”,斜线后面是网络前缀所占的位数。
    在这里插入图片描述
  3. 融合子网地址与子网掩码
    ∙ \bullet 方便子网划分
    ∙ \bullet CIDR把网络前缀都相同的所有连续的IP地址组成一个“CIDR地址块(子网络)”。
    在这里插入图片描述
  4. 子网络的最小地址和最大地址
    ∙ \bullet 我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
    ∙ \bullet 最小地址:主机号全为0
    ∙ \bullet 最大地址:主机号全为1
    ∙ \bullet 例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址。
    在这里插入图片描述
  5. 构成超网
    ∙ \bullet 将多个子网聚舍成一个较大的子网,叫做构成超网,或路由聚合。
    ∙ \bullet 方法:将网络前缀缩短。
    ∙ \bullet 好处:
    它使得转发表中只用一个项目就可以表示原来传统分类地址的很多个(例如上千个)路由项目,因而大大压缩了转发表所占的空间,减少了查找转发表所需的时间。
    在这里插入图片描述
  6. 最长前缀匹配
    使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,
    路由越具体。

▶ \blacktriangleright 例题

  1. 已知IP地址和子网掩码,求网络地址
    ∙ \bullet 通过子网掩码得到子网号位数
    在这里插入图片描述
    ∙ \bullet 网络前缀:
    网络号+子网号 = 网络前缀
    ∙ \bullet 主机号:
    通过具体情况判断主机号
    如:多播地址主机号全为1
  2. 已知目的地址,求分组转发的下一跳路由器
    ∙ \bullet 通过给出的前缀位数计算地址块的起始地址
    ∙ \bullet 选择符合条件的具有最长网络前缀的路由(条件:在地址块范围中)
    最长匹配原则
    在这里插入图片描述
    在这里插入图片描述

▶ \blacktriangleright 子网个数、子网中可分配地址数

  1. 最多子网数
    若主机号只占1位,则没有有效的IP地址可供分配(除去0和1),因此最少2位表示主机号
  2. 最多子网有效IP数
    即不划分子网、也即只有1个子网时、即主机号占5位时
    在这里插入图片描述
  3. 子网个数、子网中可分配地址数
    ∙ \bullet 子网个数
    通过网络前缀位数与子网掩码,得到子网号位数与主机号位数
    子网号位数 = 子网掩码有效位-网络前缀位数 =29-24=5
    子网个数 = 2 5 = 32 子网个数=2^5=32 子网个数=25=32
    ∙ \bullet 子网中可分配地址数
    子网中可分配地址数= 子网中地址数 − 2 = 2 3 − 2 = 6 子网中地址数-2=2^3-2=6 子网中地址数2=232=6在这里插入图片描述

4.2.2 IP数据报格式 ★ \bigstar ★ \bigstar ★ \bigstar 报文段首部格式

▶ \blacktriangleright IP数据报格式

  1. 0-4B
    ∙ \bullet 版本:IPv4/IPv6?
    ∙ \bullet 首部长度:单位是4B
    最小首部为20B,得最小首部长度为5,即0101B.
    ∙ \bullet 区分服务:
    指示期望获得哪种类型的服务。
    ∙ \bullet 总长度:单位是1B
    首部+数据
    05DCH ⇒ \rArr 1500B
  2. 4-8B
    ∙ \bullet 标识 2B:
    同一数据报的分片使用同一标识。
    ∙ \bullet 标志 3bit:
    只有2位有意义 X . D F ‾ . M F ‾ X. \underline{DF}. \underline{MF} X.DF.MF
    中间位DF(Don’t Fragment):DF=1,禁止分片;DF=O,允许分片
    最低位MF(More Fragment):MF=1,后面“还有分片”;MF=0,代表最后一片/没分片
    ∙ \bullet 片偏移 13bit:以8B为单位
    指出较长分组分片后,某片在原分组中的相对位置。
  3. 8B-12B
    ∙ \bullet 生存时间(TTL):
    IP分组的保质期。经过一个路由器-1,变成0则丢弃。
    ∙ \bullet 协议:
    数据部分的协议。
    ∙ \bullet 首部检验和:只检验首部。
    路由器对收到的IP分组首部进行差错检验,丢弃有差错首部的报文,但不保证IP分组不丢失。
  4. 12B-20B:
    源IP地址和目的IP地址:32位。
  5. 可选字段:20~60B
    ∙ \bullet 长度可变 0~40B
    ∙ \bullet 用来支持排错测量以及安全等措施。
    ∙ \bullet 填充:全0,把首部补成4B的整数倍。
    在这里插入图片描述

▶ \blacktriangleright IP数据报分片 8个字节为偏移单位

  • 分片:
    IP分组可以被路径中的路由器分片
    ,在传输过程中仍然存在分片的可能(不同网络的MTU可能不同)
  • 重组(不按序):
    在目的主机进行重组(不按序)

  1. 分片对象:
    将数据部分分片
  2. 最大分片大小:[MTU-IP首部大小]取整(以8个字节) ★ \bigstar
    片偏移以8个字节为偏移单位,因此除了最后一个分片,其他每个分片的数据部分长度都是8B的整数倍。
  3. 分片个数:数据部分总大小 ÷ \div ÷ 最大片长
    分片大小=最大片长+IP首部
  4. 片偏移量
    计算每一个数据部分分片的片偏移量
  5. MF与DF

  • eg1在这里插入图片描述
    数据部分分片大小 = 最大片长 ( 1420 B ) − 数据报头部 ( 20 B ) 数据部分分片大小=最大片长(1420B)-数据报头部(20B) 数据部分分片大小=最大片长(1420B)数据报头部(20B)
  • eg2在这里插入图片描述

例题2:
在这里插入图片描述


4.2.3 IP地址与MAC地址

▶ \blacktriangleright IP地址与MAC地址

  1. 两种地址的区别
    ∙ \bullet 从层次的角度看
    MAC地址是数据链路层使用的地址,而P地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)。
    在这里插入图片描述
  2. 传输过程
    在这里插入图片描述
  3. 为什么不直接使用MAC地址通信?
    ∙ \bullet 由于全世界存在着各式各样的网络,它们使用不同的MAC地址。
    ∙ \bullet 要使这些异构网络能够互相通信就必须进行非常复杂的MAC地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。
    ∙ \bullet 而IP编址把这个复杂问题解决了。连接到互联网的主机只需各自拥有一个地址,它们之间的通信就像连接在同一个网络上那样简单方便
    ∙ \bullet 即使必须多次调用ARP来找到MAC地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。
    ∙ \bullet 因此,在虚拟的P网络上用P地址进行通信给广大的计算机用户带来了很大的方便。

4.2.4 地址解析协议ARP ★ \bigstar ★ \bigstar ★ \bigstar ★ \bigstar 广播

问题:

  1. 主机或路由器怎样知道应当在MAC帧的首部填入什么样的MAC地址?
  2. 路由器中的转发表是怎样得出的?
  • ARP请求是广播发送的,ARP响应是单播发送

▶ \blacktriangleright 地址解析协议ARP

  1. 定义
    已知一个机器(主机或路由器)的IP地址,需要找出其相应的MAC地址。 地址解析协议ARP [RFC826,STD37] 就是用来解决这样的问题的。
  2. 实现寻址的方法
    地址解析协议ARP解决这个问题的方法是在主机的ARP高速缓存中存放一个从IP地址到MAC地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。
  3. ARP高速缓存
    每一台主机都设有一个ARP高速缓存(ARP cache),存有本局域网上的各主机和路由器的IP地址到MAC地址的映射表,这些都是该主机目前知道的一些MAC地址。
  4. 生存时间:
    ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间。凡超过生存时间的项目就从高速缓存中删除掉。
    在这里插入图片描述

在这里插入图片描述
▶ \blacktriangleright 4种情况分析 ★ \bigstar ★ \bigstar ★ \bigstar

  1. 同一个网段内
    ∙ \bullet 请求:
    ARP进程在本局域网上广播发送一个ARP请求分组
    ∙ \bullet 广播:初始化
    在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
    ∙ \bullet 响应:
    主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,单播发送ARP响应分组,同时在这个ARP响应分组中写入自己的MAC地址。
    在这里插入图片描述

不同网段内:

  1. 发送方是主机H1,接收方是不同网络上主机
    ∙ \bullet 请求:
    子网掩码与目的IP地址相与,判断是否在同一个网段内(网络号相同)
    不在同个网段内,ARP请求分组的源MAC地址填默认网关MAC
    ∙ \bullet 广播:
    在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。找到默认网关MAC地址
    ∙ \bullet 网关路由响应:
    单播ARP响应分组
  2. 发送方是网关路由R1,接收方是可达网络N2上主机H3
    发送ARP请求分组(在N2上广播),找目的主机H3的MAC地址。
    在这里插入图片描述
  3. 发送方是网关路由R1,接收方是不可达网络N3上主机H4
    ∙ \bullet H4与R1不是连接在同一个网络上的。
    ∙ \bullet 这时R1发送ARP请求分组(在N2上广播)
    ∙ \bullet 找连接在N2上的一个路由器R2的MAC地址。
    ∙ \bullet 剩下的工作由这个路由器R2来完成。
    在这里插入图片描述

4.2.5 动态主机配置协议 DHCP ★ \bigstar ★ \bigstar ★ \bigstar UDP 广播

▶ \blacktriangleright 动态主机配置协议 DHCP(Dynamic Host Configuration Protocol)

  1. 定义:
    ∙ \bullet 该协议允许服务器向客户端动态分配 IP 地址和配置信息
    ∙ \bullet 应用层协议
    ∙ \bullet 使用客户/服务器方式,客户端和服务端通过广播方式进行交互。
    ∙ \bullet 基于UDP,DHCP采用UDP作为传输协议
    ∙ \bullet DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址。
    ∙ \bullet 允许地址重用,支持移动用户加入网络,支持在用地址续租。
  2. DHCP服务器为客户端分配IP地址有三种形式:
    ∙ \bullet 管理员将一个IP地址固定分配给一个客户端。
    ∙ \bullet 随机地将地址永久性分配给客户端。
    ∙ \bullet 随机地将地址分配给客户端使用一段时间。
  3. DHCP服务器为客户端分配IP地址过程:
    ∙ \bullet 主机广播DHCP发现报文
    “有没有DHCP服务器呀?”
    试图找到网络中的服务器,服务器获得一个P地址。
    ∙ \bullet DHCP服务器广播DHCP提供报文
    “有!”“有!”“有!”
    服务器拟分配给主机一个IP地址及相关配置,先到先得。
    ∙ \bullet 主机广播DHCP请求报文
    “我用你给我的IP地址啦?”
    主机向服务器请求提供IP地址。
    ∙ \bullet DHCP服务器广播DHCP确认报文
    “用吧!”
    正式将IP地址分配给主机。
    在这里插入图片描述


4.4 网际控制报文协议ICMP:IP

背景:
为了更有效地转发数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)[RFC792,STD5]。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是互联网的标准协议。
在这里插入图片描述

▶ \blacktriangleright 网际控制报文协议ICMP

  1. 定义
    ∙ \bullet 用于在IP主机、路由器之间 传递控制消息
    ∙ \bullet 控制消息
    是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
  2. ICMP报文格式
    在这里插入图片描述
  3. ICMP报文有两种
    ∙ \bullet ICMP差错报告报文
    ∙ \bullet ICMP询问报文
  4. 常用的ICMP报文类型。
    在这里插入图片描述
  5. ICMP的应用
    ∙ \bullet 分组网间探测PING(Packet InterNet Groper)
    测试两个主机之间的连通性,使用了ICMP回送请求和回答报文(询问报文)
    PING是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP。
    ∙ \bullet Traceroute
    跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。

当路由器监测到拥塞时,可合理丢弃IP分组,并向发出该IP分组的源主机发送一个源点抑制的ICMP报文。



4.5 IPv6

IPv6诞生原因

  1. 32位IPv4地址空间已分配殆尽.
    ∙ \bullet CIDR\ NAT:治标不治本
    ∙ \bullet IPv6:从根本上解决地址耗尽问题
  2. 为了 快速处理/ 转发数据报
    支持QoS

4.5.1 IPv6的数据报格式 首部大小固定 不分片

▶ \blacktriangleright IPv6

  1. 定义
    IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组。
  2. IPv6数据报组成
    基本首部+有效载荷
    在这里插入图片描述
  3. IPv6数据报格式:
    ∙ \bullet 流标号(flow label) 占20位
    IPv6的一个新的机制是支持资源预分配,并且允许路由器把每一个数据报与一个给定的资源分配相联系。
    IPv6提出流(flow)的抽象概念。所谓“流”就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。因此,流标号对实时音频/视频数据的传送特别有用。
    在这里插入图片描述
  4. IPv6 与IPv4不同
    ∙ \bullet 首部大小固定
    ∙ \bullet 不允许分片
    在这里插入图片描述

4.5.2 IPv6的地址

▶ \blacktriangleright 三种基本IPv6的地址类型

  1. 单播(unicast)
    单播就是传统的点对点通信。
  2. 多播(multicast)
    多播是一点对多点的通信,数据报发送到一组计算机中的每一个。
    IPv6没有采用广播的术语,而是将广播看作多播的一个特例。
  3. 任播(anycast)
    这是IPv6增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个。

▶ \blacktriangleright IPv6的地址表示形式

  1. IPv6地址表示形式
    ∙ \bullet 一般形式冒号十六进制记法:
    4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
    ∙ \bullet 零压缩:只能压一次,一次压相邻多个
    在这里插入图片描述

4.5.3 从IPv4向IPv6过渡

▶ \blacktriangleright 专用网

  1. 双栈协议
    双协议栈技术就是指在一台设备上同时启用Pv4协议栈和IPv6协议栈。这样的话,这台设备既能和Pv4网络通信,又能和Pv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6
    网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和Pv6地址,并具备同时处理这两个协议地址的功能。
    在这里插入图片描述
  2. 隧道技术
    通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。
    在这里插入图片描述


4.6 互联网的路由选择协议

  1. 本节讨论:转发表中的路由是怎样得出的
  2. 路由选择协议属于网络层控制层面的内容。
  3. 路由选择协议规定了互联网中有关的路由器应如何相互交换信息并生成出路由表

在这里插入图片描述


4.6.1 路由选择协议基本概念

▶ \blacktriangleright 路由算法的分类

  1. 静态路由算法(非自适应路由算法)
    ∙ \bullet 管理员手工配置路由信息
    ∙ \bullet 优点:
    简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
    ∙ \bullet 缺点:
    路由更新慢,不适用大型网络。
  2. 动态路由算法(自适应路由算法)
    ∙ \bullet 路由器间彼此交换信息,按照路由算法优化出路由表项
    ∙ \bullet 优点:
    路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
    ∙ \bullet 缺点:
    算法复杂,增加网络负担。
    在这里插入图片描述
  3. 互联网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。

▶ \blacktriangleright 互联网分层-自治系统AS

  1. 互联网采用分层次的路由选择协议的原因:
    ∙ \bullet 互联网的规模非常大
    如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
    ∙ \bullet 保密性
    许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
  2. 自治系统AS ★ \bigstar
    ∙ \bullet 把整个互联网划分为许多较小的自治系统(autonomous system)
    ∙ \bullet 是在单一的技术管理下的一组路由器,而这些路由器 使用一种AS内部的路由选择协议和共同的度量,以确定分组在该AS内的路由。
    ∙ \bullet 使用一种AS之间的路由协议,以确定在AS之间的路由。
    ∙ \bullet 一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
    在这里插入图片描述
  3. 路由选择协议划分
    ∙ \bullet 内部网关协议IGP(Interior Gateway Protocol)
    即在同一个自治系统内部使用的路由选择协议
    目前这类路由选择协议使用得最多的是RIP和OSPF协议
    ∙ \bullet 外部网关协议EGP(External Gateway Protocol)
    在不同自治系统AS之间使用的路由选择协议
    目前使用最多的外部网关协议是BGP的版本4(BGP-4)。
    在这里插入图片描述

4.6.2 内部网关协议-RIP

在这里插入图片描述

▶ \blacktriangleright 内部网关协议RIP

  1. RIP定义
    ∙ \bullet RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议,它的中文译名是路由信息协议。
    ∙ \bullet RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大优点就是简单。
  2. RIP协议的报文格式
    在这里插入图片描述
  3. 路由表:
    RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)在这里插入图片描述
  4. 距离:
    ∙ \bullet 通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。
    ∙ \bullet RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由)
    ∙ \bullet RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
    ∙ \bullet 特别的,路由器到直接连接的网络距离为1。
  5. RIP协议好消息传得快,坏消息传得慢 ★ \bigstar ★ \bigstar
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

1.建立路由表

▶ \blacktriangleright 通过交换信息建立路由表

  1. 路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
  2. 交换信息
    ∙ \bullet RIP协议和谁交换?
    仅和相邻路由器交换信息。
    ∙ \bullet 多久交换一次?
    每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。(即:根据网络情况动态的改变路由
    ∙ \bullet 交换什么?
    整个路由表信息
  3. 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
2.距离向量算法 ★ \bigstar

▶ \blacktriangleright RIP协议:距离向量算法
路由器收到相邻路由器R2(其地址为X)的一个RIP报文:

  1. 修改此RIP报文中的所有项目
    ∙ \bullet 把“下一跳”字段中的地址都改为X
    ∙ \bullet 把所有的“距离”字段的值加1。
    在这里插入图片描述
  2. 对修改后的RIP报文中的每一个项目,重复以下步骤:同一路由就更新,不同路由比大小
    ∙ \bullet 有没有新增的项(比较两个路由表):
    若项目中的目的网络不在路由表中,则添加该项目。
    ∙ \bullet 有目的网络:
    ∙ \bullet ∙ \bullet 同一路线 跳数变化 更新跳数
    下一跳字段给出的路由器地址是同样的,替换原路由表中的项目。
    ∙ \bullet ∙ \bullet 更新更小的下一跳(新的下一跳路由 新的路线
    若收到的项目中的路由器地址距离更小,则进行更新,
    ∙ \bullet 不可达:
    3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(表示不可达)在这里插入图片描述
    ∙ \bullet 返回
    循环,隔30s再更新一次

▶ \blacktriangleright 距离向量算法例题:分别写出从C出发通过B、D、E到达其他点的最短路径,比较三条路径中每一个点的最小值
在这里插入图片描述
在这里插入图片描述
分别写出从E出发通过A、B、C、D到达其他网络点的最短路径,比较4条路径中同一个网络的每一个点,得距离最小值
在这里插入图片描述


4.6.3 内部网关协议-OSPF

▶ \blacktriangleright 内部网关协议OSPF

  1. OSPF协议定义
    ∙ \bullet 开放最短路径优先OSPF(Open Shortest Path First)。
    ∙ \bullet OSPF最主要的特征就是使用分布式的链路状态协议
    ∙ \bullet 注意:
    OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”
  2. OSPF的区域
    ∙ \bullet 区域
    为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。
    ∙ \bullet 每一个区域都有一个32位的区域标识符(用点分十进制表示)。
    ∙ \bullet 区域也不能太大,在一个区域内的路由器最好不超过200个。
    在这里插入图片描述
  3. OSPF分组:IP数据报
    在这里插入图片描述
  4. OSPF其他特点
    ∙ \bullet 每隔30min,要刷新一次数据库中的链路状态。
    ∙ \bullet 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
    ∙ \bullet OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
1.建立路由表

▶ \blacktriangleright 通过交换信息建立路由表

  1. 交换信息
    ∙ \bullet 和谁交换?
    使用洪泛法向自治系统内所有路由器发送信息。广播
    即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器
    ∙ \bullet 多久交换?
    .只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。(即:根据网络情况动态的改变路由
    ∙ \bullet 交换什么?
    部分路由表信息
    即:发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价一一费用、距离、时延、带宽等)。
  2. 最后,所有路由器都能建立一个链路状态数据库
    区域内部路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。
2.链路状态路由算法

▶ \blacktriangleright 链路状态路由算法
OSPF协议依靠五种不同类型的分组来建立邻接关系和交换路由信息。
即:问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组。

  1. 问候(Hello)分组:保持连接
    ∙ \bullet 建立和维护邻接关系。
    每个路由器发现它的邻居结点,并了解邻居节点的网络地址。
    设置到它的每个邻居的成本度量metric。
  2. 交换信息
    ∙ \bullet 数据库描述(Data base Description,DBD)分组
    向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
  3. 请求更新
    ∙ \bullet 链路状态请求(Link State Request,LSR)分组
    LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息
    ∙ \bullet 请求自己没有的和比自己新的信息。
    路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。
  4. 进行更新
    ∙ \bullet 链路状态更新(Link State Update,LSU)分组
    LSU分组被用来应答链路状态请求分组:收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。
    ∙ \bullet 洪泛法更新链路状态
    在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用洪泛法向全网更新链路状态
  5. 进行确认
    ∙ \bullet 链路状态确认(Link State Acknowledgment,LSAck)分组
    LSAck分组被用来应答链路状态更新分组:更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
  6. 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

4.6.4 外部网关协议-BGP

▶ \blacktriangleright 外部网关协议-BGP

  1. 定义
    ∙ \bullet 边界网关协议BGP交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS
    当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
    ∙ \bullet BGP采用了路径向量(path vector)路由选择协议
    它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大的区别。
    ∙ \bullet 为了保证BGP的可靠传输,其使用TCP来承载协议报文;
  2. 使用BGP协议原因
    ∙ \bullet 互联网的规模太大,使得自治系统AS之间路由选择非常困难。
    ∙ \bullet 自治系统AS之间的路由选择必须考虑有关策略。
    因此,自治系统之间的路由选择协议应当允许使用多种路由选择策略。这些策略包括政治、安全或经济方面的考虑。
  3. BGP路由
    ∙ \bullet 边界路由器(或边界网关)
    一个AS至少要有一个边界路由器和相邻AS的边界路由器直接相连。
    ∙ \bullet 内部路由器。
    在这里插入图片描述
  4. BGP协议交换路由信息的节点数是以自治系统数为单位的,BGP交换路由信息的节点数不小于自治系统数。
1.建立BGP路由表

▶ \blacktriangleright 通过交换信息建立路由表

  1. 交换信息
    ∙ \bullet 和谁交换?
    与其他相邻AS的BGP发言人交换信息。
    ∙ \bullet 多久交换?
    发生变化时更新有变化的部分。
    ∙ \bullet 交换什么?
    交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。(一个完整的路径)
    在这里插入图片描述在这里插入图片描述
  2. BGP的路由表
    BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列 (一个完整的路径)。
  3. BGP-4的四种报文
    ∙ \bullet OPEN(打开)报文
    用来与相邻的另一个BGP发言人建立关系,并认证发送方。
    ∙ \bullet UPDATE(更新)报文
    通告新路径或撤销原路径。
    ∙ \bullet KEEPALIVE(保活)报文
    在无UPDATEI时,周期性证实邻站的连通性;也作为OPEN的确认
    ∙ \bullet NOTIFICATION(差错通知)报文
    报告先前报文的差错;也被用于关闭连接。

4.6.5 三种路由协议比较 与 协议所在层次 ★ \bigstar ★ \bigstar ★ \bigstar
  1. RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。距离向量算法
  2. OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP报文
  3. BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP

在这里插入图片描述
在这里插入图片描述


4.6.6 网络层设备

▶ \blacktriangleright 路由器

  1. 定义
    ∙ \bullet 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
    ∙ \bullet 路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。
  2. 路由表
    根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
  3. 交换结构:
    ∙ \bullet 根据转发表(路由表得来)对分组进行转发
    ∙ \bullet 若收到RIP/OSPF分组等,则把分组送往路由选择处理机;
    ∙ \bullet 若收到数据分组,则查找转发表并输出。
    在这里插入图片描述
  4. 输出端口将交换结构传送来的分组发送到线路
    ∙ \bullet 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
    在这里插入图片描述

▶ \blacktriangleright 路由器与网关

  1. 路由器
    路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  2. 网关
    网关上有两张网卡,分别配置了属于两个子网的ip地址,可以在两个网络间转发数据包
    在这里插入图片描述


4.7 IP组播

在这里插入图片描述


4.7.1 基本概念

▶ \blacktriangleright 组播传输方式

  1. IP数据报的三种传输方式
    单播、广播、组播
  2. 组播
    提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。
    在这里插入图片描述
  3. 多播路由器
    在互联网范围的多播要靠路由器来实现,这些路由器必须增加一些能够识别多播数据报的软件。能够运行多播协议的路由器称为多播路由器(multicast router)。多播路由器当然也可以转发普通的单播IP数据报。

▶ \blacktriangleright IP组播地址

  1. 定义:
    在互联网上进行组播就叫作IP组播。IP组播所传送的分组需要使用组播IP地址。
  2. 组播数据报传送到客户主机的过程
    ∙ \bullet 在组播数据报的目的地址写入的是组播组的标识符,然后设法让加入到这个组播组的主机的IP地址与组播组的标识符关联起来。
    ∙ \bullet 标识符:
    就是IP地址中的D类地址。一个D类地址表示一个组播组
  3. 多播地址只能用于目的地址,而不能用于源地址。
    即:多播地址只能作为被请求的主机IP地址,向组播地址发送数据时,所有同一组播组的主机都会收到该数据,即组播地址可以作为目的地址。
  4. 特点
    ∙ \bullet 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP
    ∙ \bullet 对组播数据报不产生ICMP差错报文。PING不会收到响应。
    ∙ \bullet 并非所有D类地址都可以作为组播地址。

4.7.2 硬件组播

▶ \blacktriangleright 在局城网上进行硬件组播

  1. 定义:
    ∙ \bullet 同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。
    ∙ \bullet 收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
  2. 映射关系
    在这里插入图片描述

▶ \blacktriangleright 在因特网的范围内进行组播

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

▶ \blacktriangleright IGMP协议

  1. 定义:
    IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
    在这里插入图片描述
  2. IGMP工作的两个阶段
    ∙ \bullet 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。
    ∙ \bullet 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。

▶ \blacktriangleright 组播路由选择协议

  1. 定义:
    组播路由选择协议目的是找出以源主机为根节点的组播转发树
  2. 组播路由选择协议常使用的三种算法:
    ∙ \bullet 基于链路状态的路由选择
    ∙ \bullet 基于距离-向量的路由选择
    ∙ \bullet 协议无关的组播(稀疏/密集)


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

4.8.1 虚拟专用网VPN

▶ \blacktriangleright 专用网

  1. 专用网定义
    ∙ \bullet 假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址
    ∙ \bullet 这就是说,让这些计算机使用仅在本机构有效的IP地址(这种地址称为本地地址),而不需要向互联网的管理机构申请全球唯一的P地址(这种地址称为全球地址)。
  2. 专用IP地址
    RFC1918 指明了一些专用地址(private address)
    ∙ \bullet 避免出现地址的二义性
    ∙ \bullet 作用域:
    专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
    在这里插入图片描述在这里插入图片描述

▶ \blacktriangleright 虚拟专用网VPN

  1. 定义:
    利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN(Virtual Private Network)。
  2. 虚拟专用网的通信
    ∙ \bullet 如果专用网不同网点之间的通信必须经过公用的互联网,又有保密的要求,那么所有通过互联网传送的数据都必须加密。
    ∙ \bullet 使用IP隧道技术实现虚拟专用网。
    在这里插入图片描述
  3. 专用网类型
    ∙ \bullet 内联网VPN
    表示场所A和B都属于同一个机构。
    ∙ \bullet 外联网VPN
    有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。
    ∙ \bullet 远程接入VPN
    员工通过拨号接入互联网,而驻留在员工个人电脑中的VPN软件可以在员工的个人电脑和公司的主机之间建立VPN隧道,因而外地员工与公司通信的内容也是保密的。

4.8.2 网络地址转换NAT

▶ \blacktriangleright 网络地址转换NAT(Network Address Translation)

  1. 定义:
    在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址
    在这里插入图片描述
  2. 私有IP地址网段
    在这里插入图片描述
  3. 通信过程
    ∙ \bullet NAT路由器收到IP数据报
    从专用网内部的主机A 发往互联网上主机B的IP数据报。
    从互联网上主机B 发往专用网内部的主机A的IP数据报。
    ∙ \bullet 转换数据报中源IP地址
    NAT路由器改写数据报中源地址后发送。
  4. 网络地址与端口号转换
    ∙ \bullet 使用端口号的NAT叫作网络地址与端口号转换NAPT(Network Address and Port Translation)
    ∙ \bullet 当APT路由器收到从互联网发来的应答时,就可以从IP数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从NAPT转换表中找到正确的目的主机
    在这里插入图片描述



------------------------------------------------------------------------

第5章 传输层

5.1 传输层概述

5.1.1 进程之间的通信

▶ \blacktriangleright 传输层概述

  1. 定义
    为应用层提供通信服务,使用网络层的服务
  2. 功能:
    ∙ \bullet 传输层提供进程和进程之间的逻辑通信。
    ∙ \bullet 复用和分用
    复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
    分用:传输层从网络层收到数据后交付指明的应用进程。
    ∙ \bullet 传输层对收到的报文进行差错检测。

5.1.2 运输层的两个主要协议

▶ \blacktriangleright 传输层的两个协议

  1. 传输控制协议TCP
    ∙ \bullet 面向连接的传输控制协议
    ∙ \bullet 传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
    ∙ \bullet 可靠,面向连接,时延大,适用于大文件。
  2. 用户数据报协议UDP
    ∙ \bullet 无连接的用户数据报协议
    ∙ \bullet 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
    ∙ \bullet 不可靠,无连接,时延小,适用于小文件。
    在这里插入图片描述

5.1.3 运输层的端口

▶ \blacktriangleright 传输层的寻址与端口

  1. 端口号
    标识主机中的应用进程。
    在这里插入图片描述
  2. 熟知端口号
    在这里插入图片描述
  3. 在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
    ∙ \bullet 套接字 S o c k e t : ( 主机 I P 地址,端口号 ) 套接字Socket:(主机IP地址,端口号) 套接字Socket:(主机IP地址,端口号)


5.2 用户数据报协议UDP 8B DNS DHCP RIP

▶ \blacktriangleright UDP概述

  1. 定义:
    UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
    在这里插入图片描述
  2. UDP的主要特点:
    ∙ \bullet UDP是无连接的,减少开销和发送数据之前的时延。
    ∙ \bullet UDP使用最大努力交付,即不保证可靠交付
    ∙ \bullet UDP是面向报文的,适合一次性传输少量数据的网络应用。
    应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
    ∙ \bullet UDP无拥塞控制,适合很多实时应用。

▶ \blacktriangleright UDP的首部格式

  1. 字段:UDP首部8B + 数据部分
    ∙ \bullet 源端口
    源端口号。在需要对方回信时选用。不需要时可用全0。
    ∙ \bullet 目的端口
    目的端口号。这在终点交付报文时必须使用。
    ∙ \bullet 长度
    UDP用户数据报的长度,其最小值是8(仅有首部)。
    ∙ \bullet 检验和
    检测UDP用户数据报在传输中是否有错。有错就丢弃。可以不使用
  2. 伪首部
    只有在计算检验和时才出现,不向下传送也不向上递交。
    在这里插入图片描述
  3. 校验
    发送时:
    ∙ \bullet 填上伪首部
    ∙ \bullet 全0填充检验和字段
    ∙ \bullet 全0填充数据部分
    ∙ \bullet 伪首部+首部+数据部分采用二进制反码求和
    ∙ \bullet 把和求反码填入检验和字段
    接收端:
    ∙ \bullet 填上伪首部
    ∙ \bullet 伪首部+首部+数据部分采用二进制反码求和
    ∙ \bullet 结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。
    在这里插入图片描述


5.3 传输控制协议TCP ★ \bigstar ★ \bigstar ★ \bigstar 报文段首部格式 ACK机制

5.3.1 TCP概述

▶ \blacktriangleright TCP协议特点

  1. TCP是面向连接(虚连接)的传输层协议。打call
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是端对端的(进程—进程)
    IP协议是点对点的协议(主机—主机)
  3. TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
  4. TCP提供全双工通信,两端都设有发送缓存和接收缓存
    ∙ \bullet 发送缓存
    准备发送的数据&已发送但尚未收到确认的数据
    ∙ \bullet 接收缓存
    按序到达但尚未被接受应用程序读取的数据&不按序到达的数据
  5. TCP面向字节流
    TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
    在这里插入图片描述

▶ \blacktriangleright TCP报文段首部格式
在这里插入图片描述

  1. 序号字段:y
    在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号
  2. 确认号:x
    期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
  3. 数据偏移(首部长度):
    TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。
  4. 6个控制位
    ∙ \bullet 紧急位URG:
    URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
    ∙ \bullet 确认位ACK:
    ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
    ∙ \bullet 推送位PSH:
    PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。
    ∙ \bullet 复位RST:
    RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
    ∙ \bullet 同步位SYN:
    SYN=1时,表明是一个连接请求/连接接受报文。
    ∙ \bullet 终止位FIN:
    FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
  5. 窗口:
    指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
  6. 检验和:
    ∙ \bullet 检验首部+数据,
    ∙ \bullet 检验时要加上12B伪首部,伪首部第四个字段为6。
    紧急指针:
    URG=1时才有意义,指出本报文段中紧急数据的字节数。

5.3.2 TCP连接 ★ \bigstar ★ \bigstar ★ \bigstar

▶ \blacktriangleright TCP连接

  1. TCP连接传输三个阶段:
    ∙ \bullet 连接建立
    ∙ \bullet 数据传送
    ∙ \bullet 连接释放

▶ \blacktriangleright TCP连接建立

  • 同步位SYN:
    SYN=1时,表明是一个连接请求/连接接受报文。
  • 确认位ACK:
    ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
  • 确认号ack:x+1,我要我要我要我要的那个,发我!
    期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
  • 序号字段seq:给你!
    初始序号:y
    在这里插入图片描述
  1. 客户端发送连接请求报文段:不携带数据,消耗一个序号。
    S Y N = 1 , s e q = x ( 随机序号 ) SYN=1,seq=x(随机序号) SYN=1,seq=x(随机序号)
  2. 服务器向客户端返回确认报文段:服务器端为该TCP连接分配缓存和变量,不携带数据,消耗序号。
    S Y N = 1 , A C K = 1 , s e q = y ( 随机序号 ) , a c k = x + 1 ( 确认号 ) SYN=1,ACK=1,seq=y(随机序号), ack=x+1(确认号) SYN=1,ACK=1,seq=y(随机序号),ack=x+1(确认号)
  3. 客户端向服务器端返回确认的确认:客户端为该TCP连接分配缓存和变量,若不携带数据,不消耗序号。
    S Y N = 0 , A C K = 1 , s e q = x + 1 ( 发送的 ) , a c k = y + 1 ( 期望从服务器收到的确认号 ) SYN=0,ACK=1,seq=x+1(发送的),ack=y+1(期望从服务器收到的确认号) SYN=0,ACK=1,seq=x+1(发送的),ack=y+1(期望从服务器收到的确认号)

在这里插入图片描述
在这里插入图片描述

▶ \blacktriangleright TCP连接释放

  • TCP连接的两个进程中的任何一个都能终止该连接
    连接结束后,主机中的“资源”(缓存和变量)将释放。
    在这里插入图片描述
  1. 客户端发送连接释放报文段:停止发送数据,主关闭TCP连接,不携带数据,消耗序号。
    F I N = 1 , s e q = u FIN=1,seq=u FIN=1,seq=u
  2. 服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了一一半关闭状态。
    A C K = 1 , s e q = v , a c k = u + 1 ACK=1,seq=v,ack=u+1 ACK=1,seq=v,ack=u+1
  3. 等服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。
    F I N = 1 , A C K = 1 , s e q = w , a c k = u + 1 FIN=1,ACK=1,seq=w,ack=u+1 FIN=1,ACK=1,seq=w,ack=u+1
  4. 客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。
    A C K = 1 , s e q = u + 1 , a c k = w + 1 ACK=1,seq=u+1,ack=w+1 ACK=1,seq=u+1,ack=w+1

5.3.3 TCP可靠传输

▶ \blacktriangleright TCP可靠传输

  1. 定义
    接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。
  2. TCP实现可靠传输的机制
    ∙ \bullet 校验
    与UDP校验一样,增加伪首部
    ∙ \bullet 序号
    ∙ \bullet 确认
    TCP默认使用累计确认。
    ∙ \bullet 重传
    超时重传:TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。
    TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。
    TCP规定每当比期望序号大的失序报文段到达时,就发送一个冗余ACK,指明下一个期待字节的序号。

5.3.4 TCP流量控制

▶ \blacktriangleright TCP流量控制

  1. 定义
    ∙ \bullet 流量控制:让发送方慢点,要让接收方来得及接收。
    ∙ \bullet TCP利用滑动窗口机制实现流量控制 ★ \bigstar
    ∙ \bullet 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方设置确认报文段的窗口字段来将rwnd通知给发送方)
    发送方的发送窗口取 接收窗口rwnd和拥塞窗口cwnd的最小值。 ★ \bigstar ★ \bigstar ★ \bigstar 在这里插入图片描述
  2. 传输层和数据链路层的流量控制的区别是:传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。另外,数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层的窗口大小则可以动态变化
  3. 例:
    A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。
    ∙ \bullet TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
    ∙ \bullet 若持续计时器设置的时间到期,就发送一个零窗口探测报文段。 接收方收到探测报文段时给出现在的窗口值。
    ∙ \bullet 若窗口仍然是0,那么发送方就重新设置持续计时器。
    在这里插入图片描述

5.3.5 TCP拥塞控制

▶ \blacktriangleright TCP拥塞控制

  1. 出现拥塞的条件:
    ∙ \bullet 对资源需求的总和>可用资源
    ∙ \bullet 网络中有许多资源同时呈现供应不足 ⇒ \rArr 网络性能变坏 ⇒ \rArr 网络吞吐量将随输入负荷增大而下降
  2. 拥塞控制:
    防止过多的数据注入到网络中。全局性

▶ \blacktriangleright TCP拥塞控制四种算法

  • 一个传输轮次T:每经过一个传输轮次结束后,cwnd增加,重点注意是结束后 ★ \bigstar ★ \bigstar ★ \bigstar
    ∙ \bullet 发送了一批报文段并收到它们的确认的时间。
    ∙ \bullet 一个往返时延RTT
    ∙ \bullet 窗口内的报文段到开始发送下一批拥塞窗口内的报文段的时间。在这里插入图片描述重点注意是第四个RTT结束后在这里插入图片描述
  • ssthresh慢开始门限:新的慢开始门限取上一次网络拥塞值的一半。
  1. 慢开始和拥塞避免
    ∙ \bullet 指数增长1.2 .4 8… ⇒ \rArr 门限 ⇒ \rArr 加法增大 ⇒ \rArr 拥塞 ⇒ \rArr 门限乘1/2,窗口减到1
    在这里插入图片描述
  2. 快重传快恢复
    ∙ \bullet 快重传:当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。
    ∙ \bullet 快恢复:当发送方连续收到三个重复的ACK报文时,拥塞,门限乘1/2减小,窗口=新门限
    在这里插入图片描述
    在这里插入图片描述

每收到一个对新报文段的确认就使发送方的拥塞窗口加1。
在这里插入图片描述

注意发送窗口大小
在这里插入图片描述


四种算法使用的总结: 在TCP连接建立和网络出现超时时,采用慢开始和拥塞避免算法;当发送方接收到冗余ACK时,采用快重传和快恢复算法

▶ \blacktriangleright TCP拥塞控制与TCP流量控制

  1. 接收窗口
    接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
  2. 拥塞窗口
    发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
    在这里插入图片描述



------------------------------------------------------------------------

第6章 应用层

▶ \blacktriangleright 应用层协议定义:

  1. 应用进程交换的报文类型,请求还是响应?
  2. 各种报文类型的语法,如报文中的各个字段及其详细描述。
  3. 字段的语义,即包含在字段中的信息的含义。
  4. 进程何时、如何发送报文,以及对报文进行响应的规则。

▶ \blacktriangleright 应用层的功能

  1. 文件传输、访问和管理
  2. 电子邮件
  3. 虚拟终端
  4. 查询服务和远程作业登录

6.1 网络模型

▶ \blacktriangleright 客户/服务器模型(C/S)

  1. 定义:
    ∙ \bullet 客户(client)和服务器(server’)都是指通信中所涉及的两个应用进程
    ∙ \bullet 客户服务器方式所描述的是进程之间服务和被服务的关系。这里最主要的特征就是:客户是服务请求方,服务器是服务提供方。
  • 客户机间不可互相通信
  • 客户机是面向用户的

▶ \blacktriangleright P2P

  • 对等关系、逻辑网络

6.2 域名系统DNS:CS、UDP、53

6.2.1 域名系统概述

域名空间、域名服务器、解析器

▶ \blacktriangleright 域名

  • 多台主机也可以映射到同一个域名上(如负载均衡),一台主机也可以映射到多个域名上(如虚拟主机)。
    在这里插入图片描述

▶ \blacktriangleright 域名解析过程

  • 客户/服务器模型
  • 使用UDP(使用UDP是为了减少开销)
  • 53号端口
  1. 解析过程:
    ∙ \bullet 把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。
    ∙ \bullet 本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。
    ∙ \bullet 应用进程获得目的主机的IP地址后即可进行通信。
    若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户
    ∙ \bullet 并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。

6.1.2 互联网的域名结构

▶ \blacktriangleright 互联网域名空间的结构

  1. 域名
    在这里插入图片描述
  2. 域名结构
    在这里插入图片描述

6.1.3 域名服务器

▶ \blacktriangleright 区:服务器管辖范围的单位

  1. 根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
  2. 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射
  3. DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位
    在这里插入图片描述

▶ \blacktriangleright 域名服务器

  1. 分类:
    根域名服务器 、顶级域名服务器 、权限域名服务器 、本地域名服务器
  2. 根域名服务器
    ∙ \bullet 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
    ∙ \bullet 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
    ∙ \bullet 在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。
    ∙ \bullet 在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器。
  3. 顶级域名服务器(即 TLD 服务器)
    ∙ \bullet 负责管理在该顶级域名服务器注册的所有二级域名。
    ∙ \bullet 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
  4. 权限域名服务器
    ∙ \bullet 负责一个区的域名服务器。总能将其管辖的主机名转换为该主机的IP地址。
    ∙ \bullet 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
  5. 本地域名服务器
    ∙ \bullet 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
    ∙ \bullet 每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。

▶ \blacktriangleright 域名解析方式

  1. 两种方式
    递归与迭代查询
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


6.2 文件传送协议FTP:CS、TCP、21

▶ \blacktriangleright 概述

  1. 允许客户指明文件的类型与格式,并允许文件具有存取权限。
  2. 适合于在异构网络中任意计算机之间传送文件。
  3. 使用TCP实现可靠传输

▶ \blacktriangleright FTP的基本工作原理

  1. FTP的基本概念
    ∙ \bullet 即文件传送协议,它允许用户将本地计算机上的文件上传到服务器,或者允许用户从服务器上获得文件副本并将文件下载到本地计算机上。
    ∙ \bullet 服务器在进行文件传送时要求用户输入账号和密码。
    但Intemet上还有许多FTP服务器都提供自由下载的文件信息,用户登录时不需使用密码,这种FTP服务称为匿名FTP服务。
  2. FTP的工作原理
    ∙ \bullet FTP使用“客户机/服务器”的工作方式,客户端需要在自己的计算机上安装FTP客户端软件;
    ∙ \bullet 使用FTP可传送任何类型的文件,在进行文件传送时,FTP客户机和服务器之间要建立两个连接:控制连接和数据连接
    ∙ \bullet 控制连接
    用于在客户端和服务器之间发送控制信息,如用户名和口令、改变远程目录的命令、取来或放回文件的命令;
    ∙ \bullet 数据连接
    在控制连接建立之后,即可开始传输文件。
    ∙ \bullet 客户端向服务器发出连接(控制连接) 请求时:
    服务器端的默认端口为21,同时将自己选择的端口告知服务器,用于建立数据连接,控制连接在整个会话期间一直打开;
    ∙ \bullet FTP客户端所发出的命令通过控制连接发给服务器端的控制进程,控制进程在接收到客户端的请求后,创建一个数据传送过程,该进程用服务器端口号20与客户提供的端口建立用于数据传送的TCP连接, 数据传送完成后关闭该数据传送连接;
  3. FTP的主要参数
    ∙ \bullet 命名用户:
    在创建命名用户时,一般都要设置密码。用户在登录服务器上传、下载文件时,首先需要输入正确的用户名和密码
    ∙ \bullet 匿名用户:
    在Serv-UFTP服务器中,对名为anonymous的用户自动识别为匿名用户,但匿名用户只能下载文件;
    ∙ \bullet 组:
    为简化账户的权限管理,可以将大量的、具有相同访问权限的账户集中到一个组内。在Serv-U FTP服务器中,可以在用户管理中创建用户组。对一个用户组赋予权限,就等同于给组内的每个账户赋予相同的权限。
    ∙ \bullet 域:
    在Serv-U FTP服务器中,可以创建多个虚拟服务器,每个虚拟的服务器也称作域,一个域是由 IP地址 和端口号唯一识别
    即服务器使用多个IP地址


6.3 电子邮件:CS、TCP、SMTP25、POP3110

▶ \blacktriangleright E-mail概念及原理

  1. E-mail的基本概念
    ∙ \bullet E-mail简称电子邮件,是一种用电子手段进行信息交换的通信方式,也是互联网上最重要的网络应用之一。电子邮件的核心是邮件服务器。
    ∙ \bullet 电子邮件地址通常由两部分构成,例如yaoliang1949@sohu.com
    第一部分是信箱名称(yaoliang1949)
    第二部分为邮件服务器的域名(sohu.com),两者之间使用@隔开。
    ∙ \bullet 发送方的邮件服务器软件在发送邮件时根据第二部分来确定要连接的接收方邮件服务器;
    接收邮件服务器软件则使用信箱名来选择对应的邮箱将接收到的邮件存储起来
  2. 发送:SMTP:只能传送一定长度的ASCII码邮件
  3. 接收:POP3\IMAP
    在这里插入图片描述
  4. 基于万维网的电子邮件,如Hotmail、Gmail等。
    这种电子邮件的特点是,用户浏览器与Hotmail或Gmail的邮件服务器之间的邮件发送或接收使用的是HTTP,而仅在不同邮件服务器之间传送邮件时才使用SMTP。


6.4 万维网:CS、TCP、80 ★ \bigstar

6.4.1 万维网概述

▶ \blacktriangleright 万维网

  1. 定义
    ∙ \bullet 万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
  2. 超媒体与超文本
    ∙ \bullet 万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
    ∙ \bullet 每个万维网站点都存放了许多文档
    ∙ \bullet 文档使用链接,从互联网上的一个站点访问另一个站点(即“链接到另一个站点的某个文档”),从而主动地按需获取丰富的信息。
    ∙ \bullet 这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万维网的基础。所谓超文本是指包含指向其他文档的链接的文本(text)。
  3. 万维网的工作方式
    ∙ \bullet 万维网以客户/服务器方式工作
    ∙ \bullet 用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序
    ∙ \bullet 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
    ∙ \bullet 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
  4. 统一资源定位符URL
    ∙ \bullet 标志分布在整个互联网上的万维网文档
    URL一般形式:
    <协议>://<主机>:<端口>/<路径>
  5. HTTP协议:
    ∙ \bullet 实现万维网上各种超链的链接
    资源通过超文本传输协议(HTTP)传送给使用者。
  6. 超文本标记语言 HTML
    各种万维网文档的显示与超链链接。

6.4.2 超文本传送协议HTTP

▶ \blacktriangleright HTTP协议

  1. 定义
    ∙ \bullet HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
    ∙ \bullet HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
  2. 万维网的工作过程 ★ \bigstar
    > 浏览器分析URL
 浏览器向DNS请求解析IP地址
 DNS解出IP地址
 浏览器与服务器建立TCP连接
 浏览器发出取文件命令
 服务器响应
 释放TCP连接
 浏览器显示
    在这里插入图片描述
  3. HTTP 的主要特点
    ∙ \bullet 是无状态的 (stateless),使用Cookie加数据库跟踪用户,Cookie
    ∙ \bullet HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
  4. HTTP协议的连接方式
  • 非持久连接
    对于非持久连接,每个网页元素对象(如JPEG图形、Flash等)的传输都需要单独建立一个TCP连接在这里插入图片描述
  • 持久连接
    万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
    ∙ \bullet 非流水线方式:
    客户在收到前一个响应后才能发出下一个请求。浪费了服务器资源。
    ∙ \bullet 流水线方式:
    客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。提高了下载文档效率。 在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

▶ \blacktriangleright HTTP报文结构

  1. HTTP报文
    ∙ \bullet 分类:请求报文\响应报文
    ∙ \bullet HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCIIT码串。
  2. 结构
    ∙ \bullet 首部行
    说明浏览器、服务器和报文主体的一些信息。
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

folielxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值