碎碎念

在进行计算机网络课程的复习记录时,我遇到了一个意料之外的情况。起初,我计划严格按照课程顺序,逐章节进行深入复习并记录。然而,在复习过程中,我意识到教师强调的重点与考研考核的核心内容存在偏差。鉴于此,我决定对考研复习部分做临时调整,尽管已着手撰写的数据链路层内容已近半,这一变动实属无奈。但请放心,这部分内容未来必定会得到补充,毕竟408考试的重要性不言而喻。

因此,当前阶段我将优先学习并分享针对期末考试的复习资料,基本依据教师所划重点进行,以确保复习的针对性与效率。本文目前正处于持续更新状态,目的是为了避免因内容分散而造成的冗余。原计划是完成后再统一发布,但考虑个人复习进度的实际情况,决定提前分享。目前文章前端已涵盖教师重点标示的详细内容,可供大家参考使用。

更新记录

  • 2024-05-31:完成第一章节,第二章节内容
  • 2024-06-01:完成第三章节上半小结
  • 2024-06-02:完成第三章节下半小结,还剩一小半
  • 2024-06-03:完成第三章节
  • 2024-06-04:开始第四章节内容
  • 2024-06-05:完成第四章节基于终点的转发之前的内容
  • 2024-06-06:完成第四章节内部网关协议RIP
  • 2024-06-07:完成第四章节
  • 2024-06-08:完成第五章节TCP可靠传输实现
  • 2024-06-09:完成所有内容,画上圆满句号

考点总览

第1章 概述(基本概念)

  • 计算机网络的定义,特点,互联网概述及其组成

  • 速率(bit/s),带宽,吞吐量,时延(包括发送时延、传播时延、处理时延、排队时延),时延带宽积,往返时间(RTT)

  • 电路交换,报文交换,分组交换,交换方式的比较

  • 分层的概念和优点,OSI/RM和TCP/IP体系结构的比较

  • 应用层,运输层(TCP/UDP),网际层(IP),数据链路层,物理层

  • 信道利用率的概念,网络利用率的概念,两者之间的区别

  • 应用层,运输层,网际层,数据链路层,物理层

  • TCP/IP模型的层次结构,每层的功能和协议

第2章 物理层(基本概念)

  • 物理层基本概念与特性
  • 数据通信系统模型
  • 编码方式(不归零制、归零制、曼彻斯特编码、差分曼彻斯特编码)
  • 信道基本概念(单工、半双工、全双工通信,基带信号与带通信号)
  • 信道极限容量(奈氏准则、信噪比、香农公式)
  • 信道复用技术(频分复用、时分复用、波分复用、码分复用)重点
  • 传输媒体(导引型与非导引型)

第3章 数据链路层(大题重点)

  • 数据链路层地位与作用
  • 数据链路与帧
  • 点对点协议 PPP
  • 局域网数据链路层
  • 透明传输(字节填充、字符填充)
  • CRC 冗余码计算
  • 三个基本问题(封装成帧、透明传输、差错控制)
  • CSMA/CD 协议(原理、要点、工作流程)
  • 以太网的信道利用率与碰撞检测
  • 传播时延计算
  • 以太网的 MAC 层
  • 以太网自学习功能

第4章 网络层(都是重点)

  • 网络层基本概念(虚电路与数据报服务对比)
  • 软件定义网络 SDN
  • 使用中间设备进行互联
  • IP 地址(表示方法、结构、分类、CIDR、特殊IP地址、各类IP地址范围、超网构造)大题
  • ARP 协议(流程、使用两个地址的原因)
  • IP 数据报首部字段、分片、基于终点的转发
  • IPv6 表示方法、从 IPv4 到 IPv6 的过渡
  • 路由选择协议(RIP、OSPF)
  • IP 多播基本概念、协议
  • 虚拟专用网 VPN 与网络地址转换 NAT

第5章 运输层(都是重点)

  • 运输层协议概述:进程间通信、UDP和TCP的主要特点、端口的作用
  • 用户数据报协议UDP:无连接、尽最大努力交付、首部格式、与TCP的区别、典型应用
  • 传输控制协议TCP:面向连接、可靠交付、全双工通信、面向字节流、连接的建立和释放、报文段首部格式
  • 可靠传输的工作原理:停止等待协议、连续ARQ协议、信道利用率计算
  • TCP可靠传输的实现:三段握手、同步位、终止位、最大报文段长度MSS
  • TCP流量控制:滑动窗口机制、发送缓存与发送窗口的关系、可变窗口流量控制举例
  • TCP拥塞控制:拥塞控制定义、拥塞控制算法、慢开始和拥塞避免控制举例
  • TCP连接管理:TCP状态转换、有限状态机、连接的建立和释放、四报文握手过程
  • 计算时间部分:RTT测量、超时重传时间RTO设置

第6章 应用层(无大重点)

  • 域名系统 DNS
  • 文件传送协议
  • 远程终端协议 TELNET
  • 万维网 WWW
  • 电子邮件
  • 动态主机配置协议 DHCP
  • 简单网络管理协议 SNMP
  • 应用进程跨越网络的通信
  • P2P 应用

第9章 无线网络和移动网络(看看)

  • 大致看看,没重点(反正老师是这么说的)

第一章:概述

定义和特点

  • 定义: 计算机网络主要是由一些通用的、可编程的硬件设备通过通信媒介互联而成,这些硬件设备并非专门用来实现某一特定目的,如传送数据或视频信号。它们能够传送多种不同类型的数据,并支持广泛的应用。
  • 特点:
    • 可扩展性: 网络可以灵活地添加或移除设备。
    • 可编程性: 网络设备包含中央处理器,可以根据需求执行不同的任务。
    • 互操作性: 不同的网络设备和系统能够互相通信和协作。
    • 分布式: 网络中的资源和控制是分散的。

基本特点

  1. 连通性 (Connectivity)

    • 互联网提供了高度的连通性,使用户之间能够便捷地交换信息。
    • 这种连通性让上网用户之间可以非常经济地交换各种信息,好像这些用户终端都彼此直接连通一样。
  2. 资源共享 (Sharing)

    • 互联网实现了信息共享、软件共享、硬件共享。
    • 资源共享使得网络中的资源好像就在用户身边一样,可以非常地方便使用。
    • 这些基本特点构成了Internet提供许多服务的基础。

互联网概述

  • 互联网概述: 互联网是一个全球性的计算机网络系统,由数以百万计的私人、公共、学术、商业和政府网络组成,通过电子、无线和光纤网络技术相互连接。

  • 组成部分:

    • 边缘部分: 由所有连接在互联网上的主机(端系统)组成,用户直接使用,用于通信和资源共享。
      • 处在互联网边缘部分的就是连接在互联网上的所有的主机。这些主机又称为端系统
    • 核心部分: 由网络和路由器组成,为边缘部分提供连通性和交换服务。
      • 是互联网中最复杂的部分。
      • 向网络边缘中的主机提供连通性,使任何一台主机都能够向其他主机通信。
      • 在网络核心部分起特殊作用的是路由器 (router)。
      • 路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组。

    边缘和核心

性能指标

  • 速率: 数据传输速率,单位通常是bit/s、kbit/s、Mbit/s、Gbit/s 等,往往是指额定速率或标称速率,非实际运行。

  • 带宽: 链路能够传输数据的最高速率

    • 频域:某信道允许通过的信号频带范围称为该信道的带宽(或通频带)单位是赫(或千赫、兆赫、吉赫等)。
    • 时域:网络中某通道传送数据的能力,表示在单位时间内网络中的某信道所能通过的“最高数据率”,单位就是数据率的单位 bit/s。

    两者本质相同。一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

  • 吞吐量: 单位时间内通过网络的实际数据量。

  • 时延: 数据从源到目的地所需的时间,包括:

    • 发送时延: 数据帧从发送开始到发送完毕的时间。

    • 传播时延: 信号在传输介质中传播的时间。

    • 处理时延: 路由器或主机处理数据的时间。

    • 排队时延: 数据在路由器中等待处理的时间。

    对于高速网络链路,我们提高的仅仅是数据的发送速率,而不是比特在链路上的传播速率,提高数据的发送速率只是减小了数据的发送时延。(P85习题)

  • 时延带宽积: 传播时延与带宽的乘积,表示链路中可以容纳的数据量。

  • 往返时间(RTT): 数据从发送方发出到接收方确认收到的总时间。(P89习题)

交换方式

  • 电路交换: 建立专用物理通路,占用通信资源直到通信结束。

    电路交换主要特点

    • 特点: 建立连接、通话、释放连接三个阶段。
    • 优点: 通信双方始终占用端到端的通信资源。
    • 缺点: 通信线路利用率低。
  • 报文交换: 整个报文在传输前先存储在交换节点,然后转发至下一个节点。

    • 特点: 存储-转发方式,时延较长。
    • 优点:基于存储转发原理
    • 缺点: 时延太长,没人用。
  • 分组交换: 数据被分割成小的数据包(分组),独立选择路由进行传输。

    分组交换的还原

    • 特点: 存储-转发方式,动态分配传输带宽。
    • 优点: 动态分配,逐段占用,为每个分组独立选择最合适的转发路由,可以不先建立连接,可靠的网络协议,分布式多路由分组交换网,网络生存性高。
    • 缺点: 引入排队延迟,不保证带宽,增加开销。
  • 注:互联网的核心部分采用分组交换技术。

  • 区别

    • 连接:电路交换需要建立和释放连接,而报文交换和分组交换不需要建立端到端的连接。

    • 数据传输单元:电路交换是比特流直达终点,报文交换是整个报文作为数据传输单元,分组交换则是将报文划分为多个分组。

    • 存储与转发:报文交换和分组交换都采用存储转发技术,但分组交换的存储转发发生在每个分组级别上,而不是整个报文。

    • 网络效率:分组交换通常比报文交换更有效,因为它允许更灵活的路由选择和更好的带宽利用。

    区别

分层思想

  • 分层概念: 将复杂问题分解为多个小问题,每一层提供特定的服务给上层,并使用下层的服务,每一层具有不同的功能。
  • 优点:
    • 简化了设计和实现。
    • 增强了模块化,易于维护和升级。
    • 促进了标准化。
  • 缺点:
    • 有些功能会重复出现,因而产生了额外开销。
  • 分层主要功能:
    • 差错控制:使相应层次对等方的通信更加可靠。
    • 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。
    • 分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
    • 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
    • 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。

OSI/RM和TCP/IP

  • OSI/RM: 七层模型,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
    • 优点: 标准化程度高,层次清晰。
    • 缺点: 实现复杂,缺乏商业驱动力。
  • TCP/IP: 四层模型,包括应用层、运输层、网际层和网络接口层。
    • 优点: 实现简单,运行效率高,有商业驱动力。
    • 缺点: 层次划分不如OSI/RM清晰。
  • 五层架构:集结两者的优点,最终形成了五层协议的体系架构。

各个协议

功能和协议

  • 应用层: 与用户的应用进程直接交互,如HTTP、SMTP等,定义应用进程间通信和交互的规则,数据单元为报文
  • 运输层: 提供进程间的通信,包括TCP(传输控制协议)和UDP(用户数据报协议),具有复用和分用的功能
    • 复用:在同一网络连接上,多个应用程序可以同时发送数据。运输层通过端口号来区分不同的应用程序,使得数据能够正确地发送到目标应用程序。
    • 分用:当数据到达接收端时,运输层根据端口号将数据分发到正确的应用程序。这个过程确保了不同应用程序的数据能够被正确地识别和处理。
    • TCP:面向连接的协议,确保数据传输的可靠性。使用报文段作为数据传输的基本单位。
    • UDP:无连接的协议,提供尽力而为的服务,不保证数据传输的可靠性。使用用户数据报作为数据传输的基本单位。
  • 网际(网络)层: 负责数据包从源到目的地的整个传输过程,主要协议是IP,有两个具体任务,路由选择和转发。
    • 路由选择(Routing):网络层使用路由算法来确定数据包在网络中的最佳路径。这个过程涉及到在路由器上生成转发表,转发表包含了如何将数据包从一个网络转发到另一个网络的指令。
    • 转发(Forwarding):当路由器接收到一个数据包时,它会查看自己的转发表,并根据表中的信息将数据包转发到下一个路由器,直到数据包到达目的地。
  • 数据链路层: 在相邻节点间传输帧,可能包括错误检测和纠正机制。
  • 物理层: 涉及物理媒介的传输,如电缆和交换器。

基本过程

信道利用率/网络利用率

  • 信道利用率: 信道被用于传输数据的时间比例。
  • 网络利用率: 整个网络中所有信道利用率的平均值。
  • 区别: 信道利用率关注的是单个信道的使用情况,而网络利用率关注的是整个网络的使用情况。

TCP/IP模型

  • 应用层: 为用户提供网络应用和服务。
  • 运输层: 确保数据的完整性和可靠性,协议包括TCP和UDP。
  • 网际层: 负责数据包从源头到目的地的整个传输过程,主要协议是IP。
  • 网络接口层: 涉及实际的硬件传输介质,如以太网、Wi-Fi等。

第二章:物理层

物理层基本概念与特性

物理层主要负责在传输媒体上传输数据比特流,其作用是屏蔽不同传输媒体和通信手段的差异。物理层协议也称为物理层规程。物理层的主要任务是确定与传输媒体接口的四个特性:

  1. 机械特性:接口所用接线器的形状、尺寸、引线排列等。
  2. 电气特性:接口电缆各条线上的电压范围。
  3. 功能特性:某条线上特定电平电压的意义。
  4. 过程特性:不同功能事件的出现顺序。

