第一章 概论

体系结构

计算机网络五层体系结构

五层体系结构

  • OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。

  • TCP/IP 是四层体系结构,但最下面的网络接口层并没有具体内容。

  • 在学习计算机网络原理时往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。

OSI七层协议体系结构

  • 物理层:利用传输介质为通信的网络结点之间建立、管理和释放物理连接;实现比特流的透明传输,为数据链路层提供数据传输服务;物理层的数据传输单元是比特。
  • 数据链路层:在物理层提供的服务基础上,数据链路层在通信的实体间建立数据链路连接;传输以“帧”为单位的数据包;采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
  • 网络层:通过路由选择算法为分组通过通信子网选择最适当的路径;为数据在结点之间传输创建逻辑链路;实现拥塞控制、网络互连等功能。
  • 传输层:可提供可靠端到端(end-to-end)服务;处理数据包错误、数据包次序,以及其他一些关键传输问题;传输层向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。
  • 会话层:负责维护两个结点之间的传输链接,以便确保点对点传输不中断,管理数据交换。
  • 表示层:用于处理在两个通信系统中交换信息的表示方式,数据格式变换、数据加密与解密、数据压缩与恢复。
  • 应用层:为应用程序提供了网络服务;应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步;建立传输错误纠正与保证数据完整性的控制机制。

服务与协议

  • 协议:控制两个对等实体(或多个实体)进行通信的规则的集合
  • 在协议的控制下,两个对等实体间的通信使得本层能向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。协议可以向上提供服务,而被服务的实体无法看到具体的协议。即协议是“水平的”(控制对等实体之间通信的规则),服务是“垂直的”(服务是由下层向上层通过层间接口提供的)。

交换技术

电路交换

  • 必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。

    电路交换
  • 特点:

    • 突发性:数据是突发式地出现在传输线路上的
    • 利用率低:线路上真正用来传送数据的时间往往不到10%甚至1%,已被用户占用的通信线路资源在绝大部分时间里都是空闲的。

分组交换

  • 分组交换采用存储转发技术,把一个报文划分为几个分组后再进行传送。每一个数据段前面都会加上一些必要的控制信息组成首部(header),包括目的地址、源地址等重要信息。

    分组
  • 分组交换网中的结点交换机根据收到的分组首部中的地址信息,把分组转发到下一个结点交换机。每个分组在互联网中独立地选择传输路径。用这样的存储转发方式,最后分组就能到达最终目的地。

    分组交换
  • 优点:

    • 高效:再分组传输的过程中动态分配传输带宽,对通信链路逐段占用
    • 灵活:为每一个分组独立地选择最合适的转发路由
    • 迅速:以分组作为传送单位,不先建立连接就能向其他主机发送分组
    • 可靠:保证可靠性的网络协议,分布式多路由的分组交换网使得网络有很好的生存性
  • 缺点:

    • 造成一定的时延:分组在各路由器存储转发时需要排队
    • 造成一定的开销:数据在转发过程中可能会丢失

交换方式的对比

  • 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。

  • 报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。

  • 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。

三种交换方式

第二章 物理层

编码-解码

  • 在发送端要将数字数据变换为数字信号,以便在数字通信系统中传输,这一过程称为编码。

  • 在接收端,要将数字信号还原为原来的形式,这一过程称为解码。

  • 最常用的数字信号编码技术有以下几种:

    • 不归零制:正电平代表 1,负电平代表 0。

    • 归零制:正脉冲代表 1,负脉冲代表 0。

    • 曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。(IEEE 802.3以太局域网标准编码)

    • 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。(IEEE 802.5令牌环局域网标准编码)

    常用编码方式
  • 每个码元中间都要发生跳变,接收端可将此变化提取出来作为同步信号,使接收端的时钟与发送设备的时钟保持一致。曼彻斯特编码也称为自同步码(即有自同步能力)。

