计算机网络和因特网

网络边缘

网络边缘值互联网中的边缘,通常指的是各种端系统(End system),包括但不限于桌面计算机、服务器和移动计算机等。 端系统也称主机(Host),通常划分为客户服务器

接入网

接入网指从互联网中从端系统到终端路由器(End router)的部分。 终端路由器是任何端系统到另一个端系统所经过的第一个路由器。

在家庭住宅中常见的接入有下面几种:

  1. 用户数字线(Digital Subscriber Line,DSL):
    • 通过电话线(双绞线)连接至网络服务提供商(ISP),需要特别的分配器和调制解调器来分离电话和网络信号并把模拟信号转换为数字信号。
    • 对最常见的DSL,其下行通道占据较高的频率且速度较快、上行通道占据中间频率,速度较慢,而电话信号的频率最低(频分复用),因此是不对称(Asymmetrical,简称ADSL)的。
    • 在ISP的本地中心局,电话线上的信号通过接入复用器再分离为网络和电话信号。
    • 受物理特性影响,通常要求家庭和本地中心局较近。
  2. 混合光纤同轴(Hybrid Fibre-Coax, HFC):
    • 利用同轴线从住宅连接至光纤结点,然后通过光纤连接至地区枢纽,通常利用有线电视的基础设施。
    • 在住宅中也需要调制解调器,在地区枢纽(电缆头端)中使用“电缆调制解调器端接系统”(CMTS)连接至因特网。
    • 通常也分为上行和下行两个信道,且通常下行比上行快。
    • 共享广播媒体,由电缆头端发送的每个分组会到达每个家庭。
  3. 光纤入户(Fibre To The Home,FTTH):
    • 通常由中心局出发的每根光纤会由多个家庭共享,这种共享组成的网络分为主动光纤网络和被动光纤网络。
    • 主动光纤网络(AON)即交换因特网。
    • 被动光纤网络(PON)把单根光纤用分配器分配到多个家庭,然后在家庭中使用光纤线路端接器(ONT,即“光猫”)把光信号转换成电信号。分配器实际上只会把所有从中心局发出的包复制给所有其他光纤,而不会鉴别到底发送给谁。
  4. 拨号上网(Dial-up):原理和DSL相似,但速率仅有56kbps,已经基本淘汰。
  5. 卫星链路。

在企事业单位和家庭中,通常使用另外的接入方法:

  1. 以太网(Ethernet):端系统先和以太网交换机相连,然后再连接至互联网。
  2. 无线局域网(WiFi):端系统通过IEEE 802.11标准规定的无线网连接至无线接入点,然后再(通常会经过有限的以太网)连接至互联网。

除此之外,对大规模的无线接入还会使用3G和4G LTE等技术。

物理媒介

  1. 双绞线(Twisted pair):两根绝缘的铜线绞合而成,历史悠久但仍是高速局域网的主导方案。
  2. 同轴线(Coaxial cable):由赫维赛德(向量分析奠基者、第一个写出麦克斯韦方程的现代形式)发明,常常用于有线电视中。
  3. 光纤(Optical fibre):用光信号传输电信号,速度快、干扰弱、衰减小、难窃听。配套设施的成本较高,因此不常用于短途中。
  4. 陆地无线电信号:易衰弱,易受干扰,无需线路。距离可长可短,短至1-2米(蓝牙)、长至数万米(蜂窝信号)。
  5. 卫星无线电信号。

网络核心

分组交换

在网络系统中,端系统交换报文(Message)。 在传输时,报文将被分割成较小的数据块,称为分组(Packet,也叫数据包、封包)。 在源和目的地之间,每个分组都必须通过通信链路和分组交换机(Packet switch)。 分组交换机也简称交换机,主要分为路由器(Router)和链路层交换机(Link-layer switch,也叫二层交换机)两种。

多数分组交换机使用存储转发传输策略,即交换机必须先接收一个分组的所有内容(比特),再向输出链路传输该分组。 假设一个分组含有$L$比特,而链路的速率为$R$比特每秒,那么通过$N$条链路组成的路径的端到端时延为: \(d = N \frac{L}{R}\)

对每条输出链路,分组交换机都有一个输出缓存(也称输出队列),用于保存待发往该链路的分组。 如果一个分组需要传输到某个输出链路,而该链路仍在传输其他分组,那么它不得不在队列中等待,从而引起排队时延。 如果此时队列已满,那么某些分组将被丢弃,造成分组丢失(Packet loss,也叫丢包)。

交换机中存在一个叫做转发表的表格,通过获取每个分组目的地的IP地址并查表,可以决定使用哪个输出链路。 这个转发表可以手工填写,也可以由一些路由选择协议自动生成。

电路交换

在分组交换网络中,所有资源都不是预留的,而是按需分配的。 这种按需分配在资源有限时的可靠性就会下降。

电路交换与分组交换不同,其在接受和发送消息之前,必须在两端之间建立连接并预先分配资源。 这种建立起来的连接称为电路(Circuit),其建立之后就是专用的,因此可以确保速率是恒定的。

这种交换方式常见于电话之中。

尽管物理线路往往只有一条,电路交换依然可以为此分配多条电路。 这种分配是通过复用实现的,通常有频分复用(FDM)和时分复用(TDM)两种。

