计算机网络笔记 一.概述
计算机网络的起源#
1954 年发明 transceiver, 终端到通讯线路到计算机的远程联机系统: 计算机网络的雏形
计算机网络的构建#
直接连接: 硬件资源利用率低, 成本高, 线路利用率低
交换网: 先连接到交换机, 交换机再连接到硬件资源, 硬件资源和线路利用率高
交换机连交换机, 构成更复杂的网络
计算机网络的设计目标之一: 通过某种方式组建高效的网络系统, 提升计算机资源和线路的利用率.
计算机网络的定义#
一系列计算机, 链路和网络设备的集合
- 物理上: 链路和网络设备将计算机连接起来, 确保拓扑上的连通性
- 功能上: 提供数据传输功能, 确保计算机之间能交换数据
实现:
- 信息服务
- 资源共享
通用性: 能在计算机上运行软件实现各种网络应用, 能传输多种类型数据
计算机网络的组成#
- 硬件
- 计算机: 主机 Host, 包括用户终端和服务器
- 网络设备: 交换机, 路由器 (特殊的交换机)
- 链路: 连接节点的物理介质, 分为点对点链路和多路访问/共享链路
- 软件
- 操作系统: 对节点上的资源进行管理, 为软件提供运行环境, 包括计算机操作系统和网络操作系统 (Cisco, VRP)
- 协议: 定义了节点间的通信规则, 包括信息格式, 交互流程, 解释处理
计算机和网络设备统称节点.
计算机网络与互联网#
一些独立的计算机网络互相连接形成 internet 互连网, 连接两个/多个计算机网络的节点称为路由器.
互连网经过网络嵌套可以形成任意规模的互连网, 将任意规模的互连网称为 networks 网络.
Internet 因特网/互联网是世界上最大的计算机网络. 是的它和互连网是靠大小写区分的, 翻译成中文靠同音字区分还真是信达雅啊.
概述#
国际 Internet 发展史#
四阶段: 原型验证 ARPANET, 扩展性验证 NSFNET, 商业化转型商业化的 Internet, 未来 Internet
不是我说这个真的要记吗.
中国 Internet 发展史#
IPv6 发展史#
IPv4 理论空间 2^32, 地址危机, 2011 年 IANA 宣布用完, 遂改用 IPv6, 2^128 位.
网络体系结构#
目标是构建一个通用的, 高效的, 健壮的, 能够适应网络技术发展和应用需求变化的网络. 网络体系结构将为我们指导网络的设计, 降低网络构建的复杂度.
计算机网络=硬件+软件 (操作系统, 协议)
网络功能依赖于具体的协议来实现, 复杂的网络功能需要多个协议来实现, 网络体系结构定义了这些协议 (功能) 的集合和这些协议 (功能) 之间的组织结构.
目前, 大部分的计算机网络 (包括 Internet), 都使用分层的网络体系结构.
分层与协议#
网络的总体设计: 层和协议的集合

在网络体系结构中, 采用分层的思想对网络构建问题进行分解, 分层.
每一层都建立在下一层的基础之上, 为上一层提供服务. 对于每一层, 在网络体系结构中都可以定义相应的协议实现该层所需的服务.
层和协议 (功能) 的集合称为网络体系结构, 层表示了网络协议 (功能) 的组织结构.
协议体系:
- 网络协议: 通信各方关于如何通信的一种约定.
- 协议分层: 为了降低设计的复杂度, 增加网络的可扩展性, 具有概念化, 结构化等优点, 利于导入新业务.
分层的原则: 将相似的功能集中在同一层内, 必要时可以将层的功能再分成子块, 层数不宜过多, 以避免层间接口开销变大. 功能差别较大时应分层处理, 各层只对相邻的上下层定义接口.
协议栈: 一个特定的系统所使用的一组协议, 每一层一个或几个协议.
例: 主机 1 通过网络向主机 2 可靠地发送文件