数据通信系统模型

数据通信系统由三大部分构成:源系统(发送端)、传输系统(传输网络)和目的系统(接收端)。数据通信涉及数字比特流的发送和接收,通过调制解调器等设备在公用电话网等传输系统中进行。

数据通信系统模型

  1. 消息 (Message) : 消息是通信中的基本单位,它包含了要传输的信息内容。消息可以是话音、文字、图像、视频等形式,即任何有意义的信息序列。在网络通信中,消息通常指代封装了一定语义内容的数据包,它可能包含了控制信息、用户数据等。
  2. 数据 (Data) : 数据是运送消息的实体,是有意义的符号序列。在计算机和通信系统中,数据通常指代以二进制形式存在的信息,例如,”11001001001100111101011011001110” 就是一个数据序列的例子。数据可以是数字、字符、指令等,它们在传输过程中需要被编码和解码。
  3. 信号 (Signal) : 信号是数据的电气或电磁的表现。在通信过程中,数据需要通过某种形式的信号来传输。信号可以是模拟信号,其中代表消息的参数取值是连续的;也可以是数字信号,其参数取值是离散的。信号通过传输媒介(如电缆、无线电波、光纤等)传播。
  4. 码元 (Bit) : 码元是数字通信中 代表不同离散数值的基本信号单位。在使用时间域(时域)的波形表示数字信号时,一个码元通常对应一个特定的电压或电流状态,代表二进制数中的0或1。码元是构成数字信号的基本元素,多个码元的组合形成了可以传输复杂信息的数字数据流。

编码方式

编码方式是数字信号的电气或电磁表现,主要有以下几种:

  1. 不归零制:正电平代表1,负电平代表0。
  2. 归零制:正脉冲代表1,负脉冲代表0。
  3. 曼彻斯特编码:位周期中心的跳变代表0或1(可逆)。
  4. 差分曼彻斯特编码:位中心跳变表示数据变化,边界跳变表示数据位。
    • 曼彻斯特编码和差分曼彻斯特编码产生的信号频率比不归零制高。
    • 不归零制不能从信号波形本身中提取信号时钟频率(这叫做没有自同步能力)。
    • 曼彻斯特编码和差分曼彻斯特编码具有自同步能力。

每种编码方式在信号频率和自同步能力上有所不同。

基带信号是原始信号,它包含了从信号源直接得到的频率成分,通常这些频率较低,甚至包含直流成分。然而,并非所有信道都能够有效地传输这些低频或直流分量。因此,需要通过调制过程来适应信道的特性,以确保信号能够被有效地传输。

调制是将基带信号转换为适合在信道中传输的形式的过程。以下是几种基本的调制方法:

  1. 调幅 (AM - Amplitude Modulation)
    • 在调幅中,载波的振幅根据基带数字信号的变化而变化。
    • 调制后的信号包含基带信号的信息,通过改变载波的振幅来表示。
  2. 调频 (FM - Frequency Modulation)
    • 在调频中,载波的频率随着基带数字信号的变化而变化。
    • 调制后的信号频率反映了基带信号的变化。
  3. 调相 (PM - Phase Modulation)
    • 在调相中,载波的初始相位随着基带数字信号的变化而变化。
    • 调制后的信号的相位变化携带了基带信号的信息。

调制的目的是将基带信号的频率范围搬移到适合信道传输的频段,并且转换成模拟信号,以便于在各种通信信道中有效传播。通过调制,可以克服基带信号直接传输时的限制,如频率成分过低或包含直流分量等问题。

信道基本概念

信道是信息传输的媒体,通信方式可以分为:

  1. 单工通信:只有一个方向的通信。
  2. 半双工通信:双方可发送信息,但不能同时进行。
  3. 全双工通信:双方可同时发送和接收信息。

信号类型分为:

  1. 基带信号:原始信号,包含低频成分。
  2. 带通信号:基带信号调制到更高频率的信号。

信道极限容量

信道的传输速率受到多种因素的限制,包括信道能够通过的频率范围和信噪比:

  1. 奈氏准则:带宽W(Hz)的信道最高传输速率为2W码元/秒。

  2. 信噪比:信号与噪声功率的比值,影响信号的清晰度。

  3. 香农公式:极限信息传输速率C = W log2(1+S/N) bit/s,其中W是带宽,S是信号功率,N是噪声功率。

  4. 极限信息传输速率:其中W为信道的带宽 (Hz);S为信道内所传信号的平均功率;N为信道内部的高斯噪声功率。

  • 注意:奈氏准则强调了在无噪声条件下,通过提高编码效率来增加传输速率的可能性;而香农公式则提醒我们,在实际应用中,信道的噪声限制了传输速率的最大值,这是工程师在设计通信系统时必须考虑的物理限制。

信道复用技术

信道复用技术允许多个用户共享同一个通信信道,从而提高信道的传输效率和利用率。

频分复用 (FDM)

  • 概念:将整个信道的带宽划分为多个子频带,每个子频带分配给一个用户或通信链路。
  • 特点:所有用户在同样的时间占用不同的带宽资源。
  • 应用:传统的模拟通信系统,如电话网络。
  • 频分多址接入FDMA:N个用户或者多个使用一个或多个宽带。

时分复用 (TDM)

  • 概念:将时间划分为一段段等长的时分复用帧(TDM帧),每个用户在每个TDM帧中占用固定序号的时隙。
  • 特点:每个用户所占用的时隙是周期性出现的,所有用户在不同时间占用同样的频带宽度,时分复用可能会导致信道利用率不高,因为如果用户暂无数据,可能会导致该时隙处于空闲状态。
  • 应用:数字通信系统,如电话交换和某些类型的网络。
  • 时分多址接入TDMA:N个用户或者多个使用一个或多个间隙。

时分复用

波分复用 (WDM)

  • 概念:在光通信中,使用一根光纤来同时传输多个不同波长的光信号。
  • 特点:每个波长的信号可以看作是使用了一个独立的“虚拟”光纤。
  • 应用:现代光纤通信网络,大幅提升光纤的传输容量。

波分复用

  • 复用器:将多个输入信号合并成一个单一的输出信号,以便在单一的传输媒介(如电缆、光纤等)上进行传输。这是通过按顺序分配每个输入信号到输出信号的不同时间段或频率槽来实现的。
  • 分用器:将接收到的复合信号分解回多个原始的独立信号。这样,每个用户或设备可以接收到属于自己的那一部分信号。

码分复用 (CDMA)

  • 概念:每个用户可以在同样的时间使用同样的频带进行通信,但使用不同的码型,因此不会造成干扰。

  • 特点:用户数据通过唯一的码片序列进行编码,接收端通过匹配的码片序列进行解码。

  • 应用:蜂窝移动通信网络,如3G和4G。

  • 原理:允许多个用户在同一时间和同一频率带宽上进行通信,而不会互相干扰。CDMA的工作原理基于独特的码片序列为每个用户站分配一个唯一的标识,这些码片序列在数学上是正交的。

    1. 码片序列分配
      • 每个站被分配一个独特的m位码片序列,这个序列对于每个站都是唯一的。
    2. 比特与码片的关系
      • 发送比特“1”时,发送站发送自己的m位码片序列。
      • 发送比特“0”时,发送站发送该码片序列的二进制反码。
    3. 扩频技术
      • CDMA使用扩频技术,将原始数据信号的频带宽度扩展到原来的m倍。
      • 实际发送的数据率变为原始数据率的m倍(𝑚𝑏mb bit/s)。
    4. 正交性
      • 分配给不同站的码片序列必须互相正交,即它们的规格化内积(点积)为零,这保证了信号之间的正交性,减少了干扰。
    5. 信号的发送与接收
      • 在发送端,每个站发送自己的码片序列或其反码,表示数据比特。
      • 在接收端,使用与发送站相同的码片序列,通过计算规格化内积来检测和解调原始的比特。
    6. 扩频的两大类
      • 直接序列扩频(DSSS):通过将数据信号与伪随机噪声序列(码片序列)相乘来实现扩频。
      • 跳频扩频(FHSS):通过快速在不同频率间切换来实现扩频。
    7. CDMA的特点
      • 码片序列的正交性使得多个用户可以同时使用相同的频段进行通信,而不会产生相互干扰。
      • 每个站的码片向量与自己的码片向量的规格化内积是1,而与反码的规格化内积是-1。

    CDMA

    有点难懂,举个栗子:

    我们在一个很大的房间里,里面有很多人在同时说话。为了让每个人都能听到自己想要听的人说话,而不被其他人的谈话声干扰,我们可以给每个人分配一个独特的耳语方式。这个耳语方式就像是CDMA中的“码片序列”,是一组只有你和说话者才知道的秘密信号。

    1. 分配秘密信号:首先,我们给房间里的每个人一个专属的耳语方式,这个耳语方式是一组特定的“信号”。
    2. 说话时使用秘密信号:当我想传信息给你时,我会用这个秘密信号来“耳语”。如果我想说“是”,我就用这个秘密信号;如果我想说“不”,我就用它的相反信号。
    3. 声音扩散:当我耳语时,声音会在整个房间里扩散开来,但是因为只有你知道这个秘密信号,所以只有你能听到我说的话。
    4. 保持私密:因为每个人的耳语方式都是独一无二的,所以即使房间里有很多人在同时说话,你也只会听到用你的专属耳语方式传来的声音,其他人的谈话声不会干扰到你。
    5. 两种耳语技巧:有两种主要的耳语技巧,一种是“直接序列扩频”,就像我不断地改变声音的音调来耳语;另一种是“跳频扩频”,就像我在耳语时快速地在不同的音调之间跳转。
    6. 确保每个人都听得清楚:我们确保每个人的耳语方式都是特别的,这样即使有很多人在说话,你也能找到那个专属于你的耳语声音。
    7. 接收信息:当你想听到我说的话时,你会用你的耳朵去捕捉那个专属于你的耳语声音,其他的耳语声对你来说就像是背景噪音,不会干扰到你。

    所以,CDMA就像是一个高级的耳语派对,每个人都可以用自己的秘密方式来说话,而不会影响其他人的对话。这样,即使在一个非常繁忙的通信环境中,也能保持通信的清晰和私密。

统计时分复用 (STDM)

  • 概念:时分复用帧不是固定分配时隙,而是按需动态地分配时隙,适应不同用户的实际通信需求。
  • 特点:可以提高线路的利用率,尤其在用户通信需求不均匀时更为有效。
  • 应用:数据网络和某些类型的语音网络,可以更灵活地分配带宽。

统计时分复用

这些复用技术各有优势和适用场景,选择合适的复用技术取决于通信系统的具体需求和特性。例如,FDM适用于频带较宽且用户数较少的场景,而TDM和STDM适用于用户数较多且通信需求相对均衡的场景。WDM和CDMA则分别适用于光通信和移动通信等现代通信系统。

传输媒体

传输介质是数据传输系统中在发送器和接收器之间的物理通路,分为两大类:导引型传输媒体和非导引型传输媒体。

导引型

导引型传输媒体指电磁波沿固体媒介(如铜线或光纤)被导向传播的媒体。

  1. 双绞线

    • 最古老但又最常用的传输媒体。
    • 由两根互相绝缘的铜导线并排放在一起,然后用规则的方法绞合起来构成。
    • 绞合度越高,可用的数据传输率越高。
    • 分为两大类:
      • 无屏蔽双绞线(UTP): 无屏蔽层,价格较便宜。
      • 屏蔽双绞线(STP): 带屏蔽层,必须有接地线。
        • x/UTP:表示对整条双绞线电缆进行屏蔽,但具体屏蔽材料未指定。
        • F/UTP (Foiled UTP):表明电缆采用铝箔屏蔽层,提供基本的电磁干扰(EMI)防护。
        • S/UTP (Braid Screen UTP):表明电缆采用金属编织层进行屏蔽,提供更高级别的EMI防护。
        • SF/UTP:结合了铝箔屏蔽层和金属编织层屏蔽,提供更高级别的屏蔽效果。
        • FTPU/FTP (Unshielded FTP):把电缆中的每一对双绞线都加上铝箔屏蔽层;”U”表示对整条电缆不另增加屏蔽层,即外层没有额外的屏蔽。
        • F/FTP:在每对双绞线的铝箔屏蔽基础上,对整条电缆再加上一层铝箔屏蔽,提供更全面的防护。
        • S/FTP:在每对双绞线的铝箔屏蔽基础上,对整条电缆再加上金属编织层屏蔽,提供最高级别的屏蔽效果。
  2. 同轴电缆

    • 由内导体铜质芯线、绝缘层、网状编织的外导体屏蔽层及保护塑料外层组成。
    • 具有很好的抗干扰特性,被广泛用于传输较高速率的数据。
    • 分为基带同轴电缆和宽带同轴电缆。
  3. 光纤

    • 光纤通信通过传递光脉冲来进行通信,具有非常大的传输带宽。

    • 发送端需要有光源,如发光二极管或半导体激光器。

    • 接收端需要有光检测器,如光电二极管。

    • 光纤由非常透明的石英玻璃拉成细丝,主要由纤芯和包层构成。

    • 分为单模光纤和多模光纤:

      • 单模光纤:直径小,适合远距离传输,制造成本高。
      • 多模光纤:可存在多条不同角度入射的光线,适合近距离传输。

非导引型传输媒体