频分复用常用于模拟信号,其为每条电路分配不同的频段,频段的宽度称为带宽,电话网络中常为4kHz。 时分复用常用于数字信号,其为每条电路分配不同的时间。 其将时间分为连续的帧,而把帧分为连续的时隙,每个时隙供一条电路使用。

对于存在大量静默期,即预留了资源而没有使用这些资源的应用来说,电路交换会浪费大量的资源。 同时,为了在整条电路中预留资源,必须协调线路上的所有交换机,因此相当复杂。 出于这些原因,现有互联网基本在向分组交换发展。

网络的网络

时延、丢包与吞吐量

分组交换中的时延

分组交换中的时延通常分为四种:

  1. 节点处理时延(Nodal processing delay,简称处理时延):处理一个分组所需的时间,包括决定使用哪个输出链路、进行错误校验等,微秒级。
  2. 排队时延(Queuing delay):分组在队列中等待链路空闲所需的时间,受当前流量较大影响,毫秒至微秒级。
  3. 传输时延(Transmission delay):节点将某个分组输出至线路所需的时间,等于分组的大小处于链路速度。
  4. 传播时延(Propagation delay):分组从一个结点到下一个结点在物理链路上经过的时间,对较大的网络可达毫秒级。

对沿途的每个节点,其节点总时延等于以上四项之和,称为节点总时延。

排队与丢包

在相同的物理环境下,节点处理时延、传输时延和传播时延没有显著的不同。 与之相对的,即使在相同的物理环境下,排队时延也会因为流量不同而不同。 因此,人们常常用统计量来处理排队时延,而非关注单个分组的排队时延。

假定系统的队列无穷大,那么流量强度是表征排队时延的重要物理量。 流量强度等于(平均)分组大小乘分组到达的平均速率除以输出链路的传输速率。 如果流量强度大于一,那么到达的速率将大于输出的速率,从而导致分组无限排队。 当流量强度小于等于一时,到达流量的性质也影响排队时延——突发的大量流量将导致较大的时延,而平均的小量流量的时延较小。

随着流量强度接近一,队列并不是无穷大会导致数据包的丢失。 对于一个端系统,其无法追踪每一个数据包,因此在它看来被丢失的数据包已经到达了网络中心。 根据协议的不同,丢失的数据包可能被重发,也可能直接丢弃。

端到端时延

现在我们假设网络中不存在拥塞,即排队时延可以忽略,那么端到端时延可写为: \(d_{\text{端到端}} = \sum_{i = 0}^N (d_{\text{处理},i} + d_{\text{传输},i} + d_{\text{传播},i})\)

除了上文所述的时延,对不同的应用可能存在其他的时延。 比如对语音通话(Voice over Internet Protocol, VoIP),发送方在发送分组之前需要进行编码,从而引入分组化时延(Packetisation delay)。

吞吐量

吞吐量分为瞬时吞吐量平均吞吐量。 考虑接受一个$F$比特的大文件时,瞬时吞吐量就是主机收到该文件的速率。 而如果总共用了$T$时间,那么其平均吞吐量为$\frac{F}{T}$。

吞吐量由链路中最小的连接速率决定,这种链路称为瓶颈链路。 通常,互联网核心的链路速度极快,因此吞吐量实际上取决于紧邻服务器和客户端的两条链路,且瓶颈链路通常为后者,即接入网。

当多个端到端连接共享一条链路时,吞吐量还会进一步下降,因此高速链路也可能成为瓶颈。

协议层次

通常我们使用五层协议栈来描述互联网上的所有协议:

  1. 应用层:网络应用程序的协议所在的地方,包括HTTP、SMTP和FTP等。开发应用层协议较为简单且常见。应用层的信息分组称为报文(message)。
  2. 运输层:负责在应用程序之间传递报文。此层的协议包括UDP和TCP。运输层的分组称为报文段(segment)。
  3. 网络层:主要包括IP,因此也称为IP层。此层的分组称为数据报(datagram)。
  4. 链路层:包括以太网、WiFi等的DOCSIS协议。此层的分组称为(frame)
  5. 物理层:物理层负责将每个比特从一个网络元素移动至另一个网络元素,通常表示物理媒介的使用方法(协议)。

国际标准化组成提出了七层协议栈,其在应用层之下依次添加了表示层会话层。 表示层负责数据加密、压缩和表示,而会话层提供数据交换和同步功能。 通常这些功能在需要时由应用实现。

封装

在主机端,由应用层产生的报文逐层向下传递,每一层都会附加额外的信息,因此称为封装

应用层的报文传递到运输层后会附加其他信息并形成报文段; 报文段到达网络层后也会附加信息,然后形成数据报,以此类推,最后在链路层之后形成帧,然后通过物理层传输。 每一层中一个分组都分为两个部分:首部字段(header)和载荷字段(payload),载荷字段通常来自上一层。

工作在第二层的链路层交换机因此只能使用链路层的信息,而不能使用网络层的信息(其中包括IP地址); 相对地,路由器则可以使用网络层信息进行决策。

封装往往比附加信息更加复杂。 比如,如果报文过大,那么可能在某一层其将分割成不同的分组,这也是封装的一部分。

更新时间: