第1章 计算机网络和因特网

第1章

1.1 什么是因特网

回答这个问题:

  1. 我们更够描述因特网的具体构成(nuts and bolts),即构成因特网的基本硬件和软件组件。
  2. 我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。

1.1.1 具体构成描述

端系统通过通信链路(communication link)和分组交换机(packet switch)的网络连接在一起。

链路的传输速度(transmission rate)以比特/秒(bit/s,或 bps)度量。当端系统间传输数据时,发送端系统将数据分段,并加上首部字节。由此形成的信息包称作分组(packet)。

分组交换机常见的是路由器(router)和链路层交换机(link-layer switch)。两种交换机都要向最终目的地转发分组。链路层交换机通常用于接入网,路由器通常用于网络核心中。从发送端系统到接收端系统,一个分组所经过的一系列通信链路和分组交换机称为通过该网络的路径(route 或path)。

端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网。

端系统、分组交换机和其他因特网部件都要运行多个协议(protocol),这些协议控制因特网中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,因特网协议)是因特网中最重要的两个协议。IP 协议定义了在路由器和端系统之间发送和接受的分组格式。因特网的主要协议统称为ICP/IP

因特网标准(Internet standard)由因特网工程任务组(Internet Engineering Task Force,IETF)研发。IETF 的标准说明文档称为请求评论(Request For Comment,RFC)。

1.1.2 服务描述

某些应用涉及多个相互交换数据的端系统,称为分布式应用(distributed application)。

与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。套接字接口是一套发送程序必须遵循的规则集合,因此因特网能够将数据交付给目的地。

1.1.3 什么是协议

协议:定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文的发送/接收或其他事件所采取的操作。网络协议类似于人类协议,只是交换报文和采取操作的实体是某些设备的硬件或软件组件。

1.2 网络边缘

1.2.1 接入网

接入网指的是将端系统物理连接到其边缘路由器(edge router)的网络。

  1. 宽带住宅接入类型:
  • 数字用户线(Digital Subscriber Line,DSL)
    • 其同时承载数据和传统的电话信号,采用不同的频率进行编码。高速下行信道(50kHz~1MHz 频段);中速上行信道(4kHz~50kHz 频段);普通双向电话信道(0~4kHz 频段)。使得单根 DSL 线路看起来有 3 根独立线路。
    • DSL 利用电话公司现有的本地基础设施,而电缆因特网接入(cable Internet access)利用有线电视公司现有的有线电视基础设施。
  • 电缆
    • 电缆因特网接入的一个重要特征是共享广播媒体。需要一个分布式访问协议来协调传输和避免碰撞。
  • 光纤到户(Fiber To The Home,FTTH)
    • 由本地中心局分出光纤对许多家庭共享的光纤分布体系结构
      • 有源光纤网络(Active Optical Network,AON)。本质上交换以太网。
      • 婺源光纤网络(Passive Optical Network,PON)。
  • 5G 固定式无线
    • 使用波束成形技术,数据以无线方式从供应商的基站发送到家中的调制解调器。
  1. 企业(家庭)接入
  • 以太网
    • 使用双绞线与以太网交换机相连。
  • WiFi
  1. 广域无线接入:
  • 3G
  • LTE 4G
  • 5G

1.2.2 物理媒介

物理媒介(physical medium)类型

  • 导引型媒介(guided media),电波沿着固定媒介前进。
    • 双绞铜线

      双绞线由两根绝缘的铜线组成,以规则的螺线状排列着,以减少临近类似的双绞线的电气干扰。同时在外表覆盖上保护性防护层。无屏蔽双绞线(Unshielded Twisted Pair,UTP)常用于建筑物内的计算机网络中,传输速率取决于导线线径和接收方之间的距离。

    • 同轴电缆

      由两根同心的铜导体组成。能被用作导引型共享媒介(shard medium)。

    • 光纤

      导引光脉冲(1脉冲表示 1bit)的媒介。不受电磁干扰、信号衰减极低、难以窃听。

  • 非导引型媒介(unguided media),电波在空气或外层空间中传播。
    • 陆地无线电信道

      使用电磁频谱承载信号。无线电信道极大地依赖于传播环境和信号传输的距离。环境上的考虑取决于路径损耗和遮挡衰落、多经衰落以及干扰。

    • 卫星无线电信道

      卫星通过连接地球上的两个或多个微波发生器/接收器互相通信。

      常用卫星:

      • 同步卫星(geostationary satellite):永久停留在地球上方的相同点上。

      • 近地轨道(Low-Earth Orbiting,LEO)卫星:提供对某个区域的连续覆盖,需要多颗卫星。

补充

物理链路的实际成本与其他网络成本相比通常相当小,但是劳动力成本要比材料成本高出几个数量级。

1.3 网络核心

由互联网因特网端系统的分组交换机和链路构成的网状网络。

1.3.1 分组交换

端系统彼此交换报文(message)。为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称为分组(packet)。在源和目的地之间,每个分组都通过通信链路和分组交换机传送。

分组交换(packet switching)网络中,会话的报文是按需使用资源。

1. 存储转发传输

多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。其指在交换机开始向输入链路传输该分组的第一个比特之前,必须接收到整个分组。

通过由 N 条速率均为 R 的链路组成的路径(在源和目的地之间由 N-1 台路由器),从源到目的地发送一个分组,端到端的时延为

\[d_{end-end}=N \frac{L}{R} \tag{1-1} \]

其中,分组的大小为 L bit。

2. 排队时延和分组丢失

每台交换机可能会有多条链路与之相连,对于每条相连的链路,该分组交换机具有一个输出缓存[output buffer,也称输出队列(output queue)],用于存储路由器准备发往那条链路的分组。

分组除了存储转发时延,还需承受输出缓存的排队时延(queuing delay)。该时延依据网络的拥塞程度发生变化。当输出队列已满,将出现分组丢失(丢包)(packet lose)情况。

3. 转发表和路由选择协议

每台路由器具有一个转发表(forwarding table),用于将目的地址映射为输出链路。

因特网具有一些特殊的路由选择协议(routing protocol),用于自动设置转发表。例如,一个路由选择协议可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径结果来配置路由器中的转发表。

1.3.2 电路交换

电路交换(circuit switching)网络中,在端系统间通信会话期间,预留了系统间沿路径通信所需的资源(缓存、链路传输速率等)。

链路中的电路通过频分复用(Fequency-Division Multiplexing,FDM)或时分复用(Time-Division Multiplexing,TDM)实现。频段的宽度称为带宽(band width)。

  • 频分复用
    • 链路的频谱由跨越链路创建的所有连接共享,在连接期间链路为每条连接专设一个频段。
  • 时分复用
    • 时间被划分为固定时段的帧,每个帧又被划分为固定数量的时隙。当创建一个连接时,网络在每个帧中为该连接指定一个时隙,这些时隙专门为该连接使用,用于传输连接数据。

关于电路交换和分组交换的讨论(或者说争论😄)[1] 。事实上,在现今绝大多数情况下都是使用分组交换(哪怕是用在实施服务上),分组交换在正常情况下比起电路交换具有明显的优势。

补充

使用传输速率表示每条链路传输容量的一部分。

1.3.3 网络的网络

下面不断将网络结构复杂化,最终描述现今因特网。

  • 网络结构 1

    单一的全球传输 ISP 互联所有接入 ISP。

    接入 ISP 被认为是客户(customer),全球传输 ISP 被认为是提供商(provider)。

  • 网络结构 2

    由十万个接入 ISP 和多个全球输入 ISP 组成的二层等级结构。

    全球传输 ISP 之间互联。

  • 网络结构 3

    区域 ISP(regional ISP)与区域内接入 ISP 相连,区域 ISP 则与第一层 ISP(tier-1 ISP)连接。

    每个接入 ISP 向区域 ISP 付费,每个区域 ISP 向第一层 ISP 付费。层与层之间形成客户——提供商关系。

  • 网络结构 4

    在结构 3 的基础上加上存在点(Point of Presence,PoP)、多宿(multi-home)、对等(peer)和因特网交换点(Internet Exchange Point,IXP)。

    PoP。由一个或多个网络交换设备组成,作为 ISP 和网络服务提供商(Network Server Provider)的网络基础设施的一部分。作为客户与提供商之间的连接点,使得不同网络之间的数据传输更为高效(直连方式)。

    多宿。可以与两个或多个 ISP 连接,避免因单一 ISP 故障导致网络出现瘫痪。

    对等。位于相同等级结构层次的邻近的一对 ISP 属于对等情况,二者网络直接连接,通过二者的流量并不经过更高一层,通常在此情况下不进行付费结算。

    因特网交换点。作为一个会合点,多个 ISP 能够在此处实现对等。

  • 网络结构 5

    在网络结构 4 顶部增加内容提供商网络(content provider network)。例如谷歌,其在全球部署数据中心,经过专用的 TCP/IP 网络互联,独立于公共因特网。实现:谷歌专用网对低层 ISP 对等,“绕过”较高层因特网;与第一层 ISP 连接并结算。

    最终达到减少向顶层 ISP 支付费用,加强对端用户的服务。

    类似的公司有:亚马逊(Amazon)、微软(Microsoft)、Alphabet、Meta 等。

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

