Tags: 计算机网络
第一章 计算机网络和因特网
1.1. 什么是因特网
1.1.1 具体构成描述
- 端系统通过 通信链路 和 分组交换机 连接到一起。
- 链路的 传输速率 以 bit/s 或 bps 衡量。
- 两种最著名的分组交换机是 路由器 和 链路层交换机 。链路层交换机通常用于接入网中,路由器通常用于网络核心中。
- 端系统、分组交换机和其他因特网部件都要运行一系列 协议,这些协议控制因特网中信息的接收和发送 。 TCP (Transmission Control Protocol,传输控制协议 ) 和 IP (Internet Protocol, 网际协议 ) 是因特网网中最重要的两个协议。
1.1.2 服务描述
- 与因特网相连的端系统提供了一个 应用程序编程接口 ,该 API 规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的软件交付数据的方式。
1.1.3 什么是协议
- 协议 定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和接收一条报文或其他事件所采取的动作。
1.2. 网络边缘
- 主机分为: 客户 和 服务器 。
1.3. 网络核心
1.3.1 分组交换
- 源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称为 分组 。
- 分组以等于该链路最大传输速率的速度传输通过通信链路。
存储转发传输
- 多数分组交换机在链路的输入端使用存储转发传输。
- 存储转发机制是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。
- 端到端时延
- N 条速率均为 R 的链路组成的路径 (即在源和目的之间有 N-1 台路由器),从源到目的地发送一个分组的端到端时延为:
d=N∗L/R
- N 条速率均为 R 的链路组成的路径 (即在源和目的之间有 N-1 台路由器),从源到目的地发送一个分组的端到端时延为:
- 排队时延和分组丢失
- 每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存,它用于存储交换机准备发往那条链路的分组。
- 排队时延
某条链路正在传输分组时,新到达的分组必须在输出缓存中等待。 - 分组丢失(丢包)
缓存空间满了的情况下,如果有新的分组到达,则新到达的分组或者缓存中的分组之一会被丢弃。
- 转发表和路由选择器
- 每个端系统都有 IP 地址。当源主机向端系统发送一个分组时,源在该分组的首部包含了目的地的 IP 地址。当一个分组到达路由器时,路由器检查该分组的目的地址,并向一台相邻的路由器转发该分组。
- 每台路由器都具有一个转发表,用于将目的地址(或者地址的一部分)映射成为输出链路。
1.3.2 电路交换
- 在电路交换网络中,预留了端系统间通信沿路径所需要的资源(缓存,传输速率等)。
- 电路交换网络中的复用
- 链路中的复用是通过频分复用(FDM)或时分复用(TDM)来实现的。
- 对于 FDM ,链路的频谱由跨越链路创建的所有连接所共享。特别是,在连接期间为每条链路专用一个频段。该频段的宽度称为 带宽。每条电路连续的得到部分带宽。
- 对于 TDM ,时间被划分为固定区间的帧,并且每帧又被划分为固定数量的时隙。每条电路在时隙中得到全部带宽。
1.3.3 网络的网络
1.4 分组交换网中的时延、丢包和吞吐量
1.4.1 分组交换网中的时延概述
- 时延的类型
- 处理时延
检查分组首部和决定将该分组导向何处以及处理其他因素所需要的时延。 - 排队时延
分组在链路上等待传输的时间。 - 传输时延
将所有分组的比特推(传输)到链路所需要的时间。 - 传播时延
分组被推到链路后,到达下一个路由器的时间。
注意传输时延和传播时延的区别
- 处理时延
1.4.2 排队时延和丢包
- 假设一条链路的传输速率是 R bps,比特到达队列的速率为 L bps。则称比率 L/R 为流量强度。当流量强度 >1 时,队列将无限增加。所以必须控制流量强度 <=1 <script type="math/tex" id="MathJax-Element-5"><= 1</script>。
- 当流量强度接近或者大于 1 时,将发生丢包。
1.4.3 端到端时延
- Traceroute:用来追踪到目的主机之间经过的路由器以及其所花费的时间。window 下可用 tracert 命令来实现。
1.4.4 计算机网络中的吞吐量
考虑从主机 A 向主机 B 传送一个大文件。
- 在任何时间瞬间的 瞬时吞吐量 是主机 B 接收该文件的速率(以 bps 计)。
- 如果该文件由 F 比特组成,主机接收共用了 T 秒,则文件的 平均吞吐量 是 F/T bps。
假设在服务器和客户机之间具有 N 条链路的一个网络,这 N 条链路的传输速率分别是 R1,R2,...,RN ,则从服务器到客户机的文件传输的吞吐量 min(R1,R2,...,RN) .
- 在今天因特网中对吞吐量的限制通常是接入网。
1.5 协议层次及其服务模型
1.5.1 分层的体系结构
协议分层
- 网络设计者以 分层 的方式组织协议以及实现这些协议的网络硬件和软件。各层所有的协议被称为 协议栈。
因特网的协议栈由 5 个层次组成:
应用层
应用层是网络应用程序及他们的应用层协议存留的地方。
应用层协议分布在多个端系统上,一个端系统的应用程序使用协议与另一个端系统中的应用程序交换信息的分组。这种位于应用层的信息分组称为 报文(message)。运输层
运输层在应用程序端点之间传送应用层报文。
在因特网中,有两个运输协议,即 TCP 和 UDP。
运输层分组称为 报文段(segmen)。网络层
在一台源主机中的因特网运输层协议向网络层递交运输层报文段和目的地址。
网络层将称为 数据报(datagram) 的网络层分组从一台主机移到另一台主机。
网络层的协议是 IP 协议,所有具有网络层的因特网组件必须运行 IP 协议。
因特网的网络层也包括路由选择协议,它使得数据报根据该路由传输到目的地。链路层
在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。在下个节点,链路层将数据报上传给网络层。
由链路层提供的服务取决于应用于该链路层的特定链路层协议。
链路层分组称为 帧(frame)。物理层
物理层的任务是将帧中的一个一个比特从一个节点移动到下一个节点。
1.5.2 封装
- 下图显示了这样一条物理路径:
数据从发送端系统的协议栈向下,向上和向下经过中间的链路层交换和路由器的协议栈,进而向上到达接收系统的协议栈。 - 也说明了一个重要的概念:封装
在发送主机端,一个应用层报文被传送给运输层。
在最简单的情况下,运输层收取到报文并加上运输层首部(图中的 Ht ),该首部被接收端的运输层使用。应用层报文和运输层首部一道构成了 运输层报文段。运输层报文段因此封装了应用层报文。
运输层则向网络层传递该报文段,网络层增加了如源和和目的端系统地址等网络层首部信息(图中的 Hn ),产生了网络层数据报。
该数据报接下来被传递给链路层,链路层增加它自己的链路层首部并创建链路层帧。
所以,在每一层,一个分组具有两种类型的字段:首部字段和有效荷载字段。有效荷载字段通常是来自上一层的分组。
1.6 面对攻击的网络
- 今天的多数 恶意软件 是 自我复制 的。
- 病毒(virus)
需要某种形式的用户交互来感染用户设备的恶意软件。 - 蠕虫(worm)
无需任何明显用户交互就能进入设备的恶意软件。
- 病毒(virus)
- 拒绝服务攻击(DoS)
使得网络、主机或其他基础设备不能由合法用户所使用。 - 分布式DoS(DDoS)
控制多个源并让源向目标猛烈发送流量。 - 分组嗅探器
记录每个流经的分组副本的被动接收机。 - IP 哄骗
将具有虚假源地址的分组注入因特网的能力。