网络基础

网络基础
晓嘿君计算机网络核心备考笔记:第1章 计算机网络概述
计算机网络与信息时代
- 时代特征
- 21世纪的重要特征是数字化、网络化和信息化。
- 网络已成为信息社会的命脉和发展知识经济的重要基础。
- 互联网的发展
- 定义:以互联网 (Internet/因特网) 为代表的计算机网络是人类自印刷术发明以来在通信方面的最大变革,已发展成为全球性的信息服务基础设施。
- 演进:从最初的教育科研网络逐步发展成为商业网络。
- 计算机网络与传统网络的区别
- 核心不同点:计算机网络的终端设备是功能强大且具有智能的计算机,而传统电话网和有线电视网的终端功能单一。
- 网络应用与服务
- 计算机网络不仅提供数据通信服务,还通过各种应用程序(电子邮件、Web浏览、即时通信、网络游戏等)提供丰富多彩的应用。
- 计算机网络提供的平台功能:
- 浏览信息和发布信息的平台
- 通信和交流的平台
- 休闲和娱乐的平台
- 资源共享的平台
- 电子商务的平台
- 远程协作的平台
- 网上办公的平台
- 计算机网络最核心的功能
- 核心功能:连通性 (Connectivity)。
- 作用:为计算机之间的信息交互提供连通性,使得不同计算机上的应用程序之间可以交换信息。
计算机网络的定义与分类
计算机网络的定义
- 通用定义:利用通信线路和通信设备将地理上分散的、具有独立功能的多个计算机系统连接起来,以功能完善的网络软件及通信协议实现资源共享和信息传递的系统。
- 简化定义:以传输信息为基本目的,用通信线路和通信设备将多个计算机连接起来的计算机系统的集合。
- 基本组成:最简单的计算机网络由两个结点 (node) 和一条链路 (link) 组成。
计算机网络的分类
- 从网络的作用范围进行分类
- 广域网 (WAN, Wide Area Network):作用范围通常为几十到几千公里。
- 城域网 (MAN, Metropolitan Area Network):作用距离约为5到50公里。
- 局域网 (LAN, Local Area Network):局限在较小的范围,如1公里左右。
- 个人区域网 (PAN, Personal Area Network):范围很小,大约在10米以内。
- 从网络的使用者进行分类
- 公用网 (Public Network):由电信公司出资建造,任何按规定交费的用户都可以使用。也称公众网。
- 专用网 (Private Network):由特定部门为满足本单位特殊业务需求而建造的网络,不向外提供服务。例如:军队、铁路、电力系统的专用网。
互联网概述
网络与互连网络
- 网络 (Network)
- 定义:由若干结点 (node) 和连接这些结点的链路 (link) 组成。
- 别称:也称为物理网络。
- 互连网络 (Internetwork)
- 定义:即“网络的网络”,通过连接多个网络而构成的逻辑网络。
- 实现:不仅需要在物理上连接,还必须在计算机上安装相应的软件(协议)以实现信息交换。
- 主机 (Host)
- 定义:连接在网络上的任何计算机都称为主机或端系统 (End System)。
internet 和 Internet 的区别
- internet (互连网络)
- 定义:以小写 “i” 开头,是一个通用名词,泛指由多个计算机网络互连而成的网络。
- Internet (互联网/因特网)
- 定义:以大写 “I” 开头,是一个专用名词,指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络。
- 核心协议:采用 TCP/IP协议族作为通信规则。
- 前身:美国的 ARPANET。
互联网的边缘与核心
- 边缘部分 (Edge Part)
- 组成:由所有连接在互联网上的主机 (端系统) 组成。
- 功能:用户直接使用的部分,用于运行各种网络应用。
- 核心部分 (Core Part)
- 组成:由大量网络和连接这些网络的路由器 (Router) 组成。
- 功能:为边缘部分提供服务,核心是连通性和数据交换。
互联网结构发展的三个阶段
- 第一阶段:从单个网络ARPANET向互连网络发展
- 1969年,美国国防部创建第一个分组交换网 ARPANET。
- 1983年,TCP/IP协议成为 ARPANET 上的标准协议,标志着互联网的诞生。
- 第二阶段:逐步建成了三级结构的互联网
- 结构:分为主干网、地区网和校园网/企业网。
- 第三阶段:逐渐形成了多层次ISP结构的互联网
- 核心概念:出现了互联网服务提供方 (ISP, Internet Service Provider)。
- 工作模式:任何机构和个人向 ISP 交费,即可获取 IP地址 使用权并接入互联网。ISP 之间也存在层级关系(例如:本地ISP、第二层ISP、第一层ISP)。
互联网的标准化工作
- 组织结构
- 互联网协会 (ISOC, Internet Society):一个国际性组织,负责推动互联网的发展和标准化。
- 互联网体系结构委员会 (IAB, Internet Architecture Board):负责管理互联网标准的制定。
- 互联网工程部 (IETF, Internet Engineering Task Force):负责研究和制定互联网标准,是主要的工作机构。
- 互联网研究部 (IRTF, Internet Research Task Force):负责对互联网相关的长期性问题进行研究。
- 互联网体系结构委员会 (IAB, Internet Architecture Board):负责管理互联网标准的制定。
- 互联网协会 (ISOC, Internet Society):一个国际性组织,负责推动互联网的发展和标准化。
RFC 文档
- 定义:RFC (Request For Comments),即“请求评论”,所有的互联网标准都以 RFC 文档的形式在互联网上发表。
- 成为互联网标准的四个阶段:
- 互联网草案 (Internet Draft):非RFC文档。
- 建议标准 (Proposed Standard):成为RFC文档的开始。
- 草案标准 (Draft Standard):(已于2011年10月取消此阶段)。
- 互联网标准 (Internet Standard):最高级别的标准。
电路交换 (Circuit Switching)
- 基本概念
- 定义:在数据传输前,通信双方之间必须先建立一条专用的物理通信路径(电路),该路径在整个通信期间被双方独占。
- 典型应用:传统电话网。
- 工作流程(三个阶段)
- 建立连接:通过拨号等方式,在通信双方之间建立一条端到端的专用电路。
- 通信:双方在已建立的电路上进行数据传输,该电路被持续占用。
- 释放连接:通信结束后,挂机释放电路,资源被归还。
- 核心特点
- 面向连接 (Connection-Oriented)。
- 资源独占:通信线路资源在通信期间被完全独占,即使线路上没有数据传输。
- 缺点
- 线路利用率低:计算机通信具有突发性,大量时间信道是空闲的,造成资源浪费。因此,电路交换不适合计算机通信。
分组交换 (Packet Switching)
- 基本概念
- 定义:一种将用户报文划分成若干个较小的数据块(即分组),然后将这些分组逐个地在网络中通过存储转发方式传输的交换技术。
- 分组 (Packet) 结构:
- 首部 (Header):包含地址、序号等控制信息。
- 数据 (Data):原始报文的一个数据段。
- 核心原理:存储转发 (Store-and-Forward)
- 发送方将长报文分割成多个分组 (Packet)。
- 网络中的交换机(路由器)接收到一个完整的分组后,先将其存储在缓冲区。
- 交换机检查分组的首部,根据其中的目的地址查找转发表,决定下一个要转发的交换机。
- 将该分组发送给下一个交换机,如此重复,直至到达目的主机。
- 主要特点
- 独立路由:每个分组携带地址信息,独立选择路由。
- 链路共享:通信链路是动态共享的,并非被某对通信方独占,提高了线路利用率。
- 可靠性高:如果某个节点或链路故障,分组可以绕道传输。
- 适合突发数据:非常适合具有突发性特点的计算机通信。
- 带来的问题
- 分组排队 (Packet Queuing):当分组到达速率超过输出链路发送速率时,分组需要在交换机的输出队列中排队等待。
- 分组丢失 (Packet Loss):如果分组到达时,队列已满,则该分组将被丢弃。
- 网络拥塞 (Network Congestion):当网络中大量分组的到达速率持续超出网络处理能力时,会导致大范围的排队延迟和分组丢失。
- 失序:由于每个分组独立路由,可能走不同路径,导致到达目的端的顺序与发送顺序不一致。
三种交换方式的对比
| 对比维度 | 电路交换 (Circuit Switching) | 报文交换 (Message Switching) | 分组交换 (Packet Switching) |
|---|---|---|---|
| 数据单位 | 比特流 (Bit Stream) | 报文 (Message) | 分组 (Packet) |
| 核心原理 | 建立专用物理通道,数据直达 | 存储转发(整个报文) | 存储转发(小数据分组) |
| 连接性 | 面向连接 (必须先建立连接) | 无连接 | 无连接 (每个分组独立路由) |
| 信道占用 | 独占 (整个通信期间) | 共享 (动态分配) | 共享 (动态分配) |
| 实时性 | 强,时延固定且小 | 差,存储转发时延大 | 较好,时延不固定,但因分组小而流水线式传输,平均时延通常小于报文交换 |
| 可靠性 | 高 (连接建立后) | 较高 | 高 (可绕过故障节点) |
| 优点 | 传输时延小,实时性好,无失序问题 | 无需建立连接,线路利用率高 | 线路利用率极高,灵活,可靠,适合突发数据 |
| 缺点 | 线路利用率低,建立连接时间长 | 存储转发时延大,对交换节点缓存容量要求高 | 存在排队时延、失序、分组丢失、拥塞等问题,协议开销(首部)较大 |
| 适用场景 | 实时语音、视频通话等对时延和抖动要求高的业务 | 早期的电报通信 | 互联网数据通信(几乎所有现代计算机网络) |
网络性能指标
速率 (Rate)
- 定义:指数据的传输速率,也称数据率 (Data Rate) 或比特率 (Bit Rate)。
- 单位:b/s (比特每秒),kb/s, Mb/s, Gb/s。
- 比特 (bit):二进制数字中的一个1或0,是数据量的基本单位。
带宽 (Bandwidth)
- 通信领域原意:信号的频带宽度,单位是赫兹 (Hz)。
- 计算机网络中的含义:指数字信道的“最高数据率”,单位是 b/s。两者成正比。
吞吐量 (Throughput)
- 定义:表示在单位时间内通过某个网络(或信道、接口)的实际数据量。
- 限制:受网络的带宽或额定速率的限制。
时延 (Delay/Latency)
- 定义:指数据从网络的一端传送到另一端所需要的时间。
- 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
- 各部分时延:
- 发送时延 (Transmission Delay):将分组的所有比特推向链路所需的时间。
- 公式:
发送时延 = 分组长度 (bit) / 发送速率 (b/s)
- 公式:
- 传播时延 (Propagation Delay):电磁波在信道中传播一定距离所需的时间。
- 公式:
传播时延 = 信道长度 (m) / 信号传播速率 (m/s)
- 公式:
- 处理时延 (Processing Delay):交换节点(路由器)进行存储转发等处理所花费的时间。
- 排队时延 (Queuing Delay):分组在输入或输出队列中排队等待处理或转发所经历的时间。
- 发送时延 (Transmission Delay):将分组的所有比特推向链路所需的时间。
- 重要概念区分:提高链路带宽减小的是发送时延,而不是传播时延。
丢包率 (Packet Loss Rate)
- 定义:在一定时间内,传输过程中丢失的分组数量与总分组数量的比率。
- 主要原因:网络拥塞导致路由器缓存溢出。
- 用户感受:通常表现为网络延时变大或“网速”变慢,因为网络软件会进行重传。
利用率 (Utilization)
- 信道利用率:指信道有百分之几的时间是被利用的。
- 网络利用率:全网络的信道利用率的加权平均值。
- 时延与利用率的关系:
- 根据排队论,当信道利用率增大时,该信道引起的时延会急剧增加。
- 公式:
D = D0 / (1 - U)(其中D是当前时延,D0是空闲时延,U是利用率) - 结论:信道利用率并非越高越好,过高的利用率会导致网络性能严重下降。
计算机网络体系结构
网络协议 (Network Protocol)
- 定义:为进行网络中的数据交换而建立的规则、标准或约定。
- 作用:规范数据格式、时序和在收发数据时所采取的动作,确保通信双方能够正确协调工作。
网络协议的三要素
- 语法 (Syntax):数据与控制信息的结构或格式。例如,IP地址字段的长度和位置。
- 语义 (Semantics):各个控制信息的具体含义,规定了需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步 (Synchronization/Timing):事件实现的顺序和时间的详细说明,规定了数据发送的时机和速率。
协议的分层模型
- 目的:将庞大而复杂的网络问题,转化为若干个较小的、易于处理的局部问题。
- 好处:
- 各层独立:某一层实现技术的改变不影响其他层。
- 灵活性好:易于更新和扩展。
- 结构上可分割:便于分工和模块化设计。
- 易于实现和维护。
- 有利于功能复用。
- 能促进标准化工作。
计算机网络的体系结构
- 体系结构 (Architecture)
- 定义:计算机网络的各层及其协议的集合。是抽象的功能定义。
- 实现 (Implementation)
- 定义:遵循体系结构,用具体的硬件或软件来完成这些功能。是具体的。
- 两种重要的体系结构模型
- OSI参考模型 (OSI/RM):国际标准化组织提出,共七层(应用层、表示层、会话层、运输层、网络层、数据链路层、物理层)。理论完整但复杂不实用。
- TCP/IP参考模型:互联网事实上的国际标准,共四层(应用层、运输层、网际层、网络接口层)。
- 教学用的五层原理体系结构
- 结构:结合了OSI和TCP/IP的优点,在学习中常用。
- 层次:应用层、运输层、网络层、数据链路层、物理层。
各层协议的主要功能
- 应用层:通过应用进程间的交互来完成特定网络应用,定义应用进程间的通信和交互规则。
- 运输层:负责向两台主机中进程之间的通信提供通用的数据传输服务。
- 网络层:负责为分组交换网上的不同主机提供通信服务,核心是路由和转发。
- 数据链路层:将网络层交下来的分组组装成帧,在相邻节点间的链路上实现可靠传输。
- 物理层:在传输媒体上传送比特流。
协议的层次关系与数据封装
- 服务关系:下层为上层提供服务,上层使用下层的服务。
- 协议栈 (Protocol Stack):各层协议的集合。
- 数据封装与解封装过程:
- 发送方(封装):
- 应用层:应用程序数据被加上应用层首部 (H5)。
- 运输层:将上层数据加上运输层首部 (H4),形成报文段/用户数据报。
- 网络层:将上层数据加上网络层首部 (H3),形成分组/IP数据报。
- 数据链路层:将上层数据加上链路层首部 (H2) 和尾部 (T2),形成帧。
- 物理层:将帧转换为比特流在物理媒介上传输。
- 接收方(解封装):过程与封装相反,逐层剥去首部和尾部,最终将数据交给应用进程。
- 发送方(封装):
- 中间设备的工作层次
- 路由器 (Router) 在转发分组时最高只用到网络层。
- 交换机 (Switch) 主要工作在数据链路层。
- 集线器 (Hub) 工作在物理层。
实体、协议和服务
- 实体 (Entity):任何可发送或接收信息的硬件或软件进程,是某一层中的活动元素。
- 协议 (Protocol)
- 定义:控制两个对等实体 (Peer Entity) 进行通信的规则的集合。
- 方向:协议是“水平的”。
- 服务 (Service)
- 定义:由下层向上层通过层间接口提供的功能。
- 方向:服务是“垂直的”。
- 服务访问点 (SAP, Service Access Point):上层使用下层服务的逻辑接口。
- 透明性:下层的协议对上层的服务用户是透明的,上层只能看到服务而看不到实现服务的协议。
新兴网络技术简介
云计算 (Cloud Computing)
- 定义:一种将计算任务分布在由大量计算机构成的资源池上的商业计算模型,通过网络向用户提供按需、可扩展的计算、存储和软件服务。
- “云”的含义:指可以自我维护和管理的虚拟计算资源集合(如大型服务器集群)。
- 云计算服务类型
- 基础设施即服务 (IaaS, Infrastructure as a Service):提供计算、存储、网络等基础资源。
- 平台即服务 (PaaS, Platform as a Service):提供应用程序开发和部署平台。
- 软件即服务 (SaaS, Software as a Service):提供可直接使用的应用程序。
物联网 (Internet of Things, IoT)
- 定义:通过各种信息传感设备(如 RFID、GPS、传感器等),按约定的协议,把任何物体与互联网连接起来,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、管理和控制的一种网络。
- 目标:实现人与物、物与物之间的沟通和对话。
- 三种基本的应用模式
- 对象的智能识别:通过 RFID 或二维码识别特定对象。
- 环境监控和对象跟踪:利用传感器网络实时获取对象状态和行为。
- 对象的智能控制:基于获取的数据进行分析决策,并实施有效控制(如智能交通灯)。
计算机网络核心备考笔记:第2章 物理层
l 物理层的基本概念
物理层的作用
- 核心功能:在连接各种计算机的传输媒体上传输原始的数据比特流(0和1)。
- 关注点:物理层关注的是怎样传输比特流,而不是具体的传输媒体本身。
- 核心目标:屏蔽掉不同硬件设备、传输媒体和通信方式的差异,使得上层(数据链路层)感觉不到这些差异,只需关注数据的逻辑传输。
物理层需要考虑的问题
- 传输媒体的类型:规定信号传输所使用的物理媒介,如铜线、光纤或无线电频段。
- 位的表示:定义如何用物理信号(如电压、光脉冲)来表示二进制的“1”和“0”。这涉及到**编码(Coding)**机制。
- 数据速率 (Data Rate):规定每秒钟能够发送的比特数量,单位是 bit/s 或 bps。
- 位同步 (Bit Synchronization):确保发送方和接收方的时钟保持一致,使接收方能准确地在每个比特的中间时刻进行采样,正确识别“1”和“0”。
- 链路配置 (Link Configuration):
- 点到点配置:两个设备通过一条专用链路连接。
- 多点配置:多个设备共享同一条链路。
- 物理拓扑结构 (Physical Topology):规定设备如何物理连接成网络。
- 常见类型:星型拓扑、总线型拓扑、环型拓扑、网状结构等。
- 传输方式 (Transmission Mode):
- 串行传输 vs. 并行传输。
- 传输方向:单工、半双工、全双工。
- 接口特性:规定传输设备与传输媒体之间接口的详细特性。
与传输媒体的接口特性
- 物理层协议的一个核心任务是精确定义接口的四个特性:
- 01. 机械特性 (Mechanical Characteristics)
- 定义:指明接口所用接线器的物理规格。
- 具体内容:形状、尺寸、引脚(引线)数目、引脚排列方式、固定和锁定装置等。
- 示例:RJ-45接口的8个引脚及其排列。
- 02. 电气特性 (Electrical Characteristics)
- 定义:指明接口电缆的各条线上出现的电压、电流等电气参数的范围。
- 具体内容:电压范围、阻抗匹配、传输速率与距离的限制等。
- 示例:规定某引脚上+5V表示逻辑“1”,-5V表示逻辑“0”。
- 03. 功能特性 (Functional Characteristics)
- 定义:指明某条线上出现的某一电平的电压所代表的意义。
- 具体内容:定义各条信号线的功能(如数据线、控制线、时钟线等)。
- 示例:RJ-45接口中,引脚1(TD+)和引脚2(TD-)用于发送数据。
- 04. 规程特性 (Procedural Characteristics)
- 定义:指明对于不同功能的各种可能事件的出现顺序,即定义了使用接口进行数据传输的协议和时序。
- 具体内容:描述了信号变化的顺序和时间关系,规定了控制和响应的流程。
- 示例:电话通信中“摘机 -> 拨号 -> 振铃 -> 通话 -> 挂机”的事件顺序。
物理层规程
- 用于物理层的协议也常称为物理层规程 (Procedure)。
- 规程是“协议”这个名词出现之前使用的旧称,二者本质上是同义词。
l 数据通信的基础知识
1. 数据通信系统的模型
- 一个完整的数据通信系统包含三个主要部分:
- 源系统 (Source System):数据的发送方。
- 源点 (Source):产生原始信息(如键盘输入)。
- 发送器 (Transmitter):将原始信息转换为适合在传输系统上传输的信号(如调制解调器进行调制)。
- 传输系统 (Transmission System):连接源系统和目的系统的物理通路(如公用电话网)。
- 目的系统 (Destination System):数据的接收方。
- 接收器 (Receiver):将接收到的信号转换回原始信息(如调制解调器进行解调)。
- 终点 (Destination):接收并处理信息(如计算机屏幕显示)。
- 源系统 (Source System):数据的发送方。
- 一个完整的数据通信系统包含三个主要部分:
几个常用术语
- 数据 (Data):运送消息的实体,是信息的载体。
- 信号 (Signal):数据的电气或电磁表现形式。
- 模拟信号 (Analogous Signal):代表消息的参数(如电压、频率)取值是连续的。
- 数字信号 (Digital Signal):代表消息的参数取值是离散的(通常只有两种状态)。
- 码元 (Code):在使用时域波形表示数字信号时,代表不同离散数值的基本波形。一个码元可以携带1位或多位信息。
2. 编码与调制
编码 (Coding):将数字数据转换为数字信号的过程。
调制 (Modulation):将数字数据转换为模拟信号的过程。
(1) 常用编码方式
- 不归零制 (NRZ):用正电平代表“1”,负电平代表“0”(或反之)。缺点是难以同步。
- 归零制 (RZ):用正脉冲代表“1”,负脉冲代表“0”,每个码元传输结束后信号都回归到零电平。
- 曼彻斯特编码 (Manchester Encoding)
- 原理:在每一位的中心处都有一个电平跳变。
- 规则:位周期中心的下跳变(高到低)代表“1”,上跳变(低到高)代表“0”。
- 特点:具有自同步能力,因为每个比特中间都有跳变,接收方可以据此校准时钟。
- 差分曼彻斯特编码 (Differential Manchester Encoding)
- 原理:位开始边界的跳变情况决定了比特值。
- 规则:位开始边界有跳变代表“0”,位开始边界没有跳变代表“1”。每个比特中间仍然有跳变用于同步。
- 特点:具有自同步能力,且比曼彻斯特编码抗干扰性更好。
(2) 基本调制方法
- 通过改变载波信号的参数(振幅、频率、相位)来承载基带数字信号。
- 调幅 (AM) / 幅移键控 (ASK):载波的振幅随基带数字信号变化。
- 调频 (FM) / 频移键控 (FSK):载波的频率随基带数字信号变化。
- 调相 (PM) / 相移键控 (PSK):载波的初始相位随基带数字信号变化。
- 调制解调器 (Modem):实现调制 (Modulation) 和 解调 (Demodulation) 功能的设备。
基带传输与频带传输
- 基带信号:原始的数字信号(如矩形脉冲),频率从直流开始。
- 基带传输:在数字信道上直接传输基带信号。
- 频带信号 (带通信号):经过载波调制后的信号,频率被搬移到较高频段。
- 频带传输:在模拟信道上通过调制来传输信号。
3. 信道的极限容量
实际信道存在失真和干扰,限制了数据传输速率。主要受两大因素制约:
- 信道带宽 (Bandwidth)
- 信噪比 (Signal-to-Noise Ratio, S/N)
(1) 奈氏准则 (Nyquist Theorem)
- 背景:带宽有限的信道会导致信号高频分量衰减,波形前后沿变缓,产生码间串扰(码元之间界限不清)。
- 准则内容:在理想的无噪声低通信道中,最高码元传输速率为 2W 波特。
C_max_baud = 2 * W- W:信道带宽 (单位: Hz)。
- 波特 (Baud):码元传输速率的单位,即 码元/秒。
- 推论:
- 码元传输速率存在上限,超过上限会出现严重码间串扰。
- 信道带宽越宽,可用的最高码元传输速率越高。
- 要提高信息传输速率 (bit/s),可以在不改变码元速率的前提下,让每个码元携带更多的比特信息(采用多元制)。
- 信息传输速率公式:
信息速率 = 码元速率 * log₂(M),其中M是码元所取的离散值个数(如M=8表示8进制调制)。
(2) 香农公式 (Shannon’s Formula)
- 背景:奈氏准则只考虑了带宽,未考虑噪声。香农公式给出了在有噪声信道中的极限信息传输速率。
- 公式:
C = W * log₂(1 + S/N)- C:信道的极限信息传输速率 (单位: bit/s)。
- W:信道带宽 (单位: Hz)。
- S/N:信噪比,即信号的平均功率 (S) 与信道内高斯噪声功率 (N) 的比值(注意:S/N是无单位的比值,不是分贝dB)。
- 推论:
- 信道带宽或信噪比越大,信息的极限传输速率就越高。
- 只要信息传输速率低于信道的极限速率C,理论上就能找到一种方法来实现无差错的传输。
- 它揭示了,为了提高信息速率,必须同时提高带宽和信噪比。
4. 传输方式
| 对比维度 | 并行传输 | 串行传输 |
|---|---|---|
| 原理 | 一次同时发送n个比特 | 一次只发送1个比特,逐位发送 |
| 线路数 | 需要n条传输线路 | 只需要1条传输线路 |
| 优点 | 速度快 | 成本低,适用于远距离传输 |
| 缺点 | 成本高,线路间易受干扰,不适用于远距离 | 速度相对较慢 |
| 对比维度 | 异步传输 | 同步传输 |
|---|---|---|
| 传输单位 | 字节 (Byte) | 比特流 (Bit Stream) |
| 同步方式 | 每个字节有起始位和停止位用于同步 | 通过外部时钟或自同步编码(如曼彻斯特)保持收发双方时钟同步 |
| 时间间隔 | 字节之间的时间间隔不固定 | 比特之间的时间间隔固定 |
| 效率 | 较低(有额外开销) | 较高(无额外开销) |
| 适用场景 | 低速通信(如键盘、鼠标) | 高速数据传输 |
| 对比维度 | 单工通信 (Simplex) | 半双工通信 (Half-duplex) | 全双工通信 (Full-duplex) |
|---|---|---|---|
| 通信方向 | 只能单向通信 | 双向交替通信 | 双向同时通信 |
| 信道数量 | 1条 | 1条 | 2条(或1条信道通过技术划分) |
| 能否同时 | 只能一方发送,另一方接收 | 不能同时发送和接收 | 可以同时发送和接收 |
| 示例 | 广播、电视 | 对讲机 | 电话 |
l 物理层下面的传输媒体
- 传输媒体 (Transmission Medium):发送器和接收器之间的物理通路。
- 分类对比
| 类别 | 导引型传输媒体 (Guided Media) | 非导引型传输媒体 (Unguided Media) |
|---|---|---|
| 传播方式 | 电磁波被导引沿着固体媒体传播 | 电磁波在自由空间中传播(无线传输) |
| 特点 | 信号稳定,不易受干扰,保密性好 | 无需敷设缆线,便捷,但易受干扰,保密性差 |
| 示例 | 双绞线、同轴电缆、光纤 | 无线电波、微波、红外线、可见光 |
- 1. 导引型传输媒体
- 双绞线 (Twisted Pair)
- 特点:最常用的传输媒体,将两根绝缘铜导线相互绞合以减小电磁干扰。
- 分类:
- 无屏蔽双绞线 (UTP):无金属屏蔽层,价格便宜,是局域网中最常用的线缆。
- 屏蔽双绞线 (STP):有金属屏蔽层,抗干扰能力更强,但价格更贵。
- 标准 (EIA/TIA-568)
- 双绞线 (Twisted Pair)
| 类别 | 带宽 | 典型应用 |
|---|---|---|
| 5类 (Cat 5) | 100 MHz | 100 Mbit/s |
| 超5类 (Cat 5E) | 125 MHz | 1 Gbit/s |
| 6类 (Cat 6) | 250 MHz | 10 Gbit/s (短距离) |
| 超6类 (Cat 6A) | 500 MHz | 10 Gbit/s (100米) |
| 7类 (Cat 7) | 600 MHz | 10 Gbit/s 以上 |
| 8类 (Cat 8) | 2000 MHz | 25/40 Gbit/s (短距离) |
- 同轴电缆 (Coaxial Cable)
- 结构:内导体、绝缘层、外导体屏蔽层、保护外层。
- 特点:比双绞线带宽高、抗干扰性好。
- 应用:目前主要用于有线电视网(CATV)的居民小区部分。
- 光纤 (Optical Fiber)
- 原理:利用全反射原理,让光脉冲在光导纤维中传输。
- 分类:
- 多模光纤 (Multi-mode Fiber):纤芯较粗,光线以多种角度入射和反射,易产生色散,适用于短距离传输。
- 单模光纤 (Single-mode Fiber):纤芯极细,光线沿直线传播,衰耗小,适用于高速、长距离传输。
- 优点:
- 通信容量巨大:频率高,带宽极宽。
- 传输损耗小:中继距离长,远距离传输经济。
- 抗电磁干扰:光信号不受电磁影响。
- 保密性好:无串音干扰,不易被窃听。
- 体积小,重量轻。
- 2. 非导引型传输媒体
- 微波 (Microwave)
- 特点:频率高、容量大,主要沿直线传播。
- 通信方式:
- 地面微波接力通信:因地球曲率和障碍物,需建立中继站“接力”传输,站间需直视。
- 卫星通信:利用人造地球卫星作为中继站,覆盖范围广,通信距离远,但传播时延大。
- 无线局域网使用的 ISM 频段
- ISM (Industrial, Scientific, and Medical):工、科、医频段,无需许可证即可使用。
- 常见频段:900MHz, 2.4GHz, 5.8GHz。
- 其他无线电波
- 短波 (HF):靠电离层反射通信,用于远距离通信。
- 超短波 (VHF):靠空间直射传播,用于近距离无线电通信。
- 红外线与可见光
- 特点:直线传播,不能穿透障碍物,不受电磁干扰,带宽很高。
- 应用:红外遥控器、可见光通信(Li-Fi)等。
- 微波 (Microwave)
l 信道复用技术
复用 (Multiplexing):将多个独立的低速信道合并,通过一条高速的物理线路进行传输的技术。可以共享传输媒体带宽,节省成本。
1. 频分复用 (FDM - Frequency Division Multiplexing)
- 原理:将传输线路的总频带资源,划分成多个互不重叠的子频带,每个用户分配一个固定的子频带。
- 特点:所有用户在同一时间占用不同的频率带宽。
- 类比:多条并行的车道,每辆车占用一条车道。
2. 时分复用 (TDM - Time Division Multiplexing)
- 原理:将传输时间划分为一段段等长的时分复用帧 (TDM帧),每个用户在每个TDM帧中占用一个固定序号的时隙 (Time Slot)。
- 特点:所有用户在不同时间占用相同的频率带宽。
- 问题:当某个用户无数据发送时,其对应的时隙会被浪费,导致信道利用率不高。
- 类比:一个十字路口的红绿灯,不同方向的车辆分时通过。
- 统计时分复用 (STDM - Statistical TDM)
- 原理:动态地按需分配时隙,只有需要发送数据的用户才会被分配时隙。
- 特点:STDM帧中的时隙数小于用户总数,时隙不固定分配给某个用户,因此每个时隙中必须包含用户的地址信息。显著提高了信道利用率。
3. 波分复用 (WDM - Wavelength Division Multiplexing)
- 原理:光的频分复用。在一根光纤中同时传输多个不同波长(即不同频率)的光信号。
- 设备:在发送端使用光复用器(合波器),在接收端使用光分用器(分光器)。
- 特点:极大地提高了光纤的传输容量。
4. 码分复用 (CDM - Code Division Multiplexing) / 码分多址 (CDMA)
- 原理:所有用户在同一时间、使用相同的频带进行通信,但每个用户被分配一个唯一的、相互正交的码片序列 (Chip Sequence) 来区分。
- 工作流程:
- 码片:将每个比特时间再划分为m个短的间隔,每个间隔称为一个码片。
- 编码:
- 发送比特“1”:发送该用户唯一的m bit码片序列。
- 发送比特“0”:发送该码片序列的二进制反码。
- 正交性:为每个用户分配的码片序列向量必须两两正交。
- 任意两个不同用户的码片序列向量 S 和 T,其规格化内积为0 (
S · T = 0)。 - 任何码片序列向量与自身的规格化内积为1 (
S · S = 1)。 - 任何码片序列向量与自身反码的规格化内积为-1。
- 任意两个不同用户的码片序列向量 S 和 T,其规格化内积为0 (
- 接收与解码:
- 接收站收到的是所有发送站信号的叠加。
- 要接收特定S站的信号,接收站用S站的码片序列与收到的叠加信号进行内积运算。
- 根据正交性,所有其他站的信号分量在内积运算后都为0,被“过滤”掉。
- 运算结果为
+1,则判定S站发送的是比特“1”;结果为-1,则判定S站发送的是比特“0”。
- 特点:扩频通信,抗干扰能力强,频谱类似白噪声,保密性好。
l 数字传输系统
PCM (Pulse Code Modulation) 速率体制
- 用途:将模拟电话信号转换为 64 kbit/s 的数字信号。
- 复用:通过 TDM 将多路PCM信号汇集成帧进行传输。
- 两大标准:
- 北美体制 (T1):
1.544 Mbit/s,复用24路话音。 - 欧洲体制 (E1):
2.048 Mbit/s,复用30路话音。
- 北美体制 (T1):
- 问题:速率标准不统一,且采用准同步方式,不利于国际高速互联。
同步光纤网 (SONET) 与 同步数字系列 (SDH)
- 背景:为解决PCM体制的缺点而提出的国际标准。
- SONET (Synchronous Optical Network):美国标准。
- SDH (Synchronous Digital Hierarchy):国际标准,以SONET为基础。
- 核心特点:所有网元时钟都来自一个精确的主时钟,实现了真正的同步传输。
- 速率等级:
| 速率 (Mb/s) | SONET 符号 | SDH 符号 | 常用近似值 |
|---|---|---|---|
| 51.840 | OC-1 / STS-1 | - | - |
| 155.520 | OC-3 / STS-3 | STM-1 | 155 Mb/s |
| 622.080 | OC-12 / STS-12 | STM-4 | 622 Mb/s |
| 2488.320 | OC-48 / STS-48 | STM-16 | 2.5 Gb/s |
| 9953.280 | OC-192 / STS-192 | STM-64 | 10 Gb/s |
- 光网络
- 全光网 (AON):用光网络结点代替电子设备,实现端到端全光传输,避免光电转换瓶颈。
- 光传送网 (OTN):基于 WDM 技术,在光域上实现信号交换和复用,是向AON演进的过渡技术。
- 自动交换光网络 (ASON):在OTN基础上引入智能控制,实现光通路的动态建立和拆除,按需分配网络资源。
l 互联网接入技术 (“最后一公里”)
接入网 (AN - Access Network):连接用户设备到ISP边缘路由器的物理链路及相关设备。
1. 电话网拨号接入
- 方式:通过调制解调器 (Modem) 和电话线拨号连接ISP。
- 特点:非宽带,速率最高56Kbps,不能同时打电话和上网。
2. 数字用户线 (DSL) 接入
- 原理:利用现有电话用户线的高频部分进行数字传输。
- ADSL (Asymmetric DSL):非对称数字用户线,目前最常用的DSL技术。
- 非对称:下行速率(ISP到用户)远大于上行速率(用户到ISP)。
- 技术:采用 FDM,低频段(0-4kHz)用于传统电话,高频段用于数据传输。
- 设备:用户端安装ATU-R (ADSL Modem),局端设备为DSLAM(数字用户线接入复用器)。
3. 光纤同轴混合网 (HFC) 接入
- 原理:在有线电视网(CATV)基础上改造,实现双向数据传输。
- 结构:主干线路使用光纤,到用户小区后转为同轴电缆。
- 特点:共享介质,小区内所有用户共享同一段同轴电缆的带宽,实际速率受同时上网用户数影响。
- 设备:用户端安装电缆调制解调器 (Cable Modem),头端设备为CMTS(电缆调制解调器端接系统)。
4. 光纤接入 (FTTx)
- 定义:光纤到……,x代表光网络单元(ONU)的位置。
- FTTH (Fiber To The Home):光纤到户,最理想的接入方式。
- FTTB (Fiber To The Building):光纤到大楼。
- FTTC (Fiber To The Curb):光纤到路边。
- 无源光网络 (PON - Passive Optical Network):主流技术,从局端到用户之间只有无源光器件(如光分路器),可靠性高,成本低。
- 下行:局端 OLT 采用广播方式向所有 ONU 发送数据。
- 上行:各 ONU 采用 TDMA (时分多址) 方式共享上行信道。
- 定义:光纤到……,x代表光网络单元(ONU)的位置。
5. 以太网接入
- 应用:主要用于机构、企业、校园内部,也可用于住宅接入。
- 特点:在原有以太网技术上增加控制、隔离、计费等功能。
6. 无线接入
- 无线局域接入:通过无线局域网 (WLAN) 接入,典型技术是 Wi-Fi。
- 无线广域接入:通过蜂窝移动通信系统接入,典型技术是 3G、4G、5G。
计算机网络核心备考笔记:第3章 - 数据链路层
1. 数据链路层的基本概念
1.1 数据链路层所处的地位
- 层次位置:数据链路层位于网络层与物理层之间。
- 数据流动模型:当主机H1向H2发送数据时,数据需要经过多个路由器。
- 在主机和路由器内部,数据包会从上到下(应用层 -> … -> 物理层)进行封装,或从下到上(物理层 -> … -> 应用层/网络层)进行解封装。
- 路由器是网络层设备,它只处理到网络层。数据帧到达路由器后,数据链路层和物理层的封装会被解开,路由器根据IP地址决定下一跳,然后重新封装成新的数据链路层帧,再通过物理层发送出去。
- 逐跳传输:数据链路层的通信是在相邻节点(主机到路由器,路由器到路由器,路由器到主机)之间逐段进行的。
1.2 数据链路层使用的两种信道类型
- 点对点信道 (Point-to-Point Channel)
- 定义:使用一对一的点对点通信方式。
- 特点:通信过程相对简单。
- 广播信道 (Broadcast Channel)
- 定义:使用一对多的广播通信方式。
- 特点:过程比较复杂,连接的主机很多,必须使用专用的共享信道协议来协调数据发送,以避免冲突。
1.3 链路和数据链路的区别
| 对比维度 | 链路 (link) | 数据链路 (data link) |
|---|---|---|
| 定义 | 从一个结点到相邻结点的一段物理线路,中间无任何交换结点。 | 在物理线路的基础上,增加了实现通信协议的硬件和软件。 |
| 本质 | 物理通路。 | 逻辑通路。 |
| 实现 | 物理介质(如电缆、光纤)。 | 通过适配器(即网卡, NIC)实现协议,网卡通常包含了数据链路层和物理层的功能。 |
1.4 数据链路层传送的是帧(Frame)
- 协议数据单元 (PDU):数据链路层的协议数据单元称为帧 (Frame)。
- 封装过程:
- 数据链路层从网络层接收IP数据报。
- 将IP数据报封装在帧的数据部分。
- 添加帧首部 (Header) 和 帧尾部 (Tail),构成一个完整的帧。
- 将帧交付给物理层,转换成比特流进行传输。
- 解封装过程:接收方的数据链路层从物理层接收比特流,重组成帧,然后从中提取出IP数据报并交给网络层。
2. 封装成帧 (Framing)
- 定义:封装成帧就是在一段数据的前后分别添加首部和尾部,构成一个帧。
- 核心作用:
- 帧定界 (Frame Delimiting):首部和尾部的重要作用是让接收方能够准确地从比特流中识别出一个帧的开始和结束。
- 最大传送单元 (MTU - Maximum Transfer Unit)
- 定义:每一种链路层协议都规定了帧的数据部分长度的上限。
- 结构:
帧首部 | IP数据报 (帧的数据部分, ≤ MTU) | 帧尾部
3. 透明传输 (Transparent Transmission)
- 定义:指数据链路层对上层(网络层)交付的传输数据没有任何限制,就好像数据链路层不存在一样。数据部分出现的任何比特组合都不会被错误地解释为帧定界的控制字符。
- 问题:如果数据部分包含了与帧定界符(如Flag)完全相同的比特组合,接收端会错误地判断帧的结束,导致数据接收不完整。
- 解决方案:
- 字节填充法 (Byte Stuffing) / 字符填充法 (Character Stuffing)
- 应用场景:面向字符的物理链路。
- 工作原理:
- 在发送端,在数据中出现的帧定界符 (Flag) 或 转义字符 (ESC) 前面,插入一个转义字符 (ESC)。
- 在接收端,将数据送往网络层之前,删除插入的转义字符 (ESC)。
- 零比特填充法 (Bit Stuffing)
- 应用场景:面向比特的物理链路(如PPP协议)。
- 工作原理:
- 发送端:对数据部分进行扫描,只要发现5个连续的1,就立即在其后填入一个0。
- 接收端:对数据部分进行扫描,每当发现5个连续的1时,就将其后的一个0删除。
- 字节填充法 (Byte Stuffing) / 字符填充法 (Character Stuffing)
4. 差错检测 (Error Detection)
- 需求原因:物理链路并非完全可靠,传输过程中可能会产生比特差错(1变0或0变1)。
- 误码率 (BER - Bit Error Rate):传输错误的比特占所传输比特总数的比率。
- 基本原理:
- 在发送端,根据要发送的数据 D,通过函数
f(D)计算出差错检测码 (EDC - Error Detection Code)。 - 将 EDC 附加在数据 D 后面一起发送。这个 EDC 通常被称为帧检验序列 (FCS - Frame Check Sequence)。
- 在接收端,对收到的数据 D’ 和 EDC’ 进行校验。如果
f(D')与 EDC’ 不匹配,则判定帧有差错并丢弃。 - 注意:差错检测并非100%可靠,但可以使漏检概率降到极低。
- 在发送端,根据要发送的数据 D,通过函数
- 循环冗余检验 (CRC - Cyclic Redundancy Check)
- 特点:检错性能高,易于硬件实现,是数据链路层广泛使用的检错技术。
- 计算流程:
- 收发双方事先商定一个 (r+1) 位的二进制数,称为生成多项式 G。
- 发送端:
- 在原始数据 D (d位) 后面添加 r 个0,得到 d+r 位的数。
- 用这个新数对生成多项式 G 做模2除法。
- 得到的 r 位余数 R 就是CRC校验码 (即 FCS)。
- 将 R 附加在原始数据 D 后面发送出去。
- 接收端:
- 将接收到的数据(包含校验码)用同一个生成多项式 G 做模2除法。
- 如果余数为0,则判定帧没有差错,接受。
- 如果余数不为0,则判定帧有差错,丢弃。
- 纠错机制:
- CRC只能检错,不能纠错。
- 纠错通常由上层协议负责,或数据链路层采用确认重传机制。
5. 可靠传输协议
5.1 停止等待协议 (Stop-and-Wait Protocol)
- 核心思想:发送方每发送一帧后,就停止发送,等待接收方的确认(ACK),收到确认后再发送下一帧。
- 解决的问题与机制:
- 比特差错:通过CRC等差错检测码发现错误帧,接收方直接丢弃,发送方因收不到确认而超时重传。
- 确认丢失 (Lost ACK):发送方等待ACK超时后,会重传同一数据帧。接收方需要能识别这是重复帧。
- 解决方案:为数据帧增加序号(如0和1交替),接收方根据序号判断是否为重复帧。这种协议也称为比特交替协议 (Alternating Bit Protocol)。
- 确认迟到 (Delayed ACK):迟到的ACK可能被发送方误认为是对新帧的确认。
- 解决方案:为确认帧也增加序号(如ACK0, ACK1),发送方根据ACK的序号判断其有效性。
- 自动重传请求 (ARQ - Automatic Repeat reQuest):采用确认和超时重传机制来实现可靠传输的协议统称。
- 信道利用率:当往返时延 RTT 远大于帧发送时延 TD 时,信道利用率极低。
信道利用率 = TD / (TD + RTT + TA)(TA为ACK发送时间,可忽略)
5.2 流水线传输与滑动窗口协议
- 流水线方式:为提高利用率,允许发送方在未收到确认的情况下连续发送多个分组,即连续ARQ协议。
- 滑动窗口协议 (Sliding Window Protocol)
- 发送窗口:发送方维护一个允许连续发送的帧序号范围。只有落在发送窗口内的帧才能被发送。
- 窗口滑动:当收到对窗口内最早帧的确认后,发送窗口向前滑动。
- 作用:在保证可靠传输的前提下,通过连续发送提高信道利用率,同时通过窗口大小控制发送速率。
5.3 回退N帧协议 (Go-Back-N, GBN)
- 发送方:
- 发送窗口大小 > 1。
- 可连续发送窗口内的所有帧。
- 采用超时机制,若某个帧超时,则重传该帧及其之后所有已发送的帧。
- 接收方:
- 接收窗口大小 = 1。
- 只按序接收帧。任何失序到达的帧都会被丢弃。
- 每正确接收一个按序的帧,就发送一个累积确认 (Cumulative Acknowledgment)。ACKn表示序号n及之前的所有帧都已正确接收。
5.4 选择重传协议 (Selective Repeat, SR)
- 目的:克服GBN协议因单个错误导致大量重传的低效问题。
- 发送方:
- 发送窗口大小 > 1。
- 只重传那些超时或收到否定确认 (NAK) 的帧。
- 接收方:
- 接收窗口大小 > 1。
- 可以接收并缓存失序到达但未出错的帧。
- 当所缺的帧到达后,将一批连续的帧交付给上层。
- 采用选择确认,只确认已正确收到的帧。
6. 点对点协议 PPP (Point-to-Point Protocol)
- 定义:目前使用最广泛的点对点数据链路层协议,常用于用户计算机与ISP之间的通信。
- 主要特点:
- 简单:不提供复杂的可靠传输服务(如编号、确认),由上层协议保证。
- 封装成帧:使用
0x7E作为帧定界符。 - 透明性:使用字节填充或比特填充实现透明传输。
- 多种网络层协议:能在同一链路上支持多种网络层协议(如IP, IPX)。
- 多种类型链路:能在多种点对点链路上运行。
- 差错检测:能检测并丢弃有差错的帧。
- 网络层地址协商:提供NCP协议来协商网络层地址(如动态分配IP地址)。
- 组成部分:
- 封装方法:将IP数据报等上层数据封装到串行链路的方法。
- 链路控制协议 (LCP - Link Control Protocol):用于建立、配置和测试数据链路连接。
- 网络控制协议 (NCP - Network Control Protocol):一套协议,用于支持不同的网络层协议。
- PPP帧格式:
F (1B) | A (1B) | C (1B) | 协议 (2B) | 信息 (≤1500B) | FCS (2B) | F (1B)- F (标志):
0x7E,帧定界符。 - A (地址):固定为
0xFF。 - C (控制):固定为
0x03。 - 协议:指明信息字段的数据类型。
0x0021表示IP数据报,0xC021表示LCP数据。 - FCS:2字节的CRC校验。
- F (标志):
- 工作状态:
- 建立物理连接(如拨号)。
- 发送LCP分组,进行链路建立和配置协商。
- 进行鉴别(可选)。
- 发送NCP分组,进行网络层配置(如分配IP地址)。
- 进入打开状态,进行数据通信。
- 通信结束,NCP释放网络层连接,LCP释放数据链路层连接,最后释放物理连接。
7. 使用广播信道的数据链路层
7.1 媒体接入控制 (Medium Access Control, MAC)
- 问题:在广播信道(共享媒体)上,如何协调多个站点的数据发送,以解决冲突 (Collision) 问题。
- 分类:
- 静态划分信道:预先分配好信道资源。
- 频分多址 (FDMA)、时分多址 (TDMA)、码分多址 (CDMA)。
- 缺点:对于突发性业务,信道利用率低。
- 动态接入控制 (随机接入):站点通过竞争随机地在信道上发送数据。
- 核心:如何减少冲突,冲突后如何尽快恢复。
- 应用:共享式以太网和无线局域网。
- 静态划分信道:预先分配好信道资源。
7.2 局域网 (LAN - Local Area Network)
- 特点:网络为一个单位所拥有,地理范围和站点数目有限。
- 数据链路层拆分 (IEEE 802标准):
- 逻辑链路控制 (LLC - Logical Link Control) 子层:与传输媒体无关,为网络层提供服务。
- 媒体接入控制 (MAC - Medium Access Control) 子层:与接入传输媒体有关,负责解决冲突。
- 适配器 (网卡)
- 功能:连接计算机与局域网,实现数据链路层和物理层协议。
- 地址:固化在适配器ROM中的MAC地址。
- MAC地址 (硬件地址)
- 定义:一个48位的全球唯一地址,用于在局域网中唯一标识一个网络接口。
- 格式:通常表示为12个十六进制数,如
90-78-41-50-4E-84。 - 地址类型:
- 单播 (Unicast):一对一。
- 广播 (Broadcast):一对全体 (MAC地址为
FF-FF-FF-FF-FF-FF)。 - 多播 (Multicast):一对多。
8. 共享式以太网与CSMA/CD协议
- 以太网 (Ethernet):当今最主流的局域网技术,最初采用总线型拓扑和共享媒体。
- 工作方式:无连接、不可靠。对差错帧直接丢弃,重传由高层决定。
- CSMA/CD (载波监听多址接入/冲突检测)
- 英文全称:Carrier Sense Multiple Access with Collision Detection。
- 核心思想:先听后发,边发边听,冲突停发,随机重发。
- 工作流程:
- 载波监听 (Carrier Sense):发送前先监听信道。如果信道空闲,则发送数据;如果信道忙,则持续监听直到信道空闲。
- 冲突检测 (Collision Detection):在发送数据的同时,持续检测信道上的信号电压。如果检测到电压摆动异常,说明发生了冲突。
- 冲突处理:一旦检测到冲突,立即停止发送数据,并发送一个简短的干扰信号 (Jamming Signal),以确保所有站点都知道发生了冲突。
- 退避重传 (Backoff and Retransmission):
- 冲突后,等待一段随机时间再重新尝试发送。
- 等待时间由二进制指数退避算法 (Binary Exponential Backoff) 决定。
- 算法:重传退避时间 =
r * 争用期。r是从{0, 1, ..., 2^k - 1}中随机选取的一个整数,k为重传次数(但k不超过10)。
- 重要概念:
- 争用期 (Contention Period):值为
2τ,即总线端到端传播时延的两倍。这是站点能够检测到冲突的最长时间。 - 最短帧长:
64字节。为了确保在帧发送完毕前能够检测到可能发生的最远距离的冲突,帧的发送时间T0必须不小于争用期2τ。 - 信道利用率:参数
a = τ / T0。a越小,信道利用率越高。
- 争用期 (Contention Period):值为
8.1 使用集线器的星形拓扑
- 集线器 (Hub)
- 工作层次:物理层设备。
- 工作原理:将从一个接口收到的信号放大后,向所有其他接口转发。
- 特点:
- 逻辑上仍是总线型结构,所有连接的设备共享带宽。
- 所有设备处于同一个碰撞域 (Collision Domain) 和同一个广播域 (Broadcast Domain)。
- 使用集线器扩展网络会增大碰撞域,可能降低网络性能。
8.2 以太网的MAC帧格式 (Ethernet V2)
目的地址(6B) | 源地址(6B) | 类型(2B) | 数据(46-1500B) | FCS(4B)
- 目的/源地址:48位的MAC地址。
- 类型:指明上层协议的类型,如
0x0800表示 IPv4。 - 数据:长度不足46字节时,需要填充。
- FCS:4字节的CRC校验码。
9. 在数据链路层扩展局域网
9.1 网桥 (Bridge)
- 工作层次:数据链路层。
- 功能:连接不同的局域网段,根据MAC帧的目的地址对帧进行转发和过滤。
- 核心作用:隔离碰撞域。每个接口连接一个独立的碰撞域,但所有接口仍属于同一个广播域。
- 透明网桥 (Transparent Bridge)
- 特点:即插即用,对站点透明。
- 自学习算法:
- 网桥维护一张转发表 (MAC地址表),记录
{MAC地址, 接口, 时间}。 - 学习过程:每当收到一个帧,检查其源MAC地址。
- 如果该地址不在表中,就将其与接收该帧的接口一起记录到表中。
- 如果该地址已在表中,就更新其时间戳。
- 转发/过滤过程:检查帧的目的MAC地址。
- 如果在表中找不到该地址,则向除源接口外的所有接口转发(泛洪)。
- 如果在表中找到该地址:
- 若对应的接口不是源接口,则向该指定接口转发。
- 若对应的接口就是源接口,则丢弃该帧(过滤),因为目的站点在同一网段。
- 网桥维护一张转发表 (MAC地址表),记录
- 生成树协议 (STP - Spanning Tree Protocol)
- 问题:当网桥之间形成环路时,广播帧和未知单播帧会无限循环,导致广播风暴。
- 解决方案:STP协议在逻辑上阻塞某些冗余链路,使得网络拓扑形成一棵无环路的树,从而避免循环。当主链路故障时,可以自动启用被阻塞的备用链路。
| 对比维度 | 集线器 (Hub) | 网桥 (Bridge) / 交换机 (Switch) |
|---|---|---|
| 工作层次 | 物理层 | 数据链路层 |
| 数据单元 | 比特 (Bit) | 帧 (Frame) |
| 转发方式 | 广播 (向所有接口转发) | 存储转发 (根据MAC地址表选择性转发) |
| 碰撞域 | 所有接口在同一个碰撞域 | 每个接口是一个独立的碰撞域 |
| 广播域 | 所有接口在同一个广播域 | 所有接口在同一个广播域 |
| 速率 | 不能连接不同速率的网段 | 可以连接不同速率的网段 |
| 智能性 | 无智能,”傻瓜”设备 | 智能设备,具有自学习能力 |
9.2 以太网交换机 (Ethernet Switch)
- 定义:实质上是一种多接口的网桥,也称为二层交换机。
- 特点:
- 每个接口连接一个设备或一个集线器,形成一个独立的碰撞域。
- 能够同时连通多对接口,实现并发通信。
- 通常工作在全双工 (Full-duplex) 方式,无冲突,不使用CSMA/CD协议。
- 交换式以太网取代了共享式以太网,极大地提高了局域网性能。
- 缺点:所有接口仍处于同一个广播域,无法隔离广播风暴。
10. 虚拟局域网 VLAN (Virtual LAN)
- 定义:一种将局域网内的设备从逻辑上划分成多个不同网段(广播域)的技术,而这些设备在物理上可能连接在同一个交换机上。
- 核心作用:隔离广播域。每个VLAN都是一个独立的广播域。
- 优点:
- 控制广播风暴:将大的广播域分割成多个小的广播域。
- 增强网络安全:不同VLAN间的通信默认被隔离。
- 简化网络管理:网络重构无需改变物理布线,只需修改配置。
- VLAN间通信:不同VLAN间的通信必须经过三层设备(如路由器或三层交换机)。
- VLAN的实现:
- 802.1Q帧格式:在以太网帧的源地址和类型字段之间插入一个4字节的VLAN标记 (Tag)。
- Trunk链路:能够承载多个VLAN流量的链路,通常用于交换机之间的连接。在Trunk链路上,帧都带有VLAN标记。
- Access接口:通常用于连接终端设备,只属于一个VLAN,处理的帧不带标记。
11. 无线局域网 (WLAN - Wireless LAN)
- 标准:IEEE 802.11 系列,通常称为 Wi-Fi。
- 组成:
- 有基础设施的网络:
- 由接入点 (AP - Access Point) 和多个无线站 (Station) 组成。
- 基本服务集 (BSS):一个AP和其覆盖范围内的所有无线站。
- 扩展服务集 (ESS):多个BSS通过有线网络连接起来。
- 无线站之间的通信必须通过AP进行转发。
- 无基础设施的网络 (Ad hoc):
- 没有AP,所有无线站地位平等,直接通信。
- 组成一个临时的自组网络。
- 有基础设施的网络:
11.1 CSMA/CA 协议 (载波监听多址接入/冲突避免)
- 英文全称:Carrier Sense Multiple Access with Collision Avoidance。
- 使用原因:
- 冲突检测困难:无线信道中,接收信号远小于发送信号,硬件上难以实现冲突检测。
- 隐蔽站问题 (Hidden Station Problem):A和C都在B的通信范围内,但A和C互相听不到对方。当A和C同时向B发送数据时,会在B处发生冲突,但A和C无法检测到。
- 核心思想:通过预约信道和随机退避等机制,尽量避免冲突的发生。
- 工作机制:
- 确认机制:802.11规定所有数据帧和管理帧都必须使用停止等待协议进行确认(ACK),以实现可靠传输。
- 冲突避免:
- 预约信道 (RTS/CTS):为解决隐蔽站问题,源站可以先发送一个短的请求发送 (RTS - Request to Send) 帧。目的站收到后,广播一个清除发送 (CTS - Clear to Send) 帧。周围所有听到CTS的站点,在指定时间内都不能发送数据。
- 随机退避:当站点要发送数据时,先监听信道。若信道空闲,则等待一段帧间间隔 (IFS) 时间后发送。若信道忙,则启动一个随机退避计时器,计时器归零后才能发送。
- 802.11 MAC帧格式
- 特点:具有4个地址字段,以适应不同的网络结构(如BSS、ESS、Ad hoc)。地址1到地址4分别用于表示接收者、发送者、源地址、目的地址等不同角色,具体含义由帧控制字段中的
To AP和From AP位决定。
- 特点:具有4个地址字段,以适应不同的网络结构(如BSS、ESS、Ad hoc)。地址1到地址4分别用于表示接收者、发送者、源地址、目的地址等不同角色,具体含义由帧控制字段中的
12. 蜂窝移动通信系统
- 概念:将服务区域划分为多个小区 (Cell),每个小区设置一个基站 (Base Station),实现大范围的无线覆盖。
- 演进:
- 1G:模拟通信,只能提供话音业务。
- 2G:数字通信,提供数字话音和短信服务(如GSM)。
- 3G:支持更高的数据传输速率,引入CDMA技术,支持数据业务。
- 4G (LTE):采用OFDM和MIMO技术,全IP网络结构,提供高速数据服务。
- 5G:三大应用场景:增强型移动宽带(eMBB)、超高可靠超低时延通信(uRLLC)、大规模机器类型通信(mMTC)。
备考建议:
- 重点掌握:CSMA/CD 和 CSMA/CA 的工作原理及区别;网桥/交换机的自学习和转发过程;停止等待、GBN 和 SR 三种可靠传输协议的机制与对比;VLAN 的概念和作用。
- 熟记:数据链路层的主要功能、PDU名称(帧)、PPP和以太网V2的帧格式。
- 理解:透明传输的两种实现方法(字节填充和零比特填充)、CRC检错原理。
计算机网络核心备考笔记:第4章 网络层
网络层概述
1. 分组转发和路由选择
- 核心任务: 网络层的主要任务是将分组从源主机传送到目的主机。
- 两大核心功能:
- 分组转发 (Forwarding):
- 定义: 当一个分组到达路由器的输入链路时,路由器必须将该分组移动到适当的输出链路的过程。
- 依据: 路由器内部的转发表 (Forwarding Table)。
- 原理: 分组首部包含一个转发标识,路由器根据此标识查询转发表,以确定输出接口。
- 所属平面: 数据平面 (Data Plane),直接作用于数据流。
- 路由选择 (Routing):
- 定义: 决定分组从源到目的地所经过的路径(或路由)的过程。
- 实现: 通过运行路由选择协议 (Routing Protocols)来计算和生成路由表 (Routing Table),进而生成转发表。
- 所属平面: 控制平面 (Control Plane),负责进行转发决策的逻辑控制。
- 分组转发 (Forwarding):
2. 网络层提供的两种服务
网络层向运输层提供两种服务模型,但一个具体的网络体系结构(如Internet)通常只选择其中一种。
- 虚电路网络 (Virtual-Circuit Network): 提供面向连接的服务。
- 数据报网络 (Datagram Network): 提供无连接的服务(Internet采用此模型)。
虚电路服务 (Virtual-Circuit Service)
- 核心思想: 在数据传输前,先在源主机和目的主机之间建立一条逻辑上的连接,即虚电路 (VC)。
- 特点:
- 所有分组都沿着同一条虚电路传送。
- 分组首部只需携带一个短的虚电路编号 (VC ID),而不需要完整的目的地址。
- 这是一种逻辑连接,而非物理连接,分组依然采用存储转发方式。
- 与电路交换类似,但非完全相同(电路交换是物理连接)。
数据报服务 (Datagram Service)
- 核心思想: 网络层对每个分组都独立地进行路由选择和转发,分组之间无任何关联。
- 特点:
- 每个分组都必须携带完整的目的主机地址。
- 路由器根据每个分组的目的地址独立选择路径。
- 不同分组可能沿着不同路径传输,可能出现失序到达或丢失。
- 网络尽最大努力交付,不保证可靠性。
虚电路服务与数据报服务的对比
| 对比方面 | 虚电路服务 (Virtual-Circuit Service) | 数据报服务 (Datagram Network Service) |
|---|---|---|
| 基本设计思想 | 可靠通信由网络来保证 | 可靠通信由用户主机来保证 (端到端原则) |
| 连接的建立 | 必须有连接建立、数据传输、连接拆除三个阶段 | 不需要建立连接,直接发送数据 |
| 终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都带有终点的完整地址 |
| 分组的转发 | 属于同一虚电路的分组按同一路由进行转发 | 每个分组独立选择路由进行转发 |
| 当结点出故障时 | 所有通过该故障结点的虚电路均不能工作 | 故障结点可能会丢失分组,路由会自动更新绕开故障点 |
| 分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
| 服务质量保证 | 容易实现,可在连接建立时预留资源 | 较难实现 |
- 虚电路网络详解
- 典型协议: ATM、帧中继、X.25。
- 虚电路的组成:
- 路径: 从源到目的的一条路径。
- 虚电路号 (VC号): 路径上每段链路都有一个VC号,用于标识该虚电路。同一条虚电路在不同链路上可以有不同的VC号。
- 转发表: 路径上每个路由器都为该虚电路维护一个表项。
- 工作流程:
- 虚电路建立: 确定路径,并为路径上的每条链路分配VC号,在路由器中建立转发表项。
- 数据传送: 分组携带VC号沿已建立的虚电路传输。路由器收到分组后,根据”入接口, 入VC号”查询转发表,得到”出接口, 出VC号”,替换VC号后转发。
- 虚电路拆除: 释放连接,删除路由器中的转发表项。
异构网络互连
- 互连的复杂性: 异构网络在寻址方案、最大分组长度、接入机制、路由技术等方面存在巨大差异。
- 网络互连的中间设备:
- 物理层: 转发器 (Repeater) - 扩大网络物理范围。
- 数据链路层: 网桥 (Bridge) - 连接同构或异构的局域网。
- 网络层: 路由器 (Router) - 连接异构网络,是实现网络互连最核心的设备。
- 网络层以上: 网关 (Gateway) - 进行高层协议转换,较复杂,使用较少。
- 路由器的作用:
- 路由器工作在网络层,用于连接多个异构的物理网络。
- 所有主机和路由器在网络层使用统一的IP协议和IP地址,屏蔽了底层物理网络的差异。
- 虚拟互连网络 (IP网):
- 定义: 利用IP协议将客观存在的各种异构物理网络,在逻辑上互连成一个统一的网络。
- 意义: 用户在使用IP网通信时,感觉就像在一个单一的网络上,无需关心底层网络的具体细节。
IP地址及编址方式
- IP地址: 连接在因特网上的主机(或路由器)的全球唯一的32位标识符。
- 点分十进制记法: 为便于阅读,将32位二进制IP地址每8位一组,转换为十进制数,并用点号分隔(如
128.11.3.31)。 - IP地址的编址方法发展历程:
- 分类编址 (Classful Addressing): 最早的编址方法。
- 划分子网 (Subnetting): 对分类编址的改进。
- 无分类编址 (Classless Addressing / CIDR): 目前使用的方法。
1. 分类编址
- 结构:
IP 地址 ::= { <网络号 net-id>, <主机号 host-id>} - 地址类别:
- A类:
0开头,8位网络号,24位主机号。 - B类:
10开头,16位网络号,16位主机号。 - C类:
110开头,24位网络号,8位主机号。 - D类:
1110开头,用于多播 (Multicast)。 - E类:
1111开头,保留备用。
- A类:
2. 划分子网
- 目的: 解决A类和B类地址中主机号过多造成的地址浪费问题。
- 原理: 从主机号部分借用若干位作为子网号 (subnet-id)。
- 三级结构:
IP地址 ::= {<网络号>, <子网号>, <主机号>}
3. 无分类编址 CIDR (Classless Inter-Domain Routing)
- 核心思想:
- 消除了A、B、C类的概念和划分子网的概念。
- 使用任意长度的**网络前缀 (network-prefix)**来标识网络。
- IP地址回到两级结构:
IP地址 ::= {<网络前缀>, <主机号>}。
- 子网掩码 (Subnet Mask):
- 作用: 与IP地址进行按位与 (AND) 运算,以提取出其网络前缀。
- 表示: 32位二进制数,网络前缀对应的位全为1,主机号对应的位全为0。
- CIDR记法 (斜线记法):
- 格式:
IP地址/网络前缀位数,例如200.23.16.3/23表示网络前缀为23位。
- 格式:
- CIDR地址块:
128.14.32.0/20表示一个地址块。- 网络前缀为20位,主机号为
32-20=12位。 - 地址数量: 2^12 = 4096个。
- 最小地址:
128.14.32.0(网络地址)。 - 最大地址:
128.14.47.255(广播地址)。 - 注意: 主机号全0(网络地址)和全1(广播地址)通常不分配给主机。
IP地址与物理地址
- 物理地址 (Hardware Address) / MAC地址: 数据链路层使用的地址,固化在网卡中,用于局域网内部通信。
- 关系:
- 网络层及以上使用 IP地址。
- 数据链路层使用 物理地址 (MAC地址)。
- 一个IP数据报在传输过程中,其源IP地址和目的IP地址始终不变。
- 但IP数据报每经过一个网络(如一个局域网),都需要被封装在MAC帧中,其源MAC地址和目的MAC地址在每一跳都会改变。
地址解析协议 ARP (Address Resolution Protocol)
- 功能: 在同一个局域网内,根据已知的IP地址,解析出对应的物理地址(MAC地址)。
- ARP表 (ARP Cache): 每个主机或路由器都维护一个高速缓存,存储本局域网上IP地址到物理地址的映射。
- 工作流程:
- 检查缓存: 主机A要向主机B发送数据,首先检查自己的ARP表中是否有B的IP地址对应的MAC地址。
- 发送ARP请求: 如果缓存中没有,主机A就在本局域网内广播一个ARP请求分组,内容为:“我的IP是…,MAC是…,谁的IP是…?请告诉我你的MAC地址。”
- 接收与响应: 局域网内所有主机都收到该请求,但只有IP地址匹配的主机B会做出响应。同时,其他主机(包括B)可以将A的IP与MAC映射关系存入自己的ARP表。
- 发送ARP响应: 主机B向主机A单播一个ARP响应分组,内容为:“我的IP是…,我的MAC地址是…”。
- 更新缓存: 主机A收到响应后,将B的IP与MAC映射关系存入自己的ARP表,然后就可以封装MAC帧进行通信了。
- 要点:
- ARP仅用于解决同一局域网内的地址解析问题。
- 若目的主机不在同一局域网,源主机会使用ARP解析出**默认网关(路由器)**的MAC地址,并将数据包发给网关。
IP 数据报的格式
一个IP数据报由首部和数据两部分组成。首部包含一个20字节的固定部分和一个可选的可变部分。
首部固定部分字段详解:
- 版本 (Version): 4位,指IP协议版本,IPv4为4。
- 首部长度 (Header Length): 4位,单位是4字节。最小值为5 (20字节),最大值为15 (60字节)。
- 总长度 (Total Length): 16位,指首部和数据的总长度,单位是字节。最大长度为65535字节。
- 标识 (Identification), 标志 (Flags), 片偏移 (Fragment Offset): 这三个字段用于IP数据报分片。
- 当数据报长度超过链路的最大传送单元 (MTU) 时需要分片。
- 标识: 唯一标识一个数据报,同一数据报的所有分片具有相同的标识。
- 标志 (3位):
- MF (More Fragment):
MF=1表示后面还有分片,MF=0表示这是最后一个分片。 - DF (Don’t Fragment):
DF=1表示禁止分片。
- MF (More Fragment):
- 片偏移: 13位,指出该分片在原始数据报中的相对位置,以8字节为单位。
- 生存时间 (Time To Live, TTL): 8位,数据报在网络中可通过的路由器数的最大值。每经过一个路由器,TTL减1,若减为0,则丢弃该数据报(防止无限循环)。
- 协议 (Protocol): 8位,指出此数据报携带的数据部分使用了何种协议(如TCP=6, UDP=17, ICMP=1),以便目的主机的IP层将数据上交。
- 首部检验和 (Header Checksum): 16位,只检验首部,不检验数据部分。每经过一个路由器都要重新计算。
- 源地址 (Source Address): 32位。
- 目的地址 (Destination Address): 32位。
IP数据报的转发
- 转发算法:
- 提取目的IP: 从收到的IP数据报首部提取目的主机的IP地址 D。
- 判断是否直连: 判断D是否在本路由器直连的某个网络上。如果是,则直接交付给目的主机(通常需要ARP解析MAC地址)。
- 查找路由表: 如果不是直连,则查找路由表。
- 路由器将D与路由表中每条路由的子网掩码进行按位与运算。
- 将结果与该路由的目的网络地址进行比较。
- 如果匹配,则将数据报从该路由指定的**下一跳 (Next Hop)**地址或接口转发出去。
- 默认路由: 如果在路由表中找不到匹配的特定路由,则使用**默认路由 (Default Route)**进行转发。
- 丢弃与报告: 如果没有匹配的路由且没有默认路由,则丢弃该数据报,并向源主机发送一个ICMP“目的网络不可达”差错报文。
互联网控制报文协议 ICMP (Internet Control Message Protocol)
- 功能: 允许主机或路由器报告差错情况和提供有关异常情况的报告。它弥补了IP协议“尽最大努力交付”服务的不足。
- 地位: ICMP是IP层的协议,其报文作为IP数据报的数据部分进行传输。
- 报文类型:
- ICMP差错报告报文:
- 终点不可达: 当路由器或主机不能交付数据报时。
- 源点抑制: 当路由器或主机因拥塞而丢弃数据报时(已废弃)。
- TTL超时: 当TTL减为0时。
- 参数问题: 当首部字段值不正确时。
- 路由重定向: 让主机知道到某个目的网络有更好的第一跳路由器。
- ICMP询问报文:
- 回送请求和回送应答: 用于测试目的主机是否可达(PING命令)。
- 时间戳请求和时间戳应答: 用于时钟同步和测量时间。
- ICMP差错报告报文:
- 应用:
- PING: 使用ICMP回送请求/应答报文,测试主机间的连通性。
- Traceroute (tracert): 利用ICMPTTL超时报文和终点不可达报文,探测分组从源到终点的路径。
路由选择协议概述
| 对比维度 | 静态路由选择策略 (非自适应) | 动态路由选择策略 (自适应) |
|---|---|---|
| 特点 | 简单,开销小 | 复杂,开销大 |
| 适应性 | 不能及时适应网络状态的变化 | 能较好地适应网络状态的变化 |
| 适用场景 | 小型、拓扑稳定的网络 | 大中型、拓扑可能变化的网络 |
- 自治系统 AS (Autonomous System): 在单一技术管理下的一组路由器,使用一种内部路由协议和共同的度量来决定AS内的路由。
- 两大类路由协议:
- 内部网关协议 IGP (Interior Gateway Protocol): 在一个AS内部使用的路由协议。例如:RIP, OSPF。
- 外部网关协议 EGP (External Gateway Protocol): 在不同AS之间传递路由信息的协议。例如:BGP。
路由信息协议 RIP (Routing Information Protocol)
- 类型: IGP,基于**距离向量 (Distance Vector)**算法。
- 核心思想: 每个路由器维护一张路由表,记录自己到AS内所有其他网络的“距离”和下一跳路由器。
- 距离度量: 跳数 (Hop Count)。直连网络距离为1,每经过一个路由器跳数加1。
- 特点:
- 最大跳数为15,16表示不可达,因此只适用于小型网络。
- 仅和相邻路由器交换信息。
- 交换的信息是完整的路由表。
- 按固定时间间隔(如30秒)交换路由信息。
- 距离向量算法:
- 收到邻居X发来的路由更新报文。
- 对报文中每个条目(目的网络N,距离d),将下一跳改为X,距离改为d+1。
- 对于更新后的每个条目,与自己路由表中的现有条目比较:
- 如果原表中没有N,则添加该新路由。
- 如果原表中有N,且下一跳也是X,则用新路由替换旧路由。
- 如果原表中有N,但下一跳不是X,比较距离,如果新路由距离更短,则更新。
- 缺点: 坏消息传得慢 (慢收敛问题),当网络出现故障时,可能出现路由环路和“计数到无穷”问题。
开放最短路径优先 OSPF (Open Shortest Path First)
- 类型: IGP,基于**链路状态 (Link State)**算法。
- 核心思想: 每个路由器都了解整个网络的拓扑结构,然后使用Dijkstra算法计算出到所有其他网络的最短路径。
- 链路状态算法工作流程:
- 每个路由器主动发现其相邻路由器,并测量到邻居的链路代价(如时延、带宽)。
- 将这些信息(我与谁相邻,链路代价是多少)打包成链路状态通告 (LSA)。
- 通过**洪泛法 (Flooding)**向AS内的所有其他路由器广播自己的LSA。
- 每个路由器都收集所有其他路由器发来的LSA,构建一个链路状态数据库 (LSDB),即完整的网络拓扑图。
- 以自己为根节点,使用Dijkstra算法计算出到所有目的网络的最短路径树,生成路由表。
- 特点:
- 收敛速度快,无路由环路问题。
- 支持可变长度子网掩码 (VLSM) 和 CIDR。
- 使用IP数据报直接传输OSPF分组,并提供可靠传输。
- 支持**层次化区域 (Area)**划分,将AS划分为多个区域,LSA的洪泛被限制在区域内,减小了开销,适用于大规模网络。
边界网关协议 BGP (Border Gateway Protocol)
- 类型: EGP,是当前互联网AS之间唯一的路由协议。
- 核心思想: 力求寻找一条能够到达目的网络且符合策略(如不经过某个AS)、AS跳数较少的路径,而非寻找最佳物理路径。
- 协议基础: BGP在两个BGP发言人 (BGP speaker)之间通过TCP连接交换路由信息,保证了可靠性。
- 算法: **路径向量 (Path Vector)**算法。
- BGP在通告可达性信息时,会附带上到达该网络所经过的AS路径序列。
- 例如,AS1向AS2通告:“要到达网络X,可以经过路径(AS1)”。AS2收到后,若要向AS3通告,则会说:“要到达网络X,可以经过路径(AS2, AS1)”。
- 通过检查路径序列,可以非常容易地检测和避免路由环路(如果收到的路径中包含自己的AS号,则丢弃)。
- 会话类型:
- eBGP: 不同AS的BGP发言人之间的会话。
- iBGP: 同一AS内部的BGP发言人之间的会话。
路由器的工作原理
| 对比方面 | 路由器 (Router) | (二层)交换机 (Switch) |
|---|---|---|
| 工作层次 | 网络层 | 数据链路层 |
| 转发依据 | IP地址 (逻辑地址) | MAC地址 (物理地址) |
| 核心功能 | 路由选择和分组转发 | 过滤和转发MAC帧 |
| 连接对象 | 连接不同的IP子网或异构网络 | 连接同一局域网内的设备 |
| 广播域 | 隔离广播域 (每个接口是一个广播域) | 不隔离广播域 (所有端口在一个广播域) |
| 配置 | 需要配置IP地址等,不是即插即用 | 即插即用 |
| 速度 | 传统上处理速度较慢(需要解析IP首部) | 转发速度快(硬件实现) |
- 三层交换机: 是一种特殊的路由器,它在硬件层面实现了IP数据报的高速转发,逻辑上等同于一个路由器+一个二层交换机,通常用于VLAN间路由或局域网核心。
虚拟专用网 VPN (Virtual Private Network)
- 定义: 利用公用的因特网作为本机构各专用网之间的通信载体,在逻辑上构成的专用网络。
- 专用地址: RFC 1918规定了三块仅用于机构内部的私有IP地址段,路由器不转发目的地址为这些地址的数据报。
10.0.0.0-10.255.255.255(10/8)172.16.0.0-172.31.255.255(172.16/12)192.168.0.0-192.168.255.255(192.168/16)
- 实现技术: IP隧道技术 (IP Tunneling)
- 原理: 将一个使用私有地址的IP数据报(内部数据报)作为数据部分,封装到另一个使用全球IP地址的IP数据报(外部数据报)中。
- 过程: 部门A的路由器R1收到一个发往部门B的内部数据报,将其封装成一个新的IP数据报,源地址为R1的公网IP,目的地址为部门B路由器R2的公网IP。数据报在公网上像普通数据报一样传输。R2收到后,解封装,取出内部数据报并转发给最终目的主机。
- 安全性: 为保证数据机密性,通常在封装前对原始IP数据报进行加密处理。
网络地址转换 NAT (Network Address Translation)
- 目的: 极大地缓解IPv4地址耗尽问题。
- 原理: 允许在一个专用网络内部使用私有地址,当内部主机要与外部互联网通信时,在NAT路由器上将其私有IP地址转换为一个或多个全球IP地址。
- 网络地址与端口号转换 NAPT (Network Address and Port Translation):
- 是NAT最常见的实现方式,也常被直接称为NAT。
- 在进行地址转换时,不仅转换IP地址,还转换TCP/UDP的端口号。
- NAT路由器维护一张转换表,记录
(私有IP, 私有端口)到(公有IP, 公有端口)的映射。 - 这样,多个内部主机可以共享同一个全球IP地址,通过不同的端口号来区分。
- 优点: 节省IP地址,易于管理,隐藏内部网络结构,增强安全性。
- 缺点: 破坏了端到端的通信模型,外部主机无法主动发起对内部主机的连接,对某些P2P应用造成困难。
IP 多播 (IP Multicast)
- 定义: 在IP层实现的一对多通信。一个源主机可以向一个多播组发送IP数据报,所有加入该组的主机都能收到。
- 多播地址: 使用D类IP地址范围
224.0.0.0到239.255.255.255。 - 所需协议:
- 互联网组管理协议 IGMP (Internet Group Management Protocol):
- 功能: 让本地局域网上的多播路由器知道,本局域网上是否有主机加入了某个多播组。
- 工作范围: 仅在本地局域网内部。主机通过IGMP向本地路由器报告自己要加入或离开某个多播组。
- 多播路由选择协议:
- 功能: 在多播路由器之间,为每个多播组构建一棵多播转发树,以高效地将多播数据报分发到所有有组成员的网络。
- 互联网组管理协议 IGMP (Internet Group Management Protocol):
移动 IP
- 目标: 允许移动设备在不同网络间漫游时,保持其IP地址不变,从而保证上层应用连接的连续性。
- 关键术语:
- 移动主机: 具有漫游能力的主机。
- 归属网络: 移动主机的“永久居所”网络。
- 归属地址 (永久地址): 移动主机在归属网络中分配的固定IP地址。
- 归属代理: 位于归属网络中,负责截获发往移动主机的分组,并通过隧道转发给移动主机的路由器。
- 外地网络 (被访网络): 移动主机当前漫游所在的网络。
- 外地代理: 位于外地网络中,为移动主机提供服务的路由器。
- 转交地址: 外地代理为移动主机在外地网络中分配的临时IP地址。
- 工作流程 (间接路由):
- 通信主机B向移动主机A的归属地址发送数据报。
- 该数据报被路由到A的归属网络,并被归属代理截获。
- 归属代理将该数据报封装(IP隧道)在一个新的IP数据报中,目的地址为A的转交地址,然后发送出去。
- 数据报被路由到A所在的外地网络,由外地代理接收。
- 外地代理解封装,取出原始数据报,并将其交付给移动主机A。
下一代网际协议 IPv6
主要特点:
- 巨大的地址空间: 地址从32位增加到128位。
- 灵活的首部格式: 采用固定的40字节基本首部和可选的多个扩展首部,提高了路由器处理效率。
- 支持即插即用: 支持无状态地址自动配置,主机可以自动配置IP地址。
- 更好的QoS支持: 增加了流量类型和流标号字段。
- 内置的安全性: 通过扩展首部原生支持IPsec。
IPv6地址表示:
- 冒号十六进制记法: 8组16位的十六进制数,用冒号分隔(如
68E6:8C64:000F:...)。 - 零压缩: 一连串连续的0可以用一对冒号
::代替,但每个地址中只能使用一次。
- 冒号十六进制记法: 8组16位的十六进制数,用冒号分隔(如
IPv6地址类型:
- 单播 (Unicast): 标识一个唯一的接口。
- 多播 (Multicast): 标识一组接口。
- 任播 (Anycast): 标识一组接口,但数据报只会被发送给其中“最近”的一个。
ICMPv6:
- 是IPv6的配套协议。
- 整合了IPv4中ARP和IGMP的功能。
- 邻居发现 (Neighbor Discovery): 使用邻居请求/通告报文(多播)来完成地址解析,取代了ARP的广播。
- 无状态地址自动配置 (SLAAC): 主机通过路由器请求/通告报文获取网络前缀,并结合自己的接口标识符(通常由MAC地址生成)自动生成全球单播地址。
从IPv4向IPv6过渡的技术:
- 双协议栈 (Dual Stack): 主机或路由器同时运行IPv4和IPv6两个协议栈,可以处理两种协议的分组。
- 隧道技术 (Tunneling): 将IPv6分组作为数据,封装在IPv4数据报中,以便在IPv4网络中传输。
软件定义网络 SDN (Software Defined Network)
- 核心思想: 控制平面与数据平面的分离。
- 数据平面: 由简单的分组交换机组成,负责根据**流表 (Flow Table)**进行“匹配+动作”的通用转发。
- 控制平面: 逻辑上集中在一个**SDN控制器 (网络操作系统)**上,控制器拥有全局网络视野,通过编程方式计算和下发转发表项给交换机。
- SDN体系结构:
- 网络控制应用程序: 实现路由选择、负载均衡、访问控制等具体网络功能的上层应用。
- SDN控制器: 系统的核心,通过**北向接口 (Northbound Interface)为上层应用提供网络抽象和编程接口,通过南向接口 (Southbound Interface)**控制底层交换机。
- SDN交换机: 数据平面的执行者。
- 南向接口协议: OpenFlow是目前最主流的南向接口协议,定义了控制器与交换机之间的通信方式以及流表的格式。
- 三大特征:
- 控制与转发分离: 硬件(数据平面)和软件(控制平面)解耦。
- 网络开放可编程: 通过开放的北向接口,用户可以像开发软件一样开发网络功能。
- 逻辑上的集中控制: 控制器拥有全局视图,可以进行全局优化和快速故障响应。
计算机网络核心备考笔记:第5章 运输层
运输层协议概述
运输层协议的位置
- 层次定位:从通信和信息处理角度看,运输层是 面向通信部分的最高层,同时也是 用户功能中的最低层。
- 它位于 应用层 之下,网络层 之上。
运输层为相互通信的应用进程提供了逻辑通信
- 核心功能:为不同主机上的 应用进程 之间提供 逻辑通信 (Logical Communication)。
- “逻辑通信”:指运输层之间的通信看似是水平方向直接传送数据,但实际上并无物理连接,而是通过下层(网络层、数据链路层、物理层)服务实现的。
- 通信实体:运输层的通信实体是端系统中的 应用进程。
- 端到端的通信:应用进程之间的通信也称为 端到端通信。
- 重要功能:复用与分用
- 复用 (Multiplexing):在发送方,多个不同的应用进程可使用同一个运输层协议(如TCP或UDP)将数据封装后,通过一个网络层协议(如IP)发送出去。
- 分用 (Demultiplexing):在接收方,运输层能根据首部信息(如端口号)将接收到的数据正确交付给目的主机上相应的应用进程。
客户-服务器通信模式
- 定义:一种网络通信模型,其中一个进程主动发起通信,另一个进程被动等待通信请求。
- 客户 (Client):主动发起通信的应用进程。
- 服务器 (Server):被动等待并接受通信请求的应用进程。
互联网的运输层协议
- 主要协议:互联网的运输层包含两个核心协议:
- 用户数据报协议 UDP (User Datagram Protocol)
- 传输控制协议 TCP (Transmission Control Protocol)
- 运输协议数据单元 (TPDU - Transport Protocol Data Unit):
- TCP 传送的TPDU称为 TCP报文段 (Segment)。
- UDP 传送的TPDU称为 UDP用户数据报 (User Datagram)。
- 主要协议:互联网的运输层包含两个核心协议:
TCP 与 UDP 对比
- 这是一个极其重要的考点,必须熟练掌握。
| 特性 | 用户数据报协议 (UDP) | 传输控制协议 (TCP) |
|---|---|---|
| 连接性 | 无连接 (Connectionless) | 面向连接 (Connection-Oriented) |
| 可靠性 | 不可靠传输,提供“尽最大努力”交付服务 | 可靠传输,确保数据无差错、不丢失、不重复、按序到达 |
| 传输模式 | 支持单播、多播、广播 | 仅支持点对点单播 |
| 拥塞控制 | 不提供 | 提供 |
| 流量控制 | 不提供 | 提供 (通过滑动窗口) |
| 首部开销 | 小 (固定的8字节) | 大 (固定的20字节 + 可选字段) |
| 协议复杂度 | 简单 | 复杂 |
| 适用场景 | 实时应用(IP电话、视频会议)、DNS、SNMP等对实时性要求高、允许少量丢包的应用 | 要求高可靠性的应用(万维网HTTP、电子邮件SMTP、文件传输FTP等) |
运输层的复用与分用
- 实现机制:在TCP/IP体系中,通过 软件端口 (Port) 来实现复用和分用。
- 端口 (Port):是应用层与运输层之间接口的抽象,用于标识主机中的特定应用进程。它使得单个主机能够同时支持多个网络应用。
运输层端口的概念
- 作用:
- 应用层进程通过端口将数据向下交付给运输层。
- 运输层通过端口将接收到的数据向上交付给相应的应用进程。
- 进程与端口:需要通信的进程都必须与一个端口关联。
- 端口号:用于标识与应用进程关联的端口,相当于应用进程的 运输层地址。
- 作用:
端口号
- 通信要素:两台计算机中的进程要通信,必须知道对方的 IP地址 (定位主机) 和 端口号 (定位主机中的进程)。
- 格式:TCP 和 UDP 的端口号都是16位整数(0-65535)。
- 独立性:端口号只具有本地意义,不同计算机的相同端口号无直接关联。TCP和UDP的端口号空间是相互独立的。
- 端口号分类:
- 熟知端口号 (Well-known Ports):
- 范围:0 \x7e 1023
- 分配:由 IANA (互联网赋号管理局) 分配给常用的服务,如HTTP (80), FTP (21), DNS (53)。
- 登记端口号 (Registered Ports):
- 范围:1024 \x7e 49151
- 分配:不被IANA严格控制,但可注册以防重复。
- 动态端口号 (Dynamic/Private Ports):
- 范围:49152 ~ 65535
- 分配:客户端进程临时使用的端口号,通信结束后释放。
- 熟知端口号 (Well-known Ports):
用户数据报协议 UDP (User Datagram Protocol)
UDP 概述
- 定义:UDP 是一个简单的、无连接的运输层协议。
- 功能:它在 IP 协议的数据报服务之上,仅增加了两个最基本的功能:
- 端口功能:实现复用和分用。
- 差错检测功能:通过检验和字段提供有限的差错检测。
UDP 的主要特点
- 无连接 (Connectionless):发送数据前无需建立连接,减少了开销和时延。
- 尽最大努力交付 (Best-Effort Delivery):不保证可靠交付,不进行流量控制和拥塞控制。
- 无拥塞控制:网络拥塞时,源主机的发送速率不会自动降低。这对于速率恒定的实时应用(如视频会议)很重要,但可能加剧网络拥塞。
- 面向报文 (Message-Oriented):
- 应用层交给UDP多大的报文,UDP就原封不动地发送。
- UDP对上层报文既不合并也不拆分。
- 应用层程序必须选择大小合适的报文。
- 支持多种交互通信:支持一对一、一对多、多对一和多对多的通信。
- 首部开销小:首部仅有8个字节,比TCP的20字节小得多。
UDP 的问题
- 拥塞风险:大量使用UDP的高速率应用可能导致网络严重拥塞。
- 可靠性:需要可靠传输的应用必须在应用层自行实现相关机制。
UDP的多路分用模型
- 定位进程:UDP使用 二元组 (目的IP地址, 目的端口号) 来唯一确定一个接收方的应用进程。
- 队列机制:UDP根据报文中的 目的端口号,将到达的报文放入相应的端口队列中,等待应用进程读取。
- 队列溢出:由于UDP没有流量控制,如果报文到达速率持续高于应用进程处理速率,将导致队列溢出和报文丢失。
- 队列特点:同一个目的端口队列中的报文,其源IP和源端口可以不同。
UDP 的首部格式
- 结构:UDP用户数据报由 首部 和 数据 两部分组成。首部固定为 8字节,包含4个字段,每个字段2字节。
- 字段说明:
- 源端口 (Source Port):发送方进程的端口号。可选,不使用时全为0。
- 目的端口 (Destination Port):接收方进程的端口号。
- 长度 (Length):UDP用户数据报的总长度(首部+数据),单位为字节。
- 检验和 (Checksum):用于检测UDP用户数据报在传输中是否出错。可选,不使用时全为0。
- 伪首部 (Pseudo-header):
- 作用:在计算检验和时,临时添加到UDP用户数据报前的12字节信息,仅用于计算,不随数据报向下传送。
- 组成:源IP地址(4字节)、目的IP地址(4字节)、0(1字节)、协议号(1字节,UDP为17)、UDP长度(2字节)。
TCP 概述
TCP 的主要特点
- 定义:传输控制协议 (Transmission Control Protocol, TCP) 是一种面向连接的、可靠的、基于字节流的运输层协议。
- 面向连接 (Connection-Oriented):通信前必须先建立连接,通信结束后释放连接。
- 点对点通信:每一条TCP连接只能有两个端点,是一对一的通信。
- 可靠交付 (Reliable Delivery):通过序号、确认、重传等机制,保证数据传输的可靠性。
- 全双工通信 (Full-Duplex):连接双方的应用进程可以在任何时候既发送数据,也接收数据。
- 面向字节流 (Byte-Stream Oriented):
- TCP将应用层交付的数据看作是一个无结构的、连续的字节序列。
- TCP不保留应用层报文的边界,它会根据网络状况将字节流分割成大小合适的 TCP报文段 进行发送。
TCP 连接与面向字节流的概念
- 发送缓存与接收缓存:TCP连接的两端都设有发送缓存和接收缓存,用于临时存放数据。
- 面向字节流的表现:
- 发送方:应用进程写入的数据块大小与TCP发送的报文段大小没有必然联系。
- 接收方:接收方的应用进程从接收缓存中读取的数据块大小也与发送方写入的数据块大小无关。
- 保证:TCP保证接收方应用进程读取到的字节流与发送方应用进程发出的字节流完全一样、顺序一致。
- 字节流管道:TCP连接就像一条连接两端缓存的“字节流管道”。
TCP 的连接
- 虚连接:TCP连接是逻辑上的连接,而非物理连接。网络核心的路由器对此连接无感知。
- 连接状态:连接的状态信息(如缓存、变量)仅保存在通信的两个端系统中。
- 连接的唯一标识:一条TCP连接由其两端的套接字(Socket)唯一确定。
- TCP 连接 ::= {(IP1: port1), (IP2: port2)}
- 这个 四元组 唯一标识了网络中的一条TCP连接。
UDP与TCP复用的区别
- UDP:发往同一 (目的IP, 目的端口) 的数据报,无论其源自何处,都会进入同一个端口队列。
- TCP:不同的TCP连接(即使目的IP和目的端口相同)有各自独立的接收缓存。通常一个服务器进程会为每个建立的连接创建一个子进程来处理。
TCP 报文段的格式
概述
- 组成:TCP报文段由 首部 和 数据 两部分组成。
- 首部长度:固定首部为 20字节,后面可以跟最多40字节的选项字段。因此TCP首部最小长度为20字节,最大为60字节。
TCP 固定首部字段(20字节)
- 源端口 (Source Port) 和 目的端口 (Destination Port):各占2字节,用于分用。
- 序号 (Sequence Number):占4字节。在一个TCP连接中传送的字节流中,每一个字节都按序编号。此字段的值是本报文段所发送数据的 第一个字节的序号。
- 确认号 (Acknowledgment Number):占4字节。是 期望收到对方下一个报文段的第一个数据字节的序号。它表示在此序号之前的所有数据都已正确接收,是一种 累积确认。
- 数据偏移 (Data Offset):占4位。指出TCP报文段的数据起始处距离报文段起始处的偏移量,实际上就是 首部长度。单位是4字节,所以最大值为
15 * 4 = 60字节。 - 保留 (Reserved):占6位,目前置为0。
- 控制位 (Control Bits):共6个,非常重要。
- URG (Urgent):紧急标志位。URG=1时,表示报文段中有紧急数据,应优先传送。
- ACK (Acknowledgment):确认标志位。ACK=1时,确认号 字段才有效。连接建立后所有传送的报文段都必须把ACK置1。
- PSH (Push):推送标志位。PSH=1时,接收方TCP应尽快将数据交付给应用进程,不再等待缓存填满。
- RST (Reset):复位标志位。RST=1时,表明TCP连接出现严重差错,必须释放连接,然后重新建立。
- SYN (Synchronization):同步标志位。SYN=1时,表示这是一个连接请求或连接接受报文。
- FIN (Final):终止标志位。FIN=1时,表明发送方数据已发送完毕,并要求释放运输连接。
- 窗口 (Window):占2字节。指的是发送本报文段的一方的 接收窗口 大小。用于告知对方自己还能接收多少字节的数据,实现 流量控制。单位为字节。
- 检验和 (Checksum):占2字节。检验范围包括首部、数据和伪首部。
- 紧急指针 (Urgent Pointer):占2字节。仅在URG=1时有效,指出本报文段中紧急数据的字节数。
选项与填充字段
- 选项 (Options):长度可变,最长40字节。常用选项包括:
- 最大报文段长度 MSS (Maximum Segment Size):TCP连接建立时,双方协商的每个报文段所能承载的数据字段的最大长度。
- 填充 (Padding):为了使整个首部长度是4字节的整数倍。
- 选项 (Options):长度可变,最长40字节。常用选项包括:
TCP 的可靠传输
基础:TCP在不可靠的 IP 网络服务基础上,通过多种机制实现了可靠的数据传输服务。
核心机制:差错检测、序号、确认、超时重传、滑动窗口。
1. TCP的序号与确认
- 序号 (seq):标识报文段中数据部分的第一个字节在整个字节流中的位置。
- 确认号 (ack):期望收到的下一个字节的序号,表示对该序号之前所有字节的 累积确认。
- 延迟确认:接收方收到数据后,可以不立即发送确认,而是等待一小段时间,如果此时自己也有数据要发给对方,就可以将确认信息 捎带 (piggyback) 在数据报文段中,节省开销。
2. TCP的滑动窗口
- 目的:提高传输效率,实现 流水线式 的数据传输。
- 单位:TCP滑动窗口的大小单位是 字节。
- 发送窗口:
- 位于发送缓存中,表示在未收到对方确认的情况下,发送方最多可以连续发送的数据量。
- 发送窗口后沿的移动:收到新的确认后,后沿向前移动。
- 发送窗口前沿的移动:由接收方窗口和网络拥塞状况决定。
- 接收窗口:
- 位于接收缓存中,表示当前愿意接收的数据量。
- 接收方只对 按序到达 的数据进行确认。
- 对于未按序到达的数据,通常会暂存于接收缓存中,等待缺失的数据到达后再一起确认并交付上层应用。
- 收到接收窗口之外的数据,直接丢弃。
TCP可靠传输基本要点
- 序号与窗口以 字节 为单位。
- 采用 累积确认 机制。
- 可使用 捎带确认 提高效率。
- 对失序数据先缓存,等待按序后再确认。
- 丢弃窗口外的数据。
TCP的重传机制
1. TCP的超时重传
- 机制:TCP每发送一个报文段,就启动一个 超时计时器。如果在计时器到期前未收到对该报文段的确认,就认为该报文段已丢失或损坏,并进行重传。
- 关键问题:超时重传时间 (RTO) 应该设置多大?
- 太短:可能导致不必要的重传,浪费网络资源。
- 太长:降低传输效率。
- 挑战:互联网中端到端的往返时延 RTT (Round-Trip Time) 变化很大。
2. RTT的测量与估计
- 方法:TCP使用 指数加权移动平均 (EWMA) 算法来估计RTT。
- 加权平均往返时间 (RTTS):
新的 RTTS = (1 - α) * (旧的 RTTS) + α * (新的 RTT样本)α是平滑因子,推荐值为 0.125。
- RTT偏差的加权平均值 (RTTD):为了考虑RTT的波动。
新的 RTTD = (1 - β) * (旧的 RTTD) + β * |RTTS - 新的 RTT样本|β推荐值为 0.25。
3. 超时重传时间 RTO (Retransmission Time-Out)
- 计算公式:
RTO = RTTS + 4 * RTTD
- 这个公式保证了RTO比平均RTT要大,并且考虑了时延的抖动。
- 计算公式:
4. 重传时的 RTO
- Karn算法:当报文段被重传时,不采用其往返时间样本来更新RTTS和RTTD,因为无法判断收到的确认是针对原始报文段还是重传报文段的(即“确认二义性”)。
- 超时退避:报文段每重传一次,就将 RTO 增大一倍(指数退避)。
TCP 的选择确认 (SACK)
- 问题:传统的累积确认机制无法告知发送方哪些失序的数据块已被接收。这可能导致发送方重传一些接收方已经收到但未确认的数据。
- 选择确认 SACK (Selective ACK):
- 功能:允许接收方在确认报文段中,明确告知发送方哪些 不连续的数据块 已经被正确接收。
- 实现:通过TCP首部中的 SACK选项字段 来实现。
- 工作方式:
- 连接建立时,双方通过选项协商是否支持SACK。
- 当接收方收到失序数据时,它会发送一个SACK选项,该选项包含了已收到的不连续数据块的边界信息(如
(L1, R1; L2, R2))。 - 发送方根据SACK信息,可以精确地只重传那些真正丢失的数据段,避免了不必要的重传。
- 注意:SACK是对累积确认的补充,TCP首部中的 确认号字段 的意义和功能不变。
TCP的缓存与流量控制
TCP的缓存
- 发送缓存:临时存放:1) 应用程序已发送但TCP尚未发送的数据;2) TCP已发送但尚未收到确认的数据。
- 接收缓存:临时存放:1) 按序到达但尚未被应用程序读取的数据;2) 未按序到达的数据。
TCP的流量控制 (Flow Control)
- 目的:防止发送方发送数据过快,导致接收方缓存溢出。
- 机制:利用 滑动窗口 机制实现。
- 接收方 在其发送的TCP报文段首部的 窗口 (Window) 字段中,通告自己当前的 接收窗口 (rwnd) 大小。接收窗口大小等于接收缓存的空余空间。
- 发送方 收到后,会调整自己的 发送窗口,确保其大小不超过对方通告的接收窗口大小。
- 总结:接收方通过通告自己的接收窗口大小来控制发送方的发送速率。
窗口探测报文段 (Window Probe)
- 问题:如果接收方通告窗口为0,发送方会停止发送数据。若之后接收方窗口变大,但它发送的更新窗口的报文段丢失了,双方就会陷入死锁。
- 解决方案:当发送方收到窗口为0的通知后,会启动一个 持续计时器。计时器到期后,发送一个只包含1字节数据的 窗口探测报文段,强制接收方返回一个包含当前窗口大小的确认,从而打破死锁。
TCP 的连接管理
三个阶段:TCP是面向连接的,其生命周期包括 连接建立、数据传送、连接释放 三个阶段。
1. TCP 连接的建立(三次握手)
- 目的:同步双方的初始序号,交换窗口大小等参数,为数据传输分配资源。
- 过程(假设A为客户端,B为服务器端):
- 第一次握手 (客户端 -> 服务器):客户端A发送一个 连接请求报文段。
- SYN = 1,
seq = x(x是客户端随机选择的初始序号) - A进入 SYN-SENT 状态。
- SYN = 1,
- 第二次握手 (服务器 -> 客户端):服务器B收到请求后,如果同意连接,则发送一个 连接接受报文段。
- SYN = 1, ACK = 1,
seq = y(y是服务器随机选择的初始序号),ack = x + 1(对A的序号进行确认) - B进入 SYN-RCVD 状态。
- SYN = 1, ACK = 1,
- 第三次握手 (客户端 -> 服务器):客户端A收到B的确认后,再发送一个 确认报文段。
- ACK = 1,
seq = x + 1,ack = y + 1(对B的序号进行确认) - 此报文段可以携带数据。
- A进入 ESTABLISHED 状态,B收到后也进入 ESTABLISHED 状态,连接建立成功。
- ACK = 1,
- 第一次握手 (客户端 -> 服务器):客户端A发送一个 连接请求报文段。
2. TCP 连接的释放(四次挥手)
- 特点:TCP连接是全双工的,释放过程需要双方各自关闭自己的发送方向。
- 过程(假设A主动释放连接):
- 第一次挥手 (A -> B):A的应用进程完成数据发送,向B发送一个 连接释放报文段。
- FIN = 1,
seq = u - A进入 FIN-WAIT-1 状态。
- FIN = 1,
- 第二次挥手 (B -> A):B收到FIN后,发送一个 确认报文段。
- ACK = 1,
ack = u + 1 - A到B方向的连接关闭,B进入 CLOSE-WAIT 状态。此时B仍然可以向A发送数据(半关闭状态)。
- A收到确认后,进入 FIN-WAIT-2 状态。
- ACK = 1,
- 第三次挥手 (B -> A):B的数据也发送完毕后,向A发送一个 连接释放报文段。
- FIN = 1, ACK = 1,
seq = w,ack = u + 1 - B进入 LAST-ACK 状态。
- FIN = 1, ACK = 1,
- 第四次挥手 (A -> B):A收到B的FIN后,发送一个 确认报文段。
- ACK = 1,
ack = w + 1 - A进入 TIME-WAIT 状态,等待 2MSL (Maximum Segment Lifetime) 时间后,连接才真正关闭。
- B收到A的确认后,立即进入 CLOSED 状态。
- ACK = 1,
- 第一次挥手 (A -> B):A的应用进程完成数据发送,向B发送一个 连接释放报文段。
TCP的拥塞控制
概念
- 拥塞 (Congestion):当网络中注入的数据量超过网络处理能力时,导致网络性能(如吞吐量下降、时延增大)急剧恶化的现象。
- 拥塞控制 (Congestion Control):防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。它是一个全局性的过程。
流量控制 vs 拥塞控制
- 流量控制 是点对点问题,抑制发送方速率以匹配接收方速率。
- 拥塞控制 是全局问题,抑制发送方速率以匹配网络处理能力。
拥塞控制机制
- 拥塞窗口 (cwnd - Congestion Window):发送方维护的一个状态变量,用于动态调整发送速率。
- 发送窗口上限:
发送窗口上限 = Min(rwnd, cwnd),同时受流量控制和拥塞控制的限制。 - 拥塞控制算法(四个核心部分):
慢启动 (Slow Start)
- 目的:连接刚建立时,以较小的速率开始,探测网络可用带宽。
- 算法:初始
cwnd = 1 MSS。每收到一个对新报文段的确认,cwnd就增加 1 MSS。效果是每经过一个RTT,cwnd就 翻倍(指数增长)。 - 结束:当
cwnd达到 慢启动门限 (ssthresh) 时,进入拥塞避免阶段。
拥塞避免 (Congestion Avoidance)
- 目的:在探测到接近网络容量时,减缓
cwnd的增长速度,避免拥塞。 - 算法:当
cwnd >= ssthresh时,每经过一个RTT,cwnd只 增加 1 MSS(线性增长)。
- 目的:在探测到接近网络容量时,减缓
拥塞发生时的处理
- 判断拥塞:TCP通过 分组丢失 事件来判断网络拥塞(超时或收到3个重复ACK)。
- 处理策略 (基于超时):
- 认为网络发生严重拥塞。
ssthresh设置为当前cwnd的一半。cwnd重置为1 MSS。- 重新执行 慢启动。
- 处理策略 (基于3个重复ACK):
- 快速重传 (Fast Retransmit):发送方在收到3个重复ACK后,不等超时计时器到期,立即重传丢失的报文段。
- 快速恢复 (Fast Recovery):
- 认为网络发生轻度拥塞。
ssthresh设置为当前cwnd的一半。cwnd也设置为ssthresh的值 (而不是1)。- 直接进入 拥塞避免 阶段。
TCP拥塞控制基本要点总结
- 通过 拥塞窗口 (cwnd) 控制发送速率。
- 初始执行 慢启动,
cwnd指数增长。 - 达到 慢启动门限 (ssthresh) 后,执行 拥塞避免,
cwnd线性增长。 - 发生 超时,
ssthresh减半,cwnd归1,重新慢启动(严重拥塞)。 - 收到 3个重复ACK,执行 快速重传 和 快速恢复,
ssthresh和cwnd均减半,直接进入拥塞避免(轻度拥塞)。
计算机网络核心备考笔记:第6章 应用层
应用层概述
- 地位:计算机网络体系结构的最上层,是设计和建立网络的最终目的。
- 特点:计算机网络中发展最快的部分,网络应用层出不穷。
- 开发简便性:
- 网络应用程序只运行在端系统中。
- 运输层已为应用提供了端到端的进程间逻辑通信服务。
- 开发者无需关心网络核心的复杂设备(如路由器、交换机)。
1. 网络应用程序体系结构
- 定义:指网络应用程序在各种端系统上的组织方式和它们之间的关系。
- 主要体系结构:
- 客户/服务器 (Client/Server, C/S) 体系结构
- 对等 (Peer-to-Peer, P2P) 体系结构
(1) 客户/服务器 (C/S) 体系结构
- 核心关系:进程之间服务和被服务的关系。
- 客户 (Client):服务的请求方。
- 服务器 (Server):服务的提供方。
- 通信特点:
- 客户之间不直接通信。
- 所有通信都通过服务器进行。
- 服务器特点:
- 具有固定的IP地址和端口号。
- 总是处于运行状态,等待客户的服务请求。
- 通常是高性能计算机,全天开机。
- 应用模式:服务集中型,服务器是服务中心,数量相对客户计算机少得多。
- 别称:
- 运行客户程序的计算机称为客户机。
- 运行服务器程序的计算机称为服务器。
(2) P2P对等体系结构
- 核心关系:没有固定的服务请求者和服务提供者,应用进程是对等的。
- 通信特点:
- 对等方之间直接通信。
- 每个对等方 (Peer) 既是服务的请求者,又是服务的提供者。
- P2P特点:
- 可扩展性 (Scalability) 强:每增加一个对等方,既增加了请求者,也增加了提供者,系统性能不会因规模增大而明显降低。
- 服务分散型:服务不集中在少数服务器,而是分散在大量对等方计算机中。
- 应用实例:BT文件下载软件。
C/S 与 P2P 体系结构对比
| 对比维度 | 客户/服务器 (C/S) 体系结构 | 对等 (P2P) 体系结构 |
|---|---|---|
| 核心思想 | 服务集中管理与提供 | 对等实体间直接通信与共享 |
| 角色划分 | 角色固定:客户机请求服务,服务器提供服务 | 角色对等:每个节点既是客户机也是服务器 |
| 通信模式 | 客户机之间不直接通信,必须通过服务器 | 对等方之间直接通信 |
| 服务器依赖 | 强依赖:服务器是性能瓶颈和单点故障源 | 弱依赖/无依赖:无中心服务器,鲁棒性高 |
| 可扩展性 | 较差,服务器负载随客户数量线性增长 | 极好,系统总能力随节点数量增加而增强 |
| 服务模式 | 服务集中型 | 服务分散型 |
| 典型应用 | Web服务(HTTP),电子邮件(SMTP),文件传输(FTP) | BitTorrent (BT), Skype (早期版本) |
- 混合结构:许多实际网络应用采用 C/S 和 P2P 的混合体系结构。
2. 应用层协议
- 定义:为实现某种网络应用,通信双方(C/S进程或P2P对等方)必须遵循的通信协议。
- 分类:
- 公开协议:由RFC文档定义,如 HTTP, FTP, SMTP。
- 专用协议:非公开的私有协议,如许多P2P应用。
3. 选择运输层协议
| 应用 | 应用层协议 | 运输层协议 | 主要考虑 |
|---|---|---|---|
| 电子邮件 | SMTP | TCP | 可靠性要求高,数据不能出错 |
| 远程终端访问 | TELNET | TCP | 可靠的命令与响应传输 |
| 万维网 | HTTP | TCP | 网页内容必须完整、可靠地传输 |
| 文件传送 | FTP | TCP | 文件完整性至关重要 |
| 域名系统 | DNS | UDP (通常) | 速度要求高,单次查询/响应,可靠性由应用层保证 |
| IP电话 | 专用协议 | 通常用UDP | 实时性要求高,允许少量丢包,低延迟比可靠性更重要 |
| 流式多媒体 | 专用协议 | UDP 或 TCP | UDP用于实时流,TCP用于要求无差错的场景 |
域名系统 DNS (Domain Name System)
- 核心功能:实现主机名(域名)到 IP地址的转换(解析)。
- 存在原因:
- 人:喜欢使用易于记忆的字符串名字(域名)。
- 计算机:使用高效的二进制数(IP地址)。
1. 互联网的域名结构
- 结构:采用层次树状的等级结构命名方法。
- 格式:
... . 三级域名 . 二级域名 . 顶级域名
- 格式:
- 优点:便于分级管理和维护名字的唯一性。
- 顶级域名 (TLD - Top Level Domain)
- (1) 国家顶级域名 (nTLD):如
.cn(中国),.us(美国),.uk(英国)。 - (2) 通用顶级域名 (gTLD):如
.com(公司),.net(网络服务),.org(非营利组织),.edu(教育),.gov(政府)。 - (3) 反向域 (arpa):用于反向域名解析(IP地址到域名)。
- (1) 国家顶级域名 (nTLD):如
2. 域名服务器
- 背景:单一服务器存储所有映射存在负载过大和单点故障问题。
- 解决方案:采用分布式的域名服务器体系。
- 区 (Zone):
- 域名服务器直接管辖的范围不是以“域”为单位,而是以“区”为单位。
- 一个“区”是域名空间中的一部分,可以等于一个域,也可以小于一个域。
- 域名服务器类型:
- (1) 根域名服务器 (Root Name Server)
- 最高层次,是域名解析的核心。
- 不直接解析域名,但存储所有顶级域名服务器的域名和IP地址。
- 全球共有13个公开IP地址的根域名服务器集群。
- (2) 顶级域名服务器 (TLD Server)
- 负责管理该顶级域名下注册的所有二级域名。
- 存储其下属权威域名服务器的地址。
- (3) 权威域名服务器 (Authoritative Name Server)
- 负责一个“区”的管理。
- 直接负责维护该区中所有主机的域名到IP地址的映射关系。
- (4) 本地域名服务器 (Local Name Server)
- 也称默认域名服务器,不属于上述层次结构。
- 当主机发起DNS查询时,请求首先发往本地域名服务器。
- 作为主机的代理,完成后续的域名解析过程。
- 通常由ISP、大学或企业配置。
- (1) 根域名服务器 (Root Name Server)
3. 域名解析的过程
查询方式:
- 递归查询 (Recursive Query):
- 过程:A向B查询,如果B不知道答案,B会代替A向其他服务器查询,直到找到答案再返回给A。
- 特点:被查询的服务器负担较重。
- 典型场景:主机向本地域名服务器的查询。
- 迭代查询 (Iterative Query):
- 过程:A向B查询,如果B不知道答案,B会告诉A下一个应该去问谁(C),然后A再去问C。
- 特点:查询方(DNS客户端)负担较重。
- 典型场景:本地域名服务器向根/顶级/权威域名服务器的查询。
- 递归查询 (Recursive Query):
标准解析流程(主机
m.xyz.com查询y.abc.com的IP地址):- 主机向其本地域名服务器发起递归查询请求。
- 本地域名服务器开始迭代查询,首先向根域名服务器发起请求。
- 根域名服务器响应,告知负责
.com域的顶级域名服务器的IP地址。 - 本地域名服务器向该
.com顶级域名服务器发起请求。 .com顶级域名服务器响应,告知负责abc.com域的权威域名服务器的IP地址。- 本地域名服务器向
abc.com的权威域名服务器发起请求。 abc.com的权威域名服务器查询到y.abc.com的IP地址,并将其响应给本地域名服务器。- 本地域名服务器将查询结果返回给主机,并缓存该映射关系。
DNS协议:
- 模式:C/S 模式。
- 报文:DNS查询报文 和 DNS响应报文。
- 运输层协议:主要使用 UDP,端口号 53。
4. DNS缓存
- 目的:提高查询效率,减轻上级服务器(特别是根服务器)的负荷,减少网络流量。
- 机制:
- 主机和各级域名服务器都可以维护一个DNS缓存。
- 缓存中存放最近查询过的域名及其IP地址。
- 每项缓存内容都设置一个计时器 (TTL - Time To Live),超时后删除,以保证内容准确性。
5. DNS提供的其它服务
- 主机别名 (Host Alias):为一个规范主机名设置多个别名(CNAME记录)。
- 负载分配 (Load Balancing):将同一个主机名映射到一个IP地址集合。当收到解析请求时,DNS服务器轮询或随机返回集合中的一个IP地址,从而将访问流量分配到多个服务器上。
- 反向域名解析:通过反向域 (arpa) 将IP地址转换为域名。
万维网 WWW (World Wide Web)
一、万维网概述
- 定义:一个运行在互联网上的网络应用,是一个由无数文档和资源组成的、通过超链接互相连接的巨大信息系统。简称 Web。
- 核心概念:
- 超文本 (Hypertext):包含指向其他文档超链接 (Hyperlink) 的文本。
- 工作方式:采用 客户/服务器 (C/S) 方式。
- Web浏览器 (Browser):用户计算机上的 Web客户程序。
- Web服务器 (Server):运行服务器程序,驻留Web文档的计算机。
- 万维网解决的四个核心问题:
- 如何标志文档? -> 使用统一资源定位符 (URL)。
- 如何传送文档? -> 使用超文本传送协议 (HTTP)。
- 如何编写文档? -> 使用超文本标记语言 (HTML)。
- 如何查找信息? -> 使用搜索引擎。
二、统一资源定位符 URL (Uniform Resource Locator)
- 作用:唯一地标志一个资源在互联网上的位置,是一种应用层地址。
- 一般形式:
<协议>://<主机>:<端口>/<路径>- <协议>:如
http,ftp等。 - <主机>:资源的域名或IP地址。
- <端口>:服务器监听的端口号。HTTP 默认端口为 80,通常可省略。
- <路径>:资源在服务器上的路径。若省略,则指向默认网页(主页)。
- <协议>:如
三、超文本传送协议 HTTP (HyperText Transfer Protocol)
定义:浏览器向Web服务器请求网页时所使用的应用层协议。
特点:运行在 TCP 之上,实现可靠的文件交换。
工作过程:
- 浏览器(客户端)与Web服务器建立 TCP 连接。
- 浏览器向服务器发送 HTTP 请求报文。
- 服务器收到请求后,向浏览器发送 HTTP 响应报文。
- 释放 TCP 连接。
连接方式对比:
| 连接方式 | 协议版本 | 过程 | 优点 | 缺点 |
|---|---|---|---|---|
| 非持续连接 | HTTP/1.0 | 每个请求/响应都建立一个新的TCP连接,完成后关闭。 | 简单 | 效率低,TCP连接建立开销大 |
| 持续连接 | HTTP/1.1 | 服务器在发送响应后,在一段时间内保持TCP连接,允许在同一连接上传送多个请求/响应。 | 效率高,减少了连接建立开销 | - |
- HTTP 报文格式 (面向文本的,字段为ASCII码串)
- 请求报文 (Request Message):
- 请求行:
方法 URL 协议版本(例如:GET /index.html HTTP/1.1) - 首部行:包含请求的各种属性 (例如:
Host:,User-Agent:) - 空行:表示首部行结束。
- 实体主体:请求的数据(如POST方法提交的表单数据)。
- 请求行:
- 响应报文 (Response Message):
- 状态行:
协议版本 状态码 状态短语(例如:HTTP/1.1 200 OK) - 首部行:包含响应的各种属性 (例如:
Content-Type:,Content-Length:) - 空行:表示首部行结束。
- 数据:响应的实体内容(如HTML文件)。
- 状态行:
- 请求报文 (Request Message):
四、万维网的文档
1. 超文本标记语言 HTML (HyperText Markup Language)
- 定义:制作网页的标准语言,通过标签定义文档结构和内容。
- 文件格式:ASCII码文件,后缀为
.html或.htm。
2. 静态文档 vs 动态文档 vs 活动文档
| 文档类型 | 定义与特点 | 生成位置 | 技术实例 | 交互性 |
|---|---|---|---|---|
| 静态文档 | 内容固定不变,创建完毕后存储在服务器上,每次访问结果相同。 | 服务器端(预先创建) | 纯HTML | 低 |
| 动态文档 | 内容由应用程序在浏览器访问时动态创建,每次访问结果可能不同。 | 服务器端(实时生成) | CGI, PHP, JSP, ASP | 中(需要与服务器交互) |
| 活动文档 | 服务器返回一段程序副本(如脚本)在浏览器端运行,可连续改变页面显示而无需不断请求服务器。 | 客户端(由服务器发来的程序执行) | Java Applet, JavaScript, FLASH | 高(客户端本地交互) |
- 浏览器/服务器 (B/S) 方式:一种特殊的C/S方式,利用动态和活动网页技术,通过通用浏览器为用户提供交互界面。
电子邮件 Email
- 工作原理:将邮件发送到收件人使用的邮件服务器,存放在其邮箱中,收件人可随时上网读取。
1. 电子邮件系统的基本组成
- 核心组件:
- 用户代理 (User Agent, UA):电子邮件客户端软件,用户与邮件系统的接口(如Outlook, Foxmail),负责撰写、收发、阅读邮件。
- 邮件服务器 (Mail Server):电子邮件系统的基础设施,负责收发邮件并维护用户邮箱。
- 核心协议:
- SMTP (Simple Mail Transfer Protocol):简单邮件传送协议,用于发送邮件(从UA到服务器,从服务器到服务器),是“推 (push)”协议。
- POP3 / IMAP:邮件读取协议,用于读取邮件(从服务器到UA),是“拉 (pull)”协议。
- 电子邮件地址格式:
收件人邮箱名@邮箱所在服务器的域名
2. 简单邮件传送协议 SMTP
- 作用:用于发件人UA向发送方邮件服务器,以及邮件服务器之间发送邮件。
- 模式:客户/服务器 方式。
- 传输层:使用 TCP 连接进行可靠传输。
- 交互方式:通过ASCII码的命令和应答信息进行交互。
3. 电子邮件的信息格式 (RFC 5322)
- 结构:由信封 (Envelope) 和内容 (Content) 两部分组成。
- 内容结构:
- 首部 (Header):包含关键字和对应信息。
To::收件人地址。Subject::邮件主题。Cc::抄送地址。From::发件人地址。Date::发信日期。
- 主体 (Body):用户自由撰写的邮件正文。
- 首部 (Header):包含关键字和对应信息。
4. 邮件读取协议 POP3 和 IMAP
| 对比维度 | POP3 (Post Office Protocol v3) | IMAP (Internet Message Access Protocol) |
|---|---|---|
| 核心思想 | 简单,将邮件从服务器下载到本地进行管理。 | 联机协议,在服务器上直接操纵邮箱。 |
| 工作模式 | 下载并删除 或 下载并保留。 | 用户始终在与服务器交互,邮件主体默认不下载。 |
| 状态管理 | 在不同计算机上管理邮件不便。 | 方便在不同设备上管理邮件,状态在服务器同步。 |
| 功能 | 功能有限,只能进行简单的邮件读取操作。 | 功能强大,可创建/删除/重命名邮箱,按条件搜索邮件。 |
| 资源占用 | 对服务器资源占用少。 | 需要与服务器保持较长时间连接,占用服务器资源。 |
| 部分读取 | 不支持,必须下载整个邮件。 | 支持只读取邮件的某一部分(如正文,不下载附件)。 |
#####** 5. 基于万维网的电子邮件**
- 模式:用户通过浏览器访问邮件服务商提供的Web网站来收发邮件(B/S 模式)。
- 协议流程:
- 用户浏览器 <–> 邮件服务器的Web网站:使用 HTTP 协议。
- 邮件服务器 <–> 其他邮件服务器:使用 SMTP 协议。
6. 通用因特网邮件扩充 MIME (Multipurpose Internet Mail Extensions)
- 解决的问题:SMTP 协议的局限性。
- 只能传送 7 位的 ASCII 码,无法传送非英语文字(如中文)。
- 不能传送二进制文件(如可执行文件、图片、音视频)。
- MIME 的作用:
- 是一个辅助协议,并未改动或取代 SMTP。
- 在发送端,将非ASCII数据编码成7位ASCII码格式。
- 在接收端,进行解码还原。
- 通过在邮件首部增加新的字段来定义邮件内容的格式和编码方式。
文件传送协议 FTP (File Transfer Protocol)
- 作用:在互联网上提供交互式的文件传送服务,屏蔽各计算机系统的细节差异。
- 工作原理:
- 采用 C/S 模式,基于 TCP 可靠传输。
- 核心特点:使用两个并行的TCP连接。
- 控制连接:
- 在整个会话期间保持打开。
- 用于传送 FTP 命令和应答(如用户登录、目录切换、文件操作指令)。
- 服务器端口号为 21。
- 数据连接:
- 每当需要传输一个文件或目录列表时,就临时创建一个数据连接。
- 传输完成后,该数据连接立即关闭。
- 是非持续的。
- 控制连接:
- 状态维护:FTP 服务器是有状态的 (stateful),必须在整个会-话期间(控制连接期间)保留用户的状态信息(如当前目录、登录状态)。
远程终端 Telnet
- 作用:一个简单的远程终端协议,允许用户通过网络远程登录到另一台主机上,并在其上执行命令。
- 工作原理:
- 采用 C/S 模式。
- 将用户的击键传到远程主机,并将主机的输出返回到用户屏幕,实现透明操作。
- 网络虚拟终端 NVT (Network Virtual Terminal):
- 为解决不同操作系统和终端类型的不兼容问题,TELNET 定义了一个统一的 NVT 格式。
- 客户端将本地终端的输入转换为 NVT 格式发送给服务器。
- 服务器将输出转换为 NVT 格式发送给客户端,客户端再转换为本地终端格式显示。
- 现状:由于安全性问题(明文传输),现在多被 SSH (Secure Shell) 取代,但仍用于网络设备(路由器、交换机)的调试和管理。
动态主机配置协议 DHCP (Dynamic Host Configuration Protocol)
- 作用:允许一台计算机加入新网络时,自动获取网络配置信息,无需手动配置。
- 可自动配置的项目:
- IP 地址
- 子网掩码
- 默认路由器(默认网关)的 IP 地址
- 本地域名服务器的 IP 地址
- 工作过程 (DHCP Discover-Offer-Request-Ack, DORA):
- 发现 (Discover):DHCP客户机(刚接入网络的主机)以广播方式发送 DHCP 发现报文,寻找网络中的DHCP服务器。
- 提供 (Offer):所有收到发现报文的DHCP服务器,各自从地址池中选择一个可用的IP地址,并通过单播或广播方式向客户机发送 DHCP 提供报文(包含IP地址、租用期等信息)。
- 请求 (Request):客户机从收到的一个或多个提供报文中选择一个(通常是第一个收到的),然后以广播方式发送 DHCP 请求报文,该报文包含了它所选择的服务器IP地址和希望获得的IP地址。
- 确认 (Ack):被选择的DHCP服务器发送 DHCP 确认报文,正式将该IP地址分配给客户机。其他未被选择的服务器则收回预分配的IP地址。
- DHCP 中继代理 (Relay Agent):
- 由于DHCP发现报文是广播,无法跨越路由器。
- 在没有DHCP服务器的网段,可以在路由器上配置中继代理功能。
- 中继代理收到客户机的广播发现报文后,会以单播方式将其转发给指定网段的DHCP服务器,从而实现多个局域网共享一个DHCP服务器。
- 租用期 (Lease Period):DHCP服务器分配给客户机的IP地址是临时的,有使用期限。客户机在租用期过半时会尝试续租。
P2P 文件共享
- 基本问题:
- 如何查找到需要的文件?
- 如何从拥有该文件的主机下载该文件?
一、P2P文件分发
- 对比 C/S 方式:
- C/S:服务器依次向每个客户发送文件,分发时间随客户数量线性增长。
- P2P:每个下载文件的对等方也同时作为上传者,协助分发文件,分发时间随对等方数量对数增长,效率极高。
- 核心技术 - 文件分片:
- 将大文件分割成许多等长的小数据块。
- 对等方可以从多个其他对等方同时下载不同的数据块。
- 一个对等方下载完一个数据块后,可以立即将其上传给其他需要的对等方。
- 特点:“下载的人越多,下载速度越快”。
- 策略:优先下载“稀有”数据块,以保证所有数据块在网络中都有副本。
二、在P2P对等方中搜索对象
1. 集中式目录 (Napster)
- 架构:存在一个中心目录服务器,记录了每个对等方共享的文件信息及其IP地址。
- 流程:查询者向中心服务器查询,服务器返回持有文件的对等方地址,查询者再直接与该对等方建立连接下载。
- 缺点:存在单点故障,服务器是性能瓶颈。
2. 查询洪泛 (Gnutella)
- 架构:非结构化的覆盖网络 (Overlay Network),无中心服务器。
- 流程:查询者向其所有相邻的对等方发送查询请求,收到请求的对等方再继续向其邻居转发(洪泛),直到找到文件或达到转发跳数限制(范围受限的查询洪泛)。
- 缺点:产生大量查询流量,可扩展性差。
3. 分布式散列表 DHT (Distributed Hash Table)
- 架构:结构化的覆盖网络,节点间有特定的数学关系。
- 核心思想:
- 将对象名(如文件名)和节点ID(如IP地址)通过同一个散列函数映射到一个巨大的ID空间中。
- 规定每个对象存储在网络中与其对象ID最接近的节点上。
- 提供高效的路由算法,能够在对数时间内(O(logN))找到负责存储特定对象的节点。
- 经典算法:Chord
- 将节点ID沿顺时针排列成一个环形覆盖网络。
- 对象
x存储在其ID的后继 (successor(x)) 节点上。 - 每个节点维护一个索引表 (Finger Table),存储指向环上特定距离节点的“弦”,用于加速查找过程。
- 优点:查询效率高,可扩展性好。
- 缺点:结构维护复杂,不支持模糊查询。
案例:BitTorrent (BT)
- 是一个文件分发协议。
- 追踪器 (Tracker):一个中心服务器,负责维护参与同一个文件分发的所有对等方的信息列表。
- BT群 (Torrent):参与一个特定文件分发的所有对等方构成的覆盖网络。
- 无服务器网络:新版本BT使用 DHT 技术代替集中的追踪器,实现去中心化。
多媒体网络应用
- 特点:
- 数据量大,要求高带宽。
- 对端到端时延和时延抖动高度敏感。
- 可容忍少量数据丢失。
- 三类应用:
- 流式存储音频/视频: 音/视频点播。
- 流式实况音频/视频: 网络直播、IPTV。
- 实时交互音频/视频: 网络电话、视频会议。
挑战及应用层措施
1. 音/视频压缩:
- 原因: 原始多媒体信息量巨大,必须压缩才能在网络上传输。
- 技术: 话音压缩、音乐压缩(MP3)、视频压缩(MPEG, H.26x)。
2. 时延抖动消除:
- 问题: 分组在网络中经历的时延不同,导致到达接收端的时间间隔不均匀(非等时)。
- 解决方案: 在接收端设置播放缓存 (playout buffer)。
- 将到达的分组先存入缓存。
- 等待缓存中的分组数量达到一定阈值后,再以恒定速率从缓存中取出并播放。
- 这种延迟播放机制以增加初始播放时延为代价,有效消除了时延抖动。
3. 丢失分组恢复:
- 背景: TCP的重传机制会导致巨大时延,不适用于实时应用。
- 技术:
- 前向纠错 (Forward Error Correction, FEC): 发送方在原始分组流中添加冗余信息(如校验分组),接收方可以利用这些冗余信息重建少量丢失的分组,无需重传。
- 接收方数据恢复: 利用媒体流的自相似性,用相邻数据来估算丢失数据(如用前一个分组代替丢失分组,或使用内插法)。
- 交织 (Interleaving):
- 思想: 将原始数据单元的顺序打乱,把连续的数据分散到不同的分组中发送。
- 效果: 当一个分组丢失时,只会造成恢复后媒体流中多个不连续的小间隙,而不是一个连续的大间隙。小间隙更容易通过数据恢复技术修复,从而提高播放质量。
实时运输协议 RTP (Real-time Transport Protocol)
定位: 在 UDP 之上,为实时多媒体应用提供端到端的传输服务。它本身不保证实时性或服务质量,而是提供实现这些功能所需的信息。
封装: RTP 分组被封装在 UDP 用户数据报中。
[IP Header [UDP Header [RTP Header [Payload]]]]RTP 首部关键字段:
- 有效载荷类型 (Payload Type): 7位,指明音频/视频的编码类型(如PCM, MP3, H.264),接收方据此选择正确的解码器。
- 序号 (Sequence Number): 16位,每个RTP分组序号递增。用于检测分组丢失和恢复分组顺序。
- 时间戳 (Timestamp): 32位,反映分组中第一个字节的采样时刻。用于消除时延抖动和实现媒体同步(如音视频同步)。
- 同步源标识符 (SSRC): 32位,唯一标识一个RTP流的来源。
实时运输控制协议 RTCP (RTP Control Protocol):
- 与 RTP 配合使用,在另一个端口上传输。
- 主要功能:
- 服务质量的监视与反馈: 定期向所有会话参与者报告接收质量(如丢包率、时延抖动)。
- 媒体间的同步: 实现不同RTP流(如音频和视频)之间的同步。
网络应用编程接口
- 定义: 操作系统为应用程序提供的用于进行网络操作的接口,即 API (Application Programming Interface)。
- 套接字 (Socket):
- 最著名的网络应用编程接口,最初由伯克利UNIX开发。
- 定义: 一个复杂的数据结构,包含了进行网络操作所需的各种资源(如缓存、地址、端口、协议类型等)。
- 应用程序通过调用套接字API来创建和操作套接字,从而实现网络通信。
TCP 套接字编程的基本流程
服务器端:
socket(): 创建一个监听套接字。bind(): 将监听套接字与服务器的IP地址和端口号绑定。listen(): 使服务器进入监听状态,准备接收客户端连接。accept(): 阻塞等待,直到有客户端连接请求到达。一旦接受连接,会返回一个新的连接套接字,专门用于与该客户端通信。recv()/send(): 使用连接套接字与客户端进行数据收发。close(): 通信结束后,关闭连接套接字和监听套接字。
客户端:
socket(): 创建一个客户套接字。connect(): 向服务器的IP地址和端口号发起连接请求。send()/recv(): 连接建立后,使用客户套接字与服务器进行数据收发。close(): 通信结束后,关闭客户套接字。
UDP 套接字编程的基本流程
- UDP是无连接的,流程更简单。
服务器端:
socket(): 创建套接字。bind(): 将套接字与服务器的IP地址和端口号绑定。recvfrom(): 阻塞等待接收数据,该函数会返回数据以及发送方的地址信息。sendto(): 使用接收到的地址信息,向客户端发送数据。close(): 关闭套接字。
客户端:
socket(): 创建套接字。sendto(): 直接向指定的服务器地址和端口发送数据。recvfrom(): 接收服务器的响应。close(): 关闭套接字。
计算机网络核心备考笔记:精华摘要
1. 网络体系结构总览 (宏观框架)
1.1 三大体系结构模型对比
| 模型 | 层级 | 主要功能 | 典型协议 / 设备 |
|---|---|---|---|
| OSI七层模型 | 7. 应用层 6. 表示层 5. 会话层 |
为用户应用程序提供网络服务 (数据格式化、会话管理) | HTTP, FTP, DNS, SMTP |
| 五层原理体系结构 (本课程使用) |
5. 应用层 | 为应用进程提供通信规则 | HTTP, FTP, DNS, SMTP |
| TCP/IP四层模型 | 4. 应用层 | ||
| OSI/五层/TCP/IP | 4. 运输层 | 提供进程到进程 的端到端逻辑通信、可靠/不可靠传输、复用/分用 | TCP, UDP |
| OSI/五层/TCP/IP | 3. 网络层 | 提供主机到主机 的通信、路由选择、分组转发 | IP, ICMP, ARP, OSPF, BGP 路由器 (Router) |
| OSI/五层/TCP/IP | 2. 数据链路层 | 提供相邻节点间 的数据传输、封装成帧、差错检测 | PPP, Ethernet (CSMA/CD) 交换机 (Switch), 网桥 |
| OSI/五层/TCP/IP | 1. 物理层 | 在物理媒体上传输比特流 | (无协议) 集线器 (Hub), 中继器, 网线, 光纤 |
1.2 数据封装 (Encapsulation) 与解封装 (Decapsulation)
- 封装过程 (自顶向下):发送方应用层的数据,在向下经过每一层时,都会被该层加上一个控制信息的首部 (Header)(数据链路层还可能加尾部),然后交给下一层。
- 解封装过程 (自底向上):接收方从物理层收到比特流,每向上一层,该层协议就剥掉对应的首部,并根据首部信息进行处理,最终将原始数据交付给应用层。
1.3 协议数据单元 (PDU) 名称
- 应用层: 报文 (Message)
- 运输层: TCP报文段 (Segment) / UDP用户数据报 (User Datagram)
- 网络层: 分组 (Packet) 或 IP数据报 (IP Datagram)
- 数据链路层: 帧 (Frame)
- 物理层: 比特流 (Bitstream)
2. 各层核心协议与机制串讲 (聚焦1-5章考点)
应用层 (Application Layer):
- 为用户应用程序提供网络通信服务,定义了进程间通信的规则。
运输层 (Transport Layer):
- TCP vs. UDP 核心对比
| 对比维度 | TCP (传输控制协议) | UDP (用户数据报协议) |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输 (不丢不重、按序到达) | 不可靠 (“尽最大努力”交付) |
| 首部开销 | 大 (≥ 20字节) | 小 (固定8字节) |
| 流量控制 | 有 (滑动窗口) | 无 |
| 拥塞控制 | 有 | 无 |
| 应用场景 | Web(HTTP), 文件(FTP), 邮件(SMTP) | DNS, 实时音视频, SNMP |
TCP 可靠传输核心机制:
- 序号: 对字节流中的每个字节进行编号,确保有序性。
- 确认(ACK): 接收方发送确认号,告知发送方已正确收到哪些数据(累积确认)。
- 超时重传: 发送方为每个报文段设置计时器,超时未收到确认则重传。
- 滑动窗口: 实现流量控制和流水线式传输,提高效率。
TCP 连接管理:
- 三次握手 (连接建立):
- 客户端 -> 服务器:
SYN=1,seq=x - 服务器 -> 客户端:
SYN=1, ACK=1,seq=y,ack=x+1 - 客户端 -> 服务器:
ACK=1,seq=x+1,ack=y+1
- 客户端 -> 服务器:
- 四次挥手 (连接释放):
- 主动方 -> 被动方:
FIN=1(请求关闭发送通道) - 被动方 -> 主动方:
ACK=1(同意关闭) - 被动方 -> 主动方:
FIN=1(数据发送完毕,请求关闭) - 主动方 -> 被动方:
ACK=1(同意关闭)
- 主动方 -> 被动方:
- 三次握手 (连接建立):
TCP 拥塞控制四算法:
- 慢启动: 初始阶段,拥塞窗口(cwnd)指数增长,快速探测网络容量。
- 拥塞避免: cwnd达到门限后,改为线性增长,缓慢探测。
- 快重传: 收到3个重复ACK后,不等超时立即重传丢失报文段。
- 快恢复: 快重传后,cwnd减半而非归1,直接进入拥塞避免阶段。
网络层 (Network Layer):
- 核心功能:
- 分组转发 (Forwarding): 路由器根据转发表将分组从输入端口移到正确输出端口的局部动作。
- 路由选择 (Routing): 通过路由协议计算并生成路由表/转发表的全局过程。
- IP 协议:
- CIDR编址:
IP地址/网络前缀位数(如192.168.1.0/24)。IP地址分为网络前缀和主机号两部分。 - 子网掩码: 与IP地址按位与,用于提取网络前缀。
- IP数据报关键首部:
- TTL (生存时间): 每经过一个路由器减1,为0时丢弃,防止路由环路。
- 协议字段: 指明上层(运输层)协议是TCP(6)还是UDP(17)等。
- 标识、标志、片偏移: 用于IP数据报的分片与重组。
- CIDR编址:
- ARP (地址解析协议):
- 功能: 在同一局域网内,通过IP地址找到对应的MAC地址。
- 原理: 广播ARP请求 (“谁有这个IP?”),单播ARP响应 (“我是,这是我的MAC”)。
- 路由协议对比:
- 核心功能:
| 协议 | RIP | OSPF | BGP |
|---|---|---|---|
| 算法类型 | 距离向量 | 链路状态 | 路径向量 |
| 度量(Metric) | 跳数 | 开销 (带宽、时延等) | AS路径及策略 |
| 适用范围 | AS内部 (小型网络) | AS内部 (大中型网络) | AS之间 |
ICMP协议: 主要功能是进行差错报告(如目的不可达)和网络探询(如ping命令的回送请求/应答)。
数据链路层 (Data Link Layer):
- 核心功能:
- 封装成帧: 添加帧头帧尾,实现帧定界。
- 透明传输: 通过字节填充或零比特填充,防止数据部分被误判为帧定界符。
- 差错检测: 使用CRC循环冗余检验,检测传输中的比特差错。
- MAC地址: 48位的全球唯一硬件地址,用于在局域网中标识一个网络接口。
- CSMA/CD协议 (共享式以太网):
- 载波侦听 (先听): 发送前监听信道是否空闲。
- 冲突检测 (边发边听): 发送时持续检测信道,若有冲突立即停止发送。
- 随机退避 (等待): 冲突后,等待一个随机时间再尝试。
- 二进制指数退避: 重传次数越多,随机等待时间的上限翻倍。
- 网络设备对比:
- 集线器(Hub): 物理层设备,简单地广播信号,所有端口在同一个冲突域和广播域。
- 交换机(Switch): 数据链路层设备,根据MAC地址表进行智能转发和过滤,每个端口是一个独立的冲突域,但所有端口仍在同一个广播域。
- 路由器(Router): 网络层设备,根据IP地址和路由表转发分组,每个端口是一个独立的冲突域和广播域。
- 核心功能:
物理层 (Physical Layer):
- 核心任务: 在传输媒体(如双绞线、光纤、无线电波)上传输原始的比特流。
- 信道复用技术:
- FDM (频分复用): 同时不同频。
- TDM (时分复用): 同频不同时。
- WDM (波分复用): 光的频分复用。
- CDM (码分复用): 同时同频,用码片区分。
- 信道容量限制:
- 奈氏准则: 限制了在无噪声、带宽有限的信道中,最高码元传输速率为
2W。 - 香non公式: 限制了在有噪声、带宽有限的信道中,极限信息传输速率为
W log₂(1+S/N)。
- 奈氏准则: 限制了在无噪声、带宽有限的信道中,最高码元传输速率为
3. 关键流程贯通 (综合应用)
场景: 主机A (IP_A, MAC_A) 向不同局域网的主机B (IP_B, MAC_B) 发送一个IP数据报。默认网关为路由器R (接口IP_R1, MAC_R1; 接口IP_R2, MAC_R2)。
完整生命周期描述:
发送方决策 (网络层): 主机A将自己的IP地址/子网掩码与主机B的IP地址进行比较,发现两者不在同一个子网。因此,A决定必须将数据报发送给其默认网关(路由器R)。
获取网关MAC地址 (ARP):
- 主机A查询自己的ARP缓存表,查找默认网关的IP地址(IP_R1)对应的MAC地址。
- 如果找不到,A会在其所在的局域网内广播一个ARP请求:“谁是IP_R1?请告诉我你的MAC地址。”
- 路由器R收到请求后,单播一个ARP响应给A:“我是IP_R1,我的MAC地址是MAC_R1。”
- A将
{IP_R1, MAC_R1}存入ARP缓存。
第一次封装与发送 (数据链路层):
- A将IP数据报(源IP: IP_A, 目的IP: IP_B)交给数据链路层。
- 数据链路层将其封装成一个以太网帧。关键在于地址:
- 源MAC地址: MAC_A
- 目的MAC地址: MAC_R1 (网关的MAC地址)
- 该帧通过物理层发送到A所在的局域网。
路由器处理 (网络层核心):
- 交换机将帧转发到路由器R的对应接口。路由器R接收到该帧,检查目的MAC地址是自己,于是接收并解封装,将IP数据报提取出来交给网络层。
- 路由器网络层查看IP数据报的目的IP地址 (IP_B)。
- 路由器查询自己的路由表,根据IP_B找到一条匹配的路由,确定该数据报应从另一个接口(IP_R2)转发出去。
获取目的主机MAC地址 (ARP):
- 现在路由器R需要将数据报发送到B所在的局域网。它需要知道B的MAC地址。
- R查询其ARP缓存表,查找IP_B对应的MAC地址。
- 如果找不到,R会从其接口IP_R2广播一个ARP请求:“谁是IP_B?请告诉我你的MAC地址。”
- 主机B收到请求后,单播一个ARP响应给R:“我是IP_B,我的MAC地址是MAC_B。”
- R将
{IP_B, MAC_B}存入ARP缓存。
第二次封装与发送 (数据链路层):
- 路由器将原始的IP数据报(源IP和目的IP始终不变)交给其出接口的数据链路层。
- 数据链路层将其封装成一个新的以太网帧:
- 源MAC地址: MAC_R2 (路由器出接口的MAC地址)
- 目的MAC地址: MAC_B
- 该新帧通过物理层发送到B所在的局域网。
最终接收 (解封装):
- 主机B接收到该帧,检查目的MAC地址是自己,接收并解封装,逐层上传,最终将IP数据报中的数据交给正确的应用进程。
流程总结: IP地址(源/目)在整个传输过程中保持不变,而MAC地址(源/目)在每一“跳”(hop)都会发生改变。ARP协议是连接网络层地址和数据链路层地址的关键“胶水”。


![远程画板[贡献1.0.6版本]](https://s21.ax1x.com/2025/03/28/pEr2lWQ.webp)