非导引型传输媒体指的是在自由空间中传播的电磁波,这种传输方式通常被称为无线传输。

  • 无线电微波

    • 具有强大的穿透能力,能够传播远距离,广泛应用于各种通信领域,例如手机通信。无线电波在空间中主要沿直线传播。
    • 占有特殊重要的地位,频率范围在300 MHz到300 GHz(波长从1米到1毫米)。
    • 主要使用的频率范围是2 GHz到40 GHz。
    • 在空间中直线传播,地球表面的传播距离受到限制,一般约为50公里左右。
    • 使用100米高的天线塔,传播距离可以增大到100公里。
    • 微波通信可能会受到多径效应的影响,即基站发出的信号经过多个障碍物反射,沿多条路径按不同时间到达接收方,导致信号叠加后产生失真。
    • 误码率与信噪比、调制方式和数据率有关。信噪比越大,误码率越低;对于相同的信噪比,数据率越高的调制技术误码率也越高。用户的地理位置变化会引起信道特性改变,从而影响信噪比和误码率。
  • 卫星通信

    • 具有大通信容量和远距离通信能力,通信比较稳定,通信费用与通信距离无关。
    • 存在较大的传播时延,大约在250到300毫秒之间。但需注意,卫星信道的传播时延较大,并不意味着使用卫星信道传送数据的时延也一定较大(意思就是其他的比如处理时延,排队时延等能优化到很小,最后加起来并不一定大)。
    • 保密性相对较差,造价较高。
    • 低轨道卫星通信系统(卫星高度在2000公里以下)已经开始使用,大功率、大容量、低轨道宽带卫星正在空间部署,构成高速空间链路。
  • 红外线和激光

    • 将信号转换为红外线或激光信号,在空间中沿固定方向传播。
    • 通常用于短距离无线通信,如无线局域网(WLAN)中的红外通信。

第三章:数据链路层

数据链路层地位与作用

数据链路层在网络体系结构中扮演着至关重要的角色。无论是局域网中的主机、交换机,还是广域网中的路由器,都必须实现数据链路层。它负责在相邻网络设备之间传输帧,确保数据的准确传递,不同链路层可能采用不同的数据链路层协议

数据链路层

  1. 点对点信道:使用一对一的点对点通信方式
  2. 广播信道:使用一对多的广播通信方式,必须使用专用的共享信道协议来协调这些主机的数据发送。

数据链路与帧

数据链路层将比特流封装成帧。帧是数据链路层传输的数据单位,包含数据和必要的控制信息。帧的首部和尾部用于帧定界,即确定帧的界限。最大传送单元MTU规定了所能传送的帧的数据部分长度上限。

数据链路与帧

链路(Link)

  • 定义:链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。它只是一条通路的一个组成部分,有时也被称为物理链路。
  • 功能:链路负责在网络设备之间提供一条物理通道,使数据能够从一个节点传输到另一个节点。

数据链路(Data Link)

  • 定义:数据链路是在链路的基础上,通过硬件和软件实现控制数据传输的协议,从而构成的逻辑链路。
  • 组成:数据链路层通常由适配器(即网卡)来实现,它负责在物理链路上按照协议规定的方式传输数据。
  • 功能:数据链路层确保物理链路上的数据能够有序、可靠地传输,它还负责处理帧的封装、透明传输、差错控制等任务。

帧(Frame)

  • 定义:帧是数据链路层传输的数据单位。它由数据和必要的控制信息组成,用于在网络中的设备之间传输数据。
  • 结构:一个典型的帧结构包括首部、数据部分和尾部(有时称为帧定界符)。
    • 首部:包含了帧的起始信息,可能包括同步信息、地址信息等。
    • 数据部分:承载实际要传输的数据。
    • 尾部:标记帧的结束,并可能包含错误检测或纠正信息,如循环冗余检验(CRC)。
  • 帧定界:帧的首部和尾部的一个主要作用是进行帧定界,即确定帧的开始和结束,这样接收方就可以正确地识别和处理收到的数据。
  • 最大传送单元(MTU) :MTU规定了数据链路层所能传送的帧的数据部分的最大长度。超过MTU的大数据需要在传输前进行分片处理。

点对点信道的数据链路层

三个基本问题

数据链路层的三个基本问题是封装成帧、透明传输和差错控制。

  1. 封装成帧 (Framing)

    封装成帧是在一段数据的前后分别添加首部和尾部,构成一个帧的过程。这样做的主要目的是:

    • 帧定界:确定帧的开始和结束位置,使得接收方能够识别出完整的帧。
    • 最大传送单元 (MTU) :规定了所能传送的帧的数据部分长度上限,确保数据帧在网络中传输时不会超出网络的最大承载能力。
  2. 透明传输

    透明传输指的是数据链路层能够传输所有类型的数据,包括那些可能与帧定界符或控制字符相同的数据。问题在于,如果数据中包含与帧定界符相同的比特组合,接收方可能会错误地识别帧边界,导致数据传输出错。为解决这个问题,数据链路层采用以下技术:

    • 字节填充:在数据中每个特定的字符前插入一个转义字符,以避免与帧定界符冲突。
    • 字符填充:与字节填充类似,但在数据中插入特定的填充字符,以保证数据的透明性。

  3. 差错控制 (Error Control)

    误码率 BER (Bit Error Rate):在一段时间内,传输错误的比特占所传输比特总数的比率。

    差错控制是确保数据传输可靠性的机制。在数据传输过程中,可能会因为各种因素(如噪声、干扰等)导致比特差错。差错控制的主要方法包括:

    • 循环冗余检验 (CRC) :一种常用的检错方法,通过在数据后面添加冗余码(帧检验序列FCS)来检测帧中的差错。
    • 差错检测:通过特定的算法(如CRC)来检测数据中的错误。
    • 错误恢复:在检测到错误后,采取相应的措施来恢复数据,如请求重传等。

    • 冗余码的计算:

可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。

传输差错可分为两大类:

  • 比特差错;
  • 传输差错:帧丢失、帧重复或帧失序等。

在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输,要做到可靠传输,还必须再加上帧编号、确认和重传等机制。

点对点协议 PPP

点对点协议(PPP)是一种数据链路层通信协议,用于在两个网络实体间建立、配置和测试数据链路连接。

PPP协议的特点:

  1. 简单性:PPP的设计简单,易于实现。
  2. 封装成帧:PPP能够将网络层的数据封装成帧,以便在数据链路层传输。
  3. 透明性:PPP保证了数据传输的透明性,即数据中的特殊字符不会被误解为控制信息。
  4. 多种网络层协议:PPP可以在一条物理链路上支持多种网络层协议。
  5. 多种类型链路:PPP能在多种类型的链路上运行,包括串行和并行链路。
  6. 差错检测:PPP具备强大的差错检测能力,能够检测接收端收到的帧是否有差错,并丢弃有差错的帧。
  7. 检测连接状态:PPP能够自动检测链路是否处于正常工作状态。
  8. 最大传送单元(MTU):PPP为每种类型的点对点链路设置了MTU的标准默认值,以促进不同实现之间的互操作性。
  9. 网络层地址协商:PPP提供了一种机制,使得通信的两个网络层实体能够协商或配置彼此的网络层地址。
  10. 数据压缩协商:PPP允许双方协商使用数据压缩算法,以提高传输效率。

PPP协议的组成:

PPP由以下三个主要部分组成:

  1. 封装IP数据报的方法:PPP定义了如何将IP数据报封装在串行链路帧中。
  2. 链路控制协议(LCP):LCP负责建立、配置和测试数据链路连接。它还处理数据链路层的认证和加密。
  3. 网络控制协议(NCP):NCP用于在两个网络层实体间建立和配置网络层协议的参数。

PPP协议的帧格式:

PPP帧包含以下几个关键字段:

  • 标志字段:用于标识PPP帧的开始和结束,通常为01111110。
  • 地址字段:通常设置为0xFF,表示帧发往所有设备。
  • 控制字段:通常设置为0x03,表示无编号信息。
  • 协议字段:指示信息字段中包含的数据类型。
  • 信息字段:包含实际传输的数据,长度可变。
  • 帧检验序列(FCS):用于检测帧在传输过程中是否出现错误。

帧格式

透明传输问题:

PPP使用两种方法来解决透明传输问题,即避免数据中的特殊字符被误认为是帧的边界:

  • 字节填充法:用于异步传输,通过在特殊字符前填充特殊字节来避免混淆。
  • 零比特填充法:用于同步传输,通过在发送数据中连续的1后面添加0来避免混淆。

PPP协议的工作状态:

PPP链路的建立和维护包括以下状态:

  1. 物理层连接建立。
  2. LCP配置协商,以建立链路。
  3. 鉴别过程,可选。
  4. NCP配置协商,用于分配网络层参数,如IP地址。
  5. 链路维护,包括错误检测和链路状态监控。
  6. 链路终止,包括释放连接和资源。

PPP协议状态图

局域网数据链路层

局域网的数据链路层具有广播功能,便于系统扩展和演变,提高了系统的可靠性、可用性和生存性。局域网的数据链路层分为LLC子层和MAC子层,其中MAC子层负责控制对媒体的访问。

局域网(LAN)的主要特点和优点如下:

主要特点:

  1. 单位所有 :网络资产归属于单一组织或单位。
  2. 地理范围有限 :覆盖的地理区域相对较小。
  3. 站点数目有限 :网络连接的设备数量较少。

主要优点:

  1. 广播功能:便于从一个站点访问全网。
  2. 扩展性:系统易于扩展和演变。
  3. 灵活性:设备位置可灵活调整和改变。
  4. 可靠性:提高了系统的可靠性。
  5. 可用性:提高了系统的可用性。
  6. 生存性:提高了系统的生存性。

三种类型局域网

发现问题:

由于共享信道,若多个设备在信道上同时发送数据,则会造成彼此干扰,导致发送失败,于是我们研究出了频分复用,时分复用,波分复用,码分复用,并且还有动态媒体接入控制,动态媒体接入控制(Dynamic Media Access Control, DMAC)是局域网中用于管理多个设备如何访问共享传输媒体的一组技术。

  1. 随机接入:
    • 所有用户均可发送:在随机接入方法中,网络上的所有用户都可以随时发送数据。
    • 无中心控制:没有中心控制系统来调度数据的发送,用户自主决定何时发送数据。
    • 适用场景:适用于用户数量较少或者数据传输需求不高的环境。
  2. 受控接入:
    • 轮询(Polling):在受控接入中,一个中心控制系统(如集线器或交换机)按照特定的顺序逐个询问每个用户设备是否需要发送数据。
    • 有序访问:通过轮询,网络中的设备按照既定顺序获得发送数据的机会,从而控制数据传输的顺序。
    • 减少冲突:这种方法可以减少数据发送时的冲突和碰撞,提高网络的效率。
    • 适用场景:适用于用户数量较多或对网络访问有特定要求的环境。

这两种方法各有优势和局限性,选择哪种方法取决于网络的具体需求和环境。在实际应用中,还有其他的DMAC技术,如CSMA/CD(Carrier Sense Multiple Access with Collision Detection)等,它们结合了随机和受控接入的特点,以适应不同的网络条件和性能要求,下面会讲到。

数据链路层分层

  1. 逻辑链路控制(LLC)子层:
    • 功能:LLC子层主要负责管理和控制网络层与数据链路层之间的通信。它提供逻辑通信和错误控制机制。
    • 与传输媒体无关:LLC子层的设计独立于传输媒体的类型,这意味着它不关心数据是如何在物理媒介上传输的。
    • 服务接口:LLC子层为网络层提供统一的服务接口,使得网络层不必关心下层的具体实现细节。
    • 不可见性:LLC子层对于网络层来说是透明的,即网络层看不到LLC子层的具体操作。
  2. 媒体接入控制(MAC)子层:
    • 功能:MAC子层负责控制对共享传输媒体的访问。它管理数据帧如何在物理媒介上发送和接收。
    • 与传输媒体有关:MAC子层的设计和实现依赖于传输媒体的特性,如电缆类型、信号传输方式等。
    • 地址管理:MAC子层处理物理地址,即MAC地址,用于在局域网内标识和寻址网络设备。
    • 冲突控制:在共享媒体的环境中,MAC子层还负责冲突检测和解决,如在以太网中使用的CSMA/CD协议。

适配器

  1. 串行/并行转换:适配器在计算机和网络之间转换数据流的传输方式。由于计算机内部总线通常工作于并行模式,而局域网传输通常是串行的,适配器负责在这两者之间转换数据。
  2. 数据缓存:适配器提供缓存区(Buffer),用于暂存即将发送到局域网的数据或刚从局域网接收到的数据。这有助于协调数据传输速度和处理时间差异。
  3. 硬件寻址:适配器拥有自己的物理地址,即MAC地址。这个地址用于在局域网内标识设备,并使得适配器能够正确地发送和接收帧。
  4. 实现以太网协议:适配器硬件或固件中实现了数据链路层的以太网协议,包括帧的封装、透明传输、差错检测等功能。
  5. 接口操作系统:适配器允许操作系统通过设备驱动程序与其交互,驱动程序提供了一套标准化的接口供操作系统调用,以控制网络适配器的行为。
  6. 数据链路层功能:适配器执行数据链路层的大部分功能,包括帧的构建与解析、错误检测与报告等。
  7. 媒体访问控制:在共享媒体的局域网中,适配器参与媒体访问控制机制(如CSMA/CD),以确保数据能够高效且无冲突地传输。
  8. 适配不同网络技术:适配器使得计算机能够适应不同类型的网络技术,如以太网、令牌环网等,只要安装相应的适配器即可。

适配器

CSMA/CD 协议

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)是局域网中用于控制对共享媒体访问的协议。其工作原理是在发送数据前检测信道是否空闲(载波监听),发送时检测是否有碰撞发生。如果检测到碰撞,发送站会停止发送,并在随机时间后重传数据。