现实世界的物理定理引入的时延、丢包以及吞吐量的限制是令人无奈的。必须研究和量化计算机网络中的时延、丢包和吞吐量问题。

1.4.1 分组交换网中的时延

每个节点中较为重要的时延有

  • 节点处理时延(nodal processing delay)
    1. 检查分组首部和决定将分组导向何处时所需时间。
    2. 检查比特级别的差错所需时间。

    高速路由器的处理时延通常为微秒或更低数量级。

  • 排队时延(queuing delay)

    一个特定分组的排队时延长度将取决于先期到达的正在排队等待链路传输的分组数量。

    实际的排队时延可以是毫秒级到微秒量级。

  • 传输时延(transmission delay)

    \(L\) 表示分组的长度,用 \(R\) 表示从路由器 A 到路由器 B 的链路传输速率,传播时延为 \(L/R\) 。即将所有分组的比特推向(传输)到链路所需要的时间。

    实际的传输时延通常是在毫秒到微秒量级。

  • 传播时延(propagation delay)

    在路由器 A 到路由器 B 链路过程中传播所需时间。传播速率取决于该链路的物理媒介,其速率范围为 \(2*10^8{\sim}3*10^8m/s\) ,略小于光速。路由器 A 和路由器 B 之间的距离 \(d\) ,与该链路的传播速率 \(s\) 。二者之差 \(d/s\) 即为传播时延。

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

以上时延累加为节点总时延(total nodal delay)。

总结,令 \(d_{proc}\)\(d_{queue}\)\(d_{trans}\)\(d_{prop}\) 分别表示处理时延、排队时延、传输时延和传播时延,那么节点总时延

\[d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop} \]

不同情况下,这些时延成分起到的作用可能会有很大不同。

1.4.2 排队时延和丢包

由于排队时延受不同分组的影响,所以表征排队时延时,通常使用统计量来度量。如平均排队时延、排队时延的方差和排队时延超过某些特定值的概率。

排队时延很大程度取决于流量到达该队列的速率,链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。令 \(a\) 表示分组到达队列的平均速率(单位为分组/秒, \(pkt/s\) )。假定所有分组都是由 \(L\) bit 组成的,那么比特到达队列的平均速率为 \(La\) bps。假定队列非常大,因此它基本能够容纳无限量的比特,比特 \(La/R\) 被称为流量强度(traffic intensity),其在估计排队时延的范围方面起到重要作用。如果 \(La/R>1\) ,则比特到达队列的平均速率超过该队列传输出去的速率,那么该队列将趋向无线增加,排队时延趋向无穷大!设计系统时流量强度不能大于 1

但是 \(La/R\leq 1\) 也并不是完全安全的。当分组以周期性到达时,每个分组到达一个空队列,那么不存在排队时延。但分组以突发形式到达,则可能会有很大的平均排队时延。通常,到达队列的过程是随机的,但是我们可以得出平均排队时延与流量强度的定性关系:

平均排队时延与流量强度定性关系

随着流量强度接近 1 时,排队时延并不会趋向无穷大(排队容量极大依赖于路由器设计与成本,显然排队容量是有限的)而是会选择丢弃(drop)到达的分组,该分组被丢失(lost)。分组丢失的比例随着流量强度增加而增加。因此,一个节点的性能不单根据时延度量,还取决于丢包概率。丢失的分组可能基于端到端的原则重传,以确保所有数据已经从源传送到目的地。

1.4.3 端到端时延

\((1-1)\) 公式没有考虑到处理时延和传播时延,现在对该公式进行扩展:

\[d_{end-end}=N(d_{proc}+d_{trans}+d_{prop}) \tag{1-2} \]

源主机与目的主机间由 N-1 台路由器。

补充Traceroute程序

当用户指定一个目的主机名时,源主机中的该程序朝着目的地发送多个特殊的分组。在传送过程中,通过一系列路由器。路由器接收到这些特殊分组之一时,向源回送一个短报文,该短报文包括路由器的名字和地址。

例如:假定源与目的地之间由 N-1 台路由器。源向网络发送 N 个指向目的地的特殊分组,这些分组标识为 1 到 N,当第 n 台路由器接收到第 n 个分组时,向源返回一个报文。当目的主机接收到第 N 个分组时,也会向源返回一个报文。

源主机记录从发送一个分组到它被接收并返回报文的时间、接收分组的路由器(或目的主机)的名字和地址。以此能够重建从源到目的地所采用的路由并确定所有中间路由器的往返时延。

Traceroute 默认对上述操作重复三次,采集三次信息。

使用 Traceroute 程序追踪 gaia.cs.umass.edu 例子:

traceroute gaia.cs.umass.edu
traceroute to gaia.cs.umass.edu (128.119.245.12), 30 hops max, 60 byte packets
 1  * * *
 2  49.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.49)  2.328 ms  3.044 ms  3.287 ms
 3  113.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.113)  2.483 ms 109.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.109)  3.788 ms 113.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.113)  9.656 ms
 4  171.208.196.245 (171.208.196.245)  13.168 ms * 171.208.197.73 (171.208.197.73)  12.930 ms
 5  * 202.97.21.185 (202.97.21.185)  93.997 ms 202.97.29.17 (202.97.29.17)  94.062 ms
 6  202.97.93.69 (202.97.93.69)  94.838 ms  92.710 ms 202.97.71.254 (202.97.71.254)  92.497 ms
 7  * * 202.97.65.93 (202.97.65.93)  91.189 ms
 8  202.97.91.86 (202.97.91.86)  195.945 ms 202.97.51.154 (202.97.51.154)  204.123 ms 202.97.63.30 (202.97.63.30)  205.022 ms
 9  218.30.54.203 (218.30.54.203)  271.739 ms  271.722 ms  271.710 ms
10  ae13.cr1-bos1.ip4.gtt.net (89.149.130.37)  315.544 ms  315.513 ms  315.527 ms
11  ip4.gtt.net (65.175.24.206)  315.483 ms  315.473 ms  315.462 ms
12  69.16.1.0 (69.16.1.0)  315.161 ms  315.441 ms  314.817 ms
13  core1-rt-et-8-3-0.gw.umass.edu (192.80.83.109)  315.419 ms  282.059 ms  281.550 ms
14  n1-rt-1-1-et-0-0-0.gw.umass.edu (128.119.0.216)  281.965 ms n1-rt-1-1-et-10-0-0.gw.umass.edu (128.119.0.120)  287.699 ms n1-rt-1-1-et-0-0-0.gw.umass.edu (128.119.0.216)  287.382 ms
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

除了上述提到的时延外,端系统还有其他一些重要时延。例如,

  1. 希望向共享媒介传输分组的端系统可能有意延迟传输,作为它与其他端系统共享媒介的协议的一部分。
  2. 媒介分组化时延。出现在 IP 语音(VoIP)应用中,发送方在向因特网传递分组之前必须首先用编码的数字化语音填充分组,填充时间即为媒介分组化时延。

1.4.4 计算机网络中的吞吐量

除了时延和丢包,计算机网络还有一个重要的性能测试度为端到端吞吐量(throughput)。吞吐量取决于数据流过的链路的传输速率。

瞬时吞吐量(instantaneous throughput)。作为主机 B 接收主机 A 传输一个大文件时的速率(以 bps 计)。如果传输文件由 \(F\ bit\) 组成,接收时间 \(T\ s\) ,则文件传送的平均吞吐量(average throughput)为 \(F/T\ bps\)

下面对各种情况进行吞吐量分析:

示例 1

吞吐量—示例 1

对于这种简单的两链路网络,其吞吐量为 \(min\{R_{s},\ R_{c}\}\) ,也就是瓶颈链路(bottleneck link)。服务器不可能快过 \(R_{s}\)\(R_{c}\) 的速率转发比特,当 \(R_{s}<R_{c}\) 时,则在给定吞吐量 \(R_{s}\) 的情况下,服务器能够顺畅的通过路由器将比特传输给客户端;如果 \(R_{c}<R_{s}\) ,那么路由器不能像接收比特那样快地转发比特(产生排队时延),这种情况下以速率 \(R_{c}\) 离开该路由器,从而得到端到端吞吐量为 \(R_{c}\)

当然,上述的表达式仅为近似值,没有考虑存储转发、处理时延和协议等问题。

示例 2

吞吐量—示例 2

从服务器到客户端的文件传输吞吐量为 \(min\{R_{1},\ R_{2},\ ...,\ R_{n}\}\)

通常来说,因特网的核心超量配置了高速路的链路,很少出现拥塞。但是根据 \(min\{R_{s},\ R_{c}\}\) 可得现今因特网中对吞吐量的限制因素通常是接入网,当然也有可能为共享链路。

在没有干扰流量时,吞吐量取决于沿着源和目的地之间路径的最小传输速率,但是当存在干扰流量时,一条具有高传输速率的链路仍然可能成为文件传输的瓶颈链路(例如:共享高速链路)。

1.5 协议层次及其服务模型

1.5.1 分层的体系结构