分层的优点:
- 简化问题
- 各层之间独立
- 灵活
- 结构上可分割
- 易于实现和维护
- 能促进标准化工作
缺点: 有的功能会重复出现, 导致产生额外开销.
期末复习的时候发现有的内容真的在不同章节重复讲了很多遍, 诚不我欺!
各层完成的主要功能#
- 差错控制: 使相应层次对等方的通信更加可靠
- 流量控制
- 分段和重装: 发送端将要发送的数据块划分为更小的单位, 接收端将其还原
- 复用和分用: 发送端几个高层会话复用一条低层的连接, 在接收端再进行分用 (解复用)
- 连接建立和释放: 交换数据前先建立一条逻辑连接, 数据传送结束后释放连接
ISO-OSI 体系结构#
| 主机 | 路由器 | 主机 |
|---|---|---|
| 应用进程 (应用层) | 应用层协议 | 应用进程 (应用层) |
| 表示层 | 表示层协议 | 表示层 |
| 会话层 | 会话层协议 | 会话层 |
| 传输层 | 传输层协议 | 传输层 |
| 网络层 | 路由器的网络层 | 网络层 |
| 数据链路层 | 路由器的数据链路层 | 数据链路层 |
| 物理层 | 路由器的物理层 | 物理层 |
应用层, 表示层, 会话层由网络软件实现, 传输层, 网络层, 数据链路层和物理层由操作系统实现.
Application
Presentation
Session
Transport
Network
Data link
Physical
-- All People Seem To Need Data Processing
Please Do Not Throw Sausage Pizza Away
物理层#
主要功能:
- 激活物理连接以便传送数据 (准备好必要资源, 如缓存区等)
- 原始比特流传送, 分为同步传送/异步传送, 全双工传送/半双工传送
- 物理层连接去激活
相关协议:
- 接口物理规范
- 设备间信号的传送方式, 包括调制方式, 编码, 使用信号处理与传输线路的特性匹配
主要设备: 信号放大器, 集线器
传输介质: 电缆, 光纤, 无线电波
数据链路层#
主要功能:
- 发送方成帧和接收方帧定界
- 处理帧破坏, 丢失和重复所出现的问题
- 流量控制, 避免接收方被快速发送方淹没
- 广播式网络中共享信道的访问控制 (广播式网络: 所有节点通过一条共享链路连接的网络)
相关协议:
- 高级数据链路控制规程 HLDCP
- 点对点协议 PPP
- CSMA/CD
- CSMA/CA
主要设备: 网桥, (L2) 交换机, 无线接入点
数据链路层的数据传输单元称为帧.
网络层#
主要功能:
- 网络互连: 处理不同网络互连中存在的问题
- 路由: 根据数据目的地址, 确定到目的网络的「最佳」路径
- 拥塞控制: 网络中出现过多分组如何处理
主要协议:
- ATM: 发送数据之前需要在发送主机和接收主机之间建立连接, 数据单元为固定长度的信元, 信元中携带连接标识, 沿建立好的连接投递
- IP: 发送数据之前不需要建立连接, 数据单元称为分组, 大小可变, 分组中携带目标主机地址, 可沿不同路径到达目的主机
主要设备: 路由器/L3 交换机
传输层#
主要功能:
- 向上层提供不同类型的传输服务
- 端到端, 在两个端点的主机上运行, 而非在中间路由器上运行. 注意, 物理层, 数据链路层和网络层是在网络中路由器上实现的
- 端到端流量控制
两种类型的传输层服务:
- 面向连接: 在数据传输开始之前, 通过连接建立过程在两个端点之间协商参数, 如流量控制参数, 最大传输单元等
- 无连接: 没有连接建立过程, 直接发送数据
网络中处理传输层及传输层以上协议数据的设备通称为网关 (Gateway)
会话层, 表示层和应用层#
会话层:
- 允许不同主机上的用户之间建立会话
- 会话通常是指各种服务, 包括对话控制, 记录该由哪一方来传输数据, 令牌管理, 禁止双方同时执行同一个关键操作, 以及同步功能
表示层:
- 控制数据格式, 例如文本, 视频, 音频或者图像, 确保来自发送主机的数据能够被接收主机理解
- 数据加密和压缩相关
应用层: 定义了满足各种应用需求的协议
Internet 体系结构 (TCP/IP 结构)#
基于 TCP/IP 参考模型
应用层: FTP Telnet HTTP
传输层: TCP UDP
互联网层: IP
主机到网络层 (网络接口层): Ethernet, Packet Radio, Point-to-Point
TCP/IP 协议栈#

主机到网络层 (网络接口层)#
主机通过某个协议连接到网络上, 以便将分组发送到网络上. TCP/IP 模型实际没有定义该层的具体协议, 它关注的是该层之上的内容.
在 Internet 中通常将一个广播域称为一条链路, 与一般 OSI 参考模型中的链路 (一对一) 不同.
在广播域内, 所有主机都能接收到目的地址为广播域地址的帧.
Internet 中数据传输的一跳 (One Hop) 指跨越一个广播域.
互联网层#
功能上对应 OSI 参考模型的网络层, 主要是 IP 协议, 因此也称 IP 层.
它的任务是将分组投递到最终的目的地, 提供的是一种无连接的不可靠传输.
无连接指的是不建立端对端的专用路径, 每个数据包分开发送, 不可靠就是不可靠. 不可靠性由上层协议如 TCP, 应用层协议等弥补.
IP 的这种尽力服务 (Best Effort) 模型保证了 Internet 的可扩展性, 复杂的网络功能由用户终端设备实现, 网络只负责分组的投递.
传输层#
对应 OSI 参考模型的传输层, 定义了两个协议:
- 传输控制协议 TCP (Transmission Control Protocol): 提供面向连接的可靠的传输服务
- 用户数据协议 UDP (User Datagram Protocol): 提供无连接的不可靠传输服务
应用层#
包含所有高层协议, 无 ISO 模型中的会话层和表示层
- 域名系统 DNS, 域名对应 IP 地址
- HTTP 协议, www 应用
- FTP 协议, 文件传输应用
- Telnet 协议, 远程登录应用
- SMTP 协议, 发送电子邮件
应用层协议与应用层的关系: 应用层不仅需要实现应用层协议, 还要为用户提供操作界面等功能.