最早的以太网将计算机连载一根总线上,总线使广播通信非常简单,可靠,但是为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中,仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧。这就不可避免多个站点同时发送导致碰撞。下面的方法就是解决碰撞的。

CSMA/CD协议的要点:

  1. 多点接入:CSMA/CD用于多点接入的网络,即多台计算机通过同一条物理介质(如以太网电缆)连接到网络。

  2. 边发送边载波监听:不管在发送数据的过程中或者在发送数据之前,设备必须持续监听媒体,以便检测可能发生的碰撞(即两个或多个设备同时发送数据)。

  3. 碰撞检测:如果设备在发送数据时,通过信道上的信号电压变化情况,当电压摆动超过一定门限值时,即为检测到碰撞,它会立即停止发送,并发送一个特殊的碰撞信号,告知网络上的其他设备发生了碰撞。

  4. 退避算法:当检测到碰撞后,设备会执行退避算法,即等待一个随机时间间隔后再次尝试发送数据。这个随机时间间隔有助于减少设备再次发生碰撞的概率。

  5. 截断二进制指数退避:CSMA/CD使用截断二进制指数退避算法来确定重传所需的延迟时间。如果连续多次发生碰撞,退避时间会指数增长,但有一个上限,下面是计算方法:

    • 停止发送数据。
    • 等待一个随机的时间,这个时间是根据基本退避时间和一个随机数决定的。
    • 基本退避时间是争用期的两倍,即 2×51.22×51.2 μs。
    • 从0到 2^k−1 的整数集合中随机选择一个数 𝑟,其中𝑘是重传尝试的次数,但𝑘的值不会超过10。
    • 重传所需的延迟时间是 𝑟 乘以基本退避时间。
    • 如果一个帧在尝试16次之后仍然发送失败,设备将停止尝试,并通知上层协议。
  6. 争用期:争用期是衡量信号在局域网中传播的时间。如果设备在争用期内没有检测到碰撞,那么可以认为发送的数据帧成功,表现为下面的2t,具体的争用期时间 = 51.2 μs。

  7. 最大传输单元(MTU):CSMA/CD规定了以太网帧的最小长度,以确保即使在最坏的情况下,发送的数据帧也不会因为碰撞而被错误地识别为由碰撞引起的短帧。

  8. 不适用于高速网络:随着网络速度的提升,CSMA/CD协议由于其性能限制,不再适用于高速以太网(如千兆以太网和更高速度的网络),这些网络通常使用全双工通信和交换机来避免碰撞。

大致流程

信道利用率

多个站在以太网上同时工作就可能会发生碰撞。 当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到 100%。

以太网被占用情况

参数a的定义:

  • 参数 a:定义为以太网单程端到端传播时延𝜏与帧的发送时间𝑇0比。
  • 公式:a = 𝜏/𝑇0

提高信道利用率:

  1. 减小传播时延 𝜏:传播时延是指信号从发送端到接收端所需的时间,减小这个时间可以减少信道被无效占用的可能性。
  2. 增加帧的发送时间 𝑇0:帧的发送时间是指成功发送一个帧所需的总时间,增加这个时间(即发送更长的帧)可以减少每次传输的相对时延开销。
  3. 优化网络设计:通过合理设计网络,比如使用交换机代替集线器,可以减少碰撞域的大小,从而降低碰撞概率,提高信道利用率。
  4. 使用全双工模式:在全双工模式下,发送和接收可以同时进行,不需要CSMA/CD协议来处理碰撞,从而提高信道利用率。
  5. 限制帧长:避免过短的帧频繁发送,因为短帧意味着更多的时延开销,会降低信道利用率。
  6. 使用高效的数据传输技术:例如,使用更高效的编码技术或压缩数据以减少需要传输的数据量,可以提高信道利用率。

最大值:

  • 理想情况:在理想情况下,如果参数𝑎远小于1,信道利用率可以接近最大值。
  • 实际情况:但实际上,由于碰撞和其他网络条件的限制,以太网的信道利用率通常低于理想值。据统计,当以太网的利用率达到30%时,网络已经处于重载状态。

以太网的 MAC 层

以太网的MAC层负责控制对媒体的访问,并定义了硬件地址(MAC地址)。MAC地址是全球唯一的,用于标识网络设备。

MAC层的功能:

  1. 媒体访问控制:MAC层负责控制网络设备对共享传输媒体的访问,以避免数据发送时的冲突和碰撞。
  2. 帧的封装与传输:MAC层将来自上层(如LLC层)的数据封装成帧,然后通过物理层发送到网络上。
  3. 帧的接收与处理:MAC层还负责接收来自物理层的帧,并进行必要的处理,如错误检测和帧的传递给上层。
  4. 硬件地址管理:MAC层管理网络设备的硬件地址,即MAC地址。

MAC物理地址:

  1. 全球唯一性:每个网络设备的MAC地址都是全球唯一的,由IEEE组织负责分配和管理。
  2. 地址结构:MAC地址是48位的地址,通常表示为6个十六进制数字,每个数字代表8位(一个字节)。
  3. OUI:MAC地址的前24位称为组织唯一标识符(OUI),由IEEE分配给不同的厂商。
  4. 扩展标识符:MAC地址的后24位由厂商自行分配,称为扩展标识符。
  5. 地址分配:MAC地址被固化在网络设备的适配器(如网卡)的ROM中。
  6. 单站地址与组地址:MAC地址的第一个字节的最低位称为I/G(Individual/Group)位,用于区分单站地址(I/G位为0)和组地址(I/G位为1),组地址用来多播。
  7. 广播地址:特殊的MAC地址,所有48位都为1,用于广播通信,只能作为目的地址。
  8. 全球管理与本地管理:MAC地址的第一个字节的最低第二位称为G/L(Global/Local)位,用于区分全球管理地址(G/L位为0)和本地管理地址(G/L位为1)。

MAC帧:

以太网的MAC层负责帧的接收和过滤。适配器硬件会检查每个传入帧的MAC地址,只接收那些目的地址与本站适配器地址匹配的单播帧、所有设备的广播帧,以及适配器订阅的多播帧。不匹配的帧将被丢弃。混杂模式下,适配器会接收所有网络上的帧,不论其目的地址。

  1. 目的地址:帧首部中的目的地址字段,用于指定接收帧的设备的MAC地址。

  2. 源地址:帧首部中的源地址字段,用于标识发送帧的设备的MAC地址。

  3. 类型字段:用于指示上层协议类型,以便接收设备可以将其传递给正确的上层协议。

  4. 数据字段:MAC 客户数据字段,包含实际传输的数据,最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46字节)

  5. 帧检验序列(FCS):用于检测帧在传输过程中是否出现错误。

以太网的MAC帧格式主要有两种标准,分别是DIX Ethernet V2标准和IEEE的802.3标准,最常用的是前者,也就是上面介绍的,以太网的MAC帧需要符合特定规范以保证数据传输的有效性和准确性。有效的MAC帧应满足以下条件:数据字段的实际长度与帧头部的相应字段值相符,确保帧长为整数个字节;帧检验序列(FCS)未检测到错误;数据字段长度介于46到1500字节之间。有效的MAC帧整体长度应在64到1518字节之间。若MAC帧不符合这些规范,将被视为无效并被网络设备丢弃。以太网本身不负责重传这些丢弃的帧,重传机制通常由上层协议如TCP来实现。

二者区别:

DIX Ethernet V2标准和IEEE的802.3标准之间的主要区别在于它们的帧格式中”类型/长度”字段的用途和解释方式,以及对LLC子层的支持。

  1. DIX Ethernet V2标准:
    • 类型字段:固定2字节,用于标识上层协议的类型,如IPv4、ARP等。
    • 数据字段:长度为46到1500字节,用于传输实际的数据。
    • 帧检验序列FCS:4字节,用于错误检测。
  2. IEEE 802.3标准:
    • 长度/类型字段:2字节,根据其值的不同,可以表示两种不同的信息:
      • 当该字段的值大于0x0600时,它被解释为”类型”,与DIX Ethernet V2标准中的类型字段相同。
      • 当该字段的值小于0x0600时,它被解释为”长度”,表示数据字段的长度。
    • 数据字段:长度可以根据”长度/类型”字段的解释而变化,但通常也是46到1500字节。
    • 帧检验序列FCS:同样为4字节,用于错误检测。

MAC层的硬件:

  1. 适配器(网卡):网络设备通过适配器与局域网进行通信,适配器实现MAC层的功能。
  2. 串行/并行转换:适配器负责在计算机和网络之间转换数据流的传输方式。
  3. 缓存:适配器通常包含缓存,用于暂存数据。
  4. 设备驱动程序:适配器与计算机的操作系统协作,通过设备驱动程序提供标准化的接口。

以太网自学习功能

以太网交换机具有自学习功能,能够自动学习并记录MAC地址与端口的映射关系,从而提高数据传输的效率和准确性。自学习过程涉及交换机接收帧、查找和更新交换表,以及转发帧到正确的接口。

  1. 自学习过程
    • 当以太网交换机首次启动时,它的交换表是空的。
    • 交换机通过接收经过接口的帧来学习源地址。
  2. 交换表的更新
    • 交换机接收到一个帧后,会检查帧的源地址。
    • 将源地址与接收帧的接口关联,并记录在交换表中。
  3. 转发决策
    • 交换机查找交换表,确定目的地址对应的接口。
    • 如果找到匹配项,交换机将帧转发到相应的接口。
    • 如果未找到匹配项,交换机可能会将帧广播到所有接口,除了接收帧的接口。
  4. 帧的转发
    • 当交换机收到一个帧,它会检查目的地址。
    • 如果目的地址是本地的,交换机将帧传递给相应的接收端口。
    • 如果目的地址是远程的,交换机将帧转发到正确的输出接口。
  5. 交换表的维护
    • 交换表中的每个条目通常有一个老化时间。
    • 如果在老化时间内没有再次学习到该地址,对应的条目将从交换表中删除。
  6. 交换机互连时的自学习
    • 当两台或多台交换机互连时,它们通过转发帧互相学习彼此的交换表。
    • 这允许交换机了解网络中所有设备的地址和位置。
  7. 自学习的优势
    • 自学习功能使得交换机即插即用,无需手动配置。
    • 交换机能够自动适应网络变化,如设备移动或更换接口。
  8. 自学习的限制
    • 如果网络中存在环路,自学习可能导致无限循环,需要使用生成树协议(STP)来避免。
  9. 生成树协议(STP)
    • STP用于防止交换网络中的环路。
    • 通过逻辑上断开某些链路,STP确保网络是无环路的树状结构。

后面的内容老师没有画重点,所以就这样结束咯!明天开始第四章的内容,加油!快过半了呜呜呜。

第四章:网络层

基本概念

两种服务

  • 虚电路服务:建立连接,可靠通信,分组沿同一条路径传输,端到端差错处理和流量控制由网络负责。

    • 只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,并不是真正建立了一条物理连接。

  • 数据报服务:无连接,尽最大努力交付,分组独立传输,不保证顺序、完整性或时限,主机负责可靠通信,可以灵活地适应不同类型的网络环境和通信需求,支持各种应用层协议,通过动态路由选择协议来确定数据报的最佳传输路径,而不是依赖于静态的或预先定义的路径。

  • 二者对比:

    对比的方面虚电路服务数据报服务
    思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证
    连接的建立必须有不需要
    终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
    分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发
    当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化
    分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序
    端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责

两个层面

  • 数据层面:
    • 路由器根据自己生成的转发表,把收到的分组从查找到的相应接口转发出去。
    • 独立工作。
    • 采用硬件进行转发,速度快。
  • 控制层面:
    • 根据路由选择协议所用的算法计算路由,创建出本路由器的路由表。
    • 需要许多路由器协同动作。
    • 采用软件计算,速度慢。

软件定义网络SDN

  • SDN 概念:将网络控制层与数据层分离,通过软件集中控制网络行为。
  • SDN 控制器:负责计算路由,生成路由器的转发表。
  • 数据层面:路由器根据转发表转发分组。

网际协议IP

虚拟互联网络

  • 实现网络互连互通的问题:在网络互连时需要解决多个问题,尤其是异构网络如何互相连接。

  • 中间设备的作用:使用中间设备来实现网络的互连,这些设备包括网关、路由器、网桥、交换机和转发器。

  • 网络互连与虚拟互连网络:

    • 互连网络:指多个网络通过中间设备连接在一起,但每个网络仍然是独立的。
    • 虚拟互连网络:通过路由器连接形成的一个统一的网络,使得主机在通信时感觉像是在同一个网络上。
    • 注意,使用转发器或者网桥不叫网络互连,转发器、网桥或交换机仅把一个网络扩大了,仍然是一个网络。
  • IP网的概念:在虚拟互连网络上,主机通信时不需要关心具体的网络异构细节,这得益于IP协议的统一作用。

  • 分组在互联网中的传送:分组在互联网中通过多个路由器间接交付,可能会经过不同的路径到达目的地。

