跳转至

计算机网络第一次作业

10211900416 郭夏辉

作业内容

第一章习题 P1 P3 P9 P12 P20 P22

P1

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

这个题目比较基础,注意题目中要求的是简单无差错取钱情况

为了更方便地表示,我将图1-2所示的交互图变成了以下的形式。

普通情况(钱够)

客户                      中央计算机
( 输入账号 )------->( 检查账号是否有效 )
( 等待输入密码 )<-------( 如果账号是有效的 )
( 输入密码 )------->( 检查密码是否正确 )
(       )<-------( 密码正确 )
( 查询余额 )------->(        )
(       )<-------( 在数据库中查询该账号的余额并返回 )
( 取钱x元 )--------->( 在数据库中查询y是否大于等于x )
( 用户得到x元现金 )<-------( 若y>=x,返回给机器取钱x元,并使得数据库中y-=x )
( 用户注销 )--------->( 系统进入待机状态 )

意外情况(钱不够)

客户                      中央计算机
( 输入账号 )------->( 检查账号是否有效 )
( 等待输入密码 )<-------( 如果账号是有效的 )
( 输入密码 )------->( 检查密码是否正确 )
(       )<-------( 密码正确 )
( 查询余额 )------->(        )
(       )<-------( 在数据库中查询该账号的余额并返回 )
( 取钱x元 )--------->( 在数据库中查询y是否大于等于x )
( 用户得到余额不足的信息 )<-------( 若y<x,返回给机器报错 )
( 用户注销 )--------->( 系统进入待机状态 )

P3

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

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

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

a.首先我回顾了一下分组交换和电路交换各自的优势与短板。

分组交换采用存储转发的方式,解决了报文交换中大报文传输的问题,限制了每次传送数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息构成分组 。这样做简化了存储管理、减少了报文的传输时间和出错概率。但是存在传输时延、需要额外的信息量。

电路交换在进行数据传输前两个结点之间已经建立了一条专用的物理通信路径,通信时延较小、可以有序传输,不存在失序问题、适用范围更为广泛。但是建立连接的时间长、灵活性较差、信道利用率较低。

然后回归问题,(a)中电路交换网络更适合。这个应用程序以稳定的速率传输数据传输数据,由于速率较小,不用担心对留给其他会话的带宽有过多浪费。并且自启动后会连续运行相当长的一段时间,因此不用担心建立连接时的较大开销。

b.不需要,因为传输速率的总和还是小于链路容量。由于每条链路的带宽足够处理所有的应用程序数据传输请求,因此最坏情况下都不会发生拥塞现象,因此在这里不需要拥塞控制机制。

P9

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

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

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

a.注意是同时支持,这里所支持的最大用户\(N\)都要产生数据了。

\(N=\frac{1Gbps}{100kbps}=10^4\)

b.在多于\(N\)时,发送数据和没发送数据的用户总数是\(M\),根据概率论中的知识累和可得所求概率为

\(P(X=i)=C_{M}^{i}p^{i}(1-p)^{M-i},i=N+1,...M\)

\(\sum_{i=N+1}^{M} C_{M}^{i}p^{i}(1-p)^{M-i}= \sum_{i=N+1}^{M} C_{M}^{i}(\frac{1}{10})^{i}(\frac{9}{10})^{M-i}\)

P12

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

一个分组的排队时延\(\frac{1500*8b}{2Mbps}=0.6ms\)

前面有\(4+0.5=4.5\)个分组

总排队时延\(4.5*0.6=2.7ms\)

在一般情况下,可以归纳出排队时延是\(\frac{nL}{R}+\frac{L-x}{R}=\frac{(n+1)L-x}{R}\)

P20

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

假如\(R_s\),\(R_c\)都足够大(一个非常大的数值),这样吞吐量主要受\(R\)\(M\)制约,为\(\frac{R}{M}\)

如果\(R_s\),\(R_c\)都是有限的,那么它们都会对吞吐量有相应的影响。

三者综合,通用的吞吐量表达式应该是\(min\{{\frac{R}{M}},R_s,R_c\}\)

P22

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

假设链路上有\(n\)个交换机。要保证最终分组成功地被接收方收到,就要使得经过的每段链路都没有发生丢包,概率是\(p_1=(1-p)^{n}\)

设随机变量\(X\)表示传输的次数,是满足几何分布的,\(X\)~\(Ge(p_1,m)\)

平均传输次数\(E(X)=\sum_{k=1}^{\infty}k(1-p_1)^{k-1}p_1=\frac{1}{p_1}=\frac{1}{(1-p)^{n}}\)

注意这里的一个小坑,第一次传输不能叫重传,故重传次数平均为\(\frac{1}{(1-p)^{n}}-1\)