12940 字
65 分钟

Introduction

Uses of Computer Networks#

What Is a Computer Network?#

计算机网络(Computer Network) 是相互连接、能够交换信息的自主计算设备的集合。

设备能够独立工作、设备之间互联、互联后能够交换信息

设备可以是计算机,也可以是手机、传感器和其他带有计算能力的终端。

按照网络用途分为五类:

用途典型内容
获取信息浏览网页、查阅数字图书馆、获取课程资料,以及根据用户行为投放广告
人与人通信即时消息、微信等多人消息服务、社交网络、多人共同编辑的 Wiki
电子商务网上购物、企业采购、在线金融交易、二手商品交易
娱乐基于 IP 的网络电视(IPTV)、音视频流媒体、多人游戏、共享虚拟世界
物联网环境监测、智能家居、联网传感器、停车管理

Client–Server and Peer-to-Peer Communication#

客户端—服务器模型(Client–Server,C/S) :客户端主动请求信息或服务,服务器接收请求、处理后返回结果。

客户端进程 ── 请求 ──→ 服务器进程
客户端进程 ←─ 应答 ─── 服务器进程
↑
处理请求

例如,用手机或笔记本访问浙大网站:浏览器一侧发出请求,网站服务器提供对应内容。同一台服务器可以服务多个客户端。

对等通信(Peer-to-Peer,P2P) :没有固定的客户端与服务器划分。参与者可以向别人请求资源,也可以把自己的资源提供给别人。

Types of Computer Networks#

Network Roles#

类型主要职责典型场景
宽带与移动接入网络把终端用户接入互联网家庭宽带、手机移动网络
数据中心与内容提供商网络存放数据、运行应用、向用户提供内容云服务、视频服务的服务器集群
中转网络在不同网络之间承载流量接入网络与内容网络之间的连接
企业网络支持一个组织内部的资源共享与协作校园、办公楼、跨地区分支机构

一次访问可能依次经过“接入网络 → 中转网络 → 内容提供商网络”,也可能通过直接互联省去部分中转环节。

Broadband Access and Network Value#

梅特卡夫定律(Metcalfe’s law) 用网络规模解释网络价值:用户越多,潜在的交流与资源连接越多。教材将它明确表述为一种假说,即网络价值大致与用户数的平方成正比:

V∝n2V \propto n^2

一个直观解释是,nn 个用户之间可能形成 n(n−1)/2n(n-1)/2 对联系。

Wireless and Mobile Networks#

无线描述通信链路使用的介质;移动描述设备或用户的使用方式。

无线移动使用场景
否否办公室里通过网线连接的固定台式机
否是随身携带笔记本,到酒店后插网线使用
是否固定放置、通过无线网络连接的设备
是是工作人员拿着无线手持设备在仓库盘点

台式机可以装无线网卡,酒店也可以提供 Wi-Fi;携带笔记本到其他地方使用,不要求它在移动过程中一直联网。

移动设备还支持定位和移动业务:GPS 用于定位;地理标记把拍摄位置附在照片、视频上;移动商务通过手机完成交易;近场通信(NFC) 让设备与附近读卡器交互,课上用手机靠近读卡设备完成支付来说明。

Example#

停车服务 :

车位状态采集 :车位上的传感器感知车辆进入或离开。地磁感知与微波雷达配合判断,再通过低功耗无线通信,把“有车/无车”状态送往网关和云端。

车辆身份关联 :仅有占用状态,还不知道停的是哪辆车。系统需要结合入口处的车牌识别等信息,把车辆身份与车位状态关联起来。

云端业务处理 :云端记录到达和离开时刻,根据

停车时长=离开时刻−进入时刻\text{停车时长}=\text{离开时刻}-\text{进入时刻}

及计费规则计算费用,再与支付、账单等功能衔接。

车辆进入/离开 → 传感器采集占用状态 → 无线网关 → 云端
↓
车牌识别与车辆信息 ───────────────────────→ 关联、计时、计费

传感器负责取得物理状态,网络负责送达信息,应用系统负责解释信息并执行业务。

Data Centers and Content Delivery Networks#

数据中心网络连接大量服务器,既要承载服务器之间的数据交换,也要承载数据中心与外部互联网之间的流量。

面临挑战是吞吐能力、规模扩大后的能耗,以及截面带宽;

内容分发网络(Content Delivery Network,CDN) 通过地理上分布的服务器,把内容放到更靠近用户的位置。

Transit and Enterprise Networks#

当内容提供商与用户所在的接入网络没有直接连接时,中转网络(Transit Network) 可以代为承载流量,并按商业安排提供服务。

内容逐渐集中到大型内容提供商,接入运营商的网络覆盖也在扩大。

企业或校园网络支持共享设备和信息、网络语音(VoIP)、远程桌面及电子业务。跨地区的组织可使用虚拟专用网络(Virtual Private Network,VPN),把分散地点连接成一个逻辑网络。 能够跨越实际地理距离,保持组织内部的逻辑连通性。

Network Technology: from local to global#

网络硬件的两个重要分类维度是传输技术与规模。

传输技术连接与接收方式需要解决的问题
广播链路多台机器共享通信信道,信号可能被范围内多台设备接收谁可以发送,以及哪些设备应处理该消息
点到点链路一条链路连接一对机器;完整路径可能由多条这样的链路组成如何经过中间节点到达目的地,如何选择路径

在共享信道上,接收方需要检查地址。即使听到了某个发送信号,也不意味着消息就是发给自己的。

按接收对象分类:

方式接收对象
单播(Unicast)一个指定接收者
广播(Broadcast)相应广播范围内的所有接收者
多播/组播(Multicast)一个指定组中的接收者

前面的 P2P 描述应用参与者的角色;这里的“点到点链路”描述链路连接两个端点。