IP地址

  • IP地址及其表示方法

    • 定义:IP地址是互联网上每台主机或路由器接口的唯一标识。
    • 表示方法:采用32位点分十进制记法,例如128.11.3.31。
    • 分配机构:由互联网名字和数字分配机构ICANN负责全球IP地址的分配。
  • 分类的IP地址

    • A类地址

      • 网络号字段:1字节
      • 主机号字段:3字节
      • 可指派网络数:126
      • 每个网络最大主机数:16777214
    • B类地址

      • 网络号字段:2字节
      • 主机号字段:2字节
      • 可指派网络数:16383
      • 每个网络最大主机数:65534
    • C类地址

      • 网络号字段:3字节
      • 主机号字段:1字节
      • 可指派网络数:2097151
      • 每个网络最大主机数:254
    • D类地址:用于多播,不用于网络地址,1110开头

    • E类地址:保留,用于实验和未来使用,1111开头

    • 注意:

      A 类网络地址中, 网络号 0 和 127 是保留地址,不指派。0 表示“本网络”,127 保留作为本地环回测试地址。

      B 类网络地址中,网络号 128.0 是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。

      C 类网络地址中,网络号 192.0.0 是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。 指派主机号时,要扣除全 0 和全 1 。全 0 和全 1 有特殊含义和用途。

  • 特殊IP地址:

    网络号主机号代表的意思源地址使用目的地址使用
    00在本网络上的本主机(见 6.6 节 DHCP 协议)可以不可
    0X在本网络上主机号为 X 的主机可以不可
    全1全1只在本网络上进行广播(各路由器均不转发)不可可以
    Y全1对网络号为 Y 的网络上的所有主机进行广播不可可以
    127非全0或全1的任何数用于本地软件环回测试可以可以
  • 无分类编址CIDR

    • 定义:CIDR(Classless Inter-Domain Routing)消除了传统的A、B、C类地址的分类,允许更灵活的IP地址分配。

    • 网络前缀:CIDR地址包含一个网络前缀和主机号,如128.14.35.7/20,其中/20表示网络前缀长度。

    • 地址块:CIDR将具有相同网络前缀的IP地址组成一个地址块,可指派数是2^n-2。

    • 地址掩码:用于快速确定IP地址的网络部分,如255.255.255.0,1的个数就是网络前缀的个数

    • 网络地址:网络地址 = (二进制的 IP 地址) AND (地址掩码)

      举个栗子:

    • 常用CIDR地址

      网络前缀长度点分十进制包含的地址数相当于包含分类的网络数
      /13255.248.0.0512 K8 个B类或2048 个C类
      /14255.252.0.0256 K4个B类或1024个C类
      /15255.254.0.0128 K2个B类或512个C类
      /16255.255.0.064 K1个B类或256个C类
      /17255.255.128.032 K128个C类
      /18255.255.192.016 K64个C类
      /19255.255.224.08 K32个C类
      /20255.255.240.04 K16个C类
      /21255.255.248.02 K8个C类
      /22255.255.252.01 K4个C类
      /23255.255.254.05122个C类
      /24255.255.255.02561个C类
      /25255.255.255.1281281/2个C类
      /26255.255.255.192641/4个C类
      /27255.255.255.224321/8个C类
  • 特殊CIDR地址块

    网络前缀长度点分十进制说明
    /32255.255.255.255就是一个IP地址。这个特殊地址用于主机路由,表示单个特定主机。
    /31255.255.255.254这个地址块用于点对点链路,提供两个IP地址,主机号分别为0和1。
    /00.0.0.0同时IP地址也是全0,即0.0.0.0/0。用于默认路由,表示路由表中的最后选择。
  • 构造超网

    构造超网(Supernetting)是CIDR(无分类域间路由选择)的一个特性,它允许将多个连续的IP地址段或网络合并成一个更大的网络,这个更大的网络就被称为超网。这种技术主要用于简化路由表的规模,减少路由表中的条目数量,从而提高路由效率。

    在构造超网的过程中,可以将多个具有相同网络前缀的较小网络合并为一个更大的网络。例如,如果有三个连续的C类网络:

    • 128.14.0.0/24
    • 128.14.1.0/24
    • 128.14.15.0/24

    每个网络都有自己的子网掩码255.255.255.0,这意味着每个网络可以有256个IP地址(从0到255,除去网络地址和广播地址)。

    当我们构造超网时,这些网络可以合并为一个更大的网络,具有更短的网络前缀。例如,它们可以合并为一个/20的网络:

    • 128.14.0.0/20

    新的超网的网络前缀是20位,这意味着这个超网包含了2^(32-20) = 4096个IP地址,这覆盖了上述三个C类网络的地址范围。超网的子网掩码是255.255.240.0,这个掩码表示前20位是网络前缀,剩下的12位用于主机。

    构造超网的过程简化了路由表,因为一个单一的超网条目可以代替多个较小网络的条目。这样,路由协议只需要维护和传播更少的网络前缀信息,从而减少了路由表的大小和路由协议的复杂性。

  • IP地址的特点

    • 唯一性:IP地址在全球范围内是唯一的。
    • 分等级结构:IP地址的分等级结构方便了地址的分配和管理。
    • 路由聚合:CIDR使得可以实现路由聚合,减少了路由器转发表的大小,提高了路由效率。
    • 多归属主机:当主机连接到多个网络时,需要具有多个不同的IP地址。
    • 网络和子网:互联网将具有相同网络前缀的主机视为同一个网络或子网的一部分。
    • 平等对待:互联网对所有IP地址同等对待,无论其大小或范围。

ARP协议

  • 区别

    区别

  • 流程:解析IP地址对应的MAC地址,使用ARP请求和响应。

    工作流程

  • 四种典型情况

    1. 发送方是主机,要把IP数据报发送到本网络上的另一个主机。
      • 在这种情况下,发送主机使用ARP来解析目的主机的MAC地址。因为两台主机位于同一局域网内,所以ARP请求会直接在局域网内广播,以获取目的主机的MAC地址。
    2. 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。
      • 在这个场景中,发送主机首先使用ARP解析其本地网络上的一个路由器的MAC地址,而不是最终目的主机的MAC地址。然后,它将IP数据报发送到这个路由器,由路由器来完成将数据报转发到目标网络的任务。
    3. 发送方是路由器,要把IP数据报转发到本网络上的一个主机。
      • 如果路由器收到一个IP数据报,并且该数据报的目的地址属于路由器直接连接的局域网,路由器将使用ARP来查找目的主机的MAC地址,并将数据报直接转发到该主机。
    4. 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。
      • 在这种情况下,路由器使用ARP来解析另一个路由器(位于目标网络的下一个跳)的MAC地址。一旦获得MAC地址,路由器将把IP数据报发送到下一个跳路由器,由下一个跳路由器继续转发过程,直至数据报到达目的地。
  • 使用两个地址的原因:IP地址用于网络层寻址,MAC地址用于链路层寻址。

    1. MAC地址的局限性:每个网络设备都有一个唯一的MAC地址,用于局域网内的设备识别和通信。但是,MAC地址之间的转换非常复杂,且对以太网MAC地址进行寻址也是极其困难的。
    2. IP地址的优势:IP地址的出现解决了这个复杂问题。它提供了一种更加抽象和简化的方式来识别和寻址网络上的设备。
    3. 简化的网络通信:连接到互联网的主机只需要拥有一个唯一的IP地址。通过IP地址,不同网络上的主机可以像在同一个网络上那样进行通信,即使这背后需要多次调用ARP来解析MAC地址。
    4. 自动化的过程:ARP协议自动进行IP地址到MAC地址的转换,这个过程对用户来说是透明的,不需要用户干预。
    5. IP网络的便利性:在虚拟的IP网络上,使用IP地址进行通信非常方便。它抽象了下层网络的细节,使得互联网上的通信变得更加简单和直接。

IP数据报

数据报

  • 首部字段:版本、首部长度、总长度、标识、标志、片偏移、生存时间、协议、首部检验和、源地址、目的地址等。

    1. 版本(Version):占4位,用于标识IP协议的版本。对于IPv4,版本号为4。

    2. 首部长度(Header Length):也称为互联网协议头长度字段,占4位,表示IP数据报首部的长度,单位是32位字(一个单位为4字节),因此首部长度的最大值是60字节。

    3. 总长度(Total Length):占16位,指整个IP数据报的长度,包括首部和数据部分,单位是字节。最大长度为65535字节。

    4. 标识(Identification):占16位,用于唯一标识主机发送的每一份数据报,以便于在数据报分片后能够重新组装。

    5. 标志(Flags):占3位,用于控制和指示分片操作。其中最重要的是MF(More Fragments)标志,它指示是否还有更多的分片。

    6. 片偏移(Fragment Offset):占13位,表示当前分片在原始数据报中的位置,单位是8字节。

    7. 生存时间(Time to Live, TTL):占8位,用于限制数据报在网络中的生命周期,每经过一个路由器,TTL减1,当TTL为0时,数据报将被丢弃。

    8. 协议(Protocol):占8位,指明上层使用的是什么协议,如TCP、UDP、ICMP等,以便数据报到达目的地后能够正确交付给对应的上层协议。

    9. 首部检验和(Header Checksum):占16位,用于检验IP数据报首部在传输过程中是否出现错误。它只检验首部,不包括数据部分。

    10. 源地址(Source Address):占32位,标识发送数据报的主机的IP地址。

    11. 目的地址(Destination Address):占32位,标识数据报要发送到的主机的IP地址。

  • 分片:当IP数据报大小超过MTU时,需要分片。

    数据分片

    • 与分片有关的数值

      数据报类型总长度标识MFDF片偏移
      原始数据报382012345000
      数据报片1142012345100
      数据报片214201234510175
      数据报片310201234500350

      说明:

      • 总长度:表示每个数据报或数据报片的总字节数,包括IP首部和数据部分。
      • 标识:用于唯一标识一个原始数据报,所有属于同一个原始数据报的分片都会有相同的标识值。
      • MF(More Fragments) :表示是否还有更多的分片。MF=1表示后面还有分片,MF=0表示这是最后一个分片。
      • DF(Don’t Fragment) :表示是否允许对数据报进行分片。DF=0表示允许分片,DF=1表示不允许分片。
      • 片偏移:表示当前分片相对于原始数据报开始的位置,单位是8字节。例如,片偏移为175表示该分片是原始数据报的第22个字节开始的部分(175/8=21.875,向下取整到22个8字节块)。

      原始数据报的大小为3820字节,由于网络的MTU(最大传输单元)限制,它被分成了三个片。每个片都有自己的总长度、保持与原始数据报相同的标识,以及根据它们在原始数据报中的位置设置的片偏移值。最后一个分片的MF标志为0,表示没有更多的分片。DF标志在所有片中都为0,表示允许分片。

  • 基于终点的转发:根据数据报首部中的目的地址来转发数据包。

    1. 基于终点的转发概念:

      • 逐跳转发:分组在互联网中是逐跳转发的,即每个分组独立地从源头传送到目的地。
      • 目的地址:转发决策基于数据报首部中的目的IP地址。
    2. 转发过程:

      1. 检查本地网络:首先检查目的地址是否在本地网络上,如果是,则直接交付。
      2. 查找转发表:如果不在本地网络,路由器查找自己的转发表,寻找与目的地址匹配的条目。
      3. 最长前缀匹配:在转发表中进行最长前缀匹配,选择最具体的路由条目。
      4. 转发到下一跳:根据匹配的路由条目,将分组转发到指定的下一跳路由器。
    3. 转发表结构:

      • 目的网络地址:用于匹配目的IP地址的网络部分。
      • 下一跳地址:指示分组应该转发到的下一个路由器。
    4. 特点:

      • 独立性:每个分组独立选择路由,与其它分组无关。
      • 灵活性:可以适应网络拓扑的变化,通过更新转发表来调整路由。
      • 无状态:转发过程不需要维护状态信息,每个分组独立处理。
    5. 示例:

      假设有以下转发表项:

      • 128.1.3.64/26 → R2,接口1
      • 128.1.2.128/25 → 直接,接口1
      • 128.1.2.192/26 → 直接,接口0

      当源主机H1需要发送分组到目的地址128.1.2.132时:

      • H1首先检查是否在本地网络上,不在则发送给路由器R1。
      • R1查找转发表,执行最长前缀匹配:
        • 128.1.2.132与128.1.2.128/25匹配(因为128.1.2.132 & 255.255.255.128 = 128.1.2.128)。
      • R1将分组转发到接口1的下一跳路由器。
    6. 最长前缀匹配原则:

      • 定义:当存在多个匹配的路由条目时,选择具有最长网络前缀的条目作为最佳匹配。
      • 目的:确保路由选择尽可能具体,从而提高路由的精确性和效率。
    7. 路由分组算法:

IPv6

Pv6的基本首部

  • 更大的地址空间:将地址从IPv4的32位增大到了128位。

  • 扩展的地址层次结构:可以划分为更多的层次。

  • 灵活的首部格式:定义了许多可选的扩展首部。

  • 改进的选项:允许数据报包含有选项的控制信息,选项放在有效载荷中。

  • 支持即插即用:不需要使用DHCP进行IP地址配置,可以在没有DHCP服务器的情况下自动配置自己的IP地址。

  • 支持资源的预分配:支持需要保证一定带宽和时延的应用。

  • 首部长度:固定的40字节,8字节对齐,首部长度必须是8字节的整数倍。

  • 基本首部字段:版本、通信量类、流标号、有效载荷长度、跳数限制、下一个首部、源地址、目的地址。

  • 一般形式:基本首部(固定40字节的首部长度和八个首部字段数),有效载荷(零个或多个拓展首部加数据部分)

  • 对首部的修改:

    对首部的修改

IPv6的地址

  • 单播地址(Unicast):传统的点对点通信。

    划分方法

  • 多播地址(Multicast):一点对多点的通信。

  • 任播地址(Anycast):IPv6新增,数据报交付给最近的一个组内成员。

  • 冒号十六进制记法:用于表示128位的地址。

  • 零压缩:简化地址表示,连续的零可以用一对冒号取代。

  • 点分十进制记法的后缀:在IPv4向IPv6转换阶段特别有用。

    直接截图了,懒得整理了……

