Chap 1 计算机网络和因特网#
1.1 什么是因特网#
1.1.1 因特网的具体构成描述#
- 各种各样的设备都被连接到因特网,这些设备都被称为主机或端系统. 端系统通过通信链路和分组交换机连接到一起.
- 分组: 一台端系统向另一台端系统发送数据时, 发送端系统将数据分组, 并为每段加上首部字节
- 分组交换机: 从入通信链路接受分组, 从出通信链路转发分组. 路由器和链路层交换机
- 一个分组从发送端到接收端所经历的一系列通信链路和分组交换机称为通过该网络的路径 (route 或 path)
- 端系统通过因特网服务提供商 (Internet Servise Provider, ISP) 接入因特网
- 端系统, 分组交换机和其他因特网部件, 都要运行控制因特网中信息接收和发送的一系列协议. TCP (Transmission Control Protocol, 传输控制协议), IP (Internet Protocol, 网际协议). IP 协议定义了在路由器和端系统中发送和接受的分组的格式. 因特网的主要协议统称为 TCP/IP.
1.1.2 服务描述#
- 因特网也可以被描述为: 为应用程序提供服务的基础设施.
- 与因特网相连的端系统提供了一个应用程序编程接口 (Application Programming Interface, API), 规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的的软件交付数据的方式.
- 一个协议定义了在两个或多个通信实体之间交换的报文格式和次序, 以及在报文传输和/或接受或其他事件方面做采取的动作.
1.2 网络边缘#
1.2.1 客户机和服务器程序#
- 客户器程序是运行在一个端系统上的程序, 它发出请求, 并从运行在另一个端系统上的服务器程序接受服务.
- P2P 应用程序: 其中的端系统互相作用并执行客户机和服务器功能的程序.
1.2.2 接入网#
- 接入网: 将端系统连接到其边缘路由器的物理链路 (边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器)
- 网络接入大致分为三种类型: 住宅接入, 公司接入, 无线接入.
- 住宅接入: 将家庭端系统与边缘路由器相连接
- 通过普通模拟电话线用拨号调制解调器与住宅 ISP 相连, 家用调制解调器将 PC 输出的数字信号转换为模拟形式, 以便在模拟电话线上传输
- 宽带住宅区接入有两种常见类型: 数字用户线 (digital subscriber line, DSL) 和混合光纤同轴电缆 (hybrid fiber-coaxial cable, HFC)
- 公司接入: 局域网 (LAN) 通常被用于连接端用户与边缘路由器
- 无线接入: 在无线局域网中, 无线用户与位于几十米内的基站之间传输/接收分组. 在广域无线接入网中, 分组经用于蜂窝电话的相同无线基础设施进行发送.
1.3 网络核心#
- 通过网络链路和交换机移动数据有两种基本方法: 电路交换和分组交换
- 电路交换: 沿着系统通信路径, 为端系统之间通信所提供的资源在通信会话期间会被预留 – 电话网络
- 分组交换: 这些资源不会被预留, 会话的报文按需使用这些资源, 导致可能不得不等待 (排队) – 因特网
- 作者用去饭店吃饭的例子解释了以上两条: 需要预约的饭店, 和不需要预约但是不一定有位置的饭店.
- 电路交换和其中的多路复用
- 频分多路复用 (FDM)
- 时分多路复用 (TDM)
- 分组交换:
- 报文 (message): 包含协议设计者需要的全部信息
- 分组: 源主机将长报文划分为较小的数据块
- 分组交换机: 交换机主要有路由器和链路层交换机两类
- 存储转发传输机制: 在交换机能够开始向输出链路传输该分组的第一个比特之前, 必须接收到整个分组 –> 存储转发时延.
- 输出缓存 (输出队列): 如果到达的分组需要跨越链路传输, 但发现该链路正在忙于传输其他分组 –> 排队时延; 到达的分组发现该缓存被等待传输的分组充满了 –> 分组丢失/丢包
- 按需共享资源有时被称为资源的统计多路复用
- 分组到达路由器后, 每个路由器有一个转发表, 用于将分组头部的目的地址映射到输出链路.
- ISP 和因特网主干
- 第一层 ISP:
- 直接与其他每一个第一层 ISP 相连
- 与大量的第二层 ISP 和其他客户网络相连 – 客户, 提供商
- 覆盖国际区域
- 因特网由几十个第一层 ISP 和第二层 ISP 与数以千计的较低层 ISP 组成. ISP 覆盖的区域不同, 较低层的 ISP 与较高层的 ISP 相连, 较高层 ISP 彼此互联. 用户和内容提供商是较低层 ISP 的客户, 较低层的 ISP 是较高层的 ISP 的客户.
1.4 分组交换中的时延、丢包和吞吐量#
- 时延的类型
- 处理时延: 检查分组首部以决定去向, 检查比特级差错
- 排队时延: 分组在链路上等待传输
- 传输时延: $L$表示分组的长度, $R\ bps$表示从路由器 A 到路由器 B 的链路传输速率. $L/R$是将分组的所有比特推向链路所需要的时间
- 传播时延: 该链路的起点到路由器 B 传播所需要的时间
- $t_{nodal} = t_{proc} + t_{queue} + t_{trans} + t_{prop}$
- 排队时延和丢包
- 流量强度: $a$表示分组到达队列的平均速率, 则比特到达队列的平均速率为$La$, $\dfrac{La}{R}$定义为流量强度. (设计系统时流量强度不能大于 1). 流量强度接近于 0 时, 平均排队时延将接近于 0; 流量强度接近于 1 时, 平均排队时延将迅速增加;
- $t_{queue} = \dfrac{I}{1-I}\dfrac{L}{R}$, $I=\dfrac{La}{R}$表示流量强度, $\dfrac{L}{R}$是一个分组的传输时间
- 吞吐量: 瞬时吞吐量 (bps) 和平均吞吐量.
- 对于简单的两链路网络, 假设$R_S$为服务器和路由器之间的链路速率, $R_C$为路由器和和客户机之间的链路速率. 吞吐量是$\min{R_S, R_C}$, 即瓶颈链路的传输速率.
1.5 协议层次和它们的服务类型#
- 分层的体系结构: 某层对其上面的层提供相同的服务, 并且使用来自下面层次的服务 (服务类型). 当某层的实现变化时, 该系统的其余部分可以保持不变.
- 层 n 的协议通常分布在构成网络的端系统, 分组交换机和其他组件中.
- 各层的所有协议被称为协议栈: 物理层, 链路层, 网络层, 运输层, 应用层.
- 应用层: HTTP, SMTP, FTP… 协议分布在端系统上, 一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组 (报文).
- 运输层: TCP, UDP. 运输层分组称为报文段.
- 网络层: 将称为数据报的网络层分组从一台主机移动到另一台主机.
- 链路层: 通过一系列路由器在源和目的地之间发送分组. 链路层分组称为帧.
- 物理层: 将整个帧从一个网络元素移动到邻近的网络元素.
- 在每一层, 分组具有两种类型的字段: 首部字段和有效载荷字段, 有效载荷通常来自上一分组.