计算机网络与互联网络
什么是互联网络
- 从构成的角度来看:
- 互联网络由点和边构成。其中,点包括端系统(涵盖网络应用)以及路由器;边则是链路。简单来说,互联网络其实是网络的网络,众多不同的网络相互连接,形成了一个庞大复杂的体系。
- 从服务的角度来看:
- 互联网络是一种能够为应用提供通信服务的通信架构。在这个架构里,有连接且可靠的服务与无连接的不可靠服务相互配合,共同支撑各类应用开展通信服务。
- 协议:指对等层实体在通信过程中所遵循的规则的集合,这一集合可以从语法、语义及时序三个方面去理解。语法规定了数据与控制信息的结构或格式;语义说明了需要发出何种控制信息,完成何种动作以及做出何种响应;时序则明确了事件实现顺序的详细说明。
网络边缘
- 网络的结构:
- 网络整体结构分为网络边缘与网络核心两大部分,还涉及接入网络与通信链路。网络边缘包括运行应用的端系统,重点在于 端系统中的应用交互方式 ;网络核心则由路由器组成。
- **网络边缘的应用交互方式 **
- C/S 模式(客户端 / 服务器模式):其特点在于,客户端向服务器发起请求,服务器响应请求并为客户端提供服务。服务器往往具备强大的处理能力与丰富的数据资源,客户端则相对轻量化,依赖服务器获取数据与执行复杂运算,常见于网页浏览、邮件收发等应用场景。
- P2P 模式(对等模式):这种模式下,各个端系统地位平等,既可以作为客户端向其他节点请求资源,也能充当服务器为其他节点提供资源。它无需依赖集中式服务器,有较强的扩展性与容错性,常用于文件共享、流媒体直播等应用。
- 网络的服务:
- 面向连接的服务:这类服务在通信前会先建立连接,整个通信过程数据传输稳定、可靠,能保证数据按序到达接收方,不过建立连接与拆除连接会带来额外开销。
- 无连接的服务:通信时无需事先建立连接,直接发送数据报,传输效率较高,但无法保证数据一定能可靠、有序地到达接收方。
网络核心
- 网络核心
- 组成:网络交换设备,如路由器 + 链路。
- 功能:数据交换。
- 数据交换方式及比较
- 分组交换:存储转发方式,统计复用。 - 理解
- VC(虚电路)
- Datagram(数据报)
- 线路交换
- FDM(频分复用)
- TDM(时分复用)
- WDM(波分复用)
- 分组交换:存储转发方式,统计复用。 - 理解
网络接入与物理介质
- 网络接入是指将端系统连接到边缘路由器的链路或网络。
- 住宅接入采用点到点接入方式,具体包括:
- ADSL(非对称数字用户线路)
- HFC(混合光纤同轴电缆)
- Cable Modem(电缆调制解调器)
- Home Networks(家庭网络)
- 机构接入:LAN
- 以太网
- WLAN(无线网)
- 物理链路(第 0 层)
- 导向型介质(有型,光纤等)
- 非导向型介质(无形,电磁波、光信号等)
- 常用介质
- TP 双绞线
- 同轴电缆
- 光纤
- Radio(电磁波信号)
互联网络结构与 ISP
近似层次型结构
- T - 1 ISP
- T - 2 ISP (Regional ISP)
- Local ISP
ISP 之间的连接
- 对等连接
- IXP(互联网交换点 )
内容提供商网络
- 在全球部署 DC(数据中心)
- 内容提供商网络在多处与各个 ISP 相联
- 内容提供商自己部署网络将全球的 DC 相联
- 内容提供商 DC 自己之间的访问,通过自己部署的专网
- 用户接入后通过离用户最近的 DC 为之服务
分组交换网络中的延迟与丢失
延迟的 4 个原因(计算) - 掌握
- 处理延迟
- 排队延迟
- 传输延迟
- 传播延迟
例如:n 段,分组 L,R,传播延迟 d 每段如何计算总体延迟;
流量强度(0-1,与排队延迟正相关):La/R - 掌握
- 排队延迟 依赖**流量强度的公式 **;
丢失原因:
- 缓冲区溢出 + 出错没通过校验
吞吐量 -了解
- 瞬间吞吐量
- 平均吞吐量
瓶颈链路决定了主机之间的吞吐量(从每段链路获得的大致带宽是 1/N,瓶颈链路是所有链路段中获得带宽最小的)。
协议层次与服务模型
为什么要分层
网络比较复杂,分层实现比较容易设计、调试、实现。
- 分层:将复杂的网络功能划分成功能明确的层次,上层利用下层提供的服务来实现本层的协议,从而为上层提供更复杂的功能。
一些术语和概念 -理解
- 服务、服务访问原语、服务访问点
- 面向连接的服务、无连接的服务
- 协议、协议数据单元 PDU
- 服务(垂直)和协议(水平)之间的关系(区别与联系)
- 服务利用了下层协议的实现,为上层提供服务
- 协议的实现依靠下层服务
互联网络分层模型及每一层的功能 -理解
- 应用层
- 传输层
- 网络层(端到端,路由和转发)
- 链路层(点到点,帧为单位)
- 物理层(物理信号)
封装和解封
历史 -了解
- ARPANET:美国军方资助的分组交换实验网,由于 TCP/IP 架构的包容性、免费使用、架构便于应用创新吸引更多的用户等原因,用户数量、节点数量和应用数量越来越多。
- NSF 建立 ARPANET 的访问网。
- 民用网络从军用网络脱开,成为现在的互联网。
术语:IETF(互联网工程任务组), ITU(国际电信联盟),IEEE(电气电子工程师协会 ),RFC(请求评论,是一系列关于互联网技术的文件)。
应用层
原理 + 应用实例 + SOCKET 编程
应用的开发只集中在端系统上,对路由器没有任何改变,这鼓励了互联网架构下的应用创新。
网络应用原理
- 应用架构
- C/S(客户端 / 服务器)
- P2P(对等网络)
- 混合架构
- 进程间通信
- 同主机:操作系统定义的通信方法
- 不同主机:利用网络提供的架构(Socket)交换报文
- SOCKET
- 一个整数,OS 用于标示应用通信关系所采用的本地标示
- **TCP:**连接的本地标示
- **UDP:**端节点的本地标示
- 进程编址
- IP + PORT(本质上在传输层应用了端口号,用于区分应用,TCP 和 UDP 使用端口号的方式不同)
- 应用所需要的服务需要考虑的因素(网络所提供服务的主要指标)
- 丢失率可靠性
- 延迟、延迟差(抖动)
- 带宽
- 安全性
- 传输层协议
- TCP 提供的服务特性:可靠字节流服务,面向连接,流量控制,拥塞控制
- UDP 提供的服务特性:无连接,不可靠的服务
都能够提供进程的标示,区分不同的进程
WEB 和 HTTP
WEB 应用包括
- HTTP 协议
- HTML
- CLIENT(客户端),SERVER(服务器)
术语
- 网页
- 对象
- 引用 URL
HTTP 协议
- 定义了 C(客户端)和 S(服务器)之间通信的报文格式、解释和时序。
- HTTP 连接
- 持续性连接
- 非持续性连接
- 往返延迟 RTT 和对象的抓取时间
HTTP 1.0 到 HTTP 1.1 再到 HTTP 2.0 的演变
HTTP 1.0
- 基本特点
- 无状态协议:每个请求都是独立的,服务器不会在不同请求之间保留状态信息。
- 简单的请求 - 响应模型:客户端发起请求,服务器响应请求,一次请求对应一次响应。
- 支持多种请求方法:如 GET、POST、HEAD 等。
- 局限性
- 连接管理效率低:每对请求 - 响应都需要建立一个新的 TCP 连接,这导致了较高的连接建立开销,特别是在请求大量小文件时。
- 缺乏对缓存的充分支持:缓存机制比较简单,没有很好地处理资源更新和验证的问题。
HTTP 1.1
- 改进之处
- 持久连接(Keep - Alive)
- 允许在一个 TCP 连接上进行多次请求 - 响应交互,减少了建立连接的开销。
- 客户端和服务器可以通过
Connection: keep - alive
头字段来协商保持连接。
- 管道化(Pipelining)
- 允许客户端在等待第一个请求的响应时,发送第二个请求,进一步提高了性能。
- 增强的缓存机制
- 引入了更多的缓存控制头字段,如
Cache - Control
、ETag
和If - Modified - Since
等,使得缓存管理更加灵活和高效。
- 引入了更多的缓存控制头字段,如
- 分块传输编码(Chunked Transfer Coding)
- 允许服务器在不知道内容长度的情况下,分块发送响应内容,适用于动态生成内容的情况。
- 持久连接(Keep - Alive)
- 局限性
- 头部信息冗余:每个请求和响应都携带完整的头部信息,在大量请求时,头部数据的传输会造成性能瓶颈。
- 队首阻塞(Head - of - line Blocking):在管道化连接中,如果一个请求被阻塞,后续的请求都要等待,即使后续请求不需要依赖前面被阻塞的请求。
HTTP 2.0
- 主要特性
- 二进制分帧层(Binary Framing Layer)
- HTTP 2.0 将所有传输的信息分割为更小的帧,并对帧进行二进制编码。这使得协议更加紧凑和高效。
- 通过帧的形式,实现了在一个 TCP 连接上多路复用多个请求和响应,避免了 HTTP 1.1 中的队首阻塞问题。
- 头部压缩(Header Compression)
- 使用 HPACK 算法对头部信息进行压缩,减少了头部数据的传输量。
- 对于重复的头部字段,可以只传输差异部分,进一步提高了压缩效率。
- 服务器推送(Server Push)
- 服务器可以在客户端没有请求的情况下,主动向客户端推送资源。例如,当客户端请求 HTML 页面时,服务器可以同时推送页面所需的 CSS 和 JavaScript 文件,减少客户端的等待时间。
- 二进制分帧层(Binary Framing Layer)
- 性能提升
- HTTP 2.0 通过上述特性,在网络性能上有了显著提升,特别是在处理大量小资源和高并发请求时表现出色。
从 HTTP 1.0 到 HTTP 1.1 再到 HTTP 2.0,协议不断进化,旨在解决前一版本的性能瓶颈,提高网络传输效率和用户体验。
从 SSL 到 HTTP/3.0(基于 UDP)的安全优化过程
SSL(Secure Sockets Layer,安全套接层)
- 基本原理
- SSL 是一种早期的网络安全协议,用于在客户端和服务器之间建立加密连接,确保数据在传输过程中的保密性、完整性和身份验证。
- 它通过握手过程来协商加密算法、密钥交换和身份验证方法。
- 局限性
- 性能问题
- SSL 的握手过程相对复杂,尤其是在早期版本中,这会导致较高的连接建立延迟。
- 对于每一个新的连接,都需要重新进行握手,这在高并发场景下会影响性能。
- 安全性逐渐减弱
- 随着技术的发展,SSL 的一些加密算法和协议漏洞被发现,安全性逐渐不能满足现代网络安全的需求。
- 性能问题
TLS(Transport Layer Security,传输层安全)
- 与 SSL 的关系
- TLS 是 SSL 的继任者,它在 SSL 的基础上进行了改进和扩展。TLS 的目标与 SSL 相同,即确保网络通信的安全,但在安全性和性能方面有了显著提升。
- 改进之处
- 增强的加密算法
- TLS 采用了更强大和更安全的加密算法,如 AES(Advanced Encryption Standard)等,以应对不断出现的安全威胁。
- 优化的握手过程
- TLS 对握手过程进行了优化,例如引入了会话恢复机制。当客户端和服务器之前已经建立过连接,在一定条件下可以复用之前的会话参数,减少握手时间。
- 增强的加密算法
HTTP/3.0(基于 UDP 的 QUIC 协议)
- QUIC(Quick UDP Internet Connections)协议
- HTTP/3.0 是基于 QUIC 协议的,而 QUIC 是基于 UDP 的。QUIC 旨在解决 TCP 和 TLS 在性能和安全性方面的一些问题。
- 安全特性
- 集成加密
- QUIC 将加密作为协议的核心部分,从一开始就对数据进行加密,避免了像 TCP + TLS 那样分两步进行加密的复杂性。
- 0 - RTT 连接建立(在某些情况下)
- QUIC 允许在某些条件下实现 0 - RTT(Round - Trip Time)连接建立。例如,当客户端和服务器之前已经建立过连接并且缓存了相关的加密参数时,客户端可以立即发送应用数据,无需等待握手过程完成,大大减少了连接建立延迟。
- 前向纠错(Forward Error Correction,FEC)
- QUIC 采用了 FEC 技术,通过在数据中添加冗余信息来恢复在传输过程中丢失的数据,减少了因丢包导致的数据重传,提高了传输效率和安全性。
- 集成加密
从 SSL 到 HTTP/3.0(基于 UDP)的演变过程,是一个不断优化安全性能和网络传输效率的过程。HTTP/3.0 通过基于 UDP 的 QUIC 协议,在安全和性能方面都有了显著的提升。
报文格式
Wireshark——抓包分析_wireshark抓包数据怎么看-CSDN博客
- 请求报文
- 方法
- 响应报文
- 状态码
COOKIES(HTTP无状态->有状态)
WEB 缓存
- 作用:通过本地命中,减少这些对象的访问延迟;进一步减少接入链路的流量强度,从而降低派对延迟带来总体平均延迟的减少;减轻服务器的负担。
- 优点:通过一个实例,计算不要求。
FTP (不要求)
- 作用:在 CS 之间传输文件。
- 构成:
- C(客户端)
- S(服务器)
- FTP
- FTP 的连接
- 控制连接(带外传输)
- 数据连接
- 命令和响应
电子邮件应用的构成
- 用户代理
- 邮件服务器
- SMTP(简单邮件传输协议)
邮件报文格式解析
- 报文头
- 报文体
- MIME(多用途互联网邮件扩展):邮件多媒体扩展,可以在邮件中编解码多媒体内容。
邮件存取协议
- 作用
- 常用
- IMAP(互联网邮件访问协议)
- POP3(邮局协议版本 3)
DNS
DNS 作用
完成域名到 IP 地址的转换(还包括别名到正规名字、邮件服务器名字到正规名字转换等),是应用层面的互联网 基础设施,其他应用使用。
二、DNS 的概念
- 分布式、层次数据库
- 命名是分层的
- 域名信息存储和服务是分布式的,每个域名服务器担任一个区域 ZONE 的名字到 IP 地址的权威转换,也缓存名字 - IP 信息的转换。
三、DNS 的构成
- 解析器:本地应用
- 域名服务器
- DNS 协议
- 报文:请求和应答格式相同
- RR:资源记录
域名解析的过程
(解析器 -> 本地 DNS 服务器 -> 上层域名服务器 ->…-> 权威名字服务器,返回)
本地域名服务器、权限域名服务器、顶级域名服务器、根域名服务器
- 递归解析:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
- 迭代解析:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