从IPv4向IPv6过渡

  • 逐步演进,向后兼容:IPv6系统必须能够接收和转发IPv4分组,并为IPv4分组选择路由。

  • 过渡策略:

    • 使用双协议栈:同时支持IPv4和IPv6协议。

    • 使用隧道技术:将IPv6数据报封装在IPv4数据报中穿越IPv4网络。

ICMPv6

  • ICMPv6:IPv6的ICMP版本,用于反馈差错信息。
  • 包含ARP和IGMP协议的功能:简化了协议数量,统一了功能。

基本首部格式

  • 版本(4位):指明协议版本,IPv6中该字段总是6。
  • 通信量类(8位):区分不同的IPv6数据报类别或优先级。
  • 流标号(20位):标识同一流中的所有数据报。
  • 有效载荷长度(16位):指明除基本首部外的字节数,最大值64KB。
  • 跳数限制(8位):类似于IPv4中的TTL。
  • 下一个首部(8位):指示数据报的下一个协议头。
  • 源地址目的地址(各128位):数据报发送和接收的IP地址。

IPv6地址分类

  • 未指明地址(::/128):只有一个地址,全零。
  • 环回地址(::1/128):用于本地测试。
  • 多播地址(FF00::/8):用于多播通信。
  • 本地链路单播地址(FE80::/10):未连接到互联网,仅在本地链路上有效。
  • 全球单播地址:除上述四种外,所有其他二进制前缀。

路由选择协议

基本概念

  • 路由选择协议:属于网络层控制层面的内容,负责在网络中选择数据传输的最佳路径,分为静态和动态。

  • 分为两个层次:

    • 自治系统之间的路由选择 或 域间路由选择 (interdomain routing);
    • 自治系统内部的路由选择 或 域内路由选择 (intradomain routing);
  • 自治系统 AS:是在单一技术管理下的许多网络、IP地址以及路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。每一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

网关协议

内部网关协议RIP

  • RIP(Routing Information Protocol) :一种基于距离矢量的路由选择协议。

    最短路径

  • 工作原理:使用Bellman-Ford算法,通过广播或组播更新路由信息,以跳数作为路由度量。

  • 距离:RIP协议中的”距离”也被称为”跳数”(hop count),它是一个度量,用来衡量到达目的地网络的路径长度。RIP协议使用这个跳数来选择到达目的地的最佳路径,即跳数最少的路径。当网络拓扑发生变化时,RIP协议通过交换路由信息来更新各个路由器的路由表,以确保所有路由器都拥有到达目的地的最短路径信息。

    • 路由器到直接连接的网络的距离:等于1。这意味着如果路由器直接连接到某个网络,那么它到这个网络的距离是1跳。
    • 路由器到非直接连接的网络的距离:等于所经过的路由器数加1。也就是说,每通过一个路由器,到达目的地网络的距离就增加1跳。
    • “距离”的最大值:在RIP协议中,一条路径最多只能包含15个路由器。因此,”距离”的最大值为15跳。
    • “距离”为16:当”距离”的值为16时,相当于表示目的地网络是不可达的。

    距离

  • 特点:

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

内部网关协议OSPF

  • OSPF(Open Shortest Path First) :一种基于链路状态的路由选择协议。

  • 工作原理:

    • 使用Dijkstra算法计算最短路径。
    • 通过洪泛法在自治系统内部交换链路状态信息。
    • 采用分布式的链路状态协议 (link state protocol)。
  • 特点:

    • 更适合大型网络。
    • 快速收敛。
    • 支持区域划分,减少路由信息的交换。
      1. 区域:
        • 主干区域(Backbone Area):标识符为0.0.0.0,其作用是用来连通其他下层区域。主干区域是OSPF网络的核心,所有其他区域都必须直接或间接地连接到这个区域。
        • 普通区域(Non-Backbone Areas):除了主干区域以外的其他区域。普通区域可以包含一个或多个网络和路由器,它们之间通过主干区域进行路由信息的交换。
      2. 优点:
        • 减少通信量:通过将网络划分为多个区域,可以减少整个网络上的通信量,因为路由信息只在区域内或与主干区域之间交换。
        • 减少维护状态数量:每个路由器只需要维护与自己直接相连的区域的路由信息,而不需要了解整个自治系统中的所有路由信息。
        • 提高路由效率:在较小的区域内,路由器可以更快地计算出最短路径,因为需要考虑的网络和链路较少。
        • 增强网络稳定性:限制了路由计算的范围,使得单个区域的故障不会影响到整个自治系统。
      3. 缺点:
        • 信息种类增多:OSPF协议需要处理不同类型的分组,如问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组,这使得协议更加复杂。
        • 配置和管理复杂性:划分区域增加了网络设计和配置的复杂性,需要仔细规划区域边界和选择合适的路由器作为区域边界路由器(ABR)或主干路由器(BR)。
        • 可能影响路由最优性:在某些情况下,区域划分可能导致路由不是全局最优的,因为路由决策是在局部区域内做出的。
  • 工作流程:

    工作流程

外部网关协议BGP

  • BGP(Border Gateway Protocol) :用于不同自治系统间的路由选择。
  • BGP-4:当前使用的版本,支持CIDR和路由聚合。
  • 特点:
    • 支持策略路由。
    • 允许网络提供者定义路由策略。
    • 使用路径向量协议,考虑AS路径和下一跳信息。

路由器的构成

  • 路由器结构:

    • 控制层面(软件)

      :负责路由选择和管理。

      • 路由选择协议。
      • 路由表。
    • 数据层面(硬件)

      :负责分组的接收、转发和排队。

      • 输入端口。
      • 输出端口。
      • 交换结构。
      • 缓存管理。
  • 转发与路由选择的区别:

    • 转发:根据路由表中的信息将分组发送到下一个目的地。
    • 路由选择:动态地选择数据传输的路径。

IP多播

IP多播的基本概念

  • 多播(Multicast):又称为组播,是一种将数据从单个源点发送到多个目的地的技术。

  • 目的:更有效地支持一对多或多对多的通信,减少网络资源的消耗。

    多播可大大节省资源

在局域网上进行硬件多播

  • 硬件多播:局域网硬件支持多播功能,可以直接将数据发送到多播组内的所有成员,无需复制分组。

  • 以太网多播地址:由IANA指定的特定以太网地址块,用于标识多播组。

    • IANA(Internet Assigned Numbers Authority) :互联网数字分配机构,负责全球互联网上的IP地址和域名的分配和管理。
    • 以太网多播地址范围:IANA分配了特定的以太网地址块用作多播地址,这些地址的范围是从01-00-5E-00-00-0001-00-5E-7F-FF-FF
    • 多播地址数量:在这个范围内,共有223个地址被指定为以太网多播地址。
    • 多播地址的结构:在48位的以太网地址中,用于多播的地址有固定的前缀01-00-5E,这意味着前25位是固定的,而剩下的23位可以用来标识不同的多播组。

    D类IP地址与以太网多播地址的映射关系

  • 收到多播数据报的主机,还要在IP层对IP地址进行过滤,把不是本主机要接收的数据报丢弃。

IGMP和多播路由选择协议

  • IGMP (Internet Group Management Protocol):

    • 管理多播组成员的加入和退出。
    • 允许多播路由器了解其连接的局域网上是否有主机加入了特定的多播组。
    • 版本包括IGMPv1、IGMPv2和IGMPv3。
  • 多播路由选择协议:

    • 确保多播数据报以最小的代价传送给所有多播组成员。
    • 动态适应多播组成员的变化,即使网络拓扑没有变化。

多播IP地址

  • D类地址:用于多播的数据报,地址范围为224.0.0.0至239.255.255.255。
  • 多播地址的使用:只能作为目的地址,不能作为源地址。

多播数据报的特点

  • 目的地址:使用D类IP地址。
  • 协议字段:值为2,表示使用IGMP。
  • 交付保证:尽最大努力交付,但不保证能够交付到多播组内的所有成员。
  • ICMP差错报文:对多播数据报不产生ICMP差错报文,比如ping不通。

多播路由选择

  • 洪泛与剪除:适用于较小的多播组,使用反向路径广播(RPB)策略避免兜圈子。

    RPB

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

  • 基于核心的发现技术:为每个多播组指定一个核心路由器,构建以核心路由器为根节点的多播转发树。

多播路由选择协议的类型

  • DVMRP(Distance Vector Multicast Routing Protocol) :互联网上使用的第一个多播路由选择协议。
  • CBT(Core Based Tree) :基于核心的转发树。
  • MOSPF(Multicast Extensions to OSPF) :开放最短通路优先的多播扩展。
  • PIM-SM(Protocol Independent Multicast-Sparse Mode) :协议无关多播-稀疏方式,已成为互联网标准。
  • PIM-DM(Protocol Independent Multicast-Dense Mode) :协议无关多播-密集方式。

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

虚拟专用网 VPN

  • 定义:VPN是一种技术,允许在公共网络(如互联网)上建立加密的、安全的通信隧道,模拟私有网络的连接。

  • 目的:解决IP地址不足的问题,允许机构内部的计算机使用非全球唯一的IP地址进行通信,同时保持数据的安全性。

  • 怎么判断?

    • 专用地址只能用作本地地址,而不能用作全球地址。

    • 互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

  • 类型

    • 内联网 (Intranet VPN) :为同一机构的不同部门或地点提供安全的通信。
    • 外联网 (Extranet VPN) :连接不同机构的网络,允许安全的信息交换。
    • 远程访问 VPN (Remote Access VPN) :允许远程用户安全地访问机构的内部网络。
  • 实现:通过隧道技术,将数据封装在公共网络的数据包中,然后在目的地进行解密。

网络地址转换 NAT

  • 定义:NAT是一种技术,允许在专用网络上使用专用(非全球唯一)地址的设备与互联网上的设备通信。

  • 目的:解决IPv4地址耗尽问题,允许多个设备共享一个或少数几个全球IP地址。

  • 工作原理

    • 源NAT (Source NAT) :更改数据包的源地址,通常在专用网络连接到互联网的路由器上进行。
    • 目的NAT (Destination NAT) :更改数据包的目的地址,用于将进入的数据包转发到专用网络上的正确设备。
  • NAT的类型

    • 传统NAT (Traditional NAT) :仅转换IP地址。

    • 网络地址与端口号转换 NAPT (Network Address and Port Translation) :转换IP地址和传输层端口号,允许多个设备共享单个IP地址。

  • 特点

    • NAT允许专用网络内的多个设备同时访问互联网,而不需要为每个设备分配一个全球IP地址。
    • NAT可能导致一些网络应用的问题,因为它更改了数据包的源和目的地址。

第五章:运输层

运输层协议概述

  • 进程间通信:运输层负责在网络中不同主机的应用进程之间提供通信服务,提供应用进程之间的逻辑通信服务

  • UDP和TCP的主要特点

    • UDP(用户数据报协议):

      • 不可靠信道:UDP不保证数据的可靠传输,不提供数据传输的确认或重传机制。
      • 无连接:在传送数据之前,UDP不需要建立连接,发送方可以立即开始发送数据。
      • 尽最大努力交付:UDP提供一种尽力而为的服务,不保证数据的顺序、完整性或可靠性。
      • 适用于实时应用:由于UDP的低延迟特性,它适用于对实时性要求较高的应用,如语音通信、视频流、在线游戏等。
      • 简单高效:UDP的首部开销小(仅8字节),没有复杂的控制机制,因此处理速度快,时延低。
    • TCP(传输控制协议):

      • 全双工可靠信道:TCP提供了一个可靠的双向通信通道,确保数据按序、完整、正确地传输。
      • 面向连接:在数据传输前,TCP需要通过三次握手过程建立连接,确保通信双方准备好进行数据交换。
      • 提供可靠交付:TCP通过序列号、确认应答、重传机制等确保数据的可靠传输。
      • 适用于需要可靠传输的应用:对于需要确保数据完整性和顺序的应用,如Web浏览(HTTP)、文件传输(FTP)、邮件传输(SMTP)等,TCP是首选协议。
      • 不提供广播或多播服务:TCP不支持同时向多个目的地发送数据的广播或多播服务。
      • 开销较多:由于TCP需要维护连接状态、序列号、确认应答等,因此在数据传输上相比UDP有更多的开销。
      • 流量控制和拥塞控制:TCP通过滑动窗口机制实现流量控制,通过拥塞控制算法避免网络拥塞,保证网络的高效使用。
      • 连接的建立和释放:TCP通过三次握手建立连接,通过四次挥手过程释放连接,确保连接的稳定和可靠。
    • UDP和TCP的应用:

  • 端口的作用:端口号用于区分同一主机上的不同服务,是进程通信的端点标识。

    • 端口号

      1. 端口号是一个16位的数字,用于在运输层标识特定的应用进程。
      2. 端口号使得主机上的多个进程能够同时进行网络通信,每个进程通过唯一的端口号与外界通信。
    • 软件端口与硬件端口

      1. 软件端口:指的是逻辑上的端口,由软件用来标识不同的服务或进程,与物理层无关。
      2. 硬件端口:通常指的是物理设备上的接口,如以太网端口、USB端口等,它们是物理层的组成部分。
    • TCP/IP运输层端口的标志

      1. 在TCP/IP协议栈中,端口用一个16位的端口号进行标志,允许有65,535个不同的端口号。
      2. 端口号只具有本地意义,即它们只在本计算机上用于区分不同的应用进程。
    • 三种类别的端口

      1. 熟知端口(Well-known ports):范围从0到1023,这些端口号被分配给常见的服务和应用程序,是全球通用的。

        常用熟知端口

      2. 登记端口(Registered ports):范围从1024到49151,这些端口号用于用户或应用程序注册的特定服务,需要在互联网授权机构(如IANA)进行登记。

      3. 短暂端口(Ephemeral ports):范围从49152到65535,这些端口号用于临时的通信会话,在通信结束后会被系统收回,可以被重新分配给新的通信使用。

