第1章 计算机网络和因特网
1.1 什么是因特网
1.1.1 具体构成描述
- 所有的这些设备称为主机或端系统(因为它们位于因特网的边缘),通过通信链路和分组交换机连接到一起。主机 = 端系统 它们又被进一步划分为客户端和服务器client and server。
- 链路的传输速率以bit/s(bps)度量(1B = 8bit)
- 分组交换器当今因特网两种最著名的类型是路由器和链路层交换机
- 端系统通过因特网服务提供商(Internet Service Provider, ISP)接入因特网
- 端系统分组交换器和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网信息的接收和发送。TCP和IP是因特网中两个最为重要的协议。
1.1.2 服务描述
- 应用程序涉及多个相互交换数据的端系统,故被称为分布式应用程序(distributed application)
- 与因特网相连的端系统提供了一个套接字接口(socket interface)
1.1.3 什么是协议
协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条一条报文或其他事件所采取的动作。
掌握计算机网络领域知识的过程就是理解网络协议的构成、原理和工作方式的过程。
1.2 网络边缘
1.2.1 接入网
接入网:将端系统物理连接到其边缘路由器的网络。
-
家庭接入:DSL、电缆、FTTH(提供更高速率的新兴技术)、拨号和卫星(某些乡村环境)
宽带住宅接入有两种最流行的类型:数字用户线(DSL)和电缆。还有光纤到户(Fiber To The Home, FTTH)。
-
企业(和家庭)接入:以太网和WiFi
-
广域无线网接入:4G(5G)和LTE(Long-Term Evolution)
iPhone和安卓等设备应用了与蜂窝移动电话相同的无线基础设施,通过蜂窝网提供商运营的基站来发送和接受分组。与WiFi不同的是,一个用户仅需要位于基站的数万米范围内(而不是几十米)。
1.2.2 物理媒体
物理媒体分为两种类型:导引型媒体和非导引型媒体
导引型媒体:电波沿着固体媒体前行,如光缆、双绞铜线或同轴电缆
非导引型媒体:电波在空气或外层空间中传播,如在无线局域网或数字卫星频道中
1.3 网络核心
1.3.1 分组交换
为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组交换。
-
多数分组交换机在链路的输入端使用存储转发传输(store and forward transmission)机制。
-
对于每条相连的链路,该分组交换器具有一个输出缓存(也称输出队列),它用于存储路由器准备发往那条链路的分组。因此,除了存储转发时延以外,分组还要承受输出缓存的排队时延(queuing delay)。
-
每台路由器具有一个转发表(forwarding table),用于将目的地址(或其一部分)映射成为输出链路。
因特网具有一些特殊的路由选择协议(routing protocol),用于自动设置这些转发表。
-
分组交换提供了比电路交换更好的带宽共享。
分组交换比电路交换更简单、更有效,实现成本更低。
1.3.2 电路交换
通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换。
- 链路中的电路是通过频分复用(Frequency-Division Multiplexing, FDM)或时分复用(Time-Division Multiplexing, TDM)来实现的。
- 虽然分组交换和电路交换在今天的电信网络中都是普遍采用的方式,但趋势无疑是朝着分组交换的方向发展。甚至许多今天的电路交换电话网正在缓慢地向分组交换迁移。
1.3.3 网络的网络
ISP(Internet Service Provider):网络服务提供者。
因为接入ISP向全球传输ISP付费,故接入ISP被认为是客户,而全球传输ISP被认为是提供商。
今天的因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数十万个较低层ISP组成。
ISP的互联:内容提供商(如谷歌) - 第一层ISP - IXP(因特网交换点, Internet Exchange Point) - 区域ISP - 接入ISP
1.4 分组交换网中的时延、丢包和吞吐量
1.4.1 分组交换网络中的时延概述
节点总时延 = 处理时延 + 排队时延 + 传输时延 + 传播时延 等
| 处理时延(processing) | 排队时延(queuing) | 传输时延(transmission) | 传播时延(propagation) |
|---|---|---|---|
| 检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分 | 分组在链路上等待传输 | L(b) / R(bps) | 从该链路的起点到路由器B传播所需要的时间是传播时延 |
1.4.2 排队时延和丢包
令a表示分组到达队列的平均速率(a的单位是分组/秒,即pkt/s),La/R被称为流量强度,它在估计排队时延的范围方面经常起着重要的作用。流量工程中的一条金科玉律是:设计系统时流量强度不能大于1。
计算:a 是数据包/秒的平均速率。交通强度 I = La/R,当 I < 1 时,排队延迟计算为 I(L/R)(1 - I)。
随着流量强度接近1,排队时延并不真正趋向无穷大。相反,到达的分组会发现队列已经被填满。由于没有地方存储这个分组,路由器将丢弃该分组,即该分组会丢失。分组丢失的比例随着流量强度增加而增加。
1.4.3 端到端时延
从源到目的地的总时延,设路由器为N - 1台,并假定网络无拥塞(排队时延微不足道),则端到端时延为:
dend-end = N(dproc + dtrans + dprop)
1.4.4 计算机网络的吞吐量
瞬时吞吐量,平均吞吐量。
在没有其他干扰流量时,吞吐量近似为瓶颈链路(bottleneck link)的传输速率。 即min{R1, R2, ..., RN}。
在今天因特网中对吞吐量的限制因素通常是接入网。
1.5 协议层次及其服务模型
1.5.1 分层的体系结构
各层(layer)的所有协议被称为协议栈(protocol stack)。因特网的协议栈由5个层次组成:物理层、链路层、网络层、运输层和应用层。
- 应用层是网络应用程序及它们的应用层协议存留的地方。位于应用层的信息分组称为报文(message)。
- 因特网的运输层在应用程序端点之间传送应用层报文。自顶向下书中把运输层的分组称为报文段(segment)。
- 因特网的网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。
- 网络层将受到来自每个不同的链路层协议的不同服务。自顶向下书中把链路层分组称为帧(frame)。
- 链路层的任务是将整个帧从一个网络元素移动到临近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。
上层:端到端;下层:点到点
5层因特网协议栈;7层ISO OSI参考模型。
1.5.2 封装
在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷字段通常是来自上一层的分组。
1.6 面对攻击的网络
- 恶意软件(malware):自我复制(self-replicating),僵尸网络(botnet),病毒(virus),蠕虫(worm)
- 拒绝服务攻击(Denial-of-Service (DoS) attack):弱点攻击,带宽洪泛,连接洪泛等
- 分布式DoS(DDoS):攻击者控制多个源并让每个源向目标猛烈发送流量,充分利用由数以千计的受害主机组成的僵尸网络。
- 分组嗅探器(packet sniffer):记录每个流经的分组副本的被动接收机,这些分组包含各种敏感信息。
- IP哄骗(IP spoofing):将具有虚假源地址的分组注入因特网的能力。