调制-解调

  • 基带信号(基本频带信号):来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制 (modulation)。调制分为两类:

    • 基带调制:仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。把这种过程称为编码 (coding)。
    • 带通调制:使用载波 (carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输(即仅在一段频率范围内能够通过信道) 。
    基带调制与带通调试
  • 基本的带通调制方法

    • 调幅(AM):载波的振幅随基带数字信号而变化。
    • 调频(FM):载波的频率随基带数字信号而变化。
    • 调相(PM) :载波的初始相位随基带数字信号而变化。
    带通调制方法
  • 脉冲编码调制(PCM)解调技术三步骤:

    • 采样:按一定间隔对语音信号进行采样
    • 量化:对每个样本舍入到量化级别上
    • 编码:对每个舍入后的样本进行编码

通信方式

模拟数据和数字数据之间都可以用模拟信号或数字信号来表示,可以用其中任意一种形式传输。

传输形式的转换

复用技术

  • 频分多路复用FDM (Frequency Division Multiplexing),适合于模拟信号的传输,如电话系统、电视系统。
  • 时分多路复用TDM(Time Division Multiplexing),适用于数字信号的传输,计算机网络中的数据突发性,应用异步时分多路复用技术
  • 波分多路复用WDM (Wave Division Multiplexing) ,应用于全光纤组成的网络中,传输的是光信号
  • 码分多路复用CDM(Code Division Multiplexing),广泛应用于移动通信和无线局域网

频分复用FDM

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

时分复用TDM

  • 时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙,所有用户在不同的时间占用同样的频带宽度。
  • TDM 信号也称为等时 (isochronous) 信号。
时分复用

统计时分复用STDM

  • 按需动态地分配时隙。因此统计时分复用可以提高线路的利用率。
image-20240414162413297

波分复用WDM

  • 波分复用就是光的频分复用。使用一根光纤来同时传输多个光载波信号。
波分复用

码分复用CDM

  • 码分复用让每一个用户在同样的时间,使用同样的频带进行通信,各用户使用经过特殊挑选的不同码型(码分多址 CDMA (Code Division Multiple Access)),因此彼此不会造成干扰。
  • 这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
  • 每一个比特时间划分为 m 个短的间隔,即“码片”,使用CDMA的每一个站被指派一个唯一的m bit码片序列,一般是64或128。如发送比特1,则发送码片系列,发送0则发送码片序列的二进制反码。

传输介质

数据传输系统中在发送器和接收器之间的物理通路,是通信中实际传输信息的载体。传输介质(传输媒体)分为两大类:

  • 导引型传输媒体:电磁波被导引沿着固体媒体(铜线或光纤)传播。
  • 非导引型传输媒体:即自由空间。在非导引型传输媒体中,电磁波的传输常称为无线传输。
电信领域使用的电磁波的频谱

第三章 数据链路层

CSMA/CD

  • CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。 总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。

工作过程

  1. 先听后发
  2. 边听边发
  3. 冲突停止
  4. 随机延迟后重发
CSMA/CD工作流程

争用期

  • 最先发送数据帧的站,在发送数据帧后至多经过时间$2\tau$(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。以太网的端到端往返时延$2\tau$​称为争用期,或碰撞窗口。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

    在争用期内发生碰撞的情形

二进制指数退避算法

  • 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。

    • 基本退避时间取为争用期$2\tau$。
    • 从整数集合$[0, 1, … , (2^k - 1)]$中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间$r\times2\tau$。
    • 参数 k 按公式计算:$k = min(重传次数, 10)$​,当 k ≤10 时,参数 k 等于重传次数。当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
    举例
    • 第 1 次冲突重传时:k = 1,r 为 {0,1} 集合中的任何一个数。
    • 第 2 次冲突重传时:k = 2,r 为 {0,1,2,3} 集合中的任何一个数。
    • 第 3 次冲突重传时:k = 3,r 为 {0,1,2,3,4,5,6,7} 集合中的任何一个数。
  • 10 Mbit/s 以太网取$51.2\mu s$为争用期的长度。对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。

    这意味着:以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。

    例题

    假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢?

    参考答案:对于10Mb/s的以太网,以太网把争用期定为51.2微秒,要退后100个争用期,等待时间是$51.2\mu s\times100=5.12ms$。

    对于100Mb/s的以太网,以太网把争用期定为5.12微秒,要退后100个争用期,等待时间是$5.12\mu s \times100=512\mu s$

最短有效帧长

  • 以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。

  • 如果发生冲突,就一定是在发送的前 64 字节之内。 由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。

    例题

    假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长?

    参考答案:对于 1km 电缆,单程传播时间为$1÷200000=5\mu s$,往返传播时间为$10\mu s$。为了能够按照CSMA/CD工作,最小帧的发射时间不能小于$10\mu s$。以1Gb/s速率工作,$10\mu s$可以发送的比特数为$10\times10^{-6}s\times10^9bps=10000bit$,因此,最短帧是10000 位或 1250 字节长。

重要特性

  • 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
  • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
  • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

CSMA/CA

  • 无线局域网不能简单地搬用 CSMA/CD 协议。因为:

    • “碰撞检测”要求一个站点在发送本站数据的同时,还必须不间断地检测信道,但接收到的信号强度往往会远远小于发送信号的强度,在无线局域网的设备中要实现这种功能就花费过大。
    • 即使能够实现碰撞检测的功能,并且在发送数据时检测到信道是空闲的时候,在接收端仍然有可能发生碰撞。
  • 改进的办法是把 CSMA 增加一个碰撞避免 CA(Collision Avoidance)功能。
    802.11 就使用 CSMA/CA 协议。在使用 CSMA/CA 的同时,还增加使用停止等待协议。

  • CSMA/CA算法:

    1. 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间 DIFS 后,就发送整个数据帧。
    2. 否则,站点就要等检测到信道空闲并经过时间 DIFS 后,执行 CSMA/CA 协议的退避算法,启动退避计数器。在退避计数器减少到零之前,一旦检测到信道忙,就冻结退避计时器。一旦信道空闲,退避计时器就进行倒计时。
    3. 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认。
    4. 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二帧,就要从上面的步骤 (2) 开始,执行 CSMA/CA 协议的退避算法,随机选定一段退避时间。若源站在规定时间内没有收到确认帧 ACK(由重传计时器控制这段时间),就必须重传此帧 (再次使用 CSMA/CA 协议争用接入信道),直到收到确认为止,或者经过若干次的重传失败后放弃发送。
    CSMA/CA流程图

CRC(循环冗余检验)

  • CRC(Cyclic Redundancy Check)是为了保证数据传输的可靠性,在计算机网络传输数据时采用的差错检测措施。

  • 在发送端,先把数据划分为组。假定每组 k 个比特。 在每组 M 后面再添加供差错检测用的 n 位冗余码,然后一起发送出去。

    循环冗余检验
  • 计算方法详见计算题篇

网卡

  • 网络接口板又称为通信适配器(adapter)或网络接口卡 NIC(Network Interface Card),或“网卡”。
  • 适配器的重要功能:
    1. 进行串行/并行转换
    2. 对数据进行缓存
    3. 在计算机的操作系统安装设备驱动程序
    4. 实现以太网协议
  • 网络接口卡(网卡)是连接主机与网络的基本设备
    • 每台主机都应配置一个或多个网卡;
    • 每个网卡都有一个(或多个)网络接口;
    • 不能独立工作,必须依赖于宿主主机。
  • 网卡工作在物理层和数据链路层
  • 连接不同的局域网需要使用不同的网卡
    • 以太网卡
    • 令牌环网卡
    • FDDI网卡
    • ATM网卡

交换机(自学习)

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

  • 交换机可以隔绝冲突域,但不隔绝广播域。

    隔绝比较? 冲突域 广播域
    集线器Hub
    交换机Switch
    路由器Router
  • 自学习过程

    交换机自学习过程
    举例
    • $A\to B$:

      • A 先向 B 发送一帧,该帧从接口 1 进入到交换机
      • 交换机收到帧后,先查找交换表。没有查到应从哪个接口转发这个帧给 B
      • 交换机把这个帧的源地址 A 和接口 1 写入交换表中
      • 交换机向除接口 1 以外的所有的接口广播这个帧
      • 由于与该帧的目的地址不相符,C 和 D 将丢弃该帧
      交换机自学习算法1
    • $B\to A$:

      1. B 向 A 发送一帧,该帧从接口 3 进入到交换机
      2. 交换机收到帧后,先查找交换表。发现交换表中的 MAC 地址有 A,表明要发送给A的帧应从接口1转发出去。于是就把这个帧传送到接口 1 转发给 A。
      3. 交换机把这个帧的源地址 B 和接口 3 写入交换表中
      交换机自学习算法2

第四章 网络层

ARP

  • ARP协议是用来找出一个机器(主机或路由器)的IP地址对应硬件地址的协议,其工作在网络层。
  • 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
  • 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。作用:减少 ARP 广播的数量
  • 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
    • 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
    • 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。

ICMP

  • 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。

  • ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。

    ICMP报文的格式

报文种类

  • ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。

  • ICMP 差错报告报文有4种:

    • 终点不可达unreachable:路由器/主机不能交付IP数据报
    • 时间超过timed out:IP数据报TTL=0
    • 参数问题:数据报首部字段值不正确
    • 改变路由(重定向)(Redirect)
    不应发送ICMP差错报文的几种情况
    • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
    • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
    • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
    • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
  • ICMP询问报文有2种:

    • 回送请求和回答报文:向特定主机发出询问并由其回复,以测试是否可达
    • 时间戳请求和回答报文:请某台主机或路由器回答当前日期时间(用于时钟同步)
  • 常见应用举例:ping测试两个主机之间的连通性

    ping测试主机连通性

RIP(路由更新)

  • 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(最短距离)。

  • 从一个路由器到直接连接的网络的距离定义为 1,从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。

  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

    例题1

    某自治系统内采用RIP协议,若该自治系统内的路由器R1收到其邻居路由器R2的距离矢量,其中包含信息<net1,16>,则能得出的结论是( )。
    A. R2可以经过R1到达net1,跳数为17
    B. R2可以到达net1,跳数为16
    C. R1可以经过R2到达net1,跳数为17
    D. R1不能经过R2到达net1

    参考答案:D

    在RIP协议中,距离16表明目的网络不可达。因此,R2无法到达net1,R1也无法经过R2到达net1。

    例题2

    假设R1、R2、R3采用RIP协议交换路由信息,且均已收敛。若R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量,则R2更新后,其到达该网络的距离是( )。
    A. 2 B. 3 C.16 D. 17

    image-20240701160203785

    参考答案:C

    R2除了收到R3的更新报文(不可达),也会收到R1发来的更新报文,误以为经过R1到达net。

    image-20240701160223206

协议特点

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

优缺点

  • 优点:实现简单、开销较小
  • 缺点:
    1. RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
    2. 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
    3. “坏消息传播得慢”,使更新过程的收敛时间过长。

VPN

  • 由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。

    • 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
    • 全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。
  • 问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。

    解决:RFC 1918 指明了一些专用地址 (private address)。专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。

    • 10.0.0.0 到 10.255.255.255:A类,或记为10.0.0.0/8,它又称为 24 位块
    • 172.16.0.0 到 172.31.255.255:B类,或记为172.16.0.0/12,它又称为 20 位块
    • 192.168.0.0 到 192.168.255.255:C类,或记为192.168.0.0/16,它又称为 16 位块
  • VPN虚拟专用网利用公用的互联网作为本机构各专用网之间的通信载体。“专用网”是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信,同时并没有实现真正使用通信专线,VPN只是在效果上和真正的专用网一样。

  • 构建:

  • 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。一个机构要构建自己的 VPN 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

NAT

  • NAT解决了专用网上专用地址无法和互联网上的主机通信问题,使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接。

    NAT路由器的工作原理
  • 转换过程:

    1. 内部主机 A 用本地地址 $IP_A$ 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。

    2. NAT 路由器将数据报的源地址 $IP_A$ 转换成全球地址 $IP_G$ ,并把转换结果记录到NAT地址转换表中,目的地址 $IP_B$ 保持不变,然后发送到互联网。(第一次地址转换:替换源地址,将内部地址替换为全球地址)

    3. NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 $IP_B$ 而目的地址是 $IP_G$ 。

    4. 根据 NAT 转换表,NAT 路由器将目的地址$IP_G$ 转换为 $IP_A$​ ,转发给最终的内部主机 A。 (第二次转换:替换目的地址,将全球地址替换为内部地址)

      方向 字段 旧IP地址 新IP地址
      源IP地址 192.168.0.3 172.38.1.5
      目的IP地址 172.38.1.5 192.168.0.3
  • 当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器有限数量的全球 IP 地址。通过 NAT 路由器的通信必须由专用网内的主机发起。专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务。

  • 为了更加有效地利用 NAT 路由器上的全球IP地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。

划分子网-构造超网(路由器转发分组)

计算题可参考划分子网构造超网

划分子网方法

  • 考虑网络中物理段的数量(要划分的子网数量):$2^N-2$(N是掩码被扩展的位数即子网位)或$2^N$(全1和全0的子网号可用,默认)

  • 每个物理段的主机的数量$2^M-2$(M是主机地址的可用位数),主机号不允许为全1或全0

  • 步骤:

    1. 确定子网位(确定网络种物理网段数量)
    2. 确定子网掩码
    3. 确定子网内IP地址的分配
    例题1

    一个公司申请到C类IP为198.166.1.0,需要划分6个子网,请分析各子网地址分配情况?

    分析:该公司需要有8个子网,加上子网号全 0 和全1的两种特殊地址,子网数量至少为 8;

    1. 确定子网号的位长为3,可以用来分配的子网最多为8,满足用户要求。

    2. 子网掩码:由于划分8个子网,需在IP地址的第4字节划出3位供分配子网用,故子网掩码为:255.255.255.224;可用主机号5位。

    3. 地址分配:

      子网地址子网号主机号地址范围
      198.166.1.000000001-111101-30
      198.66.1.3200100001-1111033-62
      198.66.1.6401000001-1111065-94
      198.66.1.9601100001-1111097-126
      198.66.1.12810000001-11110129-158
      198.66.1.16010100001-11110161-190
      198.66.1.19211000001-11110193-222
      198.66.1.22411100001-11110225-25
    例题2

    某单位申请到一个 B 类 IP 地址,其网络标识为 130.53 ,现进行子网划分,若选用的子网掩码为 255.255.224.0
    1)则可划分为多少个子网?
    2)每个子网中的主机数最多为多少台?
    3)请列出全部子网地址。

    1. B类地址默认子网掩码为255.255.0.0,由子网掩码为255.255.224.0可得知,借用了3位划分子网,最多可划分子网个数=23=8(全1全0子网可用)

    2. 每个子网中的主机数$=2^{13}-2 =8190$台

    3. 全部子网地址为:

      130.53.0.0(130.53.0.1~130.53.31.254)
      130.53.32.0
      130.53.64.0
      130.53.96.0
      130.53.128.0
      130.53.160.0
      130.53.192.0
      130.53.224.0

