计算机网络(第八版)-第1章课后习题参考答案
本文是对自己之前文章的格式化:https://blog.csdn.net/qq_46396470/article/details/132788972?spm=1001.2014.3001.5502
T1-01
计算机网络向用户可以提供哪些服务?
- 连通性 和共享 ,例如音频,视频,游戏等,但本质是提供连通性和共享这两个功能。
- 连通性:计算机网络使上网用户之间可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。
- 共享:指资源共享。既可以是软件的共享也可以是硬件的共享。
T1-02
简述分组交换的要点。
- 报文分组,加首部
- 经路由器储存转发
- 在目的地合并
T1-03
试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
电路交换:
首先看看电路交换的步骤:
- ①建立连接(分配通信资源,建立一个专用的物理通路)
- ②通话,一直占用通信资源。
- ③释放连接(归还通信资源。)
电路交换建立了实际的物理连接,如下图。在连接期间,其他用户不可以接入,这就意味着,如果某段时间双方没有数据传输,别人又不可以用,那么就导致了利用率低的劣势,但是这么做的好处就是,通信双方独自享有资源是吧,传输数据是很稳定的(毕竟是点到点的物理专线接入嘛)。
上图需要说明的是,图中的交换机是只"电话交换机"而非现在使用的分组交换机。
- 优点: ①通信时延小;②有序传输;③适用范围广;④没有冲突(由于是专线);⑤实时性强;⑥控制简单。
- 缺点:①建立连接时间长;②线路独占,使用效率比较低,信道利用率差;③灵活性差;④难以规格化,即不同类型、不同速率很难进行交换。
报文交换
报文交换是指数据在传输前先打包成报文,然后整个报文一次性发送到目的地,目的地再将报文解包。报文交换的特点是数据传输速度较快、适用于小数据量的通信,但传输过程中可能会出现数据包丢失、传输质量差等问题。
我们要求转发的节点需要比较大的存储空间。是因为其需要存储很多信息报文等。
优点:
①无需建立连接。不需要为通信双方建立一条通信线路。可以随时发送报文。
②动态分配线路。节点交换机先存储,然后找一条空闲的线路,然后发送出去。
③提高线路的可靠性。如果某条路出现了故障,可以重新选择一条,因此提高了可靠性。
④提高线路的利用率。通信双方不是固定占用一条通信线路,在不同的时间分段部分占用物理线路。
⑤提供多目标服务:可以发送个多个目的地址。
缺点:
①引起了转发时延:因为报文在交换机上要存储转发的过程。
②需要较大的存储空间:是因为对报文的大小没有限制。
③需要传输额外的信息量:需要报文携带源地址等信息。
分组交换
具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好;分组交换相比于报文交换,减少了转发的时延。还可以避免过长的报文占用链路,也可以进行差错控制。
优点:
- ①无需建立连接。
- ②线路利用率高。通信双方不是固定占用一条通信线路,在不同的时间分段部分占用物理线路。
- ③简化了存储管理:分组的从长度固定,相对的缓冲区的大小也相同。
- ④加速传输:分组是逐个传输的,后一个分组的存储操作与前一个分组的转发可以同时进行
- ⑤减少出错概率和重发数据量。
缺点:
①引起了转发时延:如报文交换一般。
②额外的传输信息量。分割了报文,加上了目的地址等信息。传送的信息量增大了。
④对于数据报 服务时,可能存在重复 、失序 、丢失分组的问题。
对于虚电路服务时,存在呼叫建立、数据传输、虚电路释放三个问题。
T1-04
为什么说因特网是自印刷术以来人类通信方面最大的变革?
融合其他通信网络,在信息化过程中起核心作用,提供最好的连通性和信息共享,第一次提供 了各种媒体形式的实时交互能力。
T1-05
因特网的发展大致分为哪几个阶段?请指出这几个阶段的主要特点。
①从单个网络 APPANET 向互联网发展;
②TCP/IP 协议的初步成型 建成三级结构的 Internet; 分为主干网、地区网和校园网;
③形成多层次 ISP 结构的 Internet;ISP 首次出现。
T1-06
简述因特网标准制定的几个阶段?
(1)因特网草案(Internet Draft) ------在这个阶段还不是 RFC 文档。
(2)建议标准(Proposed Standard) ------从这个阶段开始就成为 RFC 文档。
(3)草案标准(Draft Standard)
(4)因特网标准(Internet Standard)
T1-07
小写和大写开头的英文名 internet 和 Internet 在意思上有何重要区别?
(1) internet(互连网):通用名词,它泛指由多个计算机网络互连 而成的网络。协议没有特殊指定。
(2)Internet(互联网):专用名词,特指采用 TCP/IP 协议的互联网络。区别:后者实际上是 前者的双向应用。
T1-08
计算机网络都有哪些类别?各种类别的网络都有哪些特点?
1.按范围分类:
(1)广域网(WAN):远程 ,所覆盖的范围从几十公里到几千公里;高速,广域网主干使用光纤作为传输介质,带宽极大。
(2)城域网(MAN):充当骨干网,高速;作为城市骨干网 ,它与中国的骨干网相连;作为城市接入网,它把本地所有的联网用户与城市骨干网相连。
(3)局域网(LAN):覆盖范围小,维护简单,组网开销低。
(4)个域网(PAN):覆盖范围极其有限,速率较低,支持点到多点通信
2.按用户分类:
(1)公用网:面向公共营运。
(2)专用网:面向特定机构。
T1-09
计算机网络中的主干网和本地接入网的主要区别是什么?
- 主干网:提供远程覆盖\高速传输\和路由器最优化通信。
- 本地接入网:主要支持用户的访问本地, 实现散户接入,速率低。
T1-10
试在下列条件下比较电路交换和分组交换。要传送的报文共 x(bit) 。从源点到终点共经过 k 段链路 , 每段链路的传播时延为 d(s) ,数据率为 b(bit/s) 。在电路交换时电路的建立时间为 s(s) 。在分组交换时 分组长度为 p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察 k 段链路共有几个结点。)
让我们来分析分析,先来看看电路交换,如下图,假如k为3,每段传播时延为d,那么总的传播时延则为3d,抽象出来就是,传播时延为kd;
然后,题目已经告知,电路建立时间为s ;从源站s把报文发出,发送时延为 x b \frac{x}b bx(秒),这里要注意计算时,报文长度的单位和数据率的匹配问题,如果长度为xkb,那么还要转换成x*1000bit才能进行运算。
综上:
电路交换总时延 = s + x b + k d \text{电路交换总时延}=s+\frac xb+kd 电路交换总时延=s+bx+kd我们再来看看,分组交换 。我们采用分组交换后,不再建立物理连接,那么总的时延就首先要减掉s这一项。传播时延不变,依然是kd。
然后,我们来计算发送时延,报文总长度为xbit,每个分组的长度为pbit,由此我们可以知道fe1总共分了 x p \frac{x}{p} px组 ,每一组的发送时延是 p b \frac{p}{b} bp(s) ,此时可以得
总发送时延 = p b × x p = x b ( s ) \text{总发送时延}=\frac pb\times\frac xp=\frac xb(s) 总发送时延=bp×px=bx(s)还有什么时延呢?
大家如果和我一样是初学计算网络,上来就做这题可能想不到。它就是"存储转发时延",为什么会有这个时延?
因为分组交换是需要路由的,每一个转发节点在收到数据包后,首先要检查数据包的有效性,即进行差错校验,如果没错,那么就需要应用路由算法 ,寻找下一个最佳转发节点,把数据包转发出去。
这个过程首先咱们得存下来是吧,然后再转发出去是吧,是不是都要花时间,因此就叫"存储转发时延"。
怎么求得这个时延呢,是这样的,可以这样想,每次一个节点把收到的数据存储下来,放好,放好之后,再发送出去,这难道跟从源站发出一个数据包不是一样的吗?
无疑,所以就有每次 转发时延=发送时延 = p b \text{转发时延=发送时延}=\frac pb 转发时延=发送时延=bp,中间总共有k-1个需要存下来的节点,故有存储转发时延:
存储转发时延 = 发送时延 × 中间节点数量 = p b × ( k − 1 ) \text{存储转发时延}=\text{发送时延}\times\text{中间节点数量}=\frac pb\times(k-1) 存储转发时延=发送时延×中间节点数量=bp×(k−1)我们的各部分计算已经完成,只需要求和即可,得到分组交换的总时延 为
存储转发时延 = 发送时延 × 中间节点数量 = p b × ( k − 1 ) \text{存储转发时延}=\text{发送时延}\times\text{中间节点数量}=\frac pb\times(k-1) 存储转发时延=发送时延×中间节点数量=bp×(k−1)好了兄弟们,分组交换和电路交换的总时延都拿到了,我们不妨凑一块瞅瞅啥区别
分组交换总时延 = x b + p b × ( k − 1 ) ⏟ s + k d 电路交换总时延 = s + k d \begin{aligned} &分组交换总时延 =\frac{x}{b}+\underbrace{\frac{p}{b}\times(k-1)}_{s}+kd\\ &电路交换总时延 =s+kd \end{aligned} 分组交换总时延=bx+s bp×(k−1)+kd电路交换总时延=s+kd只有绿色的框框那一项不相同对吧,那么按照题目的要求,要使分组交换的时延比电路交换的小,只需要满足下列不等式即可:
s > p b × ( k − 1 ) s>\frac pb\times(k-1) s>bp×(k−1)你们看得累不累,我不知道,反正我要写得要摊了!虽然过程罗里吧嗦,但是我想我应该讲明白了。
T1-11
在上题的分组交换网中,设报文长度和分组长度分别为 x 和(p+h)(bit),其中 p 为分组的数据部分的长 度,而 h 为每个分组所带的控制信息固定长度,与 p 的大小无关。通信的两端共经过 k 段链路。链路 的数据率为 b(b/s),但传播时延和结点的排队时间均可忽略不计。若打算使总的时延为最小,问分组 的数据部分长度 p 应取为多大?(提示:参考图 1-12 的分组交换部分,观察总的时延是由哪几部分 组成。)
有了上一题的知识,我们可以快速一点做这一题。
首先,我们明确【分组交换时延=发送时延+存储转发时延】,由题目的条件,这里忽略了一些不必要的时延,请读者注意。
发送时延是多少呢?首先看分组吧,总长度为x,单个分组为p,那么共分了 x p \frac{x}{p} px个分组,但是需要引起注意,也是本题关键的是,发送出去的可不仅是p,而是【p+h】,即加上了控制信息。因此可以得到发送时延为:
发送时延 = ( p + h ) b × x p \text{发送时延}=\frac{(p+h)}b\times\frac xp 发送时延=b(p+h)×px再看存储转发时延,由k段链路,共k-1个转发节点可得
存储转发时延 = ( p + h ) b × ( k − 1 ) \text{存储转发时延}=\frac{(p+h)}b\times(k-1) 存储转发时延=b(p+h)×(k−1)那么就得到总时延咯
分组交换时延 = ( p + h ) b × ( k − 1 ) + ( p + h ) b × x p \text{分组交换时延}=\frac{(p+h)}b\times(k-1)+\frac{(p+h)}b\times\frac xp 分组交换时延=b(p+h)×(k−1)+b(p+h)×px可是怎么求得使这个时延最小的分组长度p呢?
此时导数排上用场了,我们知道一阶导数可以求极值点,放在这里再仔细瞅瞅,愁啥?
这是二次函数呀,极值点不就是最值点吗,哈哈。极值点怎么求,让一阶导等于0嘛, 如果求导忘记了,我为你开启了传送门【导数入门 (shuxuele.com)】
不多说,上吧!
f ( p ) = ( p + h ) b × ( k − 1 ) + ( p + h ) b × x p − p ( k − 1 ) b + h ( k − 1 ) b + x p b p + x h b p d f ( p ) d p = k − 1 b + − x h b p 2 = 0 ⟹ x h b p 2 − k − 1 b ⟹ p 2 = x h b b ( k − 1 ) ⟹ p − x h k − 1 \begin{aligned} f(p)&=\frac{(p+h)}b\times(k-1)+\frac{(p+h)}b\times\frac xp-\frac{p(k-1)}b+\frac{h(k-1)}b+\frac{xp}{bp}+\frac{xh}{bp} \\ \frac{df(p)}{dp}&=\frac{k-1}{b}+\frac{-xh}{bp^{2}}=0 \\ &\Longrightarrow\frac{xh}{bp^2}-\frac{k-1}b \\ &\Longrightarrow p^{2}={\frac{xhb}{b(k-1)}}\\ &\Longrightarrow p-{\sqrt{\frac{xh}{k-1}}} \end{aligned} f(p)dpdf(p)=b(p+h)×(k−1)+b(p+h)×px−bp(k−1)+bh(k−1)+bpxp+bpxh=bk−1+bp2−xh=0⟹bp2xh−bk−1⟹p2=b(k−1)xhb⟹p−k−1xh最后解得解得p值为上图所示,本题完毕!
T1-12
因特网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式各有什么特点?
- 边缘部分:由各主机构成,用户直接进行信息处理和信息共享;低速连入核心网。
- 核心部分:由各 路由器连网,负责为边缘部分提供高速远程分组交换。
T1-13
客户服务器方式与对等通信方式的主要区别是什么?有没有相同的地方?
前者严格区分服务和被服务者,后者无此区别。后者实际上是前者的双向应用。
T1-14
计算机网络有哪些常用的性能指标?
速率,带宽,吞吐量,时延,时延带宽积,往返时间 RTT,利用率等
T1-15
假定网络利用率达到了 90%。试估计一下现在的网络时延是它的最小值的多少倍?
设现在的网络时延为D,网络空闲时的时延为D0,网络利用率为U。根据三者之间的关系公式
D = D 0 1 − U D=\frac{D_0}{1-U} D=1−UD0可以得到如下结果,即当前网络时延为最小值(即空闲时)的10倍
D = D 0 1 − 0.9 = D 0 0.1 = 10 D 0 D=\frac{D_0}{1-0.9}=\frac{D_0}{0.1}=10D_0 D=1−0.9D0=0.1D0=10D0
T1-16
计算机通信网有哪些非性能特征?非性能特征与性能特征有什么区别?
- 非性能特征征:宏观整体评价网络的外在表现。
- 性能指标:具体定量描述网络的技术性能。
T1-17
收发两端之间的传输距离为 1000km,信号在媒体上的传播速率为 2 × 1 0 8 2×10^8 2×108m/s。试计算以下两种情况 的发送时延和传播时延:
(1) 数据长度为 1 0 7 10^7 107bit,数据发送速率为 100kb/s。
(2) 数据长度为 1 0 3 10^3 103bit,数据发送速率为 1Gb/s。
从上面的计算中可以得到什么样的结论?
(1)
发送时延
发送时延1 = 1 0 7 b i t 100 × 1 0 3 b i t / s = 1 0 7 b i t 1 0 5 b i t / s = 1 0 2 s = 100 s \text{发送时延1}=\frac{10^7bit}{100\times10^3bit/s}=\frac{10^7bit}{10^5bit/s}=10^2s=100s 发送时延1=100×103bit/s107bit=105bit/s107bit=102s=100s传播时延
传播时延1 = 1000 × 1 0 3 m 2 × 1 0 8 m / s = 1 0 6 m 2 × 1 0 8 m / s = 0.005 s \text{传播时延1}=\frac{1000\times10^3m}{2\times10^8m/s}=\frac{10^6m}{2\times10^8m/s}=0.005s 传播时延1=2×108m/s1000×103m=2×108m/s106m=0.005s(2)
发送时延
发送时延2 = 1 0 3 b i t 1 × 1 0 9 b i t / s = 1 0 3 b i t 1 0 9 b i t / s = 1 0 − 6 s = 0.000001 s \text{发送时延2}=\frac{10^3bit}{1\times10^9bit/s}=\frac{10^3bit}{10^9bit/s}=10^{-6}s=0.000001s 发送时延2=1×109bit/s103bit=109bit/s103bit=10−6s=0.000001s传播时延
传播时延2 = 1000 × 1 0 3 m 2 × 1 0 8 m / s = 1 0 6 m 2 × 1 0 8 m / s = 0.005 s \text{传播时延2}=\frac{1000\times10^3m}{2\times10^8m/s}=\frac{10^6m}{2\times10^8m/s}=0.005s 传播时延2=2×108m/s1000×103m=2×108m/s106m=0.005s(3) 结论:
①若数据长度大而发送速率低,则在总的时延中,发送时延往往大于传播时延
②但若数据长度短 而发送速率高,则传播时延就可能是总时延中的主要成分。
③传播时延跟数据率无关,只与信道信号传播速度和信道距离有关。
T1-18
假设信号在媒体上的传播速度为 2×10^8m/s.媒体长度 L 分别为:
(1)10cm(网络接口卡)
(2)100m(局域网)
(3)100km(城域网)
(4)5000km(广域网)
试计算出当数据率为 1Mb/s 和 10Gb/s 时在以上媒体中正在传播的比特数。
(1)网卡的情况
传播时延 = 10 × 1 0 − 2 m 2 × 1 0 8 m / s = 5 × 1 0 − 10 s 时延带宽积 1 = ( 5 × 1 0 − 10 ) × ( 1 × 1 0 6 ) = 0.0005 b i t 时延带宽积 2 = ( 5 × 1 0 − 10 ) × ( 10 × 1 0 9 ) = 5 b i t \begin{aligned} 传播时延&= \frac{10\times10^{-2}m}{2\times10^8m/s}=5\times10^{-10}s\\ 时延带宽积1&=(5\times10^{-10})\times(1\times10^6)=0.0005bit\\ 时延带宽积2&=(5\times10^{-10})\times(10\times10^9)=5bit \end{aligned} 传播时延时延带宽积1时延带宽积2=2×108m/s10×10−2m=5×10−10s=(5×10−10)×(1×106)=0.0005bit=(5×10−10)×(10×109)=5bit(2)局域网的情况
传播时延 = 10 × 10 m 2 × 1 0 8 m / s = 5 × 1 0 − 7 s 时延带宽积 1 = ( 5 × 1 0 − 7 ) × ( 1 × 1 0 6 ) = 0.5 b i t 时延带宽积 2 = ( 5 × 1 0 − 7 ) × ( 10 × 1 0 9 ) = 5000 b i t \begin{aligned} 传播时延&=\frac{10\times10m}{2\times10^8m/s}=5\times10^{-7}s\\ 时延带宽积1&=(5\times10^{-7})\times(1\times10^6)=0.5bit\\ 时延带宽积2&=(5\times10^{-7})\times(10\times10^9)=5000bit \end{aligned} 传播时延时延带宽积1时延带宽积2=2×108m/s10×10m=5×10−7s=(5×10−7)×(1×106)=0.5bit=(5×10−7)×(10×109)=5000bit(3)城域网的情况
传播时延 = 10 × 1 0 4 m 2 × 1 0 8 m / s = 5 × 1 0 − 4 s 时延带宽积 1 = ( 5 × 1 0 − 4 ) × ( 1 × 1 0 6 ) = 500 b i t 时延带宽积 2 = ( 5 × 1 0 − 4 ) × ( 10 × 1 0 9 ) = 5 × 1 0 6 b i t \begin{aligned} \text{传播时延}&=\frac{10\times10^4m}{2\times10^8m/s}=5\times10^{-4}s \\ \text{时延带宽积}1&=(5\times10^{-4})\times(1\times10^6)=500bit \\ \text{时延带宽积}2&=(5\times10^{-4})\times(10\times10^9)=5\times10^6bit \end{aligned} 传播时延时延带宽积1时延带宽积2=2×108m/s10×104m=5×10−4s=(5×10−4)×(1×106)=500bit=(5×10−4)×(10×109)=5×106bit(4)广域网的情况
T1-19
长度为 100 字节的应用层数据交给传输层传送,需加上 20 字节的 TCP 首部。再交给网络层传送, 需加上 20 字节的 IP 首部。最后交给数据链路层的以太网传送,加上首部和尾部工 18 字节。试求数据的传 输效率。数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的 额外开销)。若应用层数据长度为 1000 字节,数据的传输效率是多少?
根据题目描述有如下传输效率公式
传输效率 = 应用层数据 应用层数据 + 各层首尾额外开销 \text{传输效率}=\frac{\text{应用层数据}}{\text{应用层数据}+\text{各层首尾额外开销}} 传输效率=应用层数据+各层首尾额外开销应用层数据则可得,当应用层数据为100字节 时,传输效率由如下计算得到:
传输效率 = 100 B y t e 100 B y t e + 58 B y t e = 100 158 = 0.632911 ≈ 63.3 % \text{传输效率}=\frac{100Byte}{100Byte+58Byte}=\frac{100}{158}=0.632911\approx63.3\% 传输效率=100Byte+58Byte100Byte=158100=0.632911≈63.3%当应用层数据为1000字节 时,传输效率可由如下计算得到:
传输效率 = 1000 B y t e 1000 B y t e + 58 B y t e = 1000 1058 = 0.94518 ≈ 94.5 % \text{传输效率}=\frac{1000Byte}{1000Byte+58Byte}=\frac{1000}{1058}=0.94518\approx94.5\% 传输效率=1000Byte+58Byte1000Byte=10581000=0.94518≈94.5%
T1-20
网络体系结构为什么要采用分层次的结构?试举出一些与分层体系结构的思想相似的日常生活。
①各层之间是独立的。某一层可以使用其下一层提供的服务而不需要知道服务是如何实现的,即底层向高层隐藏实现的细节。
②灵活性好。当某一层发生变化时,只要其接口关系不变,则这层以上或以下的各层均不受影响。
③结构 上可分割开。各层可以采用最合适的技术来实现
④易于实现和维护。
⑤能促进标准化工作。
与分层体系结 构的思想相似的日常生活有邮政系统,物流系统。
T1-21
协议与服务有何区别?有何关系?
网络协议 :为进行网络中的数据交换而建立的规则、标准或 约定。由以下三个要素组成
(1)语法 :即数据与控制信息的结构或格式。
(2)语义 :即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步 :即事件实现顺序的详细说明。协议是控制两个对等实体进行通信的规则的集合。
在协议的控制 下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提 供服务。
协议和服务的概念的区分 :
1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面 的协议对上面的服务用户是透明的。
2、协议是"水平的",即协议是控制两个对等实体进行通信的规则。但服务是"垂直的",即服务是由下层通 过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在 OSI 中称为服务 原语。
T1-22
网络协议的三个要素是什么?各有什么含义?
网络协议 :为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:
(1)语法 :即数据与控制信息的结构或格式。
(2)语义 :即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步:即事件实现顺序的详细说明。
T1-23
为什么一个网络协议必须把各种不利的情况都考虑到?
因为网络协议如果不全面考虑不利情况,当情况发生变化时,协议就会保持理想状况,一直等下去! 就如同两个朋友在电话中约会好,下午 3 点在公园见面,并且约定不见不散。
这个协议就是很不科学的, 因为任何一方如果有耽搁了而来不了,就无法通知对方,而另一方就必须一直等下去!
所以看一个计算机 网络是否正确,不能只看在正常情况下是否正确,而且还必须非常仔细的检查协议能否应付各种异常情况。
T1-24
论述具有五层协议的网络体系结构的要点,包括各层的主要功能。
综合 OSI 和 TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:
- **物理层:**物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面,当做 第 0 层。) 物理层还要确定连接电缆插头的定义及连接法。
- **数据链路层:数据链路层的任务是在两个相邻 结点间的线路上无差错地传送以帧(frame)**为单位的数据。每一帧包括数据和必要的控制信息。
- **网络层:**网 络层的任务就是要选择合适的路由,使 发送站的运输层所传下来的分组能够 正确无误地按照地址找到目的站,并交付给目的站的运输层。
- 运输层:运输层的任务是向上一层的进行通信 的两个进程之间提供一个可靠的端到端服务,使它们看不见运输层以下的数据通信的细节。
- **应用层:**应用层 直接为用户的应用进程提供服务。
T1-25
试举出日常生活中有关"透明"这种名词的例子。
电视,计算机视窗操作系统、工农业产品
T1-26
试解释以下名词:协议栈、实体、对等层、协议数据单元、服务访问点、客户、服务器、客户-服务 器方式。
- 实体(entity):表示任何可发送或接收信息的硬件或软件进程。
- 协议:是控制两个对等实体进行通信的规则 的集合。
- 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求方,服务器 是服务的提供方。客户服务器方式所描述的是进程之间服务和被服务的关系。
- **协议栈:**指计算机网 络体系结构采用分层模型后,每层的主要功能由对等层协议的运行来实现,因而每层可用一些主要协议来表征,几个层次画在一起很像一个栈的结构.
- 对等层:在网络体系结构中,通信双方实现同样功能的层.
- **协议数据单元:**对等层实体进行信息交换的数据单位.
- 服务访问点 :在同一系统中相邻两层的实体进行交互 (即交换信息)的地方,是一个抽象的概念,它实体上就是一个逻辑接口.
- 客户:服务的请求方
- 服务器:服务的提供方。
- 客户服务器方式:描述的是进程之间服务和被服务的关系。
T1-27
试解释 everything over IP 和 IP over everthing 的含义。
TCP/IP 协议可以为各式各样的应用提供服务 (所谓的 everything over ip)
允许 IP 协议在各式各允许 IP 协议在各式各 样的网络构成的互联网上运行(所谓的 ip over everything)
T1-28
假定要在网络上传送1.5MB的文件。设分组长度为1KB,往返时间RTT=80ms。传送数据之前还需要有建立TCP连接的时间,这需要2*RTT = 160ms。试计算在以下几种情况下接收方收到该文件的最后一个比特所需的时间。
(1)数据发送速率为10Mbit/s,数据分组可以连续发送。
(2)数据发送速率为10Mbit/s,但每发送完一个分组后要等待一个RTT时间才能在发送下一个分组。
(3)数据发送率极快,可以不考虑发送数据 所需要的时间。但规定每一个RTT往返时间内只能发送20个分组。
(4)数据发送速率极快,可以不考虑发送数据所需的时间。但在第一个RTT往返时间内只能发送一个分组,在第二个RTT内可发送两个分组,在三个RTT内可发送4个分组(即2(3-1)=22 = 4个分组)。
在正式做题之前,我们先做一下数据转换,转换成便于我们计算的计算机网络中的数据单位。
文件长度: 1.5 M B = 1.5 × 2 20 × 8 b i t 分组长度:1 K B = 1 × 2 10 × 8 b i t 分组数量: 1.5 × 2 20 × 8 b i t 1 × 2 10 × 8 b i t = 1.5 × 2 10 = 1536 个分组 \begin{aligned} &\text{文件长度: }1.5MB=1.5\times2^{20}\times8bit\\ &\text{分组长度:1}KB=1\times2^{10}\times8bit\\ &\text{ 分组数量: }\frac{1.5\times2^{20}\times8bit}{1\times2^{10}\times8bit}=1.5\times2^{10}=1536\text{个分组} \end{aligned} 文件长度: 1.5MB=1.5×220×8bit分组长度:1KB=1×210×8bit 分组数量: 1×210×8bit1.5×220×8bit=1.5×210=1536个分组有了以上数据之后,我们可以开始做题啦
(1)只考虑发送时延和RTT时延,其他时延忽略,则【总时延=2RTT+发送时延+RTT单向时延 】
发送时延 = 1 × 2 10 × 8 b i t 10 × 1 0 6 b i t / s × 1.5 × 2 20 × 8 b i t 1 × 2 10 × 8 b i t = 1.25829 s {\text{发送时延}=\frac{1\times2^{10}\times8bit}{10\times10^6bit/s}\times\frac{1.5\times2^{20}\times8bit}{1\times2^{10}\times8bit}=1.25829s} 发送时延=10×106bit/s1×210×8bit×1×210×8bit1.5×220×8bit=1.25829s所以最终的时间为
总时间 = 1.25829 s + 0.04 s + 0.16 s = 1.45829 s \text{总时间}={1.25829s+0.04s+0.16s=1.45829s} 总时间=1.25829s+0.04s+0.16s=1.45829s(2)这一题只要附加上这个等待时间就行了,根据事前分析,我们知道总共有1536个分组,按照题目的描述,需要等待RTT时间发送的只有1535个分组,因为第一个分组发送不需要等待,那么最终的时延为
总时间 = 1.25829 s + 0.04 s + 0.16 s + 0.08 s × 1535 = 124.258 s {\text{总时间}=1.25829s+0.04s+0.16s+0.08s\times1535=124.258s} 总时间=1.25829s+0.04s+0.16s+0.08s×1535=124.258s(3)这一问表示一次RTT时间只能发送20个分组,那么1536个分组共要几次RTT才能发送完呢?显然需要 1536 20 = 76.8 {\frac{1536}{20}}=76.8 201536=76.8个RTT才能搞定,向下取整得76。
为什么向下取整?因为那个多出来的0.8表示最后要发送的分组已经不足20个,这时我们就不必考虑这个RTT等待时间,而可以直接发送,而且题目又说了忽略发送时间,所以0.8那些数据的时延根本无需考虑。
总时间 = 0.04 s + 0.16 s + 76 × 0.08 s = 6.28 s {\text{总时间}=0.04s+0.16s+76\times0.08s=6.28s} 总时间=0.04s+0.16s+76×0.08s=6.28s(4)在用两个RTT建立TCP连接后 后就开始传送数据,根据题目条件可以递推得到第n个RTT内可以发送【2n】个分组,那么对下面的【等比数列】求和可得前n个RTT共发送了【 2 n − 1 2^{n}-1 2n−1】
1 + 2 + 4 + 8 + ⋅ ⋅ ⋅ + 2 n = 1 ( 1 − 2 n ) 1 − 2 = 2 n − 1 {1+2+4+8+\cdotp\cdotp\cdotp+2n=\frac{1(1-2^n)}{1-2}=2^n-1} 1+2+4+8+⋅⋅⋅+2n=1−21(1−2n)=2n−1 当n=10时,只发送了【 2 10 − 1 = 1023 2^{10}-1=1023 210−1=1023】个分组,此时可见是不满足要求的。
当n=11时,共发送了【 2 11 − 1 = 2047 2^{11}-1=2047 211−1=2047】个分组,此时完全可以容纳所有分组。
n=11时,我们的数据分组只有1536个,不能完全装满可容纳2047个分组这样的仓库,基于这样的考虑,第11次的RTT时间我们不能这样考虑,怎样做呢?
考虑【1536-1023=513 】个分组,单独发送,但是题目给出忽略发送时间,这么,我们就只需要考虑前10次RTT了,所以最终时间为【1s 】
总时延 = 0.16 s + 0.04 s + 10 × 0.08 s = 1 s {\text{总时延}=0.16s+0.04s+10\times0.08s=1s} 总时延=0.16s+0.04s+10×0.08s=1s
T1-29
有一个对点链路,长度为50KM。若数据在此链路上的传播速率为 2 × 1 0 8 m / s 2\times10^{8}m/s 2×108m/s ,试问链路的带宽为多少才能使传播时延和发送100字节的分组的发送时延一样大?如果发送的是512字节长的分组,结果又是如何?
题目最终要求使【链路带宽】和【传播时延】一样大,那么我们先把【传播时延】求出来
传播时延 = 50 × 1 0 3 m 2 × 1 0 8 m / s = 0.00025 s \text{传播时延}=\frac{50\times10^3m}{2\times10^8m/s}=0.00025s 传播时延=2×108m/s50×103m=0.00025s然后设带宽为 x x xbit/s,有如下公式,可计算出期望带宽为【 3.2 × 1 0 6 b i t / s 3.2\times10^{6}bit/s 3.2×106bit/s】
100 × 8 b i t x b i t / s = 0.00025 s ⟹ x = 100 × 8 b i t 0.00025 s = 3.2 × 1 0 6 b i t / s \begin{aligned} &\frac{100\times8bit}{xbit/s}=0.00025s \\ &\Longrightarrow x={\frac{100\times8bit}{0.00025s}=3.2\times10^6bit/s} \end{aligned} xbit/s100×8bit=0.00025s⟹x=0.00025s100×8bit=3.2×106bit/s如果使512字节长的分组就把数据长度改成512字节呗哈哈,这题目有点抓马。
512 × 8 b i t x b i t / s = 0.00025 s ⟹ x = 512 × 8 b i t 0.00025 s = 1.6384 × 1 0 7 b i t / s \begin{aligned} &{\frac{512\times8bit}{xbit/s}=0.00025s}\\ &\Longrightarrow{x=\frac{512\times8bit}{0.00025s}=1.6384\times10^7bit/s} \end{aligned} xbit/s512×8bit=0.00025s⟹x=0.00025s512×8bit=1.6384×107bit/s
T1-30
有一个点对点链路,长度为 20000 km。数据的发送速率是 1kbit/s。要发送的数据有100bit。数据在此链路上的传播速度为 2 × 1 0 8 m / s 2\times10^{8}m/s 2×108m/s; 假定我们可以看见在线路上传播的比特,试画出我们看到的线路上的比特(画两个图,一个在100 bit 刚刚发送完时,另一个是再经过 0.05 s 后)。
先看第一问,我们可以先求出【发送时延】如下
发送时延 = 100 b i t 1 × 1 0 3 b i t / s = 0.1 s \text{发送时延}=\frac{100bit}{1\times10^3bit/s}={0.1}s 发送时延=1×103bit/s100bit=0.1s然后,算算【传播时延】
传播时延 = 20000 × 1 0 3 m 2 × 1 0 8 m / s = 0.1 s \text{传播时延}={\frac{20000\times10^3m}{2\times10^8m/s}=0.1s} 传播时延=2×108m/s20000×103m=0.1s从上卖弄的计算结果可以看出,【发送时延】和【传播时延】相同,说明什么,我们不间断地发送数据,刚好发送完毕那一刻,目的主机也刚好开始接收到数据,所以这【100bit】刚刚发送完时,全部都在链路上,此时可以画出如下示意图:
第二问,根据此信道的传播时延是1s,则经过0.5s后,经过已经经过了链路总长度的一半,可画如下示意图
T1-31
条件同上题。但数据的发送速率改为1Mbit/s。和上题的结果相比较,你可以得出什么结论?
速度修改后,发送时延更改为
发送时延 = 100 1 × 1 0 6 = 0.0001 s \text{发送时延}=\frac{100}{1\times10^6}=0.0001s 发送时延=1×106100=0.0001s此时,可见发送时延比传播时延小了1000倍,这时当数据完时,可视化在信道中只占信道长度的千分之一,为了看起来还能看得清,我稍微画长一点点,如下图是刚发送完后的占用图:
再看看0.5s后占用图
综合以上图片,我们可以看出,当发送速率足够快时,总时延主要由传播时延支配;或者说,提高发送速率可以一定程度上提高数据传输的效率。
T1-32
以1 Gbit/s的速率发送数据。试问在以距离或时间为横坐标时,一个比特的宽度分别是多少?
先来看时间方面的宽度,那就是用当前这个速度发送1bit要多少时间呗,这个容易计算,其实就是发送时延。
发送时延 = 1 b i t 1 × 1 0 9 b i t / s = 1 × 1 0 − 9 s \text{发送时延}=\frac{1bit}{1\times10^9bit/s}={1\times10^{-9}}s 发送时延=1×109bit/s1bit=1×10−9s然后再看看距离宽度怎么算,这个稍微想象一下,如果用【发送的时间x光速(假设)】那是不是题目在问在【发送的时间】这么久的时间内,光能跑多远?这个【多远】其实就是距离宽度啦。
距离宽度 = 1 0 − 9 s × 2 × 1 0 8 m / s = 0.2 m {\text{距离宽度}=10^{-9}s\times2\times10^8m/s=0.2m} 距离宽度=10−9s×2×108m/s=0.2m
T1-33
我们在互联网上传输数据经常是从某个源点传送到某个终点,而并非传送过去再传送回来。那么为什么往返实际RTT是一个很重要的性能指标呢?
有些协议传输数据时需要对方的确认,比如TCP握手协议的建立就需要考虑RTT时间。
T1-34
主机A向主机B发送一个长度为 1 0 7 10^7 107比特的报文。中间要经过两个节点交换机,即一共经过三段链路。设每条链路的传输速率为2Mbit/s。忽略传播、处理和排队时延。
(1)如果采用报文交换,即整个报文不分段,每台节点交换机收到整个的报文后再转发。问从主机A把报文传送到第一个节点交换机需要多少时间?从主机A把报文传送到主机B需要多长时间?
(2)如果采用分组交换。报文被划分为1000个等长的分组,并连续发送。节点交换机能够边接受边发送。试问从主机A把第一个分组传送到第一个节点交换机需要的时间?从主机A把第一个分组传送到主机B需要多少时间?从主机A把1000个分组传送到主机B需要多少时间?
(3)就一般情况而言,比较用整个报文来传送和用划分多个分组来传送的优缺点。
先把链路图画出来,A是源主机,B是终点主机,R1和R2是转发结点。
(1)在采用报文交换的前提下,又忽略传播、处理和排队时延,则我们只考虑【发送时延】第①小问等同于发送时延:
发送时延 = 10 7 b i t 2 × 10 6 b i t / s = 5 s \text{发送时延}=\frac{{10}^7bit}{{2\times10}^6bit/s}={5}s 发送时延=2×106bit/s107bit=5s第②小问要考虑存储转发时延,3段链路,中间有两个结点R1和R2需要存储转发,但是因为它不分组,每个转发结点的转发时间其实等价于A的发送时间,则有等式【总时延=3发送时延】即
A 到 B 的时延 = 3 × 5 s = 15 s A\text{ 到}B\text{ 的时延}=3\times5s=15s A 到B 的时延=3×5s=15s(2)已知数据报长度和分组数量,我们可以把【分组大小】求出来
分组大小 = 1 0 7 b i t 1000 = 10000 = 1 0 4 b i t \text{分组大小}={\frac{10^7bit}{1000}=10000=10^4bit} 分组大小=1000107bit=10000=104bit然后第①小问的答案其实和报文交换一致,因为它们的性能差距,体现在网络转发上,而不是这里,则有
发送时延 = 1 0 4 b i t 2 × 1 0 6 b i t / s × 1000 组 = 5 s \text{发送时延}=\frac{10^4bit}{2\times10^6bit/s}\times{1000}\text{组}=5s 发送时延=2×106bit/s104bit×1000组=5s第二问就要单独考虑分组交换延时延的计算了,题解计算如下,可能会问,为什么没有存储转发时延,其实这里是题目规定传播时延忽略,那么我们自然就没有存储转发时延了。
分组交换时延 = 发送时延 + 存储转发时延 = 5 s + 1 0 4 b i t 2 × 1 0 6 b i t / s × 2 = 5.01 s 分组交换时延 =发送时延 + 存储转发时延 =5s+\frac{10^4bit}{2\times10^6bit/s}\times{2=5.01s} 分组交换时延=发送时延+存储转发时延=5s+2×106bit/s104bit×2=5.01s(3)
分组交换 :
优点:【快速】如果某个分组出错,只重传那一个即可;【可靠性高】可使某些分组通过不拥堵的链路传输。
缺点:【开销大】首部带来额外开销。
报文交换 :没有额外开销。但只要有一个bit出错就要全部重传。
优点:【开销小,信道利用率高】
缺点:【实时性不强,容易遭遇网络堵塞】
T1-35:
主机A向主机B连续传送一个600000bit的文件。A和B之间有一条带宽为1Mbit/s的链路相连,距离为5000KM,在此链路上的传播速率为 2.5 × 1 0 8 m / s 2.5\times10^{8}\mathrm{m/s} 2.5×108m/s.
(1)链路上的比特数目的最大值是多少?
(2)链路上每比特的宽度是多少?
(3)若想把链路上每比特的宽度变为5000KM,这时应把发送速率调整到什么数值?
(1)此小问很明确是求【时延带宽积 】,而【时延带宽积=传播时延x带宽 】,则可计算:
传播时延 = 5000 × 1 0 3 m 2.5 × 1 0 8 m / s = 0.02 s 带宽 = 1 M b i t / s = 10 6 b i t / s 时延带宽积 = 0.02 s × 10 6 b i t / s = 20000 b i t \begin{aligned} \text{传播时延}&={\frac{5000\times10^3m}{2.5\times10^8m/s}=0.02s}\\ \text{带宽}&=1Mbit/s={10}^6bit/s\\ \text{时延带宽积}&={0.02s}\times{10}^6bit/s={20000bit} \end{aligned} 传播时延带宽时延带宽积=2.5×108m/s5000×103m=0.02s=1Mbit/s=106bit/s=0.02s×106bit/s=20000bit(2)此小问和【T1-34 】除了带宽不一样,其他都一样,则有
1 b i t 宽度 = 1 b i t 1 × 1 0 6 b i t / s × ( 2.5 × 1 0 8 m / s ) = 250 m 1bit\text{ 宽度}=\frac{1bit}{1\times10^6bit/s}\times{(2.5\times10^8m/s)}=250m 1bit 宽度=1×106bit/s1bit×(2.5×108m/s)=250m(3)此题只要将带宽设为未知数 x x x,宽度改为5000km再解方程就行了,具体如下
1 b i t 宽度 = 1 b i t x b i t / s × ( 2.5 × 1 0 8 m / s ) = 5 × 1 0 6 m ⟹ x = 1 b i t × 2.5 × 1 0 8 m / s 5 × 1 0 6 m = 50 b i t / s \begin{aligned} {1bit\text{ 宽度} =\frac{1bit}{xbit/s}\times(2.5\times10^8m/s)=5\times10^6m}\\ \Longrightarrow x ={\frac{1bit\times2.5\times10^8m/s}{5\times10^6m}}=50bit/s \end{aligned} 1bit 宽度=xbit/s1bit×(2.5×108m/s)=5×106m⟹x=5×106m1bit×2.5×108m/s=50bit/s
T1-36
主机A到主机B的路径有三段路,其速率分别为2Mbit/s,1Mbit/s和500kbit/s。现在A向B发送一个文件。
(1)试计算该文件传送的吞吐量。
(2)设文件长度为10MB,而网络上没有其他流量。试问该文件从A传送到B大约需要多少时间?为什么这里只是计算大约的时间?
(1)根据之前学习的内容,可知【吞吐量 】由【最小速率链路 】,则吞吐量为【500kbit/s 】
(2)本题只考虑【发送时延 】,因为没有链路可供参考,以及其他数据参考,其次为了保证稳定性,我们的带宽使用最小链路速率即【吞吐量 】,即有
发送时延 = 10 × 2 20 × 8 b i t 500 × 1 0 3 b i t / s = 167.772 s \text{发送时延}=\frac{10\times2^{20}\times8bit}{500\times10^3bit/s}=167.772s 发送时延=500×103bit/s10×220×8bit=167.772s本题我要说两句,网络上大部分答案(160s)都是错的,为什么?他们的计算数据总量是按照【1000进制 】来换算的,而本题的数据大小为大写的10MB,这意味着,数据换算的单位应该是【1024进制】,说这个的原因不是说要贬低其他【Content Creator】,而是要强调我们日常做题一定要注意细节
结束语
现在又到了20:36了,今天是2023年9月16日,学校新生刚刚开学。每每看到他们稚嫩的面庞,每每学完一个东西瞟一眼时间,每每想到我已经20岁了,一股失落之情袭来,随即即是自发的埋怨时光的此般无情,我什么都还没学会呢!真的要这样让青春悄无声息得带走我的一切吗?我想,不!我绝不将就。
。现在A向B发送一个文件。
(1)试计算该文件传送的吞吐量。
(2)设文件长度为10MB,而网络上没有其他流量。试问该文件从A传送到B大约需要多少时间?为什么这里只是计算大约的时间?
(1)根据之前学习的内容,可知【吞吐量 】由【最小速率链路 】,则吞吐量为【500kbit/s 】
(2)本题只考虑【发送时延 】,因为没有链路可供参考,以及其他数据参考,其次为了保证稳定性,我们的带宽使用最小链路速率即【吞吐量 】,即有
发送时延 = 10 × 2 20 × 8 b i t 500 × 1 0 3 b i t / s = 167.772 s \text{发送时延}=\frac{10\times2^{20}\times8bit}{500\times10^3bit/s}=167.772s 发送时延=500×103bit/s10×220×8bit=167.772s本题我要说两句,网络上大部分答案(160s)都是错的,为什么?他们的计算数据总量是按照【1000进制 】来换算的,而本题的数据大小为大写的10MB,这意味着,数据换算的单位应该是【1024进制】,说这个的原因不是说要贬低其他【Content Creator】,而是要强调我们日常做题一定要注意细节
结束语
现在又到了20:36了,今天是2023年9月16日,学校新生刚刚开学。每每看到他们稚嫩的面庞,每每学完一个东西瞟一眼时间,每每想到我已经20岁了,一股失落之情袭来,随即即是自发的埋怨时光的此般无情,我什么都还没学会呢!真的要这样让青春悄无声息得带走我的一切吗?我想,不!我绝不将就。
生活很也许苦涩,但是我们要坚持下来不断往前走。大雾弥漫,留下来观望的,是普通人;继续前行的是勇者,面对那朝思暮想之物,之人,也许能来句"我是此间少年郎,你是天上白月光"