计算机网络(一)计算机网络和因特网

An investment in knowledge always pays the best interest.

1. 什么是因特网

可以从两个角度描述因特网是什么的问题。

1.1. 角度一:因特网的软件和硬件构成

  • 网络边缘的手机、电脑、智能家电等设备被称为端系统(end system)/主机(host)
  • 端系统通过通信链路分组交换机连接
    • 链路的传输速率以bit/s度量
    • 分组交换机包括
      • 路由器(router)
      • 链路层交换机(link-layer switch)
  • 端系统将数据分段形成的数据包称为分组(packet)
  • 端系统通过因特网服务提供商(Internet Service Provider, ISP)接入网络
    • ISP自身也是由分组交换机和通信链路组成的网络
  • 端系统、分组交换机内部都运行有协议,最重要的两个是TCP(Transmission Control Protocol)和IP(Internet Protocol)
    • 因特网标准(Internet standard)给出协议的具体细节,标准文档被称为RFC(Request For Comment)

1.2. 角度二:因特网为应用提供的服务

除本身的软硬件,因特网同时作为向应用程序提供服务的基础设施而存在。应用程序运行在于端系统上。这些涉及多个相互交换数据的端系统的应用程序被称为分布式应用程序。

端系统为应用程序提供了套接字接口(socket interface)。

1.3. 协议(protocol)

协议定义了在两个或多个通信实体之间交换的报文的格式顺序,以及响应报文发送和接收或其他事件时应采取的动作

2. 网络边缘

2.1. 接入网

  • 接入网指的是将端系统物理连接到边缘路由器的网络,
    • 家庭接入主要有三种方式
      • 和电话共用的数字用户线(DSL, Digital Subscriber Line)
        • 端系统数字信号 $\rightarrow$ DSL调制解调器 $\rightarrow$ 位于电话公司本地中心局(CO)的数字用户线接入复用器(DSLAM) $\rightarrow$ 数字信号
        • 频分复用:0~4kHz为电话,4~50kHz为上行数据,50kHz~1MHz为下行数据
      • HFC(Hybird Fiber Coax, 混合光纤同轴系统): 和电视共用的电缆因特网接入(cable Internet Access)
        • 端系统数字信号 $\rightarrow$ 电缆调制解调器 $\rightarrow$ 电缆调制解调器端接系统(Cable Modem Termination System, CMTS) $\rightarrow$ 数字信号
        • 多个家庭共享传播媒介
      • FTTH(Fiber To The Home): 光纤到户
        • PON(Passive Optical Network, 被动光纤网络)
          • 每个家庭路由器 $\rightarrow$ 每家一个ONT(Optical Network Terminator, 光纤网络端接器) 多个 $\rightarrow$ 中心局光纤线路端接器(Optical Line Terminator, OLT, 光电转换) $\rightarrow$ 因特网
        • AON主动光纤网络
    • 企业和家庭接入:以太网和WiFi
      • 局域网(LAN) $\rightarrow$ 边缘路由器:
        • 以太网:双绞铜线 $\rightarrow$ 以太网交换机
        • WIFI:无线LAN
      • 典型的家庭网络:无线接入点 $\rightarrow$ 路由器 $\rightarrow$ DSL $\rightarrow$ …

2.2. 物理媒介

物理媒介分为两类:guided media(导引型媒体)和unguided media(非导引性媒体)。

  • 双绞铜线
    • 常用于LAN中
    • 现代双绞线技术可达10Gbps速率,距离长达100m
  • 同轴电缆
    • 导引型共享媒介
  • 光纤
    • 导引光脉冲,每个脉冲表示1bit,几十到几百G
    • 不受电磁干扰,衰减低,适合长途
  • 陆地无线电
  • 卫星无线电信道

3. 网络核心

网络核心是由互联网端系统的分组交换机链路构成的网状网络。

3.1. 分组交换

  • 分组(packet): 端系统间通过报文(message)通信,报文被划分为较小块的分组,分组通过通信链路分组交换机传送。
  • 分组交换机(packet switch)包含两类
    • 路由器 (router): 网络层设备
    • 链路层交换机 (link-layer switch):链路层设备
  • 传输速率:
    • 端系统/交换机通过链路发送L比特的分组,若传输速率为R比特/秒,则传输时间为L/R秒。

3.1.1. 存储转发

存储转发是分组交换机的机制。具体而言,交换机在向输出链路传输该分组第一个比特之前,必须接收整个分组。

若一个分组从源到目的地间有$N-1$个路由器,即$N$条链路,分组长度L,传输速率R,由于存储转发,每段链路耗时$\frac{L}{R}$。总耗时$d_{端到端} = N\frac{L}{R}$

3.1.2. 排队时延

分组交换机具有输出队列。到达的分组除了存储转发时延,还包括排队时延。并且由于队列长度有限,可能出现分组丢失的情况。

3.1.3. 转发表和路由协议

每个路由器内部维护了转发表(forwarding table),映射目的地址与输出链路。

路由器通过路由选择协议自动配置转发表。

3.2. 电路交换

电路交换和分组交换的区别在于,电路交换在端系统通信期间,会预留端与端通信所需要的资源(缓存,恒定的链路传输速率)。一个例子是电话网络。

3.2.1. 电路交换网络中的复用

电路交换网络中主要用到两种复用机制:

  • 频分复用 (Frequency-Division Multiplexing, FDM): 每个连接一个频段,电话网络中,通常为4kHz。频段的宽度称为带宽。
  • 时分复用 (TIme-Division Multiplexing, TDM): 将时间划分为固定的长度的帧,每个帧划分为固定数量的时隙。每个连接分配一个时隙。一条电路的传输速率等于帧速率乘以一个时隙中比特的数量。

3.2.2. 分组交换与电路交换

  • 电路交换
    • 静默期专用电路空闲
    • 链路能够支持的并发用户数量有限,缺乏灵活性
    • 海外电话逐渐开始采用分组交换
  • 分组交换
    • 端到端的时延可变且不可预测
    • 按需分配链路使用
    • 实现简单
    • 同时存在多个并发活跃用户的概率很小,性能

3.3. 网络结构

ISP: 因特网服务提供商。

各种端系统经过一个接入ISP与因特网互联,接入ISP提供无线或有线连接,使用了包括DSL、电缆、FTTH、WiFi和蜂窝等技术。

  • 网络结构1: 单一的全球传输ISP互联所有接入ISP,接入ISP向全球ISP付费。
  • 网络结构2: 不同公司存在互相竞争且互联的全球传输ISP,同时包含各种端系统。
  • 网络结构3: 继续分层,给定区域有区域ISP(reginal ISP),区域中的接入ISP和区域ISP相连。每个区域ISP与第一层ISP(tier-1 ISP)相连。
  • 网络结构4: 在3的基础上,加入PoP、多宿、对等和因特网交换点。
    • PoP(Point of Presence): PoP存在于所有层次,是供应商网络中一台或多台路由器,客户ISP能够租用高速链路将其路由器和PoP中一台路由器直连。
    • 多宿(multi-home): 除第一层外的ISP能够选择和多个供应商ISP连接,例如一个接入ISP和多个区域ISP多宿。
    • 对等(peer): 相同等级ISP互联称为对等,流量直接连接,而不通过上游的中间ISP。
    • 因特网交换点(Internet Exchange Point, IXP): 多个ISP能够在IXP对等。
  • 网络结构5: 在4的顶部加入内容提供商网络(content provider network),其独立于公共网络,只承载出入内容提供商的流量,能够和较低层ISP对等,绕过高层ISP,且能控制自身的内容分发。

4. 时延、丢包和吞吐量