DNS 缓存
- 作用
- 本地缓存 + 服务器缓存
P2P (了解P2P 的概念和优势即可)
P2P 概念
每个对等体即是客户端又是服务器;P2P 网络是这些 peer 构成的应用层面的逻辑网络。
P2P 网络比 C/S 方式分发内容快的原因
这些 peer 节点参与到内容的上载,流量和服务都是分布式的,可扩展性。
典型 P2P 应用及其原理 (不要求)
- Napster:知道名词
- Gnutella:知道名词
- KaZaA:知道名词
- BT:知道名字
- DHT:
视频流化服务和 CDN(了解)
服务器向客户端进行视频流化的方式
- UDP 流化
- http 流化
- DASH(Dynamic, Adaptive Streaming over HTTP)
DASH 流化的过程
- 客户端获取告示文件
- 客户端按照情况,向(可能是不同的)服务器请求不同视频质量的内容块,客户端智能
CDN
- 单个服务器,或者服务器群向客户端提供海量内容并发服务的问题:扩展性差
- CDN 原理
- 应用层面的协作服务网络
- 在全网部署缓存节点,内容预先部署到 CDN 缓存节点上
- 用户请求通过域名解析重定向向离自己 “最近的节点” 请求内容
- 缓存节点放置的方式
- Enter Deep
- Bring Home
TCP 的 SOCKET 编程 - 理解
SOCKET 概念
- TCP 连接的本地标示示,向这个 SOCKET 写就是发送给对方的进程;从 SOCKET 中读,就是读取对方发送过来的数据。
SOCKET API
- 创建
- 使用(读和写)
- 关闭
TCP SOCKET 数据传输的特点
- 面向连接,可靠字节流服务
TCP SOCKET 编程
- 建立 SOCKET
- 客户端 TCP 实体动作:和服务器端的 TCP 实体握手沟通。
- 服务器端的动作
- 三次握手
- 使用 SOCKET
- 关闭 SOCKET
UDP 的 SOCKET 编程 - 理解
- UDP SOCKET数据传输的特点
- 编程 - 不要求
- 建立SOCKET(之前客户端 UDP 实体和服务器不用握手,不为之后的通信做准备)
- 使用
- 关闭
传输层
传输层服务
传输服务
- 能够使端系统应用之间进行逻辑通信。
- 传输协议:运行于端系统的 2 个对等传输层实体相互通信应该遵守的规则集合。
- 传输服务和网络服务的区别
- 网络服务:主机到主机的通信。
- 传输服务:进程到进程的通信。
互联网络传输层协议
- TCP:有连接,可靠保序数传服务。
- UDP:无连接,不可靠,不保序的数传服务。
复用与解复用
复用
- 源端多个上层应用收集数据:应用报文,封装报文。
解复用
- 接收端将数据按照端口号(结合 IP 地址)给相应的 SOCKET 对应的应用。
复用和解复用的工作原理:IP PORT
- TCP 有连接情况:SOCKETS 为 4 元组。
- UDP 无连接情况:SOCKETS 为 2 元组。
无连接传输层协议 UDP
- UDP 的必要性:有些应用对实时性比较在乎,对可靠性要求不高。
- UDP 报文(无连接的,因此叫做 UDP 数据报)格式。(头部 + 载荷)
- **UDP 报文校验和的计算(Check Sum) **理解
可靠数据传输原理
- 协议演进的方式讲解如何进行 rdt
- 加入一些假设,简单的协议可以提供 rdt 服务。
- 去掉一些假设,需要协议实体做相应的变化从而能够进行 rdt。
- **技术机制 ** 理解
- 校验和,正向确认,反向确认。
- 序号:检查重复。
- 只有正向确认的机制。
- 检错重发和超时重发:处理丢失。
- 滑动窗口
RDT(Reliable Data Transfer,可靠数据传输)1.0、2.0、3.0 的功能特点
计算机网络(14)——可靠数据传输原理_rdt3.0接收方fsm-CSDN博客
RDT 1.0
- 解决错误问题
- 基本原理
- RDT 1.0 假设底层信道完全可靠,不会出现比特差错,也不会丢失分组。
- 在这种理想情况下,发送方只需将数据发送出去,接收方就能无误地接收到数据。
- 工作机制
- 发送方:简单地将数据发送给接收方,无需考虑数据是否丢失或损坏。
- 接收方:接收数据并进行处理,不需要反馈机制来确认数据是否正确接收。
- 基本原理
RDT 2.0
- 解决序号 / 时序问题
- 基本原理
- RDT 2.0 考虑到了底层信道可能出现比特差错的情况,但仍然假设分组不会丢失。
- 为了检测和纠正错误,引入了差错检测码(如校验和)和确认(ACK)与否认(NAK)机制。
- 工作机制
- 发送方:
- 发送带有差错检测码的数据分组。
- 等待接收方的 ACK 或 NAK 反馈。如果收到 ACK,则继续发送下一个分组;如果收到 NAK,则重发当前分组。
- 接收方:
- 接收数据分组并检查差错检测码。
- 如果数据无误,发送 ACK 给发送方;如果检测到错误,发送 NAK 给发送方。
- 发送方:
- 基本原理
RDT 3.0
- 解决超时 / 重复问题
- 基本原理
- RDT 3.0 在 RDT 2.0 的基础上,进一步考虑了分组可能丢失的情况。
- 为了处理分组丢失问题,引入了定时器机制。
- 工作机制
- 发送方:
- 发送数据分组后启动定时器。
- 如果在定时器超时前收到 ACK,则取消定时器并发送下一个分组。
- 如果定时器超时,无论是否收到 NAK,都重发当前分组。
- 接收方:
- 与 RDT 2.0 类似,接收数据分组,检查差错检测码,发送 ACK 或 NAK。
- 如果收到重复的分组(由于发送方超时重发),仍然发送 ACK 给发送方,以避免发送方不断重发。
- 发送方:
- 基本原理
RDT 协议从 1.0 到 3.0 不断演进,逐步解决了可靠数据传输过程中的各种实际问题,从假设理想信道到考虑比特差错、分组丢失等情况,通过增加差错检测、确认机制、定时器等手段来确保数据的可靠传输。
利用率计算 - 了解
停止等待技术:链路带宽延迟积(容量)效率低。 管道技术:在未经对方确认的情况下,可以连续发送多个 PDU。 GBN:发送窗口大于 1,接收窗口 = 1(只能顺序接收;发送方只设置一个超时定时器,一旦出错,返回到出错的那一个 PDU 重发)。 SR:发送窗口大于 1,接收窗口大于 1(能够乱序接收;发送方为每个发送出去的 PDU 设置超时定时器,哪个超时重发哪个)。
有连接传输层协议:TCP
TCP 服务特性
- 点对点:可靠保序字节流;管道(在未加确认情况下一次次传多个未经确认的段);缓冲;全双工;面向连接;流控制。
TCP 段结构
- 各个字段的作用。
- 连接建立时协商好双方的起始序号;
- 序号是首字节在字节流的偏移量;
- 确认:是对顺序收到的最后一个字节 + 1。
RTT 时间估计和重发超时时间估计
- 移动平均计算
- 平均往返延迟。
- 当前往返延迟采样值与平均值的偏差。
- 平均值 + 4 偏差。
TCP 的可靠数据传输原理
- 快速重传
- 在没有超时情况下,收到对方对于某一个段的重复三次(一共 4 个)ACK。
流量控制
- 流控目的
- 防止淹没接收方。
- 流控手段
- 将接收窗口大小捎带方式传递给发送端。
TCP 连接管理 - 理解
- 连接建立
- 3 次握手技术,对双方选择的初始序号给予确认,准备好缓冲区。
- 第一次握手:SYN = 1,ACK = 0:发起端的序号。
- 第二次握手:
syn = 1
,ack = 1
,被呼叫方的序号。 - 第三次握手:
(syn = 0) ack = 1
。
- 连接拆除
- 存在 2 军问题不完美(也不存在完美释放连接的方案,用定时器凑合解决)。
- 连接状态及其变迁。
拥塞控制原理
- 拥塞的概念
- 解释什么是拥塞,以及为什么会发生拥塞。
- 拥塞控制目的
- **拥塞控制手段 ** 理解
- 端到端的拥塞控制:TCP 采用这种方式。
- 网络辅助的拥塞控制:ATM 网络标志和携带拥塞信息,反馈给主机(不要求)`。
TCP 的拥塞控制原理
TCP 拥塞控制原理 (需掌握)
- 检测拥塞
- 超时(拥塞,存在误判的可能性,但概率比较低)。
- 三个冗余 ACK(轻微拥塞)。
- 拥塞控制机制
- AIMD(加性增 1 、乘性减 半 )、慢启动 (加倍)、超时之后的保守策略。
TCP 拥塞控制的 2 种算法
- Tahoe
- 超时事件和 3 个冗余 ACK 处理一样的,不要求。
- reno 算法 (需掌握)
- 超时事件发生和 3 个冗余 ACK 处理不一样。
平均延迟和超时定时器时间的设置
- **JACSON 算法(具体初始化和迭代算法, ** **不要求 ** )
- 平均往返延迟公式。
- Dev 算法:第一个超时时间 = 延迟的 1/2,初值设置;后面按公式。
- 超时时间设置:es + 4dev。
TCP 公平性:- 了解
TCP 的吞吐量计算:不要求
网络层之数据平面
简介
网络层的主要服务和功能
- 服务
- 向传输层提供主机到主机的段传输服务。
- 功能 1—— 转发,数据平面功能
- 从路由器的一个端口流入,从另外一个端口流出。
- 功能 2—— 路由,控制平面的功能
- 决定从源到目的的路径。
- 两个功能相互配合将数据报从源传送到目标主机;关联是转发表、流表。
实现网络层功能的两种方式
- 传统方式
- 控制平面和数据平面功能垂直集成在每个设备上(路由器)。
- 控制平面功能:路由协议实体分布式地计算路由表。
- 数据平面的功能:IP 协议按照路由表进行分组的转发。
- SDN 通用转发方式
- 控制平面和数据平面分离,在不同设备上实现。
- SDN 控制器集中式计算、下发流表实现控制平面功能。
- SDN 分组交换机按照流表对到来的分组进行转发,实现数据平面的功能。
网络层提供服务的一些重要指标
- 带宽
- 延迟、延迟差
- 丢包与否
- 丢包率
路由器结构和工作原理
路由器的 2 大功能 (需理解)
- 路由协议
- 结果形成路由表(转发表)。
- 转发分组
- 使用转发表转发分组,交换。
构成
- 输入端口
- 线路终端实现物理层功能,链路协议实体实现链路层功能,网络层功能实现分布式分组转发。
- 最长前缀匹配。
- 交换结构
- 基于内存的,基于 bus 的,基于 CROSSBAR 的。
- 输出端口
- 网络层可以实现分组的调度:FIFO,RR,WFQ。
- 调度支持对多媒体分组等优先级分组的传输支持。
- 路由处理器
- 控制各部分协调工作。
互联网网络层协议
IP 网络提供的服务模型:尽力而为
- 包括含义:丢包、乱序、不可靠、(可能包括重复)。
网络层构成
- 协议
- IP 协议、路由选择协议、ICMP 协议
- 转发表
- IP 数据报格式
- 各个字段的作用
- 分片和重组 - 掌握
- 一个分组的总体大小超过了转发链路的 MTU,因此要切片。
- 到目标主机重组。
- IP 编址
- IP 地址:主机或路由器和网络接口的标识。
- 子网
- 在一个子网内的设备之间的通信有 2 个特点:1)通信无需借助路由器;2)子网前缀一样。
- IP 地址分类:ABC(单步) D(多步) E(预留)
- 特殊 IP 地址(内网、全0、全1)
- 子网掩码和 CIDR
- **NAT ** **不要求 **
- DHCP 协议:上网主机获得 IP、掩码、默认网关和 local name server。
- 路由聚集:连续的子网前缀的子网可达信息可以做聚集,减少向外部传输路由的数量,减少路由计算的负担。支持大概的路由聚集,与此对应的是最长前缀匹配的措施。
- IPV 6:
- 格式(固定头部长度 40B ),地址:128 bits
- 变化(32->128)
- IPV4 到 IPV6 的迁移
- 隧道
通用转发和 SDN
SDN 方式控制平面和数据平面分离的优点 (需理解)
- 集中在控制器上实现控制逻辑,网络可编程,可以实现各种复杂的网络功能、新功能(一次部署,持续升级)、方便管理。
- 形成开发生态(控制器、分组交换机、网络应用,在一个开放的框架下协作)。
SDN 分组交换机按照计算出的流表进行分组转发、通用、便于升级。
分组交换机工作原理 (需理解)
- 模式匹配 + 行动(不仅仅是转发,还可以组播、泛洪、修改字段和阻塞等)。
- 进来分组,按照各级字段匹配流表,按照相应的行动动作分组。
- 按照优先权进行判断;之后,统计计数。
网络层之控制平面
概述
- 两种方式实现控制平面功能
- 传统方式:在每个路由器上分布式实现路由功能。
- SDN 方式:在 SDN 控制器上由网络应用集中式计算、生成流表。
路由选择算法
- 路由目标
- 根据收集到的路由信息(拓扑、链路代价等)计算出源到目标较好的路径,代价比较低的路径。
- 主机 - 主机的路径 == 路由器到路由器的路径。
- 路由目标实际上是计算出节点的汇集树。
- 路由原则:完整正确、简单、健壮、稳定公平、最优(次优)。
- 路由分类
- 静态和动态(自适应)。
- 局部和全局的。
路由算法(Dijkstra, Bellman-Ford算法)_bellmanford算法和dijkstra-CSDN博客
- LS 算法(链路状态) (需掌握)
- 全局的路由选择算法,工作原理
- 每个节点收集邻居信息,生成 LS;LS 全网泛洪。
- 节点收集 LS 状态分组,形成网络拓扑。
- 按照最短路径算法算出到其他节点的最优路径。
- DV 算法(距离矢量) (需掌握)
- 局部的路由选择算法,工作原理
- 每个节点维护到所有其他节点的下一跳和代价。
- 邻居节点之间定期交换 DV。
- 按照 Bellman-Ford 不断迭代生成到所有目标的代价和相应的下一跳
- **层次路由 ** 理解
- 一个平面解决路由的问题:计算、传输和存储路由信息的量太大,不具备可扩展性,也不满足不同网络运营方不同的管理需求
- 分成 AS, AS 内部之间的节点路由由内部网关协议解决:AS 之间的路由,分层解决(路由到网关,由网关路由到目标网关(外部网关协议),到了目标 AS 内部,采用 AS 内部的路由解决)
- 优势:分层路由,解决了规模性问题,管理性问题
路由算法用于确定数据分组从源节点到目的节点的传输路径,其中静态路由与动态路由是两种重要的路由方式:
- 静态路由
- 定义:静态路由是由网络管理员手动配置的路由信息。管理员依据网络拓扑结构,明确指定每个目的网络的下一跳路由器或出口接口。例如,在一个小型企业网中,仅有几条固定线路连接不同部门,管理员清楚各部门之间数据该如何流转,就可以手动设置静态路由。
- 优点:
- 安全性高:由于路由表是人工定制,外部攻击者较难篡改路由信息,能保障网络的基本架构安全。
- 低开销:不需要额外的路由协议进行路由信息交互,几乎不占用网络带宽与设备资源,适合简单网络拓扑。
- 可预测性强:数据传输路径固定,网络管理员能精准预估数据包走向,便于故障排查。
- 缺点:
- 缺乏灵活性:网络拓扑一旦变动,像新增节点、链路故障,静态路由无法自动调整,必须人工重新配置,在大型复杂网络里,工作量巨大。
- 配置繁琐:在大规模网络中,需要为众多目的网络逐个设置路由,容易出错且管理成本飙升。
- 动态路由
- 定义:动态路由依靠路由协议,让路由器之间自动交换网络拓扑和链路状态等信息,随后各自依据特定算法计算出最佳路由。常见的动态路由协议有 RIP、OSPF、BGP 等。例如,在互联网骨干网中,无数的路由器时刻在交互信息,动态更新路由表。
- 优点:
- 自适应网络变化:链路故障、网络扩容时,路由器能快速重新计算路由,保障网络畅通,无需人工干预。
- 配置简便:只需在路由器上启用相关路由协议,后续路由更新依靠协议自动完成,降低了管理员工作量。
- 缺点:
- 占用资源:路由协议持续交互信息,消耗网络带宽;路由器计算路由也占用自身的 CPU、内存资源。
- 存在安全风险:路由协议传输的信息如果被恶意篡改,会误导网络流量走向,引发网络安全事故。
静态路由和动态路由适用于不同的网络场景,简单、稳定的网络更适合静态路由,而复杂多变、规模较大的网络则要依靠动态路由来保障高效的数据传输。
互联网的路由协议
路由协议分类
- 内部网关协议 IGP
- RIP
- OSPF:AS 内部支持分层路由,同时支持多种代价。
- IGRP
- 外部网关协议 EGP
- BGP
网关路由器参与 AS 内部路由计算,收集 AS 内部子网可达信息
- 网关路由器通过 AS 间路由向其他 AS 网关通告子网可达信息。
- 网关路由器还转发 “过手” 子网可达信息,但是 AS 路径要加上它自己 AS 编号(防止形成环路)。
- 网关路由器通过 i - BGP 向 AS 内部所有路由节点通告收集到的子网可达信息。
- 内部路由器,通过 AS 内路由和 AS 间路由共同决定向 AS 外部子网的下一跳(内部网关协议决定如何去往网关,外部网关协议决定通过那个网关可到达 AS 外部子网)。
内部网关协议和外部网关协议的对比 (了解)
- 内部网关协议重视效率,性能。
- 外部网关协议重视策略:经济策略和政治策略
SDN 控制平面
- 在控制器上集中实现控制功能。
- 控制器和 SDN 交换机按照
openflow
等南向接口协议等下发流表,上报设备状态。 - SDN 控制器按照北向接口和网络应用打交道。
ICMP 协议 (了解)
- 作用:包括错误、
echo
请求和应答。 - 报文类型。
数据链路层与局域网
引论
- 链路层提供的服务
- 成帧、链路存取控制(链路访问控制)。
- 在相邻节点间进行可靠数据传递。
- 流量控制。
- 检错。
- 纠错。
- 全双工和半双工服务。
- 链路层网络节点的连接方式
- 点到点方式:比较适合广域。
- 多点连接的方式:比较适合局域、联网方便,但是需要解决 MAC 问题。
检错与纠错
- 检错原理
- 奇偶校验。
- CRC(循环冗余校验) - 掌握
- 原理。
- 生成多项式。
- 冗余位计算方法以及验证方法。
多路访问协议
- MAC 的必要性
- MAP
- 信道划分
- TDMA
- FDMA
- CDMA:删掉
- RAP:随机访问协议
- slotted ALOHA
- ALOHA
- CSMA,**CSMA/CD(至少 2t 长度帧),CSMA/CA **
- 轮转协议:不要求
- 令牌协议
链路层编地址
- MAC 地址(48位)
- 格式
- 分配
- MAC 地址和网络层 IP 地址的区别
- 层次不同
- MAC 地址平面的,用于标示一个物理网络的不同站点;IP 是可以聚集的,便于计算路由
- ARP 协议
- 目的:物理网络范围内 IP 地址到 MAC 地址的转换
- 工作原理:广播查询,单播应答
以太网
- IEEE802.3 标准,链路层和相应的物理层。
- 以太网的帧结构。
- 向上提供服务的特点。
- 无连接:以太网在传输数据时不需要事先建立连接。
- 不可靠:数据传输过程中不保证数据的可靠到达。
- 访问控制技术。
- CSMA/CD (需掌握):载波侦听多路访问 / 冲突检测,用于解决以太网中的冲突问题。
- 指数后退:在发生冲突后,设备会采用指数后退算法等待一段时间后再尝试发送。
- **CSMA/CA ** (需理解):载波侦听多路访问 / 冲突避免,适用于无线网络。
- CSMA/CD (需掌握):载波侦听多路访问 / 冲突检测,用于解决以太网中的冲突问题。
- 编码。
- Manchester 编码:一种常用的编码方式。
HUB 和交换机
- HUB 连接方式的问题。
- 无法隔离冲突,在一个冲突域之中:使用 HUB 连接设备时,所有连接的设备处于同一个冲突域,容易产生冲突。
- 交换机的工作原理。
- 选择性转发:交换机可以根据目的地址有选择地转发数据。
- 自学习:交换机能够自动学习连接设备的 MAC 地址。
- 流量隔离:交换机可以隔离不同端口的流量,减少冲突。
- 专用接入:交换机提供专用的接入端口。
- 路由器和交换机的区别 (需理解)