使用子网时分组的转发

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

已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。

image-20240701170108380
  1. 要发送的分组目的IP地址:128.30.33.138,H1 首先检查主机 128.30.33.138 是否连接在本网络上。如果是,则直接交付;否则,就送交路由器 R1,并逐项查找路由表。

  2. H1 首先将本子网的子网掩码 255.255.255.128与分组的 IP 地址 128.30.33.138 逐比特相与”(AND 操作)

    地址比较

    因此 H1 必须把分组传送到路由器 R1然后逐项查找路由表

  3. 路由器 R1 收到分组后就用路由表中第 1 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作 :255.255.255.128 AND 128.30.33.138 = 128.30.33.128 不匹配

  4. 再用路由表种第2个项目的子网掩码比较:255.255.255.128 AND 128.30.33.138 = 128.30.33.128,匹配,这表明子网 2 就是收到的分组所要寻找的目的网络。

第五章 运输层

使用UDP和TCP的典型应用和应用层协议

传输控制协议TCP

特点

  • 面向连接的协议,提供面向连接服务;
  • 其传送的运输协议数据单元TPDU是 TCP 报文;
  • 支持点对点单播,不支持多播、广播;
  • 提供可靠服务;
  • 复杂。用于大多数应用,如:万维网、电子邮件、文件传送等。