用户数据报协议UDP

UDP 只在 IP 的数据报服务之上增加了一些功能:复用和分用,差错检测。

  • 无连接:UDP发送数据之前不需要建立连接。它允许数据的发送方直接发送数据到接收方,无需事先建立稳定的连接状态。

  • 尽最大努力交付:UDP提供尽力而为的服务,但不保证数据的可靠交付。这意味着数据可能在传输过程中丢失或出错,UDP不会尝试重传丢失的数据。

  • 面向报文:UDP一次传送和交付一个完整的报文。发送方的报文在发送时不会被拆分,接收方接收到的也是完整的报文,前提是该报文在传输过程中没有丢失。

    面向报文

  • 没有拥塞控制:UDP不包含拥塞控制机制。即使网络出现拥塞,UDP也不会降低发送速率,这使得UDP适合于实时应用,如多媒体通信,其中网络拥塞不应影响数据的发送频率。

  • 通信模式灵活:UDP支持多种通信模式,包括一对一、一对多、多对一和多对多的交互通信。

  • 首部开销小:UDP的首部只有8个字节,这使得它非常高效,尤其是在传输小数据包时。UDP首部包括源端口、目的端口、长度和检验和等字段。

  • 总结:UDP是一种简单方便的协议,适用于那些对实时性要求高、可以容忍一定数据丢失的应用场景。然而,由于其不提供可靠性保证,需要可靠性的应用则需要在应用层实现额外的机制。

UDP首部格式

  1. 源端口:标识发送方的端口号,可为0或特定服务的熟知端口。
  2. 目的端口:标识接收方的端口号,用于将数据正确分发给目标应用。
  3. 长度:UDP数据报的总长度,包括首部和数据,最小值为8字节。
  4. 检验和:用于检测数据报在传输中的准确性,错误则丢弃。

首部结构紧凑,仅8字节,支持快速处理,适合对实时性要求高的应用。

端口处理

  • 端口交付:接收方的UDP实体根据报文首部中的目的端口号,将收到的UDP报文交付给相应的端口和应用进程。这是通过端口号来识别和分发数据给正确的接收进程。
  • 端口不可达:如果接收方UDP发现报文中的目的端口号没有对应的应用进程,即该端口不存在,它会丢弃该报文。同时,为了通知发送方,接收方会通过ICMP(互联网控制报文协议)发送一个“端口不可达”的差错报文,告知发送方无法完成端口交付。

检验和计算

UDP使用检验和来检测报文在传输过程中是否出现错误。检验和的计算方法如下:

  1. 伪首部:在计算检验和之前,构造一个12字节的伪首部,这个伪首部包括源IP地址、目的IP地址以及UDP长度。伪首部仅用于计算检验和,实际报文中不包含。
  2. 检验和覆盖范围:将伪首部、UDP首部和数据部分连续排列,构成一个完整的数据块。
  3. 计算过程:按照网络字节序(大端序),对这个数据块进行二进制加法求和。如果求和结果超出16位,则对结果进行再次求和,直到结果适合16位。
  4. 结果处理:将计算得到的16位求和结果取反,得到检验和值,填入UDP首部的检验和字段。
  5. 接收方验证:接收方收到UDP报文后,使用相同的方法重新计算检验和,并与报文中的检验和字段比较。如果两者不同,说明报文在传输过程中可能已损坏,接收方将丢弃该报文。

计算过程

传输控制协议TCP

  • 面向连接:在数据传输前需要建立连接,在不可靠的IP网络服务基础之上提供可靠交付的服务。
  • 可靠交付:确保数据正确、按序、完整地传输,每一条TCP连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
  • 全双工通信:可以同时发送和接收数据。
  • 面向字节流:对应用层数据不区分边界,以字节流方式处理。
  • 连接的建立和释放:通过三次握手建立连接,通过四次挥手释放连接。
  • 报文段首部格式:包含源端口、目的端口、序号、确认号、窗口大小等控制信息。

TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系,但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。

面向流

TCP连接

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

  1. TCP连接的抽象性:TCP连接是由TCP协议软件提供的,它在两个通信实体之间创建了一个逻辑上的通信通道。
  2. 端点标识:TCP连接的每个端点都是通过一个套接字来标识的,套接字由IP地址和端口号组成。
  3. 套接字的唯一性:每个套接字都是唯一的,即使它们共享同一个IP地址或端口号。这是因为每个TCP连接都有其独特的一对套接字(即通信双方的IP地址和端口号)。
  4. 多连接支持:一个IP地址可以同时参与多个TCP连接,每个连接通过不同的端口号区分。
  5. 端口号的复用:即使端口号相同,只要IP地址不同,也可以在不同的TCP连接中使用。
  6. 连接的确定性:每一条TCP连接都是由通信两端的两个端点(套接字)唯一确定的。这意味着即使多个连接使用了相同的端口号,它们仍然可以通过不同的IP地址或不同的端口号组合来区分。
  7. 端点(套接字)的结构:套接字通常表示为(IP地址, 端口号),例如(192.168.1.1, 80),其中192.168.1.1是IP地址,80是端口号。

每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。

可靠传输的工作原理

停止等待协议(Stop-and-Wait)

停止等待协议是一种最基本的可靠传输协议,其核心思想是:

  • 一对一传输:发送方在发送一个数据帧后,必须等待接收方确认(ACK)该帧已成功接收,然后再发送下一个数据帧。
  • 超时重传:如果在规定时间内没有收到确认,发送方会重新发送数据帧。
  • 确认机制:接收方接收到数据帧,验证无误后,发送一个确认帧回给发送方。
  • 简单性:此协议实现简单,但信道利用率低,因为发送方在等待确认期间无法发送其他数据。

连续ARQ协议(Continuous ARQ)

连续ARQ协议提高了数据传输的效率,其特点包括:

  • 流水线传输:发送方在发送一个数据帧后,不必等待确认即可发送后续数据帧,实现流水线传输。

  • 发送窗口:发送方维护一个发送窗口,窗口内的数据帧可以连续发送,而不需要等待每个帧的确认。

  • 累积确认:接收方对按序到达的数据帧发送确认,但这个确认只针对最后一个正确接收的数据帧,表示之前的所有帧都已被正确接收。

  • Go-Back-N:当发生丢帧时,接收方发送一个重传请求,发送方需要重传从该帧开始的所有未确认帧。

  • 效率问题:在高错误率的信道上,连续ARQ可能会导致大量帧的重传,从而降低传输效率。

信道利用率计算

信道利用率是指在单位时间内成功传输的数据量与总传输量(包括重传)的比值。

  • 理想情况:如果信道没有错误,所有数据帧都一次性成功传输,信道利用率最高。

  • 停止等待协议:信道利用率受往返时间(RTT)影响很大,因为发送方在每个数据帧发送后都要等待确认。

    信道利用率=数据传输时间/(数据传输时间+确认等待时间)

  • 连续ARQ协议:由于可以连续发送多个帧,信道利用率得到提高。但是,重传会降低信道利用率。

    信道利用率=成功传输的数据量/总传输量(包括重传)

TCP报文段首部格式

  1. 源端口号(Source Port):2字节,标识发送方的端口号。
  2. 目的端口号(Destination Port):2字节,标识接收方的端口号。
  3. 序列号(Sequence Number):4字节,表示本报文段所发送的数据的第一个字节的序号。
  4. 确认号(Acknowledgment Number):4字节,期望接收到的下一个报文段的数据的第一个字节的序号,若确认号 = N,则表明:到序号 N – 1 为止的所有数据都已正确收到。
  5. 数据偏移(Data Offset):4位,指示TCP报文段的数据起始处距离报文段起始处的距离,单位是32位字(4字节),也即首部长度。
  6. 保留(Reserved):6位,保留位,目前必须置为0。
  7. 控制位(Control Flags):
    • URG(Urgent Pointer):紧急指针有效。
    • ACK(Acknowledgment):确认号有效为1,无效为0。
    • PSH(Push Function):1时接收方应尽快将报文段交给应用层。
    • RST(Reset):1时重置由于某种原因出现错误的连接。
    • SYN(Synchronize):发起一个连接。
      • 当 SYN = 1,ACK = 0 时,表明这是一个连接请求报文段。
      • 当 SYN = 1,ACK = 1 时,表明这是一个连接接受报文段。
    • FIN(Finish):1时释放运输连接。
  8. 窗口(Window):2字节,表示接收方的接收窗口大小,用于流量控制,窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化。
  9. 检验和(Checksum):2字节,用于错误检测,覆盖了整个的TCP报文段,包括首部和数据。
  10. 紧急指针(Urgent Pointer):2字节,当URG控制位为1时,指出本报文段中的紧急数据的末尾在报文段中的位置。
  11. 选项(Options):长度可变,最长可达40字节,用于特定功能的扩展,如最大报文段长度MSS、窗口扩大、时间戳等。
  12. 填充(Padding):确保整个TCP首部长度是32位字的整数倍。

TCP可靠传输的实现

  • 三段握手:用于建立连接,包括SYN、SYN-ACK和ACK报文段。
  • 同步位(SYN):用于开始一个新连接。
  • 终止位(FIN):用于释放连接。
  • 最大报文段长度MSS:在三次握手过程中告知对方TCP段的最大长度。

以字节为单位的滑动窗口

  • 滑动窗口机制:TCP使用以字节为单位的滑动窗口来控制数据的发送和接收。
  • 发送窗口:发送方根据接收方的接收能力(接收窗口大小)来确定窗口大小,并在窗口范围内发送数据。
  • 接收窗口:接收方告知发送方其当前的接收能力,即接收窗口的大小。

注意!

  • 第一,发送窗口是根据接收窗口设置的,但在同一时刻,发送窗口并不总是和接收窗口一样大(因为有一定的时间滞后)。
  • 第二,TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
  • 第三,TCP 要求接收方必须有累积确认的功能,以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。但接收方不应过分推迟发送确认,否则会导致发送方不必要的重传,捎带确认实际上并不经常发生。

超时重传时间的选择

  1. 超时重传机制:TCP使用超时重传机制来确保数据包成功传输。如果在发送数据后一定时间内没有收到接收方的确认应答,发送方将重新发送数据。

  2. 往返时间(RTT) :超时重传时间基于对往返时间的估计。RTT是从发送方发送数据到接收方确认返回的总时间。

  3. 加权平均往返时间(SRTT) :为了平滑RTT的波动,TCP维护一个加权平均的往返时间SRTT,使用特定的平滑因子α进行更新。

    • 其中,𝟎≤𝜶<𝟏 。 若 𝛂→𝟎,表示 RTT 值更新较慢。 若 𝛂→𝟏,表示 RTT 值更新较快。 RFC 6298 推荐的𝛂值为 1/8,即 0.125。
  4. 超时重传时间(RTO) :RTO通常设置为SRTT的加权平均加上4倍的RTT偏差(RTTD)。这种设置旨在避免因小的延迟波动而频繁重传。

  5. RTT偏差(RTTD) :RTTD衡量RTT的波动大小,也是通过加权平均的方式进行更新,使用平滑因子β。

  6. RFC 6298建议 :根据RFC 6298,RTO的推荐计算公式为: RTO=SRTT+4×RTTDRTO=SRTT+4×RTTD

  7. Karn算法 :在计算RTT时忽略由于重传而得到的RTT样本,因为这些样本可能不反映正常的网络延迟。

  8. 修正的Karn算法 :在连续重传的情况下,逐步增加RTO的值,以避免因网络条件改善而过早重传。

  9. 快速重传 :当发送方连续收到三个相同的ACK,表明可能有数据包丢失,此时发送方会立即重传而不需要等待RTO。

  10. 快速恢复 :在快速重传后,TCP进入快速恢复状态,通过减少拥塞窗口大小来调整发送速率,而不是立即进入慢开始阶段。

  11. 避免全局同步 :在网络拥塞时,多个TCP连接可能同时减少发送速率,导致全局同步现象,影响网络吞吐量。合理的RTO设置可以减少这种情况的发生。

  12. 持续计时器 :当接收方通知发送方窗口大小为零时,发送方使用持续计时器定期发送探测报文段,以检测接收方窗口是否重新打开。

选择确认SACK

  • SACK机制:选择确认允许接收方告知发送方哪些数据段已经被成功接收,哪些需要重传。

  • SACK选项:在TCP首部的选项字段中,使用SACK选项来报告不连续的、已接收的数据段。

  • 解决乱序问题:当数据段乱序到达时,SACK可以指导发送方只重传丢失的段,而不是所有后续段。

    SACK

