跳转至

1 计算机网络和因特网

因特网

什么是因特网

  • 从因特网的具体构成来描述(基本硬件和软件组件)
  • 根据为分布式应用提供服务的联网基础设施来描述

因特网的部件

  • 主机(端系统)
  • 通信链路和分组交换机
  1. 主机、通信链路和分组交换机联系在一起
  2. 链路的传输速率以 bit/s(bps)度量
  3. 发送端系统将数据分段,每段加上首部字节,由此形成的小信息包称为分组
  4. 最著名的两种分组交换机:路由器(一般用于网络核心)和链路层交换机(一般用于接入网)
  5. 从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为路径
  • 因特网服务商(Internet Service Provider, ISP)
  • 协议
  1. 端系统、分组交换机和其他因特网部件都要运行一系列协议,这些协议控制因特网中信息的接收和发送
  2. IP 协议(网际协议)定义了在路由器和端系统之间发送和接收的分组格式
  3. TCP 协议(传输控制协议)

服务描述

运行在一个端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据?

  • 与因特网相连的端系统提供了一个套接字接口
  • 该接口规定了要做到这一点双方发送信息和接受信息的规则

协议

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

网络边缘

端系统

  • 主机 = 端系统
  • 主机有时进一步被划分为客户端服务器

接入网

  • 指的是将端系统物理连接到其边缘路由器的网络
  • 边缘路由器是端系统到任何其他远程端系统路径上的第一台路由器

接入形式

家庭接入:DSL和电缆

  • 宽带住宅接入:数字用户线(Digital SUbscriber Line, DSL)和电缆。
  • 住户通常从本地电话公司处获得DSL因特网接入
  • 使用DSL时,用户的本地电话公司也是他的ISP
  • 每个用户的DSL调制解调器使用现有的电话线(双绞铜线)与电话公司本地中心局(CO)中的数字用户线接入复用器(DSLAM)交换数据
  • 家庭电话线采用频分复用的方式:普通双向电话信道、中速上行信道、高速下行信道

家庭接入:FTTH(光纤到户)

  • 从本地中心局直接到家庭提供了一条光纤路径
  • 从中心局出来的每根光纤实际上是共享的,直到相对接近各个家庭时才分成每户一根

企业接入:以太网和WIFI 广域无线接入:3G和LTE

物理媒体

导引型媒体

  • 光缆、双绞铜线、同轴电缆

非导引型媒体

  • 电磁波、光脉冲

网络核心

由端系统的分组交换机和链路构成的网状网络

分组交换

  • 如果某源端系统或分组交换机经过一条链路发送一个 L bits 分组,链路的传输速率为 R bits/s,则传输该分组的时间为 L/R s
  • 存储转发传输:交换机在开始向输出链路传输某分组之前,必须接收到整个分组

image-20221102085553571

image-20221102085712135

  • 排队时延:每台分组交换机连接多条链路,每条链路都有一个输出缓存(输出队列),用于存储路由器准备发往那条链路的分组
  • 如果到达的分组需要传输到某条链路,但是发现该链路正忙于传输其他分组,此分组就必须在输出缓存中等待
  • 缓存大小有限,如果满了,到达的分组或者已经在排队的分组可能会被丢弃(丢包
  • 路由器通过 IP 地址(包含在分组首部信息)的映射选择输出链路,该映射存储在路由器的转发表

电路交换

  • 通信会话期间,预留通信所需资源(缓存、链路传输速率)
  • 连接期间,在链路上预留了恒定的传输速率(带宽),确保发送方以恒定速率向接收方传输数据
  • 用电话的术语,这种连接被称之为一条电路
  • 一个链路分成 N 条并行的电路,链路的传输速率为 R Mbps,则其中一个连接在连接期间获得的总传输容量为 R/N Mbps
  • 因特网以最大努力以实时方式交付分组,但是不做任何保证

电路交换中的复用

频分复用(FDM),时分复用(TDM)

image-20221102202448075

  • 对于 TDM,一条电路的传输速率等于帧速率 × 一个时隙中的比特数。如果每秒 8000 个帧,每个时隙 8 个比特,则每条电路传输速率是 64 kbps
  • 由于打电话的人不总是说话,有的时候专用的资源可能会被闲置、浪费

电路交换的例子

:考虑从主机A到主机B经一个电路交换网络发送一个640000比特的文件需要多长时间。假如在该网络中所有链路使用具有24时隙的TDM,比特速率为1.536Mbps。同时假定在主机A能够开始传输该文件之前,需要500ms创建一条端到端电路。它需要多长时间才能发送该文件?

:每条链路具有的传输速率是1.536Mbps/24=64kbps,因此传输该文件需要640kb/64kbps=10s。这个10s,再加上电路创建时间,这样就需要10.5s发送该文件。

值得注意的是,该传输时间与链路数量无关:端到端电路不管是通过一条链路还是100条链路,传输时间都将是10s。(因为是电路,路上都被维护,不存在存储转发机制)

分组交换和电路交换的对比

分组交换的缺点

  • 不适合实时服务(电话、视频会议等),因为其端到端时延是可变的、不可预测的

分组交换的优点

  • 提供比电路交换更好的带宽共享(考虑用户以概率活跃的例子、间歇性产生大量数据的例子)
  • 比电路交换更简单、更有效、实现成本更低

趋势是当前的技术正朝着分组交换方向发展

网络的网络

之前所讨论的网络情况:

image-20221102210610701

橙色点为 Local ISP,因特网上各处如果需要连接,就需要所有 ISP 也互联,但是这种方式成本很高。

现在的情况:

image-20221102210740495

绿色点为全球传输 ISP,多个全球传输 ISP 之间互联,每个全球传输 ISP 联系多个 Local ISP,这样就形成了等级结构。

  • 任何 ISP 与其他 ISP 的连接不是唯一的,连接多个 ISP 也使其具备容灾性能。
  • 这种全球传输 ISP 是由专门的公司搭建的,因此服务需要收取费用
  • 如果两个 ISP 等级相同(对等),其间的流量是不进行结算的
  • 第三方公司还能创建 IXP(Internet Exchange Point, 因特网交换点),使得多个 ISP 能够在这里一起对等

image-20221102211404033

分组交换网中的时延、丢包和吞吐量

时延概述

image-20221102211805745

处理时延:通常是微秒或者更低的数量级

  • 检查分组首部
  • 决定将该分组导向何处
  • 其他因素,如检测位级差错

排队时延:可以是毫秒到微秒量级,但是不确定

  • 排队分组数量是到达该队列的流量和性质的函数

传输时延:通常是微秒到毫秒量级

  • 假定是先到先服务方式
  • 是将所有比特从发送端推向链路所需要的时间:d_{trans}=L/R

传播时延:在广域网中为毫秒量级

  • 为两个路由器之间的距离 d 除以传播速率 sd_{prop}=d/s

总时延d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}

排队时延和丢包

表征排队时延常常用的是统计量,如排队时延的平均值、方差和排队时延超过某些特定值的概率

  • 分组到达的平均速率 —— a,pkt/s
  • 分组长度 —— L,bits/pkt
  • 传输速率 —— R,bits/s
  • 比特到达队列的平均速率 —— La
  • 比特离开队列的平均速率 —— R
  • 比率 La/R 被称为流量强度,设计系统时如果流量强度大于 1,则排队时延将趋向无穷大

排队容量是有限的,无穷大的时延是理想状态的,如果到达时发现队列满了,路由器将丢弃分组

  • 分组丢失的比例随着流量强度增加而增加
  • 一个结点的性能根据时延丢包率来度量
  • 丢失的分组可能重传,以确保数据最终的传送

端到端时延

不考虑拥塞情况,假设端与端之间有 N-1 台路由器 $$ d_{end-end}=N(d_{proc}+d_{trans}+d_{prop}) $$

吞吐量

考虑从主机 A 到主机 B 跨越计算机网络传送一个大文件。

  • 在任何时间瞬间的瞬时吞吐量是主机B接收到该文件的速率(以bps 计)
  • 如果该文件由 F 比特组成,主机 B 接收到所有 F 比特用去 T 秒,则文件传送的平均吞吐量F/T bps
  • 吞吐量和时延、丢包一样是一个重要的性能测度

瓶颈链路模型:吞吐量 = \min\{R_1,...,R_n\}

image-20221103150706945

例子

假定下载一个 F=32\times10^6 比特的文件,服务器具有 R_s = 2 Mbps 的传输速率,并且你有一条 R_c= 1 Mbps 的接入链路。则传输该文件所需的时间是32秒。

这些吞吐量和传输时间的表达式仅是近似的,因为它们并没有考虑存储转发、处理时延和协议等问题。

  • 目前因特网的核心的确超量配置了高速率的链路,从而很少出现拥塞
  • 在今天因特网中对吞吐量的限制因素通常是接入网

协议层次

  • 各层的所有协议被称为协议栈
  • 因特网的协议栈由 5 个层次组成:物理层、链路层、网络层、运输层和应用层

应用层:HTTP、SMTP、FTP、DNS 等,应用层的信息分组称为报文(message)

运输层:TCP、UDP,运输层的分组称为报文段(segment)

网络层:IP,网络层分组称为数据报(datagram)

链路层:链路层分组称为(frame)

物理层:帧中的一个个比特

每层转运时给数据加上首部信息封装:

image-20221103161640998

本文阅读量