端口划分

端口划分
  • 服务器端使用的端口号
    • 熟知端口,数值一般为 0 ~ 1023。紧密绑定于一些特定的重要应用程序。
    • 登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
  • 客户端使用的端口号
    • 又称为短暂端口号,数值为 49152 ~ 65535,留给客户进程选择暂时使用。
    • 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

常见端口

常见端口

可靠传输

停止等待协议

  • “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

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

    无差错情况
  • 出现差错:在接收方 B 会出现两种情况

    1. B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A )。
    2. M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。

    在这两种情况下,B 都不会发送任何信息。但A都必须重发分组,直到B正确接收为止,这样才能实现可靠通信(超时重传):

    1. A 为每一个已发送的分组都设置了一个超时计时器。
    2. A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。
    3. 若A在超时计时器规定时间内没有收到B的确认,就认为分组错误或丢失,就重发该分组。

    若分组正确到达B,但B回送的确认丢失或延迟了,A未收到B的确认,会超时重发,B 可能会收到重复的 M1 。此时使用编号辨别重复分组:

    1. A为每个发送的分组编号。若B收到了编号相同的分组,则认为收到了重复分组,丢弃重复的分组,并回送确认。
    2. B为发送的确认进行编号,指示是对哪一个分组的确认。
    3. A根据确认及其编号,可以确定它是对哪一个分组的确认,避免重发。若为重复的确认,则将其丢弃。
  • 确认丢失:

    1. 若 B 所发送的对 M1 的确认丢失了,那么 A 在设定的超时重传时间内不能收到确认,但 A 并无法知道:是自己发送的分组出错、丢失了,或者 是 B 发送的确认丢失了。因此 A 在超时计时器到期后就要重传 M1。
    2. 假定 B 又收到了重传的分组 M1。这时 B 应采取两个行动:
      • 丢弃这个重复的分组 M1,不向上层交付。
      • 向 A 发送确认。不能认为已经发送过确认就不再发送,因为 A 之所以重传 M1 就表示 A 没有收到对 M1 的确认。
  • 确认迟到:

    1. 传输过程中没有出现差错,但 B 对分组 M1 的确认迟到了。
    2. A 会收到重复的确认。对重复的确认的处理很简单:收下后就丢弃。
    3. B 仍会收到重复的 M1,且同样要丢弃重复的 M1,并重传确认分组。
    确认丢失与确认迟到