尝试通过人类社会例子(如“乘飞机”)将其水平化展示,以分层(layer)的思想推衍理解网络层次。将大而复杂的网络系统划分简化,以模块化、层次化的方式划分服务,对服务实现的改变并不会影响承上启下的功能。

通过分层方式组织协议并实现这些协议的网络硬件和软件。每个协议属于这些层次之一,协议分层具有概念化和结构化的优点。分层以一种结构化方式来讨论系统组件,模块化使更新系统组件更为容易。但是分层并不是完美的[2],其中一个潜在缺点是某些层次可能会冗余较低层次功能;还有某些层次的功能依赖于其他层次实现或信息。

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

  1. 应用层

    作为网络应用程序及它们的应用协议存留的地方。

    HTTP(Web 文档的请求和传送)、SMTP(电子邮件报文传输)、FTP(端系统间文件传送)、DNS(域名系统)等。

    分组:报文(message)

  2. 运输层

    在应用程序端点之间传送应用报文。

    TCP(Transmission Control Protocol,传输控制协议)向它的应用程序提供面向连接服务。这种服务包括确保应用层报文向目的地的传递和流量控制(即发送方/接收方速率匹配)。将长报文划分为短报文,并提供拥塞控制机制,当网络拥塞时源抑制传输速率。

    UDP(User Datagram Protocol,用户数据协议)向它的应用程序提供无连接服务(不提供不必要服务的服务)。没有可靠性、没有流量控制、也没有拥塞控制。

    分组:报文段(segment)

  3. 网络层

    负责将数据报(datagram)的网络层分组进行转移。

    IP(Internet Protocol,互联网协议)定义数据报中的各个字段以及端系统和路由器如何作用于这些字段。决定路由的路由选择协议。将因特网连接在一起的粘合剂。

    分组:数据报(datagram)

  4. 链路层

    在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一节点。在下一节点,链路层将数据报上传给网络层。将整个帧从一个网络元素移动到邻近的网络元素。

    由链路层提供的服务取决于应用于该链路的特定链路层协议。

    分组:(frame)

  5. 物理层

    将帧中的一个个比特从一个节点移动到下一个节点。

    与链路中的实际传输媒介相关。

    单位:比特(bit)

1.5.2 封装

五层封装demo

上图显示一个物理路径:数据从发送端的协议栈向下,沿着中间的的链路层交换机和路由器的协议栈上上下下,然后向上到达接收端系统的协议栈。

链路层交换机和路由器并不实现协议栈中所有层次,链路层交换机仅实现第一和第二层,路由器实现第一、第二和第三层。注意实现所有层次,这与因特网体系结构将它的复杂性放在网络边缘的观点一致。

封装(encapsulation):

flowchart TD A[应用层报文 \n application-layer message] -- "附加首部信息:允许接收端运输层向上向适当的应用程序交付报文的信息;差错检测位信息。" --> B[运输层报文段 \n transport-layer segment] -- "附加首部信息:源和目的端系统地址" --> C[网络层数据报 \n network-layer datagram] -- "附加链路层首部信息" --> D[链路层帧 \n link-layer frame]

每一层一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷字段通常来自上一层的分组。

1.6 面对攻击的网络

恶意软件(malware)感染设备,并使之成为僵尸网络(botnet),利用僵尸网络控制并有效的对目标主机展开垃圾邮件分发或分布式拒绝服务攻击。

自我复制(self-replicating)是大多数恶意软件的特性。

拒绝服务攻击[Denial-of-Service (Dos) attack]是一种宽泛类型的安全性威胁。使得网络、主机服务器等基础设施无法为合法用户提供服务,可以通过数字攻击图观看世界范围内每天最厉害的 Dos 攻击。

大多数 Dos 攻击属于:

  • 弱点攻击。向目标主机上运行易受攻击应用程序或操作系统发送精细报文,导致服务器停止运行,或者崩溃。
  • 带宽洪泛。向目标主机发送大量分组,使目标主机接入链路拥塞导致无法使合法分组到达服务器。
  • 连接洪泛。对目标主机创建大量的半开或全开 TCP 连接,主机因这些伪造连接停止接受合法连接。

如果采用单攻击源,那么上游路由器检测到即可对攻击流量进行阻挡。所以现今多使用分布式 Dos(Distributed Dos,DDoS),通过控制多个源向目标发动攻击。

分组嗅探器(packet sniffer),记录每个流经的分组副本的被动接收机。由于分组嗅探器是被动的,所以很难检测到。最好的防御嗅探的方法基本上都与密码学有关。

IP 哄骗(IP spoofing),将具有虚假源地址的分组注入因特网。防御该能力需要采用端点鉴别,一种是我们能够确信一个报文源自我们认为它应当来自的地方的机制。

因特网最初基于“一群相互信任的用户连接到一个透明的网络上”这样的模型[3],所以安全是没有必要的。单显然今天的因特网并不只有“相互信任的用户”,用户间需要通信,但是不必相互信任。在相互信任的用户之间的通信是一种例外而不是规则

课后复习题和问题

复习题

1.1 节

  1. “主机”和“端系统”之间有什么不同?列举几种不同类型的端系统。Web 服务器是一种端系统吗?

没有区别,二者词汇可以互换。例如:PC、工作站、Web 服务器、嵌入式设备等。

Web 服务器是一种端系统,处于网络边缘。

  1. “协议”一词常被用于描述外交关系。维基百科是怎样描述外交协议的?

From Wikipedia: Diplomatic protocol is commonly described as a set of international courtesy rules. These well-established and time-honored rules have made it easier for nations and people to live and work together. Part of protocol has always been the acknowledgment of the hierarchical standing of all present. Protocol rules are based on the principles of civility.

  1. 标准对于协议为什么重要?

如果采用不同的标准,那么协议会变的复杂、冗余、不具备普遍性。

1.2 节

  1. 列出 4 种接入技术。将它们分类为住宅接人、公司接入或广域无线接入。

接入技术:

  • 数字用户线接入(Digital Subscriber Line)。住宅
  • 电缆因特网接入(cable Internet access)。住宅
  • 光纤到户接入(Fiber To The Home)。住宅、公司
  • 5G 固定式无线接入。住宅、公司、广域
  1. HFC 传输速率在用户间是专用的还是共享的?在下行 HFC 信道中,可能出现碰撞吗?为什么?

HFC(Hybrid Fiber Coax,混合光纤同轴)。在用户间共享(共享广播媒体),下行 HFC 信道不会碰撞,因为所有数据包来自单个源。

  1. 列出你所在城市中的可供使用的住宅接入技术。对于每种类型的接入方式,给出所宣称的下行速率、上行速率和每月的价格。
速率 FTTH WiFi 以太网电缆
上行速率 100 Mbps 24 Mbps 24 Mbps
下行速率 20 Mbps 10 Mbps 10 Mbps

每月价格:39 元。

  1. 以太 LAN 的传输速率是多少?
超五类 六类
超六类
七类
八类
速度 1000Mbps 1000Mbps 10Gbps 10Gbps 25Gbps、40Gbps
距离 100m 100m 100m 100m 30m
频率 100MHz 250MHz 500MHz 1000MHz 2000MHz
线对数 4 4 4 4 2
电缆类型 屏蔽/非屏蔽 屏蔽/非屏蔽 屏蔽/非屏蔽 屏蔽/非屏蔽 屏蔽
应用 小型办公室、家庭 大型企业,高速应用 大型企业,高速应用 数据中心、高速带宽密集型应用 数据中心、高速带宽密集型应用
  1. 能够运行以太网的一些物理媒介是什么?

通常为双绞铜线,还可以在光纤。

  1. 拨号调制解调器、HFC、DSL 和 FTTH 都用于住宅接人。对于这些技术,给出每种技术的传输速率的范围,并讨论它们的传输速率是共享的还是专用的。
  1. 拨号调制解调器

    • 传输速率范围:通常在33.6 Kbps至56 Kbps之间。
    • 速率特性:拨号调制解调器的速率是专用的,即用户独占整个链路的带宽。但由于其速率较低,这种技术已经逐渐被淘汰。
  2. HFC(混合光纤同轴电缆)

    • 传输速率范围:下行速率通常在10 Mbps至30 Mbps之间,上行速率则相对较低,通常在1 Mbps至10 Mbps之间。
    • 速率特性:HFC是一种共享介质技术。在HFC网络中,多个用户共享同一根同轴电缆,因此实际速率会受到网络拥塞和用户数量的影响。
  3. DSL(数字用户线路)

    • 传输速率范围:DSL技术包括多种类型(如 ADSL、VDSL等),速率范围较广。例如,ADSL的下行速率通常在1.5 Mbps至8 Mbps之间,VDSL的下行速率则可高达50 Mbps至100 Mbps。
    • 速率特性:DSL也是一种专用技术,每个用户拥有自己的电话线路和一定的带宽。但DSL的速率会受到用户距离交换局的距离和线路质量的影响。
  4. FTTH(光纤到户)

    • 传输速率范围:FTTH的速率非常高,常见的家庭套餐下行速率从100 Mbps至1000 Mbps(1 Gbps)不等。
    • 速率特性:FTTH为用户提供专用的高速连接。每个用户都有自己的光纤连接到家中,因此速率不会受到其他用户的影响。
  1. 描述今天最为流行的无线因特网接入技术,并对它们进行比较。
  1. Wi-Fi

    • 传输速度:Wi-Fi的传输速度非常快,最新的WiFi 7标准可以达到 23 Gbps 至 46 Gbps。
    • 覆盖范围:Wi-Fi的覆盖范围取决于设备和天线的高度和增益,一般在几十米至几百米之间。
    • 适用场景:广泛应用于家庭、企业、公共场所等,提供高速互联网接入服务。
    • 优缺点:优势在于传输速度快、应用广泛;缺点是功耗较高,不适合于移动设备和物联网设备。
  2. Bluetooth

    • 传输速度:蓝牙5.0标准的理论速度为24 Mbps。
    • 覆盖范围:通常在10米左右,适用于短距离通信。
    • 适用场景:主要用于无线耳机、智能手表、手机等移动设备之间的通信。
    • 优缺点:优势在于设备体积小、成本低、灵活性高;缺点是传输速度较慢,不适合于大数据量的传输。
  3. Zigbee

    • 传输速度:理论最大速率为20-25 kbps。
    • 覆盖范围:可达数百米,适合于中距离通信。
    • 适用场景:适用于智能家居、工业自动化等领域,通过无线方式控制设备。
    • 优缺点:优势在于低功耗、低成本、稳定性高;缺点是传输速度较慢,不适合于需要高速传输的应用。
  4. 4G(第四代移动通信技术)

    • 传输速度:4G网络的传输速度通常在5-50 Mbps之间,但在实际使用中,由于多种因素(如网络拥塞、地理位置等),速度可能会有所不同。
    • 覆盖范围:4G网络的覆盖范围较广,适合于城市和乡村地区的移动通信。
    • 适用场景:广泛应用于智能手机、平板电脑等移动设备,提供高速的移动互联网接入服务。
    • 优缺点:4G网络的优势在于相对较高的传输速度和良好的覆盖范围;缺点是在高用户密度区域可能会出现网络拥塞。
  5. 5G(第五代移动通信技术)

    • 传输速度:5G网络的理论速度可以达到10 Gbps以上,远高于4G网络。
    • 覆盖范围:5G网络的覆盖范围相对较小,但由于其使用高频段,可以在城市密集区域提供更高的网络容量。
    • 适用场景:除了为智能手机等移动设备提供高速互联网接入外,5G还被视为支持物联网、自动驾驶汽车、远程医疗等新兴应用的关键技术。
    • 优缺点:5G网络的优势在于极高的传输速度和低延迟,能够支持更多创新应用;缺点是覆盖范围有限,且初期部署成本较高。

1.3 节

  1. 假定在发送主机和接收主机间只有一台分组交换机。发送主机和交换机间以及交换机和接收主机间的传输速率分别是 \(R_{1}\)\(R_{2}\) 。假设该交换机使用存储转发分组交换方式,发送一个长度为 \(L\) 的分组的端到端总时延是什么?(忽略排队时延、传播时延和处理时延。)

\(t_{o}\) :开始传输;

\(t_{1}=L/R_{1}\) :发送主机完成传输;

\(t_{2}=t_{1}+L/R_2\) :接受主机接收完数据。

端到端总时延为 \(L/R_1+L/R_2\)

  1. 与分组交换网络相比,电路交换网络有哪些优点?在电路交换网络中,TDM 与 FDM 相比有哪些优点?

由于电路交换占用整条链路,所有适合实时传输,能够对带宽做出端对端保证。

TDM(Time-Division Multiplexing)时分复用相比 FDM(Frequency-Division Multiplexing)无需使用复杂的模拟硬件将信号转换到合适的频段。

  1. 假定用户共享一条 2 Mbps 链路。同时假定当每个用户传输时连续以 1 Mbps 传输,但每个用户仅传输20%的时间。

a.当使用电路交换时,能够支持多少用户?

b.假定使用分组交换。为什么如果两个或更少的用户同时传输的话,在链路前面基本上没有排队时延?为什么如果 3 个用户同时传输的话,将有排队时延?

c.求出某指定用户正在传输的概率。

d.假定现在有 3 个用户。求出在任何给定的时间,所有 3 个用户在同时传输的概率。求出队列增长的时间比率。

题 a:两个用户,每个用户需要一半的带宽。

题 b:当两个或更少的用户传输时,链路上正处于或未处于链路占满情况,此时不会出现排队时延。当用户大于 3 个时,链路上的带宽就不够平均分配,需要等待。

题 c:20%。

题 d: 三用户同时传输的概率为: \(0.2^{3}=0.008\) 。队列的增长在三个用户同时使用时发生,所以时间比率为 0.008。

  1. 为什么等级结构中级别相同的两个 ISP 通常互相对等?某 IXP 是如何挣钱的?

如果同级别 ISP 互相不对等,那么相互传输信息必须付费经过第三方,付费给第三方获得的效益并不会大于互相直接免费对等传输。但是如果想要跨越多个 ISP 进行联系,期间经过多个 ISP 的费用较为昂贵,但是如果存在一个第三方(IXP)能够综合多个 ISP,使之能够减少费用达到相同的结果,那么 IXP 显然是合理的。

  1. 某些内容提供商构建了自己的网络。描述谷歌的网络。内容提供商构建这些网络的动机是什么?

谷歌通过创建专用网络以绕过公共互联网(绕过高级别 ISP,直接与低级 ISP 进行联系)直接的效益:

  1. 获得对用户更大的控制权,而不用经过多个 ISP。
  2. 直接与低级 ISP 联系,发送更少的流量达到相同的结果。
  3. 避免因为政策、经济等原因使得 ISP 向谷歌收取更高的费用。

1.4 节

  1. 考虑从某源主机跨越一条固定路由向某目的主机发送一个分组。列出端到端时延中的时延组成成分。这些时延中的哪些是固定的,哪些是变化的?

固定:

  1. 处理时延
  2. 传播时延
  3. 传输时延

变化:

  1. 排队时延
  1. 访问配套 Web 网站上有关传输时延与传播时延的交互动画。在速率、传播时延和可用的分组长度之中找出一种组合,使得该分组的第一个比特到达接收方之前发送方结束了传输。找出另一种组合,使得发送方完成传输之前,该分组的第一个比特到达了接收方。
  1. 一个长度为 1000 字节的分组经距离为 2500 km 的链路传播,传播速率为 \(2.5*10^{8}\) m/s 并且传输速率为 2 Mbps, 它需要用多长时间?更为一般地,一个长度为 L 的分组经距离为 d 的链路传播,传播速率为 s 并且传输速率为 R bps, 它需要用多长时间?此时延是否取决于数据包长度,该时延与传输速率相关吗?

传输时延: \(\frac{1000*8\ bit}{2000\ bit/s}*2=8s\) ,传播时延: \(\frac{2500\ km}{2.5*10^{8}\ m/s}=0.01s\) ,总时延 \(8+0.01=8.01s\)

传播时延 \(d_{prop}=d/s\) 。与数据包长度和传输速率都不相关。

  1. 假定主机 A 要向主机 B 发送一个大文件。从主机 A 到主机 B 的路径上有 3 段链路,其速率分别为 \(R_{1}\) =500 kbps, \(R_{2}\) =2 Mbps, \(R_{3}\) =1 Mbps。

a. 假定该网络中没有其他流量,该文件传送的吞吐量是多少?

b. 假定该文件为 4 MB。用文件长度除以吞吐量,将该文件传输到主机 B 大致需要多长时间?

c. 重复 (a) 和 (b), 只是这时 \(R_{2}\) 减小到 100 kbps。

题 a:吞吐量 \(min\{R_{1}, R_{2}, R_{3}\}=500 kbps\)

题 b:时长 \(T_{total}=\frac{4*8*1024^{2}}{500*1024\ bps}=65.536s\)

题 c:吞吐量变为 \(100\ kbps\) ,时长 \(T_{total}=\frac{4*8*1024^{2}}{100*1024\ bps}=327.68s\)

  1. 假定端系统 A 要向端系统 B 发送一个大文件。在一个非常高的层次上,描述端系统怎样从该文件生成分组。当这些分组之一到达某分组交换机时,该交换机使用分组中的什么信息来决定将该分组转发到哪一条链路上?因特网中的分组交换为什么可以与驱车从一个城市到另一个城市并沿途询问方向相类比?

端系统 A 将大文件分为块并添加标头(包含目标 IP 地址),交换机根据标头的目的 IP 地址确定转发指定链路。

  1. 访问配套 Web 站点的排队和丢包交互动画。最大发送速率和最小传输速率是多少?对于这些速率,流量强度是多大?用这些速率运行该动画并确定出现丢包要花费多长时间。然后第二次重复该实验,再次确定出现丢包花费多长时间。这些值有什么不同?为什么会有这种现象?

1.5 节

  1. 列出一个层次能够执行的 5 个任务。这些任务中的一个(或两个)可能由两个(或更多)层次执行吗?