分组在链路中传输涉及如下几种时延:

  • 节点处理时延(nodal processing delay)
    • 检查分组首部并决定将分组发往何处
    • 微秒以下
  • 排队时延(queuing delay)
    • 分组在链路上等待传输,特定分组的排队时延长度取决于先期到达的正在排队等待向链路传输的分组数量
    • ms到微秒
  • 传输时延(transmission delay) => 发射
    • 设分组长度为L比特,链路传输速率为R bps,则传输时延为L/R
    • 毫秒到微秒
  • 传播时延(propagation delay)
    • 分组以链路速率传播,取决于链路的物理介质特性,等于或略小于光速
    • 广域网中为ms
\[d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}\]

还有一些其它时延:

  • 向共享媒体(WiFi或电缆调制解调器)传输的端系统,可能通过引入随机回退延迟避免冲突
  • 媒体分组化时延,用于IP语音(VoIP)

4.1. 排队时延和丢包

排队时延通常取决于:

  • 流量到队列的速率
  • 链路的传输速率
  • 到达流量的性质(周期性/突发性)

设$\alpha$(分组/秒)表示分组到达队列的平均速率,每个分组$L$比特,则比特到达队列的平均速率为$L\alpha$(bps),又传输速率为$R$。则定义 流量强度(traffic intensity) 定义为$L\alpha/R$,用于估计排队延迟。

若$L\alpha/R > 1$则比特到达队列的速率大于发送的速率,会导致队列时延趋于无穷大。因而 设计系统时,流量强度不能大于1。 下图给出了流量强度和排队时延的定性关系:

delay-1.png

当排队的分组数量超过队列可容纳的分组数量时,就会发生丢包。

4.2. 端到端时延

若源主机和目的主机之间有N - 1台路由器,假设此时网络无拥塞,每台路由器和源主机上的处理时延是$d_{proc}$,每台路由器和源主机输出速率是$R(bps)$,每台链路的传播时延是$d_{prop}$,则端到端时延是

\[d_{end-end} = N(d_{proc} + d_{proc} + d_{prop})\]

4.3. 吞吐量

另一个性能度量指标是端到端的吞吐量。和时延(从发送端发送第一个比特位到接收端收到第一个比特位的时间)有所区别,想象吞吐量是无限流量的流体,沿着链路流动,即目标端不断收到数据,但是目前考虑单位时间收到数据大小的度量。分别属于两个维度的性能指标。

假设主机A向主机B发送数据,任何时刻的 瞬时吞吐量(instantaneous throughput) 是B接收到数据的速率(bps)。若接收所有F(bit)用了T秒,则数据传输的 平均吞吐量(average throughput) 为$F/T$(bps)。

若不考虑存储转发、处理时延和协议等问题,多段链路的吞吐量受木桶效应的限制,若两段链路吞吐量分别为Rs和Rc,则该两链路网络的吞吐量为$min(R_c, R_s)$。N条链路则是$min(R_1, R_2, …, R_N)$。

目前互联网的核心一般配备高速率的链路因而很少有拥塞。吞吐量取决于数据流过链路的传输速率,近似为经过各条链路的最小传输速率。也即数据发送最慢的那一条链路。

5. 协议层次

分层封装

协议层通过软件或硬件或两者的结合来实现。物理层和数据链路层负责处理跨越特定链路的通信,实现在和链路相关的网络接口卡(以太网或WiFi接口卡)中实现。网络层通常是硬件和网络混合。

分层的一些劣势如下:

  1. 一层可能冗余较低层的功能,例如每段链路间和端到端都有差错恢复
  2. 某层的功能需要其它层的信息(如时间戳),违反了层次间的信息隐藏

来看一下网络5层架构:

  • 应用层: message
  • 传输层: segment
    • 进程间:TCP, UDP
  • 网络层: datagram
    • 端到端
    • IP协议
    • 瘦腰
  • 链路层: frame
    • 节点到节点
  • 物理层

对于OSI模型多出来的表示层和会话层:

  • 表示层:使相互通信的程序能解释数据的含义
    • 服务:数据压缩和数据加密
  • 会话层:数据交换的定界和同步功能
    • 服务:简历检查点和恢复方案