连续ARQ协议

流水线传输
  • 流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。
  • 连续ARQ协议基本思想:
    • 发送方一次可以发出多个分组。
    • 使用滑动窗口协议控制发送方和接收方所能发送和接收的分组的数量和编号。
    • 每收到一个确认,发送方就把发送窗口向前滑动。
    • 接收方一般采用累积确认的方式(不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了 )。
    • 采用回退N(Go-Back-N)方法进行重传(发送5个分组,中间的第3个分组丢失。接收方只能对前两个分组发出确认,发送方重传后面的三个分组。→再退回来重传已发送过的N个分组)。
滑动窗口协议
  • 发送窗口大小:允许发送的分组数量
  • 接收窗口大小:允许接收的分组数量
  • 步骤:
    1. 初始化:发送方和接收方各自初始化一个窗口。发送窗口的起始位置为0,结束位置为0;接收窗口的起始位置为0,结束位置也为0。发送数据:发送方在发送数据时,会将数据帧编号,并将其放入发送窗口
    2. 中。发送窗口的上界表示要发送的下一个帧的序号,下界表示已经发送但尚未确认的帧的序号。
    3. 接收确认:接收方接收到数据帧后,会检查帧的序号是否在接收窗口内。如果在接收窗口内,则接收方会发送一个确认帧给发送方,表示该帧已经被成功接收并处理。
    4. 窗口滑动:随着数据的传输,发送窗口会不断向前滑动,即发送窗口的结束位置逐渐增加。同时,接收窗口也会根据实际情况进行调整,以适应网络状况和接收能力。
    5. 流量控制:通过动态调整发送窗口的大小,可以控制发送方的发送速度,防止发送方发送速度过快而导致接收方来不及处理数据。这种机制有助于优化网络资源的利用,避免网络拥塞。
    6. 终止条件:当发送窗口的结束位置超过最大允许的帧数时,发送方停止发送数据。此时,如果还有未确认的数据帧,发送方需要等待接收方的确认。