5 个任务:

  • 错误控制
  • 流量控制
  • 分段重组
  • 多路复用
  • 链接设置

错误控制通常多层次提供。

  1. 因特网协议栈中的 5 个层次是什么?在这些层次中,每层的主要任务是什么?
  • 应用层
    • 作为网络应用程序及它们的应用协议存留地方。
  • 运输层
    • 在应用程序端点之间传送应用报文。
  • 网络层
    • 负责将数据报(datagram)的网络层分组进行转移。
  • 链路层
    • 帧的封装和拆分、链路接入等
  • 物理层
    • 将帧中的一个个比特进行节点之间的传输。
  1. 什么是应用层报文?什么是运输层报文段?什么是网络层数据报?什么是链路层帧?
  1. 应用层报文: 应用层是OSI模型的最顶层,直接为用户的应用程序提供服务。应用层报文是指应用层协议生成并处理的数据单元,它包含了应用程序要传输的数据。这些数据可以是简单的文本消息、复杂的文件或者多媒体流。例如,HTTP请求和响应、SMTP邮件、FTP文件等都是应用层报文的例子。

  2. 运输层报文段: 运输层负责在网络中的两个端点之间提供端到端的通信服务。运输层报文段是指运输层协议在应用层报文的基础上添加了运输层首部(如TCP或UDP头)的数据单元。这个首部包含了用于端到端通信的控制信息,例如端口号、校验和、序列号等。

  3. 网络层数据报: 网络层负责将运输层产生的报文段发送到目标网络的路径上。网络层数据报是指网络层协议在网络层添加了网络层首部的数据单元。这个首部包含了源和目的地的IP地址、以及其他用于路由和分片的信息。

  4. 链路层帧: 链路层负责在相邻节点之间的链路上传输数据。链路层帧是指链路层协议在接收到的网络层数据报前后分别添加了链路层首部和尾部,形成的数据单元。首部通常包含了源和目的地的MAC地址,而尾部可能包含用于错误检测的循环冗余校验(CRC)码。

  1. 路由器处理因特网协议栈中的哪些层次?链路层交换机处理的是哪些层次?主机处理的是哪些层次?

路由器处理物理层、链路层、网络层,链路层交换机处理物理层、链路层,主机处理所有 5 个层次。

1.6 节

  1. 病毒和蠕虫之间有什么不同?

病毒旨在感染其他文件或系统,需要用户交互。但是蠕虫能够在网络上自由传播,不需要用户干预。蠕虫可以在全球范围内大规模传播,病毒通常在感染本地机器。

  1. 描述如何产生僵尸网络,以及僵尸网络是怎样被用于 DDoS 攻击的。

在网络上搜索、浏览、下载等操作时可能会收到恶意内容,使之能够感染本地机器。感染后就能够做出一系列不正当事情,成千上万受到感染的主机组成僵尸网络。坏家伙通过操控僵尸网络向目标设备进行 DDoS(Distributed Denial-of-Service,分布式拒绝服务)。

  1. 假定 Alice 和 Bob 经计算机网络互相发送分组。假定 Trudy 将自己安置在网络中,使得她能够俘获由 Alice 发送的所有分组,并发送她希望给 Bob 的东西;她也能够俘获由 Bob 发送的所有分组,并发送她希望给 Alice 的东西。列出在这种情况下 Trudy 能够做的某些恶意的事情。
  1. 窃听 Alice 和 Bob 向网络发送的信息。
  2. 篡改 Alice 和 Bob 向网络发送的信息。
  3. 阻止二者的信息向网络发送。

习题

  1. 设计并描述在自动柜员机和银行的中央计算机之间使用的一种应用层协议。你的协议应当允许验证用户卡和口令,查询账目结算(这些都在中央计算机中进行维护),支取账目(即向用户支付)。你的协议实体应当能够处理取钱时账目中钱不够的常见问题。通过列出自动柜员机和银行中央计算机在报文传输和接收过程中交换的报文和采取的操作来定义你的协议。使用类似于图 1-2 所示的图,拟定在简单无差错取钱情况下该协议的操作。明确地阐述在该协议中关于底层端到端运输服务所做的假设。

下面尝试解答:

ATM 向服务器(中央计算机)传送的一些信息:

信息名 目的
你好 表明 ATM 现在已经插入银行卡并向服务说明卡 ID
密码 向服务器发送用户输入的卡密码
请求余额 用户请求查询当前卡内存在的余额
取钱 向服务器发送取钱请求
结束 向服务器发送结束请求,ATM 吐出银行卡

服务器向 ATM 传送信息:

信息名 目的
正确 当用户向服务器传送的信息符合服务器查询内容,返回正确信息
错误 当用户向服务器传送的信息不符合服务器查询内容,返回错误信息
密码 要求用户输入密码请求
余额 服务器查询银行卡的余额
结束 向 ATM 发送结束请求

一般操作:

ATM                             SERVER
你好  ---------------------> (检查ID是否存在)
	 <---------------------      密码
密码  ---------------------> (检查密码是否正确)
     <---------------------      正确
余额  ---------------------> (检查银行卡内余额)	
     <---------------------      余额
取钱  ---------------------> (检查取钱金额是否小于等于余额)
     <---------------------      正确
结束  --------------------->        
     <---------------------      结束

账目中钱不够情况:

   ATM                                SERVER
   你好     ---------------------> (检查ID是否存在)
           <---------------------      密码
   密码     ---------------------> (检查密码是否正确)
           <---------------------      正确
   余额     ---------------------> (检查银行卡内余额)
           <---------------------      余额
   取钱     ---------------------> (检查取钱金额是否小于等于余额)
(金额不足)  <---------------------      错误
   结束     --------------------->        
           <---------------------      结束
  1. \((1-1)\) 给出了经传输速率为 \(R\)\(N\) 段链路发送长度 \(L\) 的一个分组的端到端时延。对于经过 \(N\) 段链路一个接一个地发送 \(P\) 个这样的分组,给出一般化的计算公式。

\((1-1)\)

\[d_{end-end}=N \frac{L}{R} \]

当第一个数据包到达目的地,第二个数据包存储在倒数第二个路由器上,第三个数据包存储在倒数第三个路由器上,所以可以看到总时间为

\[d_{end-end}=N \frac{L}{R}+(P-1)*(\frac{L}{R})=(N+P-1)*(\frac{L}{R})\qquad P为分组总数 \]

  1. 考虑一个应用程序以稳定的速率传输数据(例如,发送方每 \(k\) 个时间单元产生一个 \(N\) 比特的数据单元,其中 \(k\) 较小且固定)。另外,当这个应用程序启动时,它将连续运行相当长的一段时间。回答下列问题,简要论证你的回答:

a.是分组交换网还是电路交换网更适合这种应用?为什么?

b.假定使用了分组交换网,并且该网中的所有流量都来自如上所述的这种应用程序。此外,假定该应用程序数据传输速率的总和小于每条链路的各自容量。需要某种形式的拥塞控制吗?为什么?

题 a:电路交换网。由于应用程序非突发性发送数据,同时需要连续运行相当长的时间。如果采用分组交换方式,需要不断进行连接、断开操作,浪费资源。

题 b:不会,因为链路有足够的带宽处理所有应用程序的数据和。

  1. 考虑在图 1-13中的电路交换网。回想在每条链路上有 4 条链路,以顺时针方向标记四台交换机 A、B、C 和 D。

a.在该网络中,任何时候能够进行同时连接的最大数量是多少?

b.假定所有连接位于交换机 A 和 C 之间。能够进行同时连接的最大数量是多少?

c. 假定我们要在交换机 A 和 C 之间建立 4 条连接,在交换机 B 和 D 之间建立另外 4 条连接。我们能够让这些呼叫通过这 4 条链路建立路由以容纳所有 8 条连接吗?

题 a:最大数量为 4。

题 b:最大数量为 8,可以形成两条链路:A --> B ---> C 或者 A --> D --> C。

题 c:可以。A 和 C 之间的连接分别通过 A --> B --> C 和 A --> D --> C 各两条链路方式进行联系;B 和 D 之间的连接分别通过 B --> C --> D 和 B --> A --> D 各两条链路方式进行联系。

  1. 回顾 1.4 节中的车队类比。假定传播速度为 100 km/h

a.假定车队旅行 150 km;在一个收费站前面开始,通过第二个收费站,并且正好在第三个收费站后面结束。其端到端时延是多少?

b. 重复 (a), 现在假定车队中有 8 辆汽车而不是 10 辆。

题 a:与本书 1.4 节内容相结合,收费站间间隔 75 km,同时收费站需要为每辆车提供 12 秒服务。由此可得:车队到达第二个收费站需要 \((75\ km)/(100\ km/h)*60+2=27\ min\) ,因而到达第二个服务站的车必须等待其他车到达。同理,车队到达第三个收费站也需要花费相同的时间,所以总共为 54 分钟。

题 b:8 辆车,那么在收费站服务时间减少为 1.6 分钟,那么总时延为 53.2 分钟。

  1. 本题开始探讨传播时延和传输时延,这是数据网络中的两个重要概念。考虑两台主机 A 和 B 由一条速率为 \(R\) (bps) 的链路相连。假定这两台主机相隔 m (m), 沿该链路的传播速率为 s (m/s)。主机 A 向主机 B 发送长度为 \(L\) (bit) 的分组。

a. 用 \(m\)\(s\) 来表示传播时延 \(d_{prop}\)

b. 用 \(L\)\(R\) 来确定该分组的传输时间 \(d_{trans}\)

c. 忽略处理和排队时延,得出端到端时延的表达式。

d. 假定主机 A 在时刻 \(t=0\) 开始传输该分组。在时刻 \(t=d_{trans}\) , 该分组的最后一个比特在什么地方?

e. 假定 \(d_{prop}\) 大于 \(d_{trans}\) 。在时刻 \(t=d_{trans}\) , 该分组的第一个比特在何处?

f. 假定 \(d_{prop}\) 小于 \(d_{trans}\) 。在时刻 \(t=d_{trans}\) , 该分组的第一个比特在何处?

g.假定 \(s=2.5*10^{8}\) m/s, \(L=120\) bit, \(R=56\) kbps。求出使 \(d_{prop}\) 等于 \(d_{trans}\) 的距离 \(m\)

题 a: \(d_{prop}=m/s\)

题 b: \(d_{trans}=L/R\)

题 c: \(d_{nodal}=(m/s+L/R)\)

题 d:刚好离开主机 A。

题 e:正在链路中,还未到主机 B。

题 f:已经到达主机 B。

题 g:由题 a 和题 b 的算式可得

\[M=\frac{120\ bit}{56\ kbps}*2.5*10^{8}=535714\ m \]

  1. 在本题中,我们考虑从主机 A 向主机 B 通过分组交换网发送语音(VoIP)。主机 A 将模拟语音转换为传输中的64 kbps 数字比特流。然后主机 A 将这些比特分为56字节的分组。A和B之间有一条链路:它的传输速率是2 Mbps, 传播时延是10 ms。一旦 A 收集了一个分组,就将它向主机 B 发送。一旦主机 B 接收到一个完整的分组,它将该分组的比特转换成模拟信号。从比特产生(从位于主机 A 的初始模拟信号起) 的时刻起,到该比特被解码(在主机 B 上作为模拟信号的一部分),花了多少时间?

\[\begin{align*} d_{proc}&=\frac{56*8}{64*10^{3}}=7\ ms \\ d_{trans}&=\frac{56*8}{2*10^{6}}=244\ \mu s \\ d_{prop}&=10\ ms \\ d_{total}&=2*d_{proc}+2*d_{trans}+d_{prop} \\ &=24.0244\ ms \end{align*} \]

  1. 假定用户共享一条3 Mbps的链路。又设每个用户传输时要求150 kbps, 但是每个用户仅有10%的时间传输。(参见1.3节中关于“分组交换与电路交换的对比”的讨论。)

a.当使用电路交换时,能够支持多少用户?

b.对于本习题的后续小题,假定使用分组交换。求出某给定用户正在传输的概率。

c.假定有120个用户。求出在任何给定时刻,实际有n个用户在同时传输的概率。(提示:使用二项式分布。)

d.求出有21个或更多用户同时传输的概率。

题 a: \(3*10^{6}/150*10^{3}=20\) 位用户。

题 b: \(p=0.1\)

题 c: \(p=\begin{pmatrix}120\\n\end{pmatrix}p^{n}(1-p)^{120-n}\)

题 d: \(1-\sum\limits_{n=0}^{20}\begin{pmatrix}120\\n\end{pmatrix}p^{n}(1-p)^{120-n}\)

  1. 考虑1. 3节关于“分组交换与电路交换的对比”的讨论,其中给出了一条1 Mbps链路的例子。用户在忙时以100 kbps的速率产生数据,但忙时仅以 \(p=0.1\) 的概率产生数据。假定用1 Gbps链路替代1 Mbps的链路。

a.当采用电路交换技术时,能被同时支持的最大用户数量N是多少?

b.现在考虑分组交换和有 M 个用户的情况。给出多于 N 个用户发送数据的概率公式(用 \(p\) 、M、N表示)。

题 a: \(1*10^{9}/100*10^{3}=10,000\) 位用户。

题 b: \(\sum\limits_{n=N+1}^{M}\begin{pmatrix}M\\n\end{pmatrix}p^{n}(1-p)^{M-n}\)

  1. 考虑一个长度为 L 的分组从端系统 A 开始,经3段链路传送到目的端系统。令 \(d_{i}\)\(s_{i}\)\(R_{i}\) 表示链路 \(i\) 的长度、传播速度和传输速率 ( \(i\) =1,2,3)。该分组交换机对每个分组的时延为 \(d_{proc}\) 。假定没有排队时延,用 \(d_{i}\)\(s_{i}\)\(R_{i}\) ( \(i\) =1,2,3) 和 L 表示该分组总的端到端时延。现在假定该分组是1500字节,在所有3条链路上的传播时延是 \(2.5*10^{8}\) m/s, 所有3条链路的传输速率是2 Mbps,分组交换机的处理时延是3 ms, 第一段链路的长度是5000 km, 第二段链路的长度是4000 km, 最后一段链路的长度是1000 km。对于这些值,该端到端时延为多少?

\[\begin{align*} d_{end-end}&=L/R_{1}+L/R_{2}+L/R_{3}+d_{1}/s_{1}+d_{2}/s_{2}+d_{3}/s_{3}+d_{proc}*2\\ &=6*3+20+16+4+3*2 \\ &=64\ ms \end{align*} \]

  1. 在上述习题中,假定 \(R_{1}=R_{2}=R_{3}=R\)\(d_{proc}=0\) 。进一步假定该分组交换机不存储转发分组,而是在等待分组到达前立即传输它收到的每个比特。这时端到端时延为多少?

由于交换机不会存储转发分组,所以没有传输时延。

\[\begin{align*} d_{end-end}&=L/R+d_{1}/s_{1}+d_{2}/s_{2}+d_{3}/s_{3}\\ &=6+20+16+4\\ &=46\ ms \end{align*} \]

  1. 一台分组交换机接收一个分组并决定该分组应当转发的出链路。当某分组到达时,另一个分组正在该出链路上被发送到一半,还有 4 个其他分组正等待传输。这些分组以到达的次序传输。假定所有分组是 1500 字节并且链路速率是 2 Mbps。该分组的排队时延是多少?在更一般的情况下,假定所有分组的长度是 L,传输速率是 R, 当前正在传输的分组已经传输了 x 比特,并且在队列中已经有 n个分组,其排队时延是多少?

排队时延为

\[\begin{align*} d_{queue}&=\frac{4.5*1500*8}{2*10^{6}}=27\ ms \\ \end{align*} \]

更一般情况下,排队时延为 \(d_{queue}=(nL+(L-x))/R\)

a. 假定有 N 个分组同时到达一条当前没有分组传输或排队的链路。每个分组长为 L, 链路传输速率为 R。对 N 个分组而言,其平均排队时延是多少?

b. 现在假定每隔 LN/R 秒有 N 个分组同时到达链路。一个分组的平均排队时延是多少?

题 a:第一个数据包的排队时延为 0,第二个数据包的排队时延为 \(L/R\) ,第 \(N\) 个数据包的排队时延为 \((N-1)L/R\) 。所以平均排队时延为:

\[\begin{align*} &(L/R+2L/R+...+(N-1)L/R)/N\\ &=(1+N-1)*(N-1)/2*L/RN\\ &=(N-1)L/2R \end{align*} \]

题 b:我们可以这样理解,将 \(N\) 个分组合并为一个分组(因为同时到达),那么每隔 \(LN/R\) 秒后所有数据已经全部发送完毕,缓冲区唯恐。那么一个分组的平均排队时延与题 a 一致,为 \((N-1)L/R\)

  1. 考虑某路由器缓存中的排队时延。令 I 表示流量强度,即 I=La/R。假定排队时延的形式为 \(IL/R(1-I)\) , 其中 I<1。

a.写出总时延即排队时延加上传输时延的公式。

b.以 L/R 为函数画出总时延的图。

题 a:

\[d_{total}=\frac{IL}{R(1-I)}+\frac{L}{R}=\frac{L/R}{1-I} \]

题 b: 令 \(x=\frac{L}{R}\) ,那么总时延 \(d_{total}=\frac{x}{1-ax}\)

  1. 令 a 表示在一条链路上分组的到达率(以分组/秒计),令 \(\mu\) 表示一条链路上分组的传输率(以分组/秒计)。基于上述习题中推导出的总时延公式(即排队时延加传输时延),推导出以 a 和 \(\mu\) 表示的总时延公式。

总时延 \(d_{total}=\frac{L/R}{1-I}=\frac{L/R}{1-La/R}=\frac{1/\mu}{1-a/\mu}=\frac{1}{\mu-1}\)

  1. 考虑一台路由器缓存前面的一条出链路。在这道题中,将使用李特尔(Little)公式,这是排队论中的一个著名公式。令 N 表示在缓存中的分组加上被传输的分组的平均数。令 a 表示到达该链路的分组速率。令 d 表示一个分组历经的平均总时延(即排队时延加传输时延)。李特尔公式是 N=a×d。假定该缓存平均包含 10 个分组,并且平均分组排队时延是 10 ms。该链路的传输速率是 100 分组/秒。使用李特尔公式,在没有丢包情况下,平均分组到达率是多少?

由题设可知, \(N=10+1\) ,即缓存中分组加上正在传输的分组。由李特尔公式可得: \(11=a*(0.01+1/100)\) ,得到 a 等于 550 分组/秒。

a. 对于不同的处理速率、传输速率和传播时延,给出1.4.3节中式 \((1-2)\) 的一般表达式。

b. 重复 (a), 不过此时假定在每个节点有平均排队时延 \(d_{queue}\)

题 a:假设传输过程中由 \(N\) 个节点,那么存在 \(N-1\) 条链路。通式可写为:

\[d_{end-end}=\sum\limits_{n=1}^N[d_{proc}^{n}+d_{trans}^{n}+d_{prop}^{n}] \]

题 b:相应的加上排队时延即可:

\[d_{end-end}=\sum\limits_{n=1}^{N}[d_{proc}^{n}+d_{trans}^{n}+d_{prop}^{n}+d_{queue}^{n}] \]

  1. 在一天的3个不同的小时内,在同一个大陆上的源和目的地之间执行 Traceroute。

a. 在这3个小时的每个小时中,求出往返时延的均值和方差。

b. 在这3个小时的每个小时中,求出路径上的路由器数量。在这些时段中,该路径发生变化了吗?

c.试根据源到目的地 Traceroute 分组通过的情况,辨明 ISP 网络的数量。具有类似名字和/或类似的 IP 地址的路由器应当被认为是同一个ISP的一部分。在你的实验中,在相邻的 ISP 间的对等接口处出现最大时延了吗?

d.对位于不同大陆上的源和目的地重复上述内容。比较大陆内部和大陆之间的这些结果。

设置目的地址为: www.baidu.com

实验:

traceroute www.baidu.com
traceroute to www.baidu.com (183.2.172.185), 30 hops max, 60 byte packets
 1  * * *
 2  49.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.49)  2.504 ms  3.006 ms  3.262 ms
 3  113.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.113)  2.192 ms  4.425 ms 109.110.166.220.broad.dy.sc.dynamic.163data.com.cn (220.166.110.109)  2.926 ms
 4  61.139.122.1 (61.139.122.1)  13.123 ms 171.208.197.73 (171.208.197.73)  12.694 ms 110.188.6.125 (110.188.6.125)  11.227 ms
 5  * 202.97.29.45 (202.97.29.45)  39.978 ms 202.97.21.173 (202.97.21.173)  38.804 ms
 6  * 113.96.5.190 (113.96.5.190)  36.974 ms *
 7  * * *
 8  14.29.117.178 (14.29.117.178)  41.002 ms  196.291 ms  196.008 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

题 a:往返时延的均值为 238 ms,方差为 184853。

题 b:30 个路由器,未发生变化。

题 c:并未出现最大时延,相反,相连 ISP 间的时延相当小。

题 d:访问 gaia.cs.umass.edu ,得到的时延通常都较大。

  1. 梅特卡夫(Metcalfe)定律:计算机网络的价值正比于与该系统连接的用户数量的平方。令 n 表示某计算机网络中的用户数量。假设每个用户向每个其他用户发送一个报文,将要发送多少个报文?你的答案支持梅特卡夫定律吗?

需要发送 \(N*(N-1)\) 个报文,支持该定律。

  1. 考虑对应于图 1-20b吞吐量的例子。现在假定有 M 对客户-服务器而不是 10 对。用 \(R_{s}\)\(R_c\)\(R\) 分别表示服务器链路、客户链路和网络链路的速率。假设所有的其他链路都有充足的容量,并且除了由这 M 对客户-服务器产生的流量外,网络中没有其他流量。推导出由 \(R_{s}\)\(R_{c}\)\(R\) 和 M 表示的通用吞吐量表达式。

吞吐量的通式为 \(min\{R_{s},R_{c},R/M\}\)

  1. 考虑图 1-19b。现在假定在服务器和客户之间有 M 条路径。任意两条路径都不共享任何链路。路径K (k=1,…, M) 由传输速率为 \(R_{1}^{k}\) , \(R_{2}^{k}\) ,…, \(R_{N}^{k}\) 的 N 条链路组成。如果服务器仅能够使用一条路径向客户发送数据,则该服务器能够取得的最大吞吐量是多少?如果该服务器能够使用所有 M 条路径发送数据,则该服务器能够取得的最大吞吐量是多少?

如果近使用一条路径向客户发送数据,那么最大吞吐量为 \(max\{min\{R_{1}^{1},R_{2}^{1},...,R_{N}^{1}\},min\{min_{1}^{2},...,min_{N}^{2}\},...,min\{min_{1}^{M},...,min_{N}^{M}\}\}\) ,如果能够使用所有 M 条路径发送数据,最大吞吐量为 \(\sum\limits_{k=1}^{M}min\{R_{1}^{k},...,R_{N}^{k}\}\)

  1. 考虑图 1-19b。假定服务器与客户之间的每条链路的丢包概率为 \(p\) , 且这些链路的丢包率是独立的。一个(由服务器发送的)分组成功地被接收方收到的概率是多少?如果在从服务器到客户的路径上分组丢失了,则服务器将重传该分组。平均来说,为了使客户成功地接收该分组,服务器将要重传该分组多少次?

成功接受到分组的概率为: \(P=(1-p)^{N}\)

在路径上丢包的概率是随机的,但是我们知道成功接收到分组的概率 \(P\) 。那么平均传输次数的概率为 \(1/P\) ,需要平均重传的次数为 \(1/P-1\) (1 为成功传输)。

  1. 考虑图1-19a。假定我们知道沿着从服务器到客户的路径的瓶颈链路是速率为 R \(_{s}\) bps 的第一段链路。假定我们从服务器向客户发送紧密相连的一对分组,且沿这条路径没有其他流量。假定每个分组的长度为 L bit,两条链路具有相同的传播时延d \(_{prop}\)

a. 在目的地,分组的到达间隔时间有多长? 也就是说,从第一个分组的最后一个比特到达到最后一个分组最后一个比特到达所经过的时间有多长?

b. 现在假定第二段链路是瓶颈链路 (即 R \(_{c}<R_{s}\) )。第二个分组在第二段链路输入队列中排队是可能的吗? 请解释原因。现在假定服务器在发送第一个分组 T 秒之后再发送第二个分组。为确保在第二段链路之前没有排队,T 必须有多长? 试解释原因。

题 a:数据分组 B 在服务器等待数据分组 A 的传输,由于中途不会产生排队时延,所以分组 B 和分组 A 之间的时间差距仅为 \(L/R_{s}\)

题 b:是可能的,因为第二段链路为瓶颈链路,那么当分组 A 正在路由器上传输时,分组 B 已经到达路由器,产生排队。 \(T=L/R_{c}-L/R_{s}\)

  1. 假设你希望从波士顿向洛杉矶紧急传送40×10 \(^{12}\) 字节数据。你有一条 100 Mbps专用链路可用于传输数据。你是愿意通过这条链接传输数据,还是愿意使用 FedEx 夜间快递来交付? 解释你的理由。

我们先计算使用链路传输的方式,时间 T 可得

\[\begin{align*} T&=\frac{40*10^{12}*8}{100*10^{6}}\\ &=32*10^{5}\ s \\ &\approx 14\ h \end{align*} \]

当然这是理想情况下(排除中见的所有时延、丢包情况),显然这个时间太长了。事实上,当需要向远端发送大规模数据时,以磁盘等存储媒介存储数据并采用传统交通方式运输是一种高效、低廉、安全的方式。

  1. 假定两台主机 A 和 B 相隔 20 000 km,由一条直接的 R=2 Mbps 的链路相连。假定跨越该链路的传播速率是 \(2.5\times10^8m/s\)

a.计算带宽-时延积 \(R\cdot d_{prop}\)

b.考虑从主机 A 到主机 B 发送一个 800 000 bit 的文件。假定该文件作为一个大的报文连续发送。在任何给定的时间,在链路上具有的比特数量最大值是多少?

c.给出带宽-时延积的一种解释。

d.在该链路上一个比特的宽度(以米计)是多少?它比一个足球场的长度更长吗?

e.用传播速率 s、带宽 R 和链路 m 的长度,推导出比特宽度的一般表示式。

题 a: \(d_{prop}=2*10^{7}/2.5*10^{8}=8*10^{-2}s\) 。带宽-时延积 \(R・d_{prop}=2*10^{6}*8*10^{-2}=1.6*10^{5}bit\)

题 b: \(1.6*10^{5}bit\)

题 c:带宽-时延积是链路中存在比特的最大值。

题 d:比特的宽度=链路长度/带宽-时延积,得出 1 比特对应 125 米。

题 e:s/R。

  1. 对于习题 24,假定我们能够修改 R。对什么样的 R 值,一个比特的宽度能与该链路的长度一样长?