Networks by Scale#

类型名称典型量级与场景
PAN个人区域网(Personal Area Network)米级,个人周围的计算机与外设
LAN局域网(Local Area Network)房间、楼宇、校园,图中约 10 m–1 km
MAN城域网(Metropolitan Area Network)城市范围,图中约 10 km
WAN广域网(Wide Area Network)国家或洲的范围,图中约 100–1000 km
互联网络多个网络互相连接形成的网络全球互联网是典型例子,图中列在约 10,000 km 的量级

Transmission Media, Bit Rate, and Bit Duration#

常见通信介质有:双绞线,用于电话线等连接;同轴电缆,用于有线电视;光纤,用于高速骨干等连接;无线电频谱,用于移动通信等无线链路。

链路传输速率 RR 的单位是 bit/s,表示每秒传输多少比特。若按均匀的比特间隔计算,一个比特的持续时间为:

Tb=1RT_b=\frac{1}{R}

1 Mbps=106 bit/s1\,\text{Mbps}=10^6\,\text{bit/s},1 Gbps=109 bit/s1\,\text{Gbps}=10^9\,\text{bit/s},1 ms=10−3 s1\,\text{ms}=10^{-3}\,\text{s}。速率与时间互为倒数。

Example#

持续 10 ms 的噪声最多影响多少比特?

两条链路:第一条每秒传 1000 bit,第二条每秒传 100 bit。一次噪声持续 10 ms,问两条链路上最多有多少个比特可能受到影响。

链路速率每比特持续时间噪声与比特边界对齐时覆盖起点任意时最多可能影响
第一条1000 bit/s1 ms10 个比特11 个比特
第二条100 bit/s10 ms1 个比特2 个比特

噪声的开始时刻不保证与比特边界对齐。

例如,第一条链路上,噪声在某个比特开始后的 0.5 ms 出现,到 10.5 ms 时结束。它触及开头半个比特、中间 9 个完整比特和结尾半个比特,共 11 个比特区间。第二条链路上,10 ms 的干扰也可能跨过两个相邻比特区间。

Personal Area Networks#

蓝牙外设 :

计算机连接鼠标、键盘、打印机都算个人区域网。在其采用的蓝牙简化模型中,计算机作为主设备协调外设,决定地址、发送时机、发送持续时间和使用频率等。

多个外设可以共享无线通信能力,但仍需要协调规则。

2.4 GHz 无线鼠标与蓝牙鼠标的工作原理有什么差异?

NOTE

核心差异在通信协议。 两者通常都工作在 2.4 GHz ISM 频段,但“2.4G 无线鼠标”一般使用厂商自定义的无线协议,需要专用 USB 接收器;蓝牙鼠标使用标准化的 Bluetooth 协议栈,可以直接和电脑自带的蓝牙模块通信。

Local Area Networks#

按信道分配方式区分静态设计与动态设计。

Static Allocation#

预先划出使用份额

时分复用(TDM) :把不同时间段分给不同使用者。 频分复用(FDM) :把不同频率范围分给不同使用者。

对应到网络,问题是:某个使用者暂时无数据,预留给它的资源仍可能闲置。 当流量突发、各用户需求不均匀时,这种浪费尤其值得注意。而其静态分配的优点则是规则和份额明确。

Dynamic Allocation#

根据实际需求安排发送

方法谁决定下一次发送特点
集中式一个中心实体协调蜂窝网络的基站决定谁接下来发送
分散式各设备依据协议自行决定没有单一调度中心,需要处理竞争与冲突

冲突(Collision) 是共享信道中需要处理的问题:多个设备在相互干扰的条件下同时发送,接收可能失败。

Metropolitan and Wide Area Networks#

城域网覆盖城市。

广域网的典型通信子网由两类部分构成:传输线路负责在节点间传递数据,交换设备负责把数据从一条线路转向另一条线路。

Site-to-Site Connectivity#

专用资源与共享互联网 :

左图:传输线路与路由器连接三个分支机构 中图:通过共享互联网建立 VPN 逻辑连接 右图:三个客户网络接入 ISP 的通信子网

三张图都以澳大利亚 Perth、Brisbane、Melbourne 三处分支为例,从左到右说明跨站点通信的不同实现方式:

  1. 左图:用传输线路与路由器组成广域网。 线路负责在节点之间传递数据,路由器负责交换和转发,二者构成连接各处分支的通信子网。企业可以通过建设或租用连接来实现这一结构,但图中的实线本身并不能证明整条物理线路都由企业独占。
  2. 中图:通过互联网建立 VPN。 虚线表示站点之间的逻辑连接,实际数据仍经由底层互联网的线路和路由器传送。这样可以复用已有通信资源,减少自建跨地区网络的投入,但企业对底层路径、可用带宽和拥塞情况的控制较弱。
  3. 右图:通过 ISP 网络连接。 各分支的客户网络接入运营商提供的通信子网,由运营商维护内部线路与路由器。企业购买连接服务,具体带宽、服务质量及资源保障取决于所购买的服务;这不等于运营商的整个骨干网只服务这一家企业。

逻辑上的专用网络与底层物理资源是否独占,是两个需要分别检查的问题。 VPN 描述逻辑连接方式,ISP 描述网络服务的提供者,二者并不互斥;运营商也可以提供 VPN 服务。

Routing and Forwarding#

概念作用观察层次
路由(Routing)从源到目的地可以选择什么路径?网络范围内的路径选择
转发(Forwarding)当前路由器收到这个分组后,下一步送往哪里?单个节点的一次处理

点到点链路组成的网络可能提供多条路径;路由形成路径选择,沿途设备逐跳执行转发。

Internetworks, Gateways, and the Internet#