累积确认
累积确认
Go-Back-N(回退N)
回退N

拥塞控制

拥塞控制的一般原理

  • 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞。

  • 拥塞控制和流量控制的区别:

    • 拥塞控制:防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。是一个全局性的过程,涉及到与降低网络传输性能有关的所有因素
    • 流量控制:抑制发送端发送数据的速率,以使接收端来得及接收。是点对点通信量的控制,是端到端的问题
  • 控制方式

    • 开环控制:在设计网络时,事先考虑周全,力求工作时不发生拥塞

    • 闭环控制:在发生拥塞后,采取措施进行控制,消除拥塞。

    • 闭环控制的常见措施:

      • 监测网络系统,以便检测到拥塞在何时、何处发生
      • 将拥塞发生的信息传送到可采取行动的地方
      • 调整网络系统的运行以解决出现的问题

      解决思路:

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

TCP的拥塞控制方法

  • TCP 采用基于窗口的方法进行拥塞控制,该方法属于闭环控制方法。TCP发送方维持一个拥塞窗口 cwnd (Congestion Window),根据网络的拥塞情况,发送端利用拥塞窗口大小调整发送的数据量。发送窗口大小不仅取决于接收方窗口,还取决于网络的拥塞状况,所以真正的发送窗口值为:$min(接收方窗口值,拥塞窗口值)$​

  • TCP有四种拥塞控制算法:慢开始、拥塞避免、快重传、快恢复

  • 慢开始门限状态变量 ssthresh:

    • 当 cwnd < ssthresh 时,使用慢开始算法。
    • 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
    • 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
  • 出现拥塞时的处理:

    • ssthresh = max (cwnd/2,2)
    • cwnd = 1
    • 执行慢开始算法

    目的:迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。

慢开始
  • 目的:用来确定网络的负载能力或拥塞程度。

  • 算法的思路:由小到大逐渐增大拥塞窗口数值。

  • 两个变量:

    • 拥塞窗口:设置初始拥塞窗口值(1~2最大报文段(旧标准)/ 2~4最大报文段(RFC 5681)),窗口值逐渐增大
    • 慢开始门限:防止拥塞窗口增长过大引起网络拥塞
    慢开始

    发送方每收到一个对新报文段的确认(重传不包括)就使 cwnd 加倍。

拥塞避免算法
  • 思路:让拥塞窗口 cwnd 缓慢地增大,避免出现拥塞。

  • 每经过一个传输轮次,拥塞窗口 cwnd = cwnd + 1。使拥塞窗口 cwnd 按线性规律缓慢增长。在拥塞避免阶段,具有 “加法增大” (Additive Increase) 的特点。

    拥塞避免算法

    在超时之前,每经过一个传输轮次就使 cwnd 加 1。

快重传
  • 发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”),这样就不会出现超时,发送方也不会误认为出现了网络拥塞。(即更早地重传丢失报文段,不必等重传计时器超时才重发)
  • 使用快重传可以使整个网络的吞吐量提高约20%。
快重传
快恢复
  • 当发送端收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法 FR (Fast Recovery) 算法:
    • 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
    • 新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
    • 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。
实现举例
避免拥塞
  1. 在执行慢开始算法时,拥塞窗口 cwnd=1,发送第一个报文段。
  2. 发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加倍,然后开始下一轮的传输(请注意,横坐标是传输轮次,不是时间)。因此拥塞窗口 cwnd 随着传输轮次按指数规律增长。
  3. 当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(图中的点① ,此时拥塞窗口 cwnd = 16),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。
  4. 当拥塞窗口 cwnd = 24 时,网络出现了超时(图中的点②),发送方判断为网络拥塞。于是调整门限值 ssthresh = cwnd / 2 = 12,同时设置拥塞窗口 cwnd = 1,进入慢开始阶段。
  5. 按照慢开始算法,发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1。当拥塞窗口 cwnd = ssthresh = 12 时(图中的点③,这是新的 ssthresh 值),改为执行拥塞避免算法,拥塞窗口按线性规律增大。
  6. 当拥塞窗口 cwnd = 16 时(图中的点④),出现了一个新的情况,就是发送方一连收到 3 个对同一个报文段的重复确认(图中3-ACK)。发送方改为执行快重传和快恢复算法。