关键的网络设备:
- L2 交换机: 网络内设备互连
- 路由器 (L3 交换机): 不同网络互连

主机 1 向主机 2 发送数据#

网络中数据处理流程#

OSI 与 TCP/IP 模型的比较#
相同点:
- 都基于独立的协议栈概念
- 都有功能相似的应用层, 传输层, 网络层
不同点:
- OSI 模型中严格定义了服务, 接口, 协议, 但 TCP/IP 模型中没有严格区分服务, 接口与协议.
- OSI 模型支持非连接和面向连接的网络层通信, 但在传输层只支持面向连接的通信; TCP/IP模型只支持非连接的网络层通信, 但在传输层有支持非连接和面向连接的两种协议可供用户选择.
- TCP/IP 模型中不区分, 甚至不提起物理层和数据链路层.
网络标准化#
国际电信联盟 ITU#
International Telecommunication Union
国际标准化组织 ISO#
International Standards Organization, 制定了 OSI 标准
电气和电子工程师协会 IEEE#
Institute of Electrical and Electronics Engineers
Internet 社区#
- Internet 体系结构委员会 IAB (Internet Architecture Board): 负责定义整个 Internet 体系结构, 为 IETF 提供指导和主要方向
- Internet 工程任务组 IETF(Internet Engineering Task Force): Internet 协议工程化和开发力量
- Internet 工程指导组 IESG (Internet Engineering Steering Group): 负责 IETF 活动的技术管理和 Internet 标准化过程
与 ITU, ISO, IEEE 等组织的标准不同, Internet 社区的协议是开放的.
第三代合作伙伴计划 3GPP#
说真的, 我感觉要背这个真的很弱智.
网络性能度量#
度量单位#
网络容量 (速率) 单位: 1kbps=1000bps,1Mbps=1000kbps,1Gbps=1000Mbps, 1Tbps=1000Gbps
数据量 (存储容量) 单位: 1kB=2^10B, 1MB=2^10KB, 1GB=2^10M, 1TB=2^10G
k 代表十进制计数 1000 (常用于存储器制造商), K 代表二进制计数 1024 (常用于操作系统和软件中), b 代表 bit, B 代表 Byte, QB 代表想出这种东西的人应该枪毙.
速率和带宽#
速率即数据率 data rate 或比特率 bit rate, 定义为一段时间内能传输的比特数, 常见单位是是 bps (b/s), kbps (kb/s), Mbps (Mb/s), Gbps (Gb/s) 等.
带宽有两种含义:
- 信号具有的频带宽度, 单位是 Hz (赫兹)
- 数字信道或者网络所能传送的「最大数据率」, 即信道或者网络的实际容量, 单位是 bps
二者的本质是相同的, 通信链路的「带宽」越宽, 其所能传输的「最高数据率」也越高. 在网络性能度量时, 带宽和速率常常互相通用, 不加区分.
吞吐量#
吞吐量指网络的可用带宽, 应用感受到的有用带宽, 与带宽相比用吞吐量度量网络性能更有意义.
原因: 协议栈每一层协议都有头标尾部等开销, 和协议实现机制的开销. 因此准确的吞吐量应当指明是哪个协议的吞吐量.
网络延迟 Latency/Delay包括:
- 发送延迟 Transmit: 与发送分组的大小和带宽有关
- 传播延迟 Propagation: 与距离和电磁波传播速度有关
- 处理延迟 Process: 节点对分组进行处理导致的延迟, 一般相对固定, 不予考虑
- 排队延迟 Queue: 中间路由器或交换机将分组转发出去之前将其存储的时间
延迟抖动 delay jitter: 由延迟的可变部分变化导致, 主要由中间路由器上的排队延迟的不确定性导致
对大文件传输, 带宽更重要; 对小消息 (HTTP, NFS), 延迟更重要.
往返时间 Round-Trip Time (RTT): 发送方发送完数据, 到发送方收到来自接收方确认所需时间.
RTT = A 到 B 的传播延迟+B 的处理和排队延迟+B 的发送延迟+B 到 A 的传播延迟, 注意 A 到 B 和 B 到 A 传播延迟相等.
延迟带宽乘积: 传播延迟×带宽.
单项延迟×带宽: 第一个比特到达接收端之前, 发送者能发送的比特数
RTT×带宽: 发送端在接收到接收端给出的确认之前能够发送的比特数
链路的延迟带宽积又称为以比特为单位的链路长度.