互联网络(Internetwork) :由多个相互连接的网络构成。这些网络可能分别管理,也可能采用不同技术,例如把局域网连接到广域网,或连接两个局域网。 网关(Gateway) :连接不同网络、完成必要适配的设备。 路由器(Router) :网络层交换分组的网关。

互联网(Internet)是网络的网络,并向分布式应用提供通信服务。

Examples of Networks#

The Internet#

从早期研究网络到多网络互联

互联网仍由多个网络共同构成。

互联网与万维网 :互联网提供基础连通能力;万维网是利用这种能力组织和访问网页的一类应用。

Distributed Topology#

分布式拓扑更能抵抗局部故障

在层次式网络与具有较多冗余连接的分布式网络之中,分布式结构具有更强的容错能力。

在层次式结构中,很多通信依赖少数关键交换节点,关键节点故障可能切断大片区域的联系。在分布式结构中,同一对端点之间可能存在多条路径,部分线路或设备故障后,可以尝试其他路径。冗余连接提供替代路径,路由负责找到仍可用的路径。

ARPANET Hosts and Communication Subnet#

原始系统分为主机部分和通信子网部分。图中的 IMP 是承担分组交换的中间设备,主机经 IMP 接入子网。

图中有几种不同范围的协议关系:

  1. 主机与相邻 IMP 之间;
  2. 相邻 IMP 之间;
  3. 源 IMP 与目的 IMP 之间;
  4. 最终的主机与主机之间。

源 IMP 到目的 IMP 的协议用于提高传输可靠性。同一次通信需要不同范围的规则协作。

Home Internet Access#

一次跨网络访问可按下列示意路径理解:

用户设备 → 接入链路 → 本地 ISP 的接入点 → ISP 骨干
→ 与其他网络交换流量 → 目的网络 → 服务器/数据中心

互联网服务提供商(Internet Service Provider,ISP) 向用户提供网络连接。用户设备如何进入 ISP,可以采用不同的接入技术:

接入方式用户侧及运营商侧关键特点
拨号接入电话线两端的调制解调器通过一次电话连接传数据,上网会占用电话
数字用户线(DSL)DSL modem ↔ DSLAM复用入户铜线;DSLAM 汇聚多条用户线
光纤到户(FTTH)光纤延伸到用户侧使用光纤作为入户接入介质
有线电视网络接入Cable modem ↔ CMTS复用有线电视基础设施
移动网络接入手机、基站与运营商核心网无线连接首先解决终端接入问题

调制解调器(Modem) 在数字信息与适合线路传输的信号之间转换。 HFC :光纤同轴混合网络。 分组数据传输使用 DOCSIS; 用户家中使用 cable modem,前端使用 CMTS。一套接入基础设施可以承载电视、数据与语音等不同业务。

POPs, IXPs, Peering, and Transit#

术语含义细节
POP(Point of Presence)用户分组进入 ISP 网络、获得服务的接入位置描述网络中的位置,不能当作一种分组协议
IXP(Internet Exchange Point)不同 ISP/网络交换流量的互联设施描述互联地点与基础设施
对等互联(Peering)两个网络按约定直接交换相应流量描述网络之间的关系
中转服务(Transit)向上游购买经其网络到达其他目的网络的服务涉及承载范围、路径及商业安排

IXP :多个 ISP 把各自的路由器接入同一个局域网,借此交换分组。但物理上能连接,并不自动决定哪些流量可以由谁转送;实际路径还取决于互联关系和路由选择。因此,分组经过的路径未必是地理上最短的路径。

Tier-1 ISP的核心特征是无需向其他网络购买中转服务,依靠自己的网络和互联关系获得全网可达性。

From Hierarchical to Flat Networks#

传统结构画成“用户 → 本地 ISP → 区域 ISP → 骨干运营商”。

增加了更多直接互联,以及大型内容提供商与其他网络的直接连接。

扁平化 :通信不必总是逐级上升到最高层再逐级下降。网络间互联更加密集,内容部署也更靠近用户。

Mobile Networks#

无线接入、核心网与蜂窝设计

Mobile Network Architecture#

手机接入是无线的,整条端到端路径通常还包括有线骨干,无线往往只是基站到手机这最后一跳的过程。

4G 网络的示意结构:

部分图中名称作用
用户设备UE手机等终端
无线接入网E-UTRAN,基站 eNodeB连接终端与移动网络
分组核心网EPC核心网采用分组交换,处理接入后的通信
服务网关S-GW核心网中的分组转送节点
分组数据网络网关P-GW连接外部数据网络,例如互联网
归属用户服务器HSS与用户资料、认证授权及用户位置管理有关
控制实体MME图中的控制部分,本节没有展开其完整处理流程

HSS :关注用户身份、资料及访问资格等信息。 PGW :承担对外数据网络的接口角色。

TIP

例子:人在日本,数据出口为什么可能仍在国内?

手机在当地连接访问网络;访问网络需要与归属网络配合,确认用户身份和使用资格。在回传归属网络的路径中,数据再经国内的网关接入互联网。因此,设备所处的国家、当前连接的基站所在地,以及互联网数据出口所在地,可以不同。

Cellular Frequency Reuse#

移动通信需要使用无线电频谱,而可使用的频谱有限。

蜂窝设计把服务区域划成多个小区,每个小区由基站覆盖,再通过空间分隔复用频率资源。

在经典的频率复用模型中,相邻小区采用不同频率组,减少强干扰;距离较远、相互干扰已衰减的小区,可以使用相同频率组。同一份频谱在不同空间位置再次使用,从而提高整个系统的容量。

同色表示使用相同的一组频率,重点是这些小区之间的空间关系。

为什么画成六边形?

正六边形可以铺满平面,六个相邻小区中心与本小区中心的距离相同;方格中边邻居与对角邻居的距离不同。这便于建立覆盖与干扰分析模型。实际无线覆盖会受环境影响,不会严格长成正六边形。

在 3G 系统中,各小区可以使用全部频率,同时把相邻小区的干扰控制到可接受水平。

Handover and SIM#

设备从一个小区移向另一个小区时,需要进行切换(Handover),把服务关系转移到新的基站。

硬切换 :先断开旧连接,再建立新连接。

软切换 :先与新基站建立联系,再释放旧基站,因此会有短暂的双基站连接阶段。软切换可以减小业务中断,但需要额外资源。

资源代价是需要同时维持两组上下行链路,其中上行是终端到基站,下行是基站到终端。

用户身份模块(SIM) :把用户身份和账户信息与手机设备分开。把 SIM 换到另一部手机,仍可使用相应用户身份;这些信息也是认证与通信安全的基础。

From 1G to 5G#

代际主要业务代表技术语音与数据的交换方式
1G模拟语音AMPS(1982)、频分多址 FDMA主要是电路交换
2G数字语音、短信、低速数据D-AMPS、GSM(1991)、IS-95;TDMA/CDMA语音采用电路交换,逐渐引入分组数据
3G移动互联网与更高速数据UMTS(2001)、WCDMA、CDMA2000电路交换语音与分组数据并存
4G高速上网、视频与多媒体LTE、OFDMA、MIMO、全 IP 核心网分组交换;VoLTE 承载语音
5G高速移动宽带、大规模物联网、低时延与工业应用5G NR、大规模 MIMO、波束成形、灵活 OFDM全 IP/分组交换;课件以 VoNR 说明语音承载

Packet Switching and Circuit Switching#

比较项数据报式分组交换电路交换
通信开始可以按分组发送,无需先建立专用电路先建立连接,再传送信息
路径各分组独立进行路由选择建立的通路维持到通信结束
资源多个通信共享网络资源为已建立的电路关联相应资源
故障影响有可用替代路径时,可重新选择路径原通路故障会影响相应连接
服务质量需要面对共享资源下的竞争较容易为已接通的通信提供稳定资源

Wireless LANs: 802.11#

Standards, Shared Spectrum, and Access Points#

早期无线局域网产品互不兼容,促使业界制定共同标准。IEEE 802.11(Wi-Fi)

802.11 系统使用免单独许可的频段,例如 ISM 频段。

这不表示可以无限制发送:设备仍须控制发射功率,允许不同设备共存。无线局域网可能受到其他共用频谱的设备影响。

第 66 页给出两种组织形式:

形式通信方式
有基础设施的网络终端通过接入点通信,接入点连接有线网络
自组织网络(Ad hoc)在无线覆盖范围内的终端直接通信,无需该图中的接入点

接入点(Access Point,AP) 负责无线接入;网关负责跨网络连接。 Wi-Fi 到 AP 的一段是无线链路,后续路径可以由有线网络继续承载。

Multipath Fading#

多径衰落(Multipath Fading) :无线信号可经直接路径和反射路径到达接收机。不同路径的距离与到达时间不同,收到的信号叠加时,可能相互增强,也可能相互抵消,导致接收强度明显波动。

Diversity#

路径分集(Path Diversity) :利用多条不同、尽量独立的路径或传输机会,降低信息全部落在较差信道条件下的可能性。

分集维度做法对应直觉
频率在不同频率上传送信息一个频率条件差,其他频率可能仍可用
空间不同天线对提供不同空间路径不把接收完全寄托于单一路径
时间在不同时刻重复传送有关信息避开某一时刻的不利条件

Channel Sensing, Backoff, and Collisions#

**载波侦听多路访问(CSMA)**的基本思想是发送前先听信道:发现别人正在发送,就推迟自己的发送;设备使用随机等待,冲突后再随机延迟并重传。

A 和 C 可能互相听不到,但它们的信号都能到达 B。 于是,两者各自在本地听到“空闲”,仍可能在 B 处造成相互干扰。仅凭发送者自己没有听见别人,不能保证接收端没有冲突。

Mobility and Security#

多个 AP 及连接它们的分布系统,可以组成多个小区,支持用户从一个位置移动到另一个位置时继续接入网络。

Network Protocols#

Four Protocol Design Goals#

目标要解决的问题机制
可靠性组成网络的部件可能出错或失效,系统如何继续正确工作?差错检测、差错纠正、寻找可用路由
资源分配有限通信资源如何供多个用户与应用共享?统计复用、流量控制、拥塞处理、服务质量
可演进性网络扩大、新技术出现后如何继续互联?分层与隐藏实现细节、寻址与命名、适配不同网络
安全性如何防止窃听、冒充和秘密篡改?保密性、身份认证、完整性保护

差错检测与差错纠正。 :检测负责发现收到的信息有误;发现错误后可以通过重传等办法处理。纠正则利用额外信息,从有错的数据恢复原消息。

统计复用(Statistical Multiplexing)。 :多个使用者根据需求共享资源,利用它们并非始终同时需要全部资源的特点。

Flow Control and Congestion Control#

问题矛盾理解
流量控制(Flow Control)发送者的发送速度超过接收者处理能力发得快的一方需要照顾收得慢的一方
拥塞控制(Congestion Control)网络中的总体需求超过可承载能力很多发送者把中间网络挤满,排队或丢失随之出现

单个接收者处理得过来,不代表整个网络一定承载得了所有流量。反过来,网络总体不拥塞,也可能有某个接收者跟不上发送者。**服务质量(QoS)**还要协调不同业务对时延、速率等的不同需求。

Evolvability and Security#

分层把整体问题拆开,并把实现细节封装在层内。这样,新增网络或改变某部分实现时,不必要求所有上层应用同时重写。寻址与命名用于识别发送者和接收者;不同技术的限制不同,还需要通过互联机制适配。

安全目标可用三个问题理解:别人能否偷看?对方是否真是声称的身份?消息是否被偷偷改动? 它们分别对应保密性、认证和完整性。

Protocols, Peers, Interfaces, and Protocol Stacks#

协议(Protocol) :规定通信实体之间交换消息的格式、顺序,以及发送、接收消息或其他事件发生时应采取的动作。

概念含义
层在协议体系中负责一组职责,使用下层能力并向上层提供能力
对等实体(Peer)不同机器中处于对应层、按共同协议交流的实体
接口(Interface)同一机器相邻两层之间的边界,规定下层向上层开放哪些操作与服务
网络体系结构一组层及相应协议的组织方式
协议栈(Protocol Stack)某个系统实际采用的各层协议的组合

Logical Communication and Actual Data Flow#

两种不同方向的联系:

横向:对等层之间按协议交流。 例如,主机 A 的第 4 层与主机 B 的第 4 层使用共同的规则,可以把它们抽象为正在直接“对话”。图中用虚线表示这种逻辑关系。

纵向:本机相邻层通过接口协作。 发送端的数据逐层向下交付,到达物理介质;接收端再逐层向上交付。

发送端 接收端
第 n 层 ····· 对等层逻辑通信 ····· 第 n 层
↓ 使用下层服务 ↑ 向上层交付
…… ……
第 1 层 ────── 经物理介质传输 ──────→ 第 1 层

因此,对等层的逻辑通信依赖下层服务实现。第 4 层不会绕过第 3、2、1 层,直接把数据“跳送”到另一台机器的第 4 层。

Encapsulation, Fragmentation, and Reassembly#

记 MM 为上层消息,HiH_i 为第 ii 层添加的头部,T2T_2 为第 2 层的尾部。

Sending a Message#

第 5 层产生消息 MM。 交给第 4 层后,第 4 层加上自己的控制头部,形成 [H4∣M][H_4\mid M]。

第 3 层按需要拆分。 图中把消息分成 M1M_1、M2M_2 两部分,每份分别加上第 3 层头部。原有的 H4H_4 随第一份数据传递:

第 5 层: [ M ]
第 4 层: [ H4 | M ]
第 3 层: [ H3 | H4 | M1 ] [ H3 | M2 ]
第 2 层: [ H2 | H3 | H4 | M1 | T2 ] [ H2 | H3 | M2 | T2 ]
第 1 层: 通过物理介质传输比特

第 2 层再封装。 给每一份分别加上 H2H_2 和 T2T_2,构成可以在相应链路上传送的单位。尾部可以承载差错检测所需的信息;具体字段取决于协议。

Reconstructing a Message#

接收端从低层往高层处理:第 2 层解释自己的头尾并完成相应检查,把内部数据交给第 3 层;第 3 层依据其规则识别、组织和重组各部分,恢复第 4 层交付的整体;第 4 层解释并移除自己的控制头部,最后向第 5 层交付 MM。

封装关注添加本层控制信息;分片关注把过大的数据单位拆成较小单位;重组则恢复拆分前的整体。它们需要区分,且并非每次经过一层都必须同时发生。

Connection-Oriented and Connectionless Services#

分层体系中,一层可以向上层提供不同形式的服务。

服务形式过程与特点类比
面向连接(Connection-oriented)先建立连接,再使用连接,最后释放连接打电话:接通 → 通话 → 挂断
无连接(Connectionless)每个消息独立提交,携带目的地址,由网络分别处理寄信:每封信写地址,分别投递

面向连接:发送端放入数据,接收端取出数据。 无连接传递:不同消息可能经历不同等待或路径,先发出的消息也可能后到。

面向连接不自动保证可靠,无连接也可以增加确认机制。

连接形式服务例子
面向连接可靠消息流一页一页发送书页
面向连接可靠字节流下载电影文件
面向连接不可靠连接网络语音
无连接不可靠数据报对送达保证要求不高的垃圾消息示例
无连接有确认的数据报短信
无连接请求—应答数据库查询

可靠传递需要付出代价,例如确认、检测和重传带来的开销与等待。文件传输通常要求内容完整正确;实时语音则可能更难容忍等待过久。

Example#

消息流与字节流的边界

假设发送方连续发送两条 1024 字节的消息。

可靠消息流保留消息边界: 接收方得到的是两条分别为 1024 字节的消息。

可靠字节流不保留原始发送边界: 接收方得到正确的 2048 字节,但仅从这些字节无法判断发送方原来是发送了一次 2048 字节、两次 1024 字节,还是很多次更小的数据。

因此,消息边界属于服务语义。逐页处理的书页可能需要保留边界,下载电影则更关注字节内容及顺序。

Store-and-Forward and Cut-Through Switching#

中间节点收到多少数据以后,开始向下一跳发送?

对比项存储转发(Store-and-forward)直通转发(Cut-through)
转发开始时机完整接收一帧后,再开始转发取得目的地址等必要信息后,在整帧收完前开始转发
延迟较高(帧长度越长延迟越大)极低(接近零延迟)
完整帧的 CRC 检查可以在转发前检查并丢弃损坏帧不支持,错误帧可能传播
错误传播有机会在该节点拦住损坏帧损坏帧可能已经被部分或全部转出
使用场景企业网络、数据中心高性能计算、低时延应用
不同速率端口支持不支持
可靠性高较低
性能稍慢极快

Service Primitives#

服务原语(Service Primitive) :是用户进程访问某项服务时可调用的基本操作。

若协议栈位于操作系统中,原语通常通过系统调用提供。调用原语是在本机要求服务执行动作;实际发什么消息、怎样与对端配合,由协议实现。