第六章 应用层

DNS

  • 域名系统DNS (Domain Name System)是解决互联网上机器命名的系统,用它来管理名字(域名)和IP的对应关系。
  • 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域名的结构由标号序列组成,各标号之间用点隔开:….三级域名.二级域名.顶级域名。域名只是个逻辑概念,并不代表计算机所在的物理地点,便于记忆与使用。

域名服务器

  • 域名服务器有以下四种类型:
    • 根域名服务器(最高层次):本地域名服务器若无法解析一个域名,就先求助于根域名服务器。
    • 顶级域名服务器(管理所有二级域名):当收到 DNS 查询请求时,就给出相应的回答(最后的结果,或是下一步应当找的域名服务器的 IP 地址)。
    • 权限域名服务器(负责一个区):若不能给出最后的查询回答,会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
    • 本地域名服务器(默认域名服务器):当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
  • 提高域名服务器的可靠性:
    • DNS 域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可保证 DNS 的查询工作不会中断。
    • 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。(保证数据的一致性)
    • 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少。

域名解析

  • 将域名转换为对应的IP地址的过程称为域名解析,完成该功能的软件叫域名解析器,每个本地域名服务器配置一个域名解析器软件。

  • 域名解析过程:

    • 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,则本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

      迭代查询
    • 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

      递归查询

HTTP

  • 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。从层次的角度看,HTTP 是面向事务的 (transaction-oriented) 应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

万维网工作过程

万维网工作过程
  • 每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器向它发出连接建立请求。
  • 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP 连接被释放。
  • 在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议 HTTP。
    • HTTP 规定在 HTTP 客户与 HTTP 服务器之间的每次交互,都由一个 ASCII 码串构成的请求和一个类似的通用互联网扩充,即“类 MIME (MIME-like)”的响应组成。
    • HTTP 报文通常都使用 TCP 连接传送。

主要特点

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

电子邮件协议

  • 简单邮件发送协议:SMTP
  • 通用互联网邮件扩充 MIME
  • 邮件读取协议:POP3 和 IMAP

电子邮件的组成(三个主要构件)

  • 用户代理,邮件服务器,以及邮件发送和读取协议

    电子邮件的组成构件
  • 用户代理(UA):用户与电子邮件系统的接口。又被称为电子邮件客户端软件。基本功能:撰写、显示、处理和通信。用户代理必须在计算机中安装用户代理软件(如outlook),而万维网电子邮件无需安装代理软件。

  • 邮件服务器(MS):又被称为邮件传输代理。功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。按照客户 – 服务器方式工作。在发送和读取邮件时使用两个不同的协议:SMTP,POP3。

  • 邮件发送和读取协议:

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

    邮件服务器必须能够同时充当客户和服务器。SMTP和POP3(或IMAP)都是使用TCP连接来传送邮件的,目的是为了可靠地传送邮件。

邮件发送和接收步骤

  1. 发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。
  2. 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器。
  3. SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
  4. 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
  5. 运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
  6. 收件人在打算收信时,就运行PC机中的用户代理,使用POP3(或 IMAP)协议读取发送给自己的邮件。

简单邮件传送协议SMTP

  • SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法。
  • SMTP 使用客户–服务器方式。
  • SMTP 基于 TCP 实现客户与服务器的通信。
  • 步骤:
    • 建立连接
    • 邮件传送
    • 连接释放

邮件读取协议

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

  • 使用客户–服务器方式

  • 基于TCP实现客户与服务器的通信

  • 支持用户鉴别

  • POP3 服务器删除被用户读取了的邮件

IMAP
IMAP
  • IMAP:网际报文存取协议 (Internet Message Access Protocol)

  • 使用客户–服务器方式

  • 基于TCP实现客户与服务器的通信

  • 是一个联机协议

  • 特点:

    • 连接后只下载邮件首部(部分下载)。
    • 用户直接在IMAP服务器上创建和管理文件夹。
    • 用户可以搜索邮件内容。
    • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
    • 允许收信人只读取邮件中的某一个部分。
    • 缺点:要想查阅邮件,必须先联网。
POP3和IMAP比较
POP3和IMAP比较

万维网电子邮件

  • 优点:

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

    • 发送、接收电子邮件时使用 HTTP 协议
    • 两个邮件服务器之间传送邮件时使用 SMTP
    万维网电子邮件

通用互联网邮件扩充 MIME

  • SMTP 有以下缺点:

    • SMTP 不能传送可执行文件或其他的二进制对象。
    • SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
    • SMTP 服务器会拒绝超过一定长度的邮件。
    • 某些 SMTP 的实现并没有完全按照 [RFC 821] 的 SMTP 标准。
  • MIME继续使用[RFC 822]格式,增加了邮件主体结构,并定义了传送非ASCII码的编码规则

    MIME与SMTP的关系

