目录
一、因特网基础认识
1. 初识因特网
2. 网络服务
3. 网络协议
4. 网络边缘
5. 物理链路
(1)双绞铜线
(2)同轴电缆
(3)光纤
6. 网络的网络(因特网)
二、网络核心
1. 分组交换
(1)存储转发传送
(2)排队时延和分组丢失
(3)转发表和路由选择协议
2. 电路交换
一、因特网基础认识
1. 初识因特网
因特网 是一个世界范围的 计算机网络,即它是一个 互联了遍及 全世界数十亿计算 设备的网络。在不久前,这些计算设备多数是传统的桌面 PC、Linux 工作站 以及 所谓的服务器(它们用于存储 和 传输 Web 页面和电子邮件报文 等 信息)。然而,越来越多的 非传统的因特网 “ 物品 ”(如智能手机、平板电脑、电视、游戏机、手表、汽车等)正在 与 因特网相连。用 因特网术语 来说,所有这些设备都称 为主机(host)或端系统(endsystem)。
端系统通过 通信链路(communication link)和 分组交换机(packet switch)连接到一起。这些 物理媒体 包括同轴电缆、铜线、光纤 和 无线电频谱。
不同的链路 能够 以不同的 速率 传输数据,链路的 传输速率(transmission rate)以 比特/秒(bit/s,或 bps)度量。
当一台端系统 要向 另一台端系统 发送数据时,发送端系统 将 数据分段,并为 每段加上 首部字节。由此 形成的信息包 用计算机网络的 术语来 说称为 分组(packet)。这些 分组 通过网络发送 到 目的端系统,在那里 被装配成 初始数据。
分组交换机 从它的一条 入通信链路 接收到达的 分组,并从 它的一条出通信链路 转发该分组。在当今的 因特网中,两种 最著名的类型是 路由器(router)和 链路层 交换机(link-layer switch)。这两种类型的交换机朝着最终目的地转发分组。
链路层交换机 通常用于 接人网中,而 路由器通常用于 网络核心中。
从 发送端系统到 接收端系统,一个分组 所经历的一系列 通信链路 和 分组交换机称为 通过该 网络的 路径(route 或 path)。
用于传送分组的 分组 交换网络在 许多方面类似于承载运输车辆的 运输网络,该网络包括了 高速公路、公路和交叉口。
例如,一个工厂需要 将大量货物搬运到 数千公里以外 的某个 目的地仓库。
在工厂中,货物 要分开并装上 卡车车队。然后,每辆 卡车独立地 通过高速公路、公路 和 立交桥 组成的网络 向 仓库运送货物。
在 目的地仓库,卸下这些货物,并且与一起装载的 同一批货物的 其余 部分堆放在一起。
因此,在许多方面,分组类似于 卡车,通信链路类 似于 高速公路和公路,分组交换机类似于交叉口,而端 系统类似于建筑物。就像 卡车选取 运输网络的一条路径 前行一样,分组则 选取计算机网络的 一条路径前行。
端系统 通过 因特网 服务提供商(Internet Service Provider,ISP)接入因特网(包括如 本地电缆 或 电话公司那样的 住宅区 ISP、公司ISP、大学 ISP、 WiFi接人的 ISP、蜂窝数据ISP)。
每个 ISP 自身 就是一个 由多台分组交换机 和 多段通信链路组成的 网络。各 ISP 为 端系统提供了 各种不同类型的 网络接入(住宅宽带接入、高速局域网接入 和 移动无线接入)。ISP 也为内容提供者 提供 因特网接入服务,将 Web 站点 和 视频服务器 直接连入 因特网。
因特网就是 将端系统 彼此互联,因此 为端系统提供接人的 ISP 也 必须互联。较低层的 ISP 通过国家的、国际的较高层 ISP(如 Level 3 Communica-tions、AT&T、Sprint 和 NTT)互联起来。较高层 ISP 是由通过 高速光纤链路互联的 高速路由器 组成的。
无论是 较高层 还是 较低层 ISP 网络,它们 每个都是 独立管理的,运行着 IP 协议,遵从一定的 命名 和 地址规则。
端系统、分组交换机和其他因特网部件都要运行 一系列协议(protocol),这些 协议控制 因特网中信息的 接收 和 发送。TCP(Transmission Control Protocol,传输控制协议)和 IP(Internet Protocol,网际协议)是因特网中两个 最为重要的 协议。IP 协议定义了 在路由器 和 端系统之间 发送 和 接收的 分组格式。因特网的 主要协议统称为 TCP/IP。
2. 网络服务
从为 应用程序 提供服务的 基础设施的 角度 来描述 因特网。除了 诸如 电子邮件和 Web 冲浪等 传统应用外,因特网 应用 还包括 移动智能手机 和 平板电脑 应用程序。因为 这些应用程序 涉及 多个相互交换数据的 端系统,故它们 被称为 分布式应用程序(distributed application)。
重要的是,因特网 应用程序运行在 端系统上,即 它们 并不运行在 网络核心中的 分组交换机 中。尽管 分组交换机能够 加速端系统 之间的 数据交换,但它们 并不在意 作为 数据的源 或 宿的应用程序。
应用程序 运行在 端系统上,所以 需要编写运行 在端系统上的 一些软件。此时,因为 在研发一种分布式 因特网 应用程序,运行 在不同端系统上的 软件 将需要 互相发送数据。那么 运行在一个端系统上的 应用程序 怎样才能 指令因特网向运行在 另一个端系统上的 软件发送数据 呢 ?
与 因特网相连的端系统提供了一个 套接字接口(socket interface),该接口 规定了 运行在一个 端系统上的程序 请求 因特网基础设施 向运行在 另一个端系统 上的 特定目的 地程序交付 数据的方式。
因特网 套接字接口 是一套发送程序 必须遵循的 规则集合,因此 因特网能够 将数据 交付给目的地。
做一个简单的类比。假定 Alice 使用邮政服务 向 Bob 发一封信。当然,Alice 不能只是写了这封信(相关数据)然后把该信丢出窗外。相反,邮政服务 要求 Alice 将 信放入 一个信封中;在信封的中间写上Bob 的全名、地址 和 邮政编码;封上信封;在信封的右上角贴上邮票;最后 将该信封丢进 一个邮局的 邮政服务信箱 中。
因此,该邮政服务有自己的 “ 邮政服务接口 ” 或 一套规则,这是 Alice 必须遵循的,这样邮政 服务才能 将她的 信件交付给 Bob。
同理,因特网 也有一个 发送数据的程序 必须遵循的 套接字接口,使 因特网向接 收数据的 程序 交付数据。
3. 网络协议
协议 (protocol)定义了在两个 或 多个通信实体之间 交换的报文的格式 和 顺序,以及 报文发送或接收一条报文 或 其他事件 所采取的动作。
因特网(更一般地说是计算机网络)广泛地 使用了 协议。不同的协议 用于完成 不同的 通信任务。网络协议 除了 交换报文 和 采取动作的 实体是 某些设备(可以是计算机、智能手机、平板电脑、路由器 或 其他具有网络能力 的设备)的硬件 或 软件组件。在因特网中,涉及 两个 或 多个远程通信实体 的所有活动 都受协议的 制约。
4. 网络边缘
我们通常把 与 因特网相连的计算机 和 其他设备称为 端系统。因为 它们位于 因特网的 边缘,故而被称为 端系统。
因特网的 端系统包括了 桌面计算机(例如,桌面 PC、Mac 和 Linux 设备)、服务器(例如,Web 和电子邮件服务器)和 移动计算机(例如,便携机、智能手机和平板电脑)。
此外,越来越多的非传统物品正被作为端系统 与 因特网相连。
端系统也称为主机(host),因为它们容纳(即运行)应用程序,如 Web 浏览器程序、Web 服务器程序、电子邮件客户程序 或 电子邮件服务器程序 等。
主机有时又被 进一步划分为两类:客户(client)和服务器 (server)。
客户通 常是桌面 PC、移动 PC 和 智能手机等,而 服务器 通常 是更为 强大的机器,用于存储 和 发布 Web 页面、流视频、中继电子邮件 等。
今天,大部分提供搜索结果、电子邮件、Web 页面和视频的服务器都属于大型数据中心(datacenter)。例如,谷歌公司(Google)拥有50~100个数据中心,其中 15 个 大型数据中心每个都有 10万台 以上的服务器。
5. 物理链路
(1)双绞铜线
双绞线由 两根绝缘的 铜线组成,每根大约 1mm 粗,以 规则的 螺旋状排列 着。这 两根线 被绞合起来,以 减少邻近类似的 双绞线的 电气干扰。通常 许多双绞线捆扎 在一起形成 一根电缆,并在 这些双绞线 外面覆盖上 保护性 防护层。一对 电线构成了 一个通信 链路。
最便宜 并且 最常用的 导引型传输媒体是 双绞铜线。一百多年来,它一直用于电话网。事实上,从 电话机到 本地电话交换机的 连线 超过 99% 使用的是 双绞铜线。无屏蔽双绞线(Unshielded Twisted Pair,UTP)常用在 建筑物内的 计算机 网络中,即用于 局域网(LAN)中。目前 局域网中的 双绞线的 数据速率 从10Mbps 到 10Gbps。所能达 到的 数据传输速率 取决于 线的粗细以及 传输方 和 接收方之间 的距离。
(2)同轴电缆
与双绞线 类似,同轴电缆 由两个铜导体 组成,但是 这两个导体是 同心的 而不是并行的。借助于 这种结构 及 特殊的绝缘体 和 保护层,同轴电缆 能够达到 较高的数据 传输速率。
同轴电缆 在电缆 电视系统中 相当普遍。电缆电视系统 最近 与 电缆调制解调器 结合起来,为 住宅用户提供数 10Mbps 速率的 因特网 接入。
在电缆 电视 和 电缆因特网 接入中,发送设备 将 数字信号调制 到 某个特定的 频段,产生的模拟信号 从发送设备 传送到 一个 或 多个接收方。许多端 系统能够 直接与 该电缆相连,每个端系统都 能接收由其他 端系统发送的 内容。
(3)光纤
光纤是 一种细而 柔软的、能够 导引光脉冲的 媒体,每个 脉冲表示一个 比特。一根光纤 能够支持 极高的比特速率,高达 数十 甚至 数百 Gbps。
它们 不受电磁干扰,长达 100km 的光缆信号 衰减极低,并且 很难窃听。这些 特征使得 光纤成为 长途导 引型传输媒体,特别是 跨海链路。然而,高成本的光设备,如发射器、接收器和交换机,阻碍光纤 在 短途传输中的应用,如在 LAN 或 家庭接入网 中就不使用它们。
6. 网络的网络(因特网)
今天的因特网是一个 网络的网络,其结构复杂,由 十多个第一层 ISP 和 数十万个 较低层 ISP组成。ISP 覆盖的 区域多种多样,有些 跨越多个大洲和大洋,有些 限于狭窄的 地理区域。
较低层的 ISP 与 较高层的 ISP 相连,较高层 ISP 彼此互联。用户 和 内容提供商 是较低层 ISP 的客户,较低层 ISP 是较高层ISP 的客户。
近年来,主要的内容提供商 也 已经创建 自己的网络,直接在 可能的 地方 与 较低层 ISP 互联。
二、网络核心
网络核心,即 由互联因特网端系统的 分组交换机 和 链路构成的 网状网络。通过 网络链路 和 交换机移动数据 有两种 基本方法:电路交换(circuit switching)和分组交换(packet switching)。
1. 分组交换
在 各种网络应用 中,端系统 彼此 交换报文(message)。报文 能够包含协议 设计者 需要的 任何东西。报文 可以执行 一种控制 功能,也可以 包含数据,例如 电子邮件 数据、JPEG 图像 或 MP3 音频文件。
为了 从源端系统 向目的端系统 发送一个 报文,源 将长报文划分为 较小的 数据块,称之 为分组(packet)。
在源 和 目的地 之间,每个 分组都通过 通信链路 和 分组交换机 (packet switch)传送。分组以等于 该链路 最大传输速率的 速度传输 通过通信链路。
交换机主要有两类:路由器(rouler)和链路层交换机(link-layer switch)。
(1)存储转发传送
多数分组交换机 在 链路的 输入端 使用存储 转发传输(store-and-forward transmission)机制。存储转发传输 是指 在交换机能够开始 向 输出链路传输该 分组的 第一个 比特之前,必须 接收到 整个分组。
一台 路由器 通常有多条繁忙的链路,因为 它的 任务就是 把一个人分组 交换到 一条出链路。
在 上图这个简单例子中,该路由器的任务相当简单:将分组 从一条(输人)链路 转移到 另一条唯一的 连接链路。在 上图所示的 特定时刻,源 已经传输了 分组 1 的一部分,分组 1 的前沿 已经到达了 路由器。因为 该路由器 应用了 存储 转发机制,所以 此时 它还 不能传输 已经接收的 比特,而是 必须先缓存(即 “ 存储 ” )该分组的 比特。
仅当路由器已经接收完了该分组的所有比特后,它才能开始向出链路传输(即 “ 转发 ”)该分组。
(2)排队时延和分组丢失
每台分组交换机 有多条链路 与 之相连。对于 每条相连的 链路,该 分组交换机 具有 一个输出缓存(output buffer,也称输出队列(output queue)),它 用于存储 路由器准备 发往 那条链路的分组。
如果 到达的 分组需要 传输到 某条链路,但发现 该链路正 忙于传输 其他分组,该 到达分组必须 在输出缓存中 等待。因此,除了 存储转 发时延以外,分组 还要 承受输出缓存的 排队时延(queuing delay)。
这些时延 是变化的,变化的程度取决于 网络的 拥塞程度。因为 缓存空间的 大小 是有限的,一个 到达的分组 可能 发现 该缓存 已被 其他 等待传输的 分组 完全充满了。在此情况下,将出现 分组丟失(丢包)(packet loss)到达的 分组或已经排队的 分组之一将 被丢弃。
在上图中,分组被表示为 三维厚片。厚片的 宽度表示了 该分组 中比特的数量。
在这张图中,所有 分组具有 相同的宽度,因此 有相同的长度。假定 主机 A 和 B 向主机 E 发送分组。
- 主机 A 和 B 先通过100Mbps 的以太网链路向 第一个 路由器 发送分组。该路由器 则 将这些分组导向 到一条15Mbps 的 链路。
- 在某个 短时间间隔 内,如果 分组到达路由器 的 到达率(转换为每秒比特)超过了15Mbps,这些分组 在通过 链路传输 之前,将在 链路输出缓存 中排队,在该 路由器 中将 出现拥塞。例如,如果主机 A 和 主机 B 每个 都同时发送了 5 个紧接 着的 分组突发块,则 这些分组中的 大多数将 在队列中 等待一些时间。
(3)转发表和路由选择协议
在因特网中,每个端系统 具有一个称为 IP 地址的 地址。当源主机 要向 目的端系统 发送一个分组时,源 在该分组的 首部包含 了 目的地的 IP 地址。
该地址 具有一种 等级结构。当一个 分组到达 网络中 的 路由器时,路由器 检查 该分组的 目的地址的一部分,并向 一台相邻路由器 转发该分组。
特别的是,每台路由器 具有一个 转发表(forwarding table),用于 将目的地址(或目的地址的一部分)映射成为 输出链路。
当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现 适当的出 链路。路由器 则 将分组导向 该出链路。
转发表 是 如何进行设置的 ?是通过 人工对 每台路由器逐台 进行配置,还是 因特网使 用更为自动的 过程 进行配置 呢 ?
因特网 具有一些特的 路由 选择协议(routing protocol),用于 自动地设置 这些 转发表。例如,一个路由 选择协议 可以决定 从每台路由器 到每个目的地的 最短路径,并 使用这些 最短路径结果 来配置 路由器中的 转发表。
2. 电路交换
在电路交换网络中,在端系统间 通信会话 期间,预留了 端系统间 沿路径 通信 所需要的 资源(缓存,链路传输速率)。在 分组交换网络中,这些资源则 不是预留的;会话的 报文按 需使用这些资源,其后果 可能是 不得不等待(即排队)接入 通信线路。
传统的 电话 网络是电路交换网络的 例子。考虑 当一个人 通过电话网向 另一个人 发送信息(语音或传真)时所 发生的情况。在 发送方能够发送信息 之前,该网络 必须在 发送方和 接收方之间 建立一条连接。
这是一个 名副其实的 连接,因为 此时 沿着发送方 和 接收方之间路径上 的交换机 都将为 该连接维护 连接状态。
用电话的术语来说,该 连接被称为 一条 电路(circuit)。当 网络创建 这种电路 时,它 也在连接期间 在该网络链路上 预留了 恒定的 传输速率(表示 每条链路 传输容量的 一部分)。既然 已经为该 发送方-接收方 连接 预留了 带宽,则 发送方能够 以确保的 恒定速率 向 接收方 传送数据。
上图显示了一个 电路交换网络。在 这个网络中,用 4 条链路 互联了 4 台 电路交换机。这些链路中的 每条都有 4 条电路,因此 每条链路 能够 支持 4 条并行的 连接。每台主机(例如 PC 和工作站)都 与一台交换机 直接相连。
当 两台主机 要通信时,该 网络在 两台主机之间 创建 一条 专用的 端到端 连接(end-to-endconnection)。因此,主机 A 为了向主机 B 发送报文,网络 必须在 两条链路的 每条上先 预留一条电路。
在这个例子中,这条专 用的端到端 连接使用 第一条链路中 的 第二条电路 和 第二条链路中的 第四条电路。因为 每条链路具有 4 条电路,对于 由端到端 连接 所使用的 每条链路 而言,该连接 在连接期间 获得 链路 总传输容量的 1/4。例如,如果 两台邻近 交换机之间 每条链路 具有 1Mbps 传输速率,则 每个 端到端 电路 交换 连接获得 250kbps 专用的 传输速率。
考虑一台 主机要 经过分组 交换网络(如因特网)向 另一台主机 发送分组 所发生的情况:
与使用 电路交换相同,该 分组经过 一系列通信 链路传输。但 与电路交换 不同的是,该 分组被 发送进网络,而 不预留 任何链路 资源 之类的 东西。
如果 因为此时 其他 分组 也需要 经该链路 进行传输 而使链路 之一 出现拥塞,则 该分组将 不得不在 传输链路发送侧的 缓存中 等待而 产生时延。因特网 尽最大努力 以实时 方式交付分组,但它 不做任何保证。