原语含义
LISTEN等待到来的连接请求;示例中为阻塞操作
CONNECT请求与等待中的对端建立连接
ACCEPT接受对端的连接请求
RECEIVE等待接收消息;示例中会阻塞调用进程
SEND向对端发送消息
DISCONNECT终止连接

Request–Reply Sequence Diagram#

服务器先执行 LISTEN 等待连接,客户端再执行 CONNECT。

次序消息方向与内容原语及进程状态的变化
1客户端 → 服务器:连接请求客户端执行 CONNECT 后等待;服务器收到请求,等待连接的进程被唤醒
2服务器 → 客户端:接受连接服务器执行 ACCEPT;客户端收到响应后继续运行
3客户端 → 服务器:业务请求服务器先 RECEIVE 等待;客户端 SEND 后再 RECEIVE 等待应答;请求到达后服务器继续处理
4服务器 → 客户端:业务应答服务器处理请求后 SEND;应答到达使客户端继续运行
5客户端 → 服务器:断开请求客户端执行 DISCONNECT,在该示例中等待对方确认
6服务器 → 客户端:断开响应服务器也执行 DISCONNECT 并释放连接;响应到达后客户端结束等待

某层呈现的服务形式,不必与其下层使用的传递方式相同。

Services and Protocols#

对比项服务(Service)协议(Protocol)
关联对象本机相邻层:下层提供,上层使用不同机器的对等实体
图中的方向纵向横向
核心问题本层向上层提供什么能力、什么操作?对等实体如何交换和解释消息,共同实现这些能力?
使用者能看到什么可调用的操作及其服务语义报文规则通常属于该层内部实现,上层不必直接处理

例如,上层通过“发送”操作要求交付数据;本层究竟怎样编号、确认、处理错误,需要通过它与对端之间的协议来实现。上层可以使用服务,而无需直接构造这套协议的全部控制信息。

保持对上层可见的服务不变,就可以更换内部协议或实现。 前提是参与通信的对等实体仍能遵守一致、兼容的规则,不能只改一端的报文解释就期望另一端自动理解。

Reference Models#

OSI Seven-Layer Model#

开放系统互连参考模型(OSI) 规定了七层的职责划分,是理解网络功能与协议组织的参考框架。自下而上的顺序为:

物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表征层 → 应用层。

层次名称数据单位标记
7应用层APDU
6表征层(亦称表示层)PPDU
5会话层SPDU
4传输层TPDU
3网络层分组(Packet)
2数据链路层帧(Frame)
1物理层比特(Bit)

物理层传比特,数据链路层组织帧,网络层处理分组。 OSI 模型本身没有规定各层必须采用的具体服务和协议,因此不是一套完整的网络体系结构。

End-to-End and Hop-by-Hop Processing#

关注最小单位:Physical layer 是 bit, Data link layer 是 frame,Network layer 是 packet,Transport layer 是 segment。

端到端传输的最底层是transport layer

图中有源主机、中间路由器和目的主机。两台主机可能相隔很远,数据需经过多个中间节点。

源主机 A → 路由器 R1 → 路由器 R2 → 目的主机 B

第 1–3 层沿途参与逐跳处理。 在图中,中间路由器从物理层接收,经数据链路层取得内部的分组,再在网络层根据地址决定转发方向,最后通过下一条链路继续发送。

第 4–7 层体现端到端的逻辑关系。 这些层在图中连接两端主机,中间路由器不作为对应上层会话的一端。端到端也不要求两端之间存在直接物理链路,它可以依靠多跳网络实现。

访问百度:本机先到默认网关,再经学校出口、运营商网络等节点,逐跳到达目的地。

Physical Layer#

物理层(Physical Layer) 负责在通信信道上传输原始比特,是上层网络功能的基础。它需要约定:用什么信号表示 0 和 1、每个比特持续多长时间、通信能否同时双向进行,以及连接器和线路如何连接等。

物理层中的基本数据单位是 bit。

Physical media 分为三类:

  1. Guided media:有线传输介质,例如双绞线、同轴电缆、光纤。
  2. Unguided media:无线传输介质,例如电磁波、红外线。
  3. Satellite:卫星通信,通常使用微波频段。

数据链路层(Data Link Layer) 负责在相邻节点之间可靠传输帧,处理物理层可能出现的误码、丢帧等问题。

基本数据单位是 帧(Frame)。

三大功能

分帧(Framing) :发送方把数据组织成一帧一帧,再依次发送 差错控制(Error Control) :检测错误,并按协议采用重传或纠错等处理方式 (Important)流量控制(Flow Control) :协调发送速度,避免接收方被数据淹没

为什么较易出错的无线链路需要考虑纠错?

一帧因噪声或干扰受损,要求重传后,新的一次传输仍可能受损。若编码能在一定差错范围内恢复原信息,就可以减少依赖重传的次数。

Medium Access Control#

广播网络还多出一个问题:多台设备共享同一个信道,谁可以在什么时候发送?

这由数据链路层中的介质访问控制子层(Medium Access Control,MAC) 处理。

它关注共享信道的访问与冲突问题;前面的分帧、差错控制与流量控制关注怎样完成链路上的数据传送。

教室内多台设备通过无线接入点上网。

大家都要使用无线通信资源,多个发送活动可能相互干扰,因此需要访问规则。

典型链路层协议有 Ethernet、Wi-Fi、PPP

Network Layer#

网络层(Network Layer) 负责让分组从源端到达目的端。它要把多条链路连接成完整路径,并处理不同网络之间的互联问题。

基本数据单位是 分组(Packet)。

路由选择 是核心:网络分布在许多设备上,各节点需要协作,让分组沿适当的路径前进。