TCP流量控制

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

  1. 流量控制目的:确保发送方的发送速率与接收方的接收能力相匹配,防止接收方因数据量过大而无法处理。

  2. 滑动窗口机制:TCP利用滑动窗口来控制发送方的数据流,接收方通过通告窗口大小来指示发送方可以发送的数据量。

  3. 接收窗口通告:接收方根据自身缓冲区的情况,设置接收窗口大小,并通过TCP报文的窗口字段通知发送方。

  4. 发送窗口限制:发送方的发送窗口大小受限于接收方通告的接收窗口大小,不能超过该窗口大小发送数据。

  5. 持续计时器:当接收方窗口大小为零时,发送方启动持续计时器,定期发送探测报文段,探测接收方窗口是否重新打开。

  6. 死锁风险:如果发送方因窗口为零而停止发送,而接收方等待新数据以更新窗口,可能会发生死锁。

  7. 解决死锁:持续计时器到期后,发送方发送探测报文段,即使窗口为零,也尝试获取接收方的最新窗口状态,以打破死锁。

  8. 流量控制举例

    • 初始时,接收方通告窗口大小为400字节。
    • 发送方发送数据,每次根据接收方通告的窗口大小调整发送量。
    • 数据包丢失或ACK延时可能导致发送方超时重传,同时接收方窗口可能变化。

TCP传输效率

  1. 传输效率影响因素

    • TCP的传输效率受多种因素影响,包括网络带宽、延迟、丢包率、拥塞控制算法等。
  2. TCP发送时机控制

    • TCP有三种机制控制发送报文段的时机:
      • a. 当缓存中数据量达到最大报文段长度MSS时自动发送。
      • b. 应用进程请求发送时,即使不足MSS也进行发送。
      • c. 根据设置的计时器,时间到期即使缓存中数据不足MSS也发送。
  3. 糊涂窗口综合症

    • 当接收方每次只读取少量数据时,会导致发送方频繁发送小数据块,降低传输效率。例如,发送1字节数据需要20字节的TCP报文段首部和20字节的IP数据报首部,有效数据传输效率极低。

  4. 发送方糊涂窗口综合症解决方案

    • 使用Nagle算法,它通过合并小的数据包减少发送次数,提高传输效率。

      Nagle

  5. 接收方糊涂窗口综合症

    • 当接收方应用进程消耗数据太慢,导致接收窗口长时间保持很小,发送方只能发送少量数据。

  6. 接收方糊涂窗口综合症解决方案

    • 接收方等待一段时间,直到接收缓存有足够的空间容纳一个最长的报文段或接收缓存有一半空闲空间,然后发送确认报文并通知发送方当前窗口大小。

TCP拥塞控制

拥塞控制的一般原理

  1. 拥塞定义:当网络资源的需求超过可用部分时,网络性能下降,吞吐量随输入负荷增大而降低的现象。

  2. 拥塞产生原因:可能由节点缓存容量小、链路容量不足、处理机处理速率慢等因素引起。

  3. 拥塞控制难点:拥塞控制设计复杂,因为它是一个动态问题,且拥塞本身可能加剧拥塞。

  4. 开环与闭环控制:开环控制基于预测进行控制,闭环控制基于网络状态反馈进行调节。

  5. 闭环控制措施:包括监测网络状态指标(如缓存丢弃率、队列长度等),并将拥塞信息反馈给源站。

  6. 控制措施的挑战:控制措施需要在及时性和稳定性之间找到平衡,避免引起系统振荡或反应迟缓。

TCP的拥塞控制方法

整体控制流程图

  1. 拥塞窗口(cwnd):TCP通过拥塞窗口控制发送数据量,窗口大小根据网络拥塞程度动态变化。

  2. 发送窗口决定因素:真正的发送窗口值是接收方窗口和拥塞窗口中较小的一个。

  3. 慢开始算法:在连接建立初期,cwnd按指数增长,探测网络负载能力(SMSS,发送方最大报文段,N是原先未被确认的、但现在被刚收到的确认报文段所确认的字节数)

  4. 拥塞避免算法:当cwnd达到一定值后,cwnd按线性增长,减少拥塞风险。

    慢开始和拥塞避免轮番使用

  5. 快重传算法:连续收到三个重复确认时,立即重传丢失的数据段。

  6. 快恢复算法:与快重传结合使用,调整cwnd和ssthresh,避免网络拥塞。

拥塞控制与流量控制的区别

主动队列管理(AQM)

  1. AQM概念:主动队列管理是一种网络拥塞预防机制,通过主动丢弃数据包来避免拥塞。

  2. AQM与TCP的关系:AQM可以改善TCP的拥塞控制性能,减少因拥塞导致的性能下降。

  3. RED(Random Early Detection):一种AQM算法,通过随机丢弃队列中的数据包来预防拥塞。

  4. RED工作原理:设置最小和最大门限值,根据队列长度和这些门限值决定数据包的丢弃概率,概率P按照线性规律变化。

    随即早期检测RED

  5. AQM的挑战:选择合适的丢弃策略和参数,避免过度丢弃或拥塞。

TCP连接管理

TCP的连接建立

  1. 连接建立过程:TCP使用三报文握手协议建立连接。

    三报文握手

    • 客户端发送SYN报文以开始连接。
    • 服务器响应SYN-ACK报文,表示接受连接请求。
    • 客户端发送ACK报文确认连接。
  2. 状态转换

    状态

    • 客户端从CLOSED状态转换到SYN_SENT状态。
    • 服务器从CLOSED状态转换到SYN_RECEIVED状态。
    • 客户端和服务器最终都进入ESTABLISHED状态。
  3. 参数协商:在连接建立过程中,双方可以协商最大窗口大小、选项设置等参数。

  4. 资源分配:为新连接分配必要的资源,如缓存空间和连接表项。

TCP的连接释放

  1. 连接释放过程:TCP使用四报文挥手协议释放连接。

    四报文握手

    • 通信一方发送FIN报文段,请求关闭连接。
    • 对方响应ACK报文段,确认连接释放。
    • 如果另一方也有数据发送完毕,发送FIN报文段。
    • 最终双方确认关闭连接,进入CLOSED状态。
  2. 状态转换

    • 从ESTABLISHED状态开始,根据FIN报文的发送和接收,可能经历FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、LAST_ACK等状态。
  3. 半关闭状态:当一方完成数据发送并进入CLOSE_WAIT状态时,另一方仍可发送数据。

  4. TIME_WAIT状态:主动关闭方在发送完最后一个ACK后,进入TIME_WAIT状态,等待2MSL时间以确保被动关闭方接收到最后的ACK。

  5. 保活计时器:用于检测TCP连接的空闲状态,通过发送探测报文段来维持连接。

TCP有限状态机

我不到啊,PPT没讲

  1. 状态机概念:TCP通过有限状态机(FSM)管理连接的不同状态和状态转换。
  2. 主要状态
    • CLOSED:初始状态,没有连接。
    • LISTEN:服务器等待连接请求的状态。
    • SYN_SENT:客户端发送连接请求后的状态。
    • SYN_RECEIVED:服务器收到连接请求后的状态。
    • ESTABLISHED:连接建立成功,数据传输状态。
    • FIN_WAIT_1:一方请求关闭连接,等待另一方确认。
    • FIN_WAIT_2:确认关闭连接,等待对方FIN报文。
    • CLOSE_WAIT:接收到对方FIN报文,等待本地应用关闭连接。
    • LAST_ACK:本地应用关闭连接,等待对方确认。
    • TIME_WAIT:等待2MSL时间后确保连接完全关闭。
    • CLOSING:双方同时尝试关闭连接的状态。

计算时间部分

RTT测量

  1. RTT定义:往返时间(RTT)是数据从发送方发送到接收方,并从接收方返回确认所需的总时间。
  2. RTT的测量方法
    • 通过在TCP段中包含时间戳,并在接收方收到后立即发送确认,其中包含接收到的时间戳,发送方可以计算RTT。

超时重传时间RTO设置

  1. RTO定义:超时重传时间(RTO)是TCP发送方在发送数据后等待确认的最长时间。

  2. RTO的计算:基于对RTT的测量和估计,RTO应略大于观察到的RTT。

  3. 加权平均往返时间RTTS

    • 公式:
    • 其中α是平滑因子,通常取值接近0.125。
  4. RTT偏差RTTD

    • 公式:
    • 其中β是另一个平滑因子,通常取值接近0.25。
  5. RFC 6298推荐的RTO计算公式

    • 公式:
  6. Karn算法:在计算RTT时忽略由于重传而得到的RTT样本,以避免影响RTO的准确性。

  7. 修正的Karn算法

    • 当连续发生重传时,逐步增加RTO的值,以减少不必要的重传。
  8. 超时重传时间的调整

    • 当确认报文段到达时,如果确认是对原始报文段的确认还是对重传报文段的确认,需要根据报文段序列号和确认号进行判断。
  9. 持续计时器

    • 当接收方窗口为零时,发送方使用持续计时器定期发送探测报文段,以检测接收方窗口是否重新打开。

大部分讲完了,后面的老师说没有重点,所以我就一笔带过了

第六章 应用层

域名系统 DNS

  • 概述: 互联网使用的命名系统,将域名转换为IP地址,提供核心服务。
  • 域名结构: 层次树状结构,如www.qyliu.top
  • 域名服务器: 运行域名服务器程序的专设结点,负责域名到IP地址的解析。
  • 解析过程: 使用UDP通信,通过本地域名服务器进行解析。

文件传送协议

  • FTP: 文件传送协议,提供交互式访问,允许指定文件类型与格式。
  • TFTP: 简单文件传送协议,使用UDP,适用于小规模文件传输。

远程终端协议 TELNET

  • 允许用户通过TCP连接登录到远程主机,实现远程操作。

万维网 WWW

  • 概述: 一个大规模的、联机式信息储藏所,提供分布式服务。
  • URL: 统一资源定位符,用于标识互联网上的资源。
  • HTTP: 超文本传送协议,定义了浏览器与服务器通信的格式和规则。

电子邮件

  • 包括电子邮件的概述、SMTP、POP3、IMAP等协议,以及MIME的使用。

动态主机配置协议 DHCP

  • 自动分配IP地址给网络中的主机,提供即插即用连网机制。

简单网络管理协议 SNMP

  • 网络管理协议,用于监视和控制网络设备。

应用进程跨越网络的通信

  • 介绍应用进程如何通过系统调用和API与网络进行通信。

P2P 应用

  • 概述: P2P技术允许网络中的节点直接进行通信和数据交换。
  • 集中目录服务器: 如Napster,使用集中目录服务器进行文件索引。
  • 全分布式结构: 如Gnutella,不使用集中目录服务器,采用洪泛法查询。
  • 文件分发分析: 比较客户-服务器方式和P2P方式在文件分发效率上的差异。
  • 搜索对象: 讨论了在P2P网络中搜索对象的不同技术,如DHT。

第九章:无线网络和移动网络

无线局域网 WLAN

  • 组成: 便携站、移动站、有固定基础设施的WLAN、无固定基础设施的WLAN。
  • IEEE 802.11: 包括基本服务集BSS、扩展服务集ESS、信道、MAC地址、SSID、漫游等概念。
  • 物理层: 802.11标准,涉及不同频段、数据率、调制方法等。
  • MAC层协议: 解决共享信道上的碰撞问题,使用CSMA/CA协议。
  • MAC帧: 控制帧、数据帧和管理帧,包含帧控制、地址、序号控制等字段。

无线个人区域网 WPAN

  • 定义: 个人工作地方的电子设备通过无线技术自组网络,范围约10米。
  • 标准: IEEE 802.15工作组制定,包括蓝牙、ZigBee等。
  • 蓝牙: 包括低耗能蓝牙BLE、传统蓝牙,数据率和传输距离不同。
  • ZigBee: 低速WPAN,适用于电子设备间无线通信,功耗低,网络容量大。

蜂窝移动通信网

  • 发展简介: 从1G到4G的演进,涉及蜂窝技术、GPRS、EDGE、3G、4G等。
  • GSM系统: 2G蜂窝通信系统,包括基站子系统和网络子系统。
  • 3G UMTS: 第三代蜂窝移动通信系统,使用DS-WCDMA或TD-SCDMA。
  • 4G LTE: 长期演进技术,全IP网络,高数据率,包括E-UTRAN和EPC。

移动IP

  • 基本概念: 允许计算机在移动中保留原始IP地址,对上层应用透明。
  • 使用概念: 包括归属网络、被访网络、永久地址、转交地址、归属代理、外地代理。
  • 通信步骤: 涉及数据报的封装、转发、拆封等过程。
  • 问题: 三角形路由选择问题,可通过直接路由选择和移动用户定位协议解决。

移动网络对高层协议的影响

  • TCP报文段丢失: 影响TCP拥塞控制,可能导致发送速率降低。
  • 处理方法: 本地恢复、让TCP发送方知道无线链路使用情况、拆分TCP连接。

完结

随着键盘上最后一个字符的敲击声渐渐消散,我的计算机网络复习提纲终于画上了圆满的句号。34000多个字,不仅仅是数字的累积,更是我知识积累和思维深度的体现。每一句话,每一个概念,都是我精心挑选和整理的结果,它们承载着我对计算机网络领域的热爱和对知识的渴望。

这10天的旅程,是挑战,也是成长。每当夜深人静,只有电脑屏幕的微光陪伴着我,我仿佛能听到知识在脑海中流转的声音。每一个难题的攻克,每一次思路的清晰,都让我更加坚信:坚持和努力,是通往成功的必经之路。

现在,当我回望这一路走来的足迹,心中充满了感慨。这份提纲,不仅是复习的资料,更是我学习历程的见证。它见证了我的努力,我的坚持,以及我对未来的无限憧憬。在未来的日子里,我将继续带着这份信念,带着这份对知识的热爱,继续前行。我相信,每一次,都是对自我能力的一次提升,都是对未来可能性的一次探索。

感谢这段旅程,感谢这份提纲,感谢我自己。让我带着这份成就,迎接新的挑战,创造更多的辉煌。

休息一下

为什么熬夜后反而变精神了