\(R=s/20000km=2.5*10^{8}/2*10^{7}=12.5bps\)

  1. 考虑习题 24,但此时链路的速率是 R=1 Gbps。

a. 计算带宽-时延积 \(R \cdot d_{prop}\)

b. 考虑从主机 A 到主机 B 发送一个 800,000 bit 的文件。假定该文件作为一个大的报文连续发送。在任何给定的时间,在链路上具有的比特数量最大值是多少?

c. 在该链路上一个比特的宽度(以米计)是多少?

题 a: 带宽-时延积 \(R・d_{prop}=1*10^{9}*8*10^{-2}=8*10^{7}bit\)

题 b: \(1.6*10^{5}\ bit\)

题 c:1 比特对应 0.25 米。

  1. 再次考虑习题 24。

a. 假定连续发送,发送该文件需要多长时间?

b. 假定现在该文件被划分为 20 个分组,每个分组包含 40 000 bit。假定每个分组被接收方确认,确认分组的传输时间可忽略不计。最后,假定前一个分组被确认后,发送方才能发送分组。发送该文件需要多长时间?

c. 比较 (a) 和 (b) 的结果。

  1. 假定在同步卫星和它的地球基站之间有一条 10 Mbps 的微波链路。每分钟该卫星拍摄一幅数字照片并将它发送到基站。假定传播速率是 \(2.4 \times 10^8\) m/s。

a. 该链路的传播时延是多少?

b. 带宽-时延积 \(R \cdot d_{prop}\) 是多少?

c. 若 x 表示该照片的大小。对于这条微波链路,能够连续传输的 x 的最小值是多少?

题 a:同步卫星距离地球 36,000 公里,所以传播时延为 0.15 s。传播时延为150 m/s。

题 b: \(1.5*10^{7}\ bit\)

  1. 考虑 1.5 节中我们在分层讨论中对航空旅行的类比,随着协议数据单元向协议栈底层流动,首部在增加。随着旅客和行李移动到航线协议栈底部,有与上述首部信息等价的概念吗?

通常在运送旅客和行李时,分别会给旅客机票,已表明身份和对行李贴上标签,表明通过安检、对应的旅客。

  1. 在包括因特网的现代分组交换网中,源主机将长应用层报文(如一个图像或音乐文件)分段为较小的分组并向网络发送。接收方则将这些分组重新装配为初始报文。我们称这个过程为报文分段。下图显示了一个报文在报文不分段和报文分段情况下的端到端传输。考虑一个长度为 \(8×10^6\) bit 的报文,它在下图中从源发送到目的地。假定在该图中的每段链路是 2 Mbps。忽略传播、排队和处理时延。
    end-to-end_message_transport

a. 考虑从源到目的地发送该报文且没有报文分段。从源主机到第一台分组交换机移动报文需要多长时间?记住,每台交换机均使用存储转发分组交换,从源主机移动该报文到目的主机需要多长时间?

b. 现在假定该报文被分段为800个分组,每个分组 10 000 bit 长。从源主机移动第一个分组到第一台交换机需要多长时间?从第一台交换机发送第一个分组到第二台交换机,从源主机发送第二个分组到第一台交换机各需要多长时间?什么时候第二个分组能被第一台交换机全部收到?

c. 当进行报文分段时,从源主机向目的主机移动该文件需要多长时间?将该结果与(a)的答案进行比较并解释之。

d. 除了减小时延外,使用报文分段还有什么原因?

e. 讨论报文分段的缺点。

题 a:到第一台分组交换机需要 \(8*10^{6}/2*10^{6}=4s\) ,到达目的地则为 \(4*3=12s\)

题 b:到第一台分组交换机需要 \(0.05\ s\) ,到第二台交换机需要 \(2*0.05=0.1\ s\) 。在 0.1 s 时能够全部收到。

题 c: \(799*0.05+3*0.05=4.01\ s\)

题 d:1. 当报文段过长时,无法容忍位错误,因为如果发生错误就需要重传。2. 报文段过大无法为其他报文段在网络路由器中提供足够的缓冲区。

  1. 用本书Web网站上的报文分段动画进行实验。该动画中的时延与前一道习题中的时延相当吗?链路传播时延是怎样影响分组交换(有报文分段)和报文交换的端到端总时延的?
  1. 考虑从主机 A 到主机 B 发送一个 F bit 的大文件。A 和 B 之间有三段链路(和两台交换机),并且该链路不拥塞(即没有排队时延)。主机 A 将该文件分为每个长 S bit 的报文段,并为每个报文段增加一个 80 bit 的首部,形成 L=80+S bit 的分组。每条链路的传输速率为 R bps。求出从 A 到 B 移动该文件时延最小的值 S。忽略传播时延。

从题设可以看出仅考虑传输时延,那么第一个分组通过一个路由器的时间为 \(\frac{S+80}{R}*\frac{F}{S}\) ,同时需要考虑到 A 和 B 之间有三条链路,那么在传输过程中需要加上 2 个分组的传输时间,即可得到总时延为 \(\frac{S+80}{R}*(\frac{F}{S}+2)\) ,对 S 进行微分 \(\frac{d}{dS}\{\frac{S+80}{R}*(\frac{F}{S}+2)\}=\sqrt{40F}\)

  1. Skype 提供了一种服务,使你能用 PC 向普通电话打电话。这意味着语音呼叫必须通过因特网和电话网。讨论这是如何做到的。

相当于将电路交换网络中的电话网络与互联网相结合。当 Skype 呼叫普通电话时,网关与用户通过电路交换网络建立电路。其语音信息通过因特网以数据分组的形式发送到网关,模拟信号转换为二进制数据,通过因特网发送到目的网关,网关再对信息进行分析,转换为模拟信号传输给用户。

实验

Wireshark 实验

安装 Wireshark 的副本,访问一个 Web 站点,捕获并检查在你的 Web 浏览器和 Web 服务器之间交换的协议报文。

在 Linux 发行版下,安装完成 Wireshark 后需要解决普通账户使用时的权限问题,因为 dumpcap 需要 root 权限才能使用。

  1. 确保自身账户具备 sudo 或者 root 权限。
  2. 将 dumpcap 更改为 Wireshark 用户组(安装 Wireshark 自动创建该用户组)
sudo chgrp wireshark /usr/bin/dumpcap #chgrp 改变文件所属组
  1. 赋予自身账户(普通用户)具备以 root 权限执行 dumpcap 的能力
sudo chmod 4755 /usr/bin/dumpcap # E代表设置SETUID位

解释

对 chmod 的权限设置进行说明。

  • 4 代表设置 SETUID 位(在所有者的执行位位置)。当 SETUID 位被设置在一个可执行文件上时,无论谁执行这个文件,它都会以文件所有者的权限运行。对于 dumpcap 来说,这意味着即使普通用户执行 dumpcap,它也会以 root 权限运行,这是为了允许普通用户捕获网络数据包,因为只有 root 用户才能访问网络接口。
  • 7 代表文件所有者的权限,即读(4)、写(2)、执行(1)权限的总和。
  • 5 代表所属组的权限,即读(4)和执行(1)权限的总和,但没有写权限。
  • 最后的 5 代表其他用户的权限,也是读(4)和执行(1)权限的总和,但没有写权限。
  1. 将当前账户(例:aaron)加入 Wireshark 用户组中
sudo gpasswd -a aaron wireshark # gpasswd 用于管理用户组
  1. 完成 Wireshark 在普通用户下正常使用的操作。

补充:dumpcap

dumpcap 是 Wireshark 网络协议分析器在 Linux 系统中的一个组件。Wireshark 是一个用于网络调试和数据分析的流行工具,而 dumpcap 是 Wireshark 用于捕获网络数据包的后端程序。

dumpcap 有以下几个特点:

  • 权限限制:出于安全考虑,dumpcap 设计为仅有特定权限的用户才能运行,通常需要管理员权限,因为它能够捕获所有用户(包括超级用户)的数据包。
  • 数据包捕获:dumpcap 负责从网络接口捕获数据包,并保存到文件中,以便于 Wireshark 分析。
  • 多线程支持:dumpcap 能够支持多线程的数据包捕获,这意味着它可以同时捕获多个接口上的数据,提高了捕获效率。
  • 支持多种文件格式:dumpcap 可以将捕获的数据保存为多种文件格式,包括 Wireshark 的原生文件格式 .pcap,以及压缩格式 .pcapng。

在 Linux 系统中,dumpcap 通常与 Wireshark 命令行工具配合使用,用于网络分析、故障诊断和网络监控。由于它的敏感性和潜在的隐私风险,通常只有授权的用户才能使用 dumpcap,而且它的使用通常受到企业或组织内部政策的严格限制。


当使用浏览器访问本书公共网站时,进行分组嗅探得出的内容:

wireshark_dashboard

Footnotes


  1. https://dl.acm.org/doi/abs/10.1145/774763.774781 ↩︎

  2. https://ieeexplore.ieee.org/abstract/document/120719 ↩︎

  3. https://dl.acm.org/doi/abs/10.1145/383034.383037 ↩︎

posted @ 2024-06-13 22:05  木木亚伦  阅读(277)  评论(0编辑  收藏  举报