两类路由算法:链路状态(Link-state) 与 距离向量(Distance-vector)。

路由协议 : IPv4、IPv6、ICMP,以及 RIP、OSPF、BGP 等。

网络层还需要面对拥塞控制、服务质量(QoS)与异构网络互联:即使找到一条可达路径,也要考虑这条路径能否承载流量,以及不同网络的地址、分组大小等条件是否兼容。

Transportation Layer#

传输层(Transport Layer,亦称运输层)是本章分层模型中最低的端到端层。 源主机与目的主机中的对等实体通过协议进行通信,下方的网络层负责让分组经过沿途节点。

根据具体协议,传输层接收上层数据,进行必要的分段,把数据交给网络层,并在接收端完成相应处理。

传输层的数据单位是 segment(报文段)。

Connection-oriented transport protocols(面向连接的运输协议)如 TCP 提供可靠的字节流服务

Connectionless transport protocols(无连接的运输协议)如 UDP 提供不可靠的数据报服务.

Session Layer and Presentation Layer#

会话层(Session Layer) 为不同机器上的用户建立会话,并提供以下服务:

服务含义
对话控制记录当前轮到哪一方发送
令牌管理避免双方同时执行某个关键操作
同步为长时间传输设置检查点,故障恢复后从相应位置继续

表征层(Presentation Layer,亦称表示层) 关注所传信息的语法与语义。不同计算机内部的数据表示可能不同,通信时需要约定抽象的数据结构及传输编码,使双方能够一致地解释信息。

会话层协调一次交互如何进行,表征层处理信息如何表示和解释。

Application Layer#

应用层(Application Layer) 包含用户应用所需的网络协议。浏览器、电子邮件、文件传输等业务利用下层的通信能力,按照各自的应用协议交换信息。

协议本章给出的用途
HTTP获取网页,支撑万维网
SMTP电子邮件传送
FTP文件传输
DNS将主机名映射到网络地址
TELNET虚拟终端/远程终端
RTP传送语音、视频等实时媒体

The TCP/IP Reference Model#

模型自下而上分为四层:

链路层 → 互联网层 → 传输层 → 应用层。

链路层(Link Layer) 规定主机如何利用底层传输链路,满足上方互联网层的需要。

主机与传输链路之间的接口

The Internet Layer#

互联网层(Internet Layer) 大致对应 OSI 的网络层。它定义 IP 分组的格式及处理规则,使分组能够穿过不同网络到达目的地;各分组可以独立传递,接收顺序也可能与发送顺序不同。

两个关键协议是:IP 负责分组传递,ICMP 为 IP 提供配套的控制功能。路由与拥塞是这一层的重要问题。

The Transport Layer#

TCP/IP 的传输层让源主机与目的主机的对等实体通信。

TCP 在 IP 提供的传递能力之上,形成可靠、面向连接的字节流服务。 发送端把字节流分成报文段,交给互联网层;接收端的 TCP 再把收到的内容组织为输出字节流。

发送端应用字节流 → TCP 分段 → IP 分组传递
↓
接收端应用字节流 ← TCP 重组 ← 接收端 IP

下层无连接,上层仍可以面向连接。 IP 的服务形式与 TCP 的服务形式并不冲突。每一层可以通过自己的协议,为上层提供不同于下层的服务。

UDP 则为不需要 TCP 这套服务保证、或希望自行处理相关问题的应用提供无连接传递。

The Application Layer#

应用可以包含自己需要的会话与表示功能

The Model Used in This Book#

五层混合模型,保留物理层与数据链路层的区分,同时把上层应用相关功能集中到应用层:

物理层 → 数据链路层 → 网络层 → 传输层 → 应用层。

层次英文名称主要问题
5Application应用按照什么规则交换信息?
4Transport端到端提供什么传输服务?
3Network分组怎样穿过网络到达目的地?
2Link直接相连的节点怎样传送帧、处理差错与共享信道?
1Physical比特怎样变成信号并通过介质传输?

The OSI vs. TCP/IP#

OSI 七层,TCP/IP 四层,教材五层。

比较项OSITCP/IP
模型与对应协议的先后先提出参考模型,再设计相应协议先有协议,再用模型描述已有协议
层数7 层4 层
会话层、表征层单独列出不单独列出;应用包含所需功能
物理层、数据链路层分别列出底层由 Link 部分概括,没有单独列出的 Physical 层
第三层对应名称NetworkInternet
所在层OSITCP/IP
网络层/互联网层支持无连接与面向连接两种通信提供无连接通信
传输层面向连接通信TCP 面向连接,UDP 无连接
为什么 TCP 仍然可以面向连接?

TCP 属于传输层。它使用下层 IP 的分组传递能力,再通过自身协议向应用提供面向连接、可靠的服务,因此“IP 无连接”与“TCP 面向连接”能够同时成立。

Standardization#

编号主题
802.1局域网的概述与体系结构
802.2逻辑链路控制
802.3以太网
802.11无线局域网/Wi-Fi
802.15个人区域网,表中以 Bluetooth、Zigbee 为例
802.16宽带无线,表中以 WiMAX 为例
ISO、OSI、IEEE 802.11、WiFi Alliance 分别属于什么?

ISO 是标准化组织;OSI 是参考模型;IEEE 802.11 是无线局域网标准;WiFi Alliance 承担产品互操作相关的角色。

Metric Units#

Bits, Bytes, and Prefixes#

1 byte=8 bit1\ \text{byte}=8\ \text{bit}
常用量换算
1 kbps103 bit/s10^3\ \text{bit/s}
1 Mbps106 bit/s10^6\ \text{bit/s}
1 Gbps109 bit/s10^9\ \text{bit/s}
1 Tbps1012 bit/s10^{12}\ \text{bit/s}
1 ms10−3 s10^{-3}\ \text{s}
1 μs10−6 s10^{-6}\ \text{s}
1 ns10−9 s10^{-9}\ \text{s}
1 ps10−12 s10^{-12}\ \text{s}