万维网WWW

  • 万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
  • 万维网以客户—服务器方式工作。浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

DHCP动态主机配置协议

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

  • DHCP 使用客户—服务器方式,采用请求/应答方式工作。需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)。

  • DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。

    DHCP工作方式
DHCP中继代理
  • DHCP中继代理(relay agent):每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。

    DHCP 中继代理以单播方式转发发现报文
DHCP协议的工作过程
DHCP协议的工作过程
  1. DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文

  2. DHCP 客户从 UDP 端口 68发送 DHCP 发现报文 DHCPDISCOVER

  3. 凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文 DHCPOFFER,因此 DHCP 客户可能收到多个 DHCP 提供报文

  4. DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文 DHCPREQUEST

  5. 被选择的 DHCP 服务器发送确认报文DHCPACK,进入已绑定状态,并可开始使用得到的临时 IP 地址了

    DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别是 0.5T 和 0.875T。当超时时间到就要请求更新租用期。

  6. 租用期过了一半(T1 时间到),DHCP 发送请求报文 DHCPREQUEST,要求更新租用期。

  7. DHCP 服务器若同意,则发回确认报文DHCPACK。DHCP 客户得到了新的租用期,重新设置计时器

  8. DHCP 服务器若不同意,则发回否认报 DHCPNACK。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址(回到步骤2)。

    若 DHCP 服务器不响应步骤6的请求报文 DHCPREQUEST,则在租用期过了 87.5% 时,DHCP 客户必须重新发送请求报文 DHCPREQUEST(重复步骤6),然后又继续后面的步骤。

  9. DHCP 客户可随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文 DHCPRELEASE 即可。

第九章 无线局域网

WLAN组成

  • 接入点AP(无线接入点WAP):所有在局域网种的站点,对网内或网外的通信必须通过接入点AP。接入点在出厂时就具有一个唯一的48位二进制数字的MAC地址,名称为基本服务集标识符BSSID。

  • 802.11标准规定无线局域网最小的构建是基本服务集BSS,BSS包括一个接入点和若干个移动站。BSS所覆盖的地理范围称作基本服务区BSA,一般不超过100m。

  • 一个基本服务集可以是孤立的单个服务集,也可以通过接入点AP连接到一个分配系统DS(Distribution System),然后再连接到另一个基本服务集,这样就构成了一个扩展服务集ESS。ESS也有一个不超过32个字符的标识符,称作扩展服务集标识符ESSID。分配系统DS的作用是使扩展的服务集ESS对上层的表现就像一个BSS一样。

    ESS和BSS的关系

暴露站/隐蔽站问题

隐蔽站问题

隐蔽站问题
  • A 和 C 检测不到彼此的无线信号,都以为 B 是空闲的,因而都向 B 发送数据,结果发生碰撞。这种未能检测出媒体上已存在的信号的问题叫做隐蔽站问题。

暴露站问题

隐蔽站
  • B 向 A 发送数据,而 C 又想和 D 通信。C 检测到媒体上有信号,于是就不向 D 发送数据。 其实 B 向 A 发送数据并不影响 C 向 D 发送数据,这就是暴露站问题 。
  • 改进的办法是把 CSMA 增加一个碰撞避免 CA (Collision Avoidance)功能。802.11 就使用 CSMA/CA 协议。在使用 CSMA/CA 的同时,还增加使用停止等待协议。

帧间间隔IFS

  • 所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔 IFS (InterFrame Space)。

  • 帧间间隔长度取决于该站欲发送的帧的类型。高优先级帧需要等待的时间较短,因此可优先获得发送权。

  • 若低优先级帧还没来得及发送而其他站的高优先级帧已发送到媒体,则媒体变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。

  • IFS分为短帧间间隔SIFS和分布协调功能帧间间隔DIFS

    • SIFS长度为$28\mu s$,是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站应当能够在这段时间内从发送方式切换到接收方式。使用 SIFS 的帧类型有:ACK 帧、CTS 帧、由过长的 MAC 帧分片后的数据帧,以及所有回答 AP 探询的帧和在 PCF 方式中接入点 AP 发送出的任何帧。
    • DIFS比 SIFS 的帧间间隔要长得多,长度为$128\mu s$​ 。在 DCF 方式中,DIFS 用来发送数据帧和管理帧。
    帧间间隔

    当源站发送它的第一个 MAC 帧时,若检测到信道空闲,则在等待一段时间 DIFS 后,信道若仍然空闲,就开始发送。目的站若正确收到此帧,则经过时间间隔 SIFS 后,向源站发送确认帧 ACK。

更多资料

数据在各层的封装

图源:烤肉sensei

数据在各层的封装(图源:烤肉sensei)

各层协议

图源:烤肉sensei

各层的协议(图源:烤肉sensei)