小写 b 表示 bit,大写 B 表示 byte。 速率单位带 /s,表示单位时间内传送的数据量;时间单位不带 /s。

完整前缀表
小量级前缀数量级大量级前缀数量级
milli10−310^{-3}kilo10310^3
micro10−610^{-6}mega10610^6
nano10−910^{-9}giga10910^9
pico10−1210^{-12}tera101210^{12}
femto10−1510^{-15}peta101510^{15}
atto10−1810^{-18}exa101810^{18}
zepto10−2110^{-21}zetta102110^{21}
yocto10−2410^{-24}yotta102410^{24}

The Textbook’s Unit Convention#

1 KB=210 byte,1 MB=220 byte1\ \mathrm{KB}=2^{10}\ \mathrm{byte},\qquad 1\ \mathrm{MB}=2^{20}\ \mathrm{byte}1 GB=230 byte,1 TB=240 byte1\ \mathrm{GB}=2^{30}\ \mathrm{byte},\qquad 1\ \mathrm{TB}=2^{40}\ \mathrm{byte}

通信速率的 kbps、Mbps、Gbps、Tbps 采用 10310^3、10610^6、10910^9、101210^{12} bit/s。

Quantitative Metrics of the Performance of Packet-Switching Networks#

时延(Delay)、丢包(Loss)、吞吐量(Throughput)。

时延回答“要等多久”,丢包回答“有没有未能继续传送的数据”,吞吐量回答“单位时间实际传了多少数据”。

Four Types of Delay#

时延发生在什么阶段主要取决于什么
处理时延(Processing delay)检查首部、确定输出方向,完成必要检查节点处理工作与处理能力
排队时延(Queuing delay)等待前面到达的分组获得发送机会之前积压的分组、流量负载与调度情况
发送时延(Transmission delay)把整个分组逐步送上输出链路分组长度 LL 与链路速率 RR
传播时延(Propagation delay)信号沿链路从一端传播到另一端链路距离 dd 与传播速度 vv

在“节点处理 → 排队 → 输出链路发送 → 沿链路传播”的记账方式下,可把一次节点及后续链路的时延写为:

dnodal=dproc+dqueue+dtrans+dpropd_{\text{nodal}} =d_{\text{proc}}+d_{\text{queue}}+d_{\text{trans}}+d_{\text{prop}}

这里后两个量为:

dtrans=LRdprop=dv\boxed{d_{\text{trans}}=\frac{L}{R}} \qquad \boxed{d_{\text{prop}}=\frac{d}{v}}

LL 用 bit,RR 用 bit/s;dd 用 m,vv 用 m/s。

Processing Delay#

处理时延包括检查分组首部中的有关字段,以及决定从哪个输出接口继续发送。

Queuing Delay#

排队时延是等待其他分组先被处理或发送的时间。它受当时的队列情况影响,不能只根据链路距离计算。

Transmission Delay#

发送时延是把整个分组送上链路所需的时间。

若分组长 LL bit,链路每秒能接收 RR bit,发送完成就需要 L/RL/R 秒。开始发送时,后面的比特还没有进入链路;发送完成时,最后一个比特刚刚进入链路。

因此,分组越长,发送时延越大;链路速率越高,发送时延越小。 这一项与链路的地理长度没有直接关系。

Propagation Delay#

传播时延是信号从链路一端到另一端所需的时间。

Transmission vs. Propagation#

改变的条件发送时延 L/RL/R传播时延 d/vd/v
只把分组长度变为原来两倍变为两倍不变
只把链路比特率变为原来两倍变为一半不变
只把链路距离变为原来两倍不变变为两倍
只改变信号在介质中的传播速度不变随 vv 改变
定义推导:第一个比特与最后一个比特什么时候到达?

只考虑一条链路,忽略处理、排队和额外开销;以第一个比特开始进入链路的时刻为 t=0t=0。

事件时刻
第一个比特开始发送00
整个分组发送完毕L/RL/R
第一个比特到达接收端d/vd/v
最后一个比特到达接收端,分组收齐L/R+d/vL/R+d/v

End-to-End Delay#

在单个分组、逐跳存储转发、各段分组长度不变的简化模型中,端到端时延可写为:

dend-to-end=∑各处理节点dproc,i+∑各排队位置dqueue,i+∑各链路(LRi+divi)d_{\text{end-to-end}} =\sum_{\text{各处理节点}}d_{\text{proc},i} +\sum_{\text{各排队位置}}d_{\text{queue},i} +\sum_{\text{各链路}}\left(\frac{L}{R_i}+\frac{d_i}{v_i}\right)
主机 A → 路由器 R1 → 路由器 R2 → 主机 B
三条链路、两个中间路由器

Packet Loss#

链路前的队列容量有限。 当新分组到达时,如果相关缓冲区已经满了,就没有空间继续存放它,可能发生丢包。

两种丢弃情形:检查发现数据受损,以及缓冲区已满。前者与差错有关,后者与队列容量及负载有关。

到达负载较大 → 队列积压 → 缓冲区用满 → 新到达的分组被丢弃

吞吐量描述单位时间内实际传送的数据量,常用 bit/s。它受路径上的**瓶颈链路(Bottleneck link)**限制。

若一条固定路径依次经过速率为 R1,R2,…,RnR_1,R_2,\ldots,R_n 的链路,在没有其他流量竞争、节点处理不构成更低限制的简化模型中:

吞吐量的链路速率上限=min⁡iRi\boxed{\text{吞吐量的链路速率上限}=\min_i R_i}

评论

Lazysheep