一、计算机网络和因特网
计算机网络的定义:将分布在不同地理位置上的具有独立工作能力的计算机、终端及其附属设备用通信设备和通信线路连接起来,并配置网络软件,以实现计算机资源共享的系统。
1.1 什么是因特网
具体构成描述
即基本硬件和软件组成角度:Internet 互联了众多称作主机或者终端系统的设备,他们被认为位于网络边缘,主机又可分为客户机(client)和服务器(server)。这些设备通过通信链路(也就是物理线缆)连接,链路中间还有分组交换机。主机之间交换数据时将数据分组发送,并通过分组交换机分配包数据。常见的分组交换机有路由器和链路层交换机。主机通过ISP(Internet 服务提供商)接入Internet 。所有Internet 通讯必须遵循一定的协议。其规范称作互联网标准。
服务描述
Internet 是提供这么一些服务的计算机网络:允许离散的应用在终端上交换数据,比如下载软件和浏览器等等。他还为这些应用提供两种服务:面向连接的服务(TCP)以及无连接的无依赖性服务(UDP)。简单地说,面向连接的服务有握手程序,还必须确认包是否正确发送和接受,但是无连接服务不需要担心另一方的问题,只要发或者接就行了。
名词解释
端系统/主机:和因特网相连的计算机等设备(如TV,Web服务器,手提电脑)。
通信链路:同轴电缆;铜线;光缆;无线电频谱
分组:当一台端系统有数据要向另一台端系统发送时,端系统将数据分段并在每段加上首部字节,由此形成的信息包称为分组。一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径。
协议:定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和接收或其它事件方面所采取的动作
1.2 网络边缘
只讲两点:
接入网:将端系统连接到边缘路由器(edge router)的物理链路。
边缘路由器:端系统到任何其他远程端系统的路径上的第一台路由器。
1.3 网络核心
网络核心,即互联了因特网端系统的分组交换机和链路的网状网络。
电路交换
定义
电路交换(circuit switching):每个主机都直接与一个交换机直接相连,各个交换机之间有物理线缆,如果两台主机要传送信息,其对应的交换机之间必须有一条预留电路。假定每个交换机都有n条电路,那么连接期间该连接获得链路带宽的1/n。
电路交换网络中的多路复用
1、频分多路复用(Frequency-Division Multiplexing,FDM)
2、时分多路复用(Time-Division Multiplexing,TDM)
例子
从主机A到主机B经一个电路交换网络发送一个640,000 比特的文件需要多长时间?
所有链路是1.536 Mbps
每条链路使用具有24个时隙的TDM
创建端到端电路需500 msec
计算结果:Time=640000/(1.536Mbps/24)+0.5s=10.5s
分组交换
分组交换(packet swiitching):各种应用在完成任务时要交换报文,报文包含协议要求的内容。主机会把较大的报文分组并发送到分组交换机。交换机使用存储转发传输机制,简单地说就是接受一个报文的全部分组后才输出,这样就会产生存储转发时延。同时,对于每个输出链路,分组交换机还为之生成一个输出缓存或输出队列,因为同一时刻只能向一条链路输出一组信息,其他信息只能在队列中等待,这样会产生排队时延。如果队列已满,新到达的报文分组无法入队,就会产生丢包。
优劣对比
分组交换的批评者:分组交换因其端到端时延是变动的和不可预测的(主要是因为排队时延的变动和不可预测所致),故不适合实时服务(例如,电话和视频会议)。
分组交换的支持者:
1、它提供了比电路交换更好的带宽共享
2、它比电路交换更简单、 更有效,实现成本更低。
1.4 分组交换网中的时延,丢包和吞吐量
时延概述
时延分为节点处理时延(nodal processing delay),排队时延(queuing delay),传输时延(transmission delay)和传播时延(propagation delay),这些加起来就是节点总时延(total nodal delay),即
节点总时延 = 节点处理时延 + 排队时延 + 传输时延 + 传播时延
处理时延(通常几个微妙或者更少)
1、检查分组首部和决定将分组导向哪一个队列;
2、其他:检查比特级差错所需要的时间。
排队时延(取决于拥塞等级)
在队列中,当分组在链路上等待传输时所需的时间,取决于先期到达的,正在排队等待想链路传输分组的数量。
传输时延(L/R,对低速链路很大)
1、将所有分组的比特推向链路所需要的时间。
2、用L比特表示分组的长度,用R bps表示从路由器A到路由器B的链路传输速率。(对于一条10Mbps的以太网链路,速率R = 10Mbps),传输时延(又称为存储转发时延)是L/R。
传播时延(几微妙到几百毫秒)
1、从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。
2、传播时延 = 两台路由器的距离d / 传播速率s。
3、传播速率取决于该链路的物理媒体(即光纤,双绞铜线等),速率范围是2*108~ 3 * 108 m/s
分组交换时延图
端到端时延
假定在源主机和目的主机之间有N-1台路由器(那么实际有N条小路径),并且该网络是无拥塞的(因此排队时延是微不足道的),处理时延为dproc,每台路由器和源主机的输出速率是 R bps,每条链路的传播时延是dprop,节点时延累加起来得到端到端时延:
dend-end = N(dproc + dtrans + dprop)
dtrans = 分组长度L / R
计算机网络中的吞吐量
吞吐量:单位时间内通过某个网络(或信道、接口)的数据量,是瓶颈链路(bottleneck link,即找速度最短的那一条链路)的传输速率。
吞吐量分为瞬时吞吐量(instancous throughput)和平均吞吐量(average throughput),我们可以把他们类比为以前物理学过的瞬时速度和平均速度。
该图中吞吐量为min{Rc,Rs}。
该图中吞吐量为min{R1,R2,R3,…,RN}。
在确定了吞吐量之后,我们现在近似地(因为没有考虑分组层次和协议)得到从服务器到客户机传输一个F比特的大文件所需要的时间是F/min{R1,R2,R3,…,RN}。
1.5 协议层次
网络中引入协议栈(protocol stack)概念,自顶向下分别是:
应用层
包含大量应用普遍需要的协议,支持网络应用
协议为FTP, SMTP, HTTP
运输层
主机到主机数据传输,负责从应用层接收消息,并传输应用层的message,到达目的后将消息上交应用。
协议为TCP, UDP
网络层
从源到目的地数据报的选路
协议为IP, 选路协议
链路层
在邻近网元之间传输数据
协议为PPP, 以太网
物理层
物理层负责将链路层帧中每一位(bit)从链路的一端传输到另一端
协议分层图
因特网协议栈自顶向下传输时,各层会将上层信息包装,上层信息包装为有效载荷字段,本层信息包装为首部字段。
下图中从上往下为封装,下往上为解封装。
复习题
- 无不同 客户端和服务器端 是
- 略
- 方便协同工作
- 家庭接入:DSL,电缆,FTTH,拨号和卫星
企业接入:以太网和wifi
广域无线接入:3G和LTE
5.共享 可能,因为线路有上限,用户是共享的
6.略
7.用户通常以100Mbps速率接入以太网交换机,而服务器可能具有1Gbps甚至10Gbps的接入速率
8.双绞铜线,同轴电缆,光纤,陆地无线电信道,卫星无线电信道
9.拨号调制解调器:宽带专用,56bps
HFC(混合光纤同轴):宽带共享,下行速率42.8Mbps,上行速率30.7mbps
DSL(数字用户线):宽带共享,下行速率24Mbps,上行2.4Mbps
FTTH(光纤到户):宽带专享。下行速率10-20Mbps,上行速率2-10Mbps
10.Wifi和4G
- 端到端总时延为:L/R1 + L/R2,其中L/R1为发送主机到交换机需要的时延,L/R2为交换机到接收主机的时延。
- 在同一时期,周期性的得到所以带宽
13.a. 当使用电路交换时,能够支持2个用户同时传输。
b. 因为当2个用户同时传输时,比特到达路由器的时间为2Mbps,路由器的传输时间为2Mbps,所以路由器的处理队列为空。当超过2个用户时,路由器的处理队列将不为空。
c. 0.2
d. 0.008
14.当两个ISP之间需要传输流量时,如果没有对等,那么其中一个ISP需要先传输给提供商ISP然后再传递给另一个ISP,这时候产生了额外费用,如果对等的话则可以免去这些费用。IXP可以根据交换的流量额收取费用。
15.
可以跟较底层的ISP对等,或者接入IXP来减少对提供商ISP的费用
可以对其服务最终如何交付给端用户有了更多的控制
16.分别为处理时延、排队时延、传输时延、传播时延
其中排队时延是变化的,其他都是固定的。
17.
定义L:可用的分组长度,v:可用速率,t:传播时延
第一种组合:L/v < t
第二种组合:L/v > t
18.10msec; d/s; no; no
19.a. 500kbps
b. 32Mb/0.5Mbps = 64s
c. 100kbps, 32Mb/0.1Mbps = 320s
注意计算机中的B是byte(字节),网络中的b是bit(比特)。1B = 8b,即1byte = 8bit
20.端系统在分组的首部加上了目的地的IP地址,当一个分组到达路由器时,路由器检查该分组的目的地址的一部分,并向另一台相邻路由器转发该分组。路由器使用转发表将目的地址的一部分映射为输出链路。所以这和只知道目的地名字但是不知道路线的司机到达该目的地的思路是一样的,只能够询问沿路的路人往哪里走。
21略
22五个通用任务是错误控制,流量控制,分段和重组,复用和连接设置。是的,这些任务可以在不同的层次上复制。例如,错误控制通常在多个图层上提供。
23.应用层、运输层、网络层、链路层、物理层
- 应用层是网络应用程序及它们的应用层协议存留的地方。
- 运输层在应用程序端点之间传送应用层报文。
- 网络层负责将成为数据报的网络层分组从一台主机移动到另一台主机。
- 链路层沿着路径将数据报传递给下一个结点。
- 物理层的任务是将该帧中的一个一个比特从一个结点移动到下一个结点
24.
- 一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息的分组叫做应用层报文。
- 对应用层分组封装后的运输层分组是运输层报文段
- 对运输层分组封装后的网络层分组是网络层数据报
- 对网络层分组封装后的链路层分组是链路层帧
25.
- 路由器处理网络层、链路层、物理层
- 链路层交换机处理链路层、物理层
- 主机处理应用层、运输层、网络层、链路层、物理层
26.
- 病毒是一种需要某种形式的用户交互来感染用户设备的而已软件
- 蠕虫是一种无需任何明显用户交互就能进入设备的恶意软件
27使用蠕虫或病毒感染某个电脑,紧接着它会去感染其他电脑并慢慢形成一个僵尸网络。
攻击者利用僵尸网络中的主机向被攻击者疯狂发送流量。
28
- Trudy可能会盗取Alice和Bob的用户信息,比如社交密码、银行卡密码、Alice的个人隐私、Bob的个人隐私等等
- Trudy可以很容易的破坏两人的关系,比如篡改分组中的内容
- Trudy可能威胁到Alice和Bob的安全,比如以某人的名义将另一人单独约出来
+
习题
- 略
- N*(L/R) + (P-1)*(L/R) = (N+P-1)*(L/R)
- a电路交换网 减少时延 b 不需要,不会导致
- a. 16,A->B四条,B->C四条,C->D四条,D->A四条
b. 8,A->B->C四条,A->D->C四条
c. 可以,A->B->C两条,A->D->C两条,B->C->D两条,B->A->D两条
5.A 12 * 10 = 120秒 = 2分钟 单段的传播时间2*3=6min 75/100km/h=45min 45*2+6=96 min B 12 * 8 = 96秒,所以一共需要96s + 45min + 96s + 45min + 96s = 94分钟48秒
6.a. m/s
b. L/R
c. m/s + L/R
d. 刚刚离开主机A
e. 在链路上传播
f. 已经到达主机B
G m = Ls =120 (2.5 ⨯108)= 536 km
7从比特产生到解码需要(56 * 8)/(64 * 103) = 7ms
接着从解码之后的传输时间需要(56 * 8)/(2 * 106) = 0.224ms
然后传播到主机B的传播时间是10ms
最后有一个问题是,这道题目是否考虑主机B的解码时间,如果不考虑的话总时间就是7 + 10 + 0.224 = 17.224ms;如果考虑的话题目并没有给出,假设是xms,那么就是(17.224 + x)ms
8 a. 3Mbps/150kbps = 20
b. p = 0.1
c
d
9.a. 10000
b.
10.
11.由于比特不被留在交换机中直接被转发,所以端到端的时延也就是最后一个比特的时延。首先最后一个比特需要被处理到链路上,也就是L/R,然后需要经过3段链路的时延d1/s1 + d2/s2 + d3/s3。最后算出来结果是46ms
12.前面等待了4.5个分组,也就是4.5 * 1500 = 6750Bytes,然后1Byte = 8bit,所以6750Bytes = 54000bit,所以排队时延为54000/(2 * 106) = 27ms
13a.
b. 由于LN/R比(N - 1) * L / 2R大,所以在下一次N个分组来之前,上一次N个分组已经处理完了,没有额外排队时延,所以平均排队时延依然是(N - 1) * L / 2R
14a.
b. 化简一下上式就行了
15.由于传输率是μ,所以传输时间为1/μ = L/R
排队时间由上题得到是IL/R(1 - I),然后又有I = La/R
利用这三个式子,把I、L、R全部消除然后化简就得到了1/(μ - a)
16.假设已经被传输了1个分组
那么N = 10 + 1 = 11
d = 10/1000s + 1/100s = 0.02
所以a = N/d = 550
17.a.
b.
- 略
- 略
21.
22.(1-p)n
一共需要传1/(1-p)n次,因为第一次不属于重传,所以需要重传1/(1-p)n - 1次
23.a. L/Rs
b. 是有可能的,考虑一下极端情况Rc=0,就会发生排队。T必须至少L/Rc - L/Rs
24.如果选择链路传输数据,那么需要 40 x 1012 x 8 / 100Mbps = 37天,所以还是选择FedEx一夜快递吧。。
25.a. Rtprop = 2Mbps x 20000km/(2.5 x 108)m/s = 160000
b. 160000,因为带宽-时延积就是任一时间链路上具有的比特最大数量,公式如何推出来的见e小问
c. 带宽-时延积就是任一时间链路上具有的比特最大数量,公式如何推出来的见e小问
d. 比特数量是160000,链路长度是20000km,所以可以算出来一个比特是125米,应该跟足球场差不多长了吧。。
e. 首先推一下链路上具有的比特最大数量,设一共有L个比特
传播时延是m/s,传输时延是L/R
那么传播时延占传输时延的百分比就是(m/s)/(L/R) = mR/sL,也就是说过了mR/sL秒之后,链路上就占满比特了
因为一共有L个比特,所以任一时间链路上具有的比特最大数量是L * mR/sL = mR/s,也就是带宽-时延积
那么宽度就是m / (mR/s) = s/R
26.s/R = m,求出来R是12.5bps
27.a. 8 x 107
b. 8 x 105,这里的带宽-时延积不是任一时间链路上具有的比特最大数量,是因为传输时延比传播时延小,也就是说比特还没到达终点的时候,已经全部在链路上了
c. 0.25m
28.a. 0.48s
b. 2s
c. 显然第一个更小,主要是浪费在传播时延上了
29.首先要知道同步卫星距离地球的高度约为36000km(百度来的)
a. dprop = 0.15s
b. 1500000
c. 由于卫生每分钟拍摄一次照片,所以在这60s之内需要把前一行照片传输完毕(注意是传输完毕不是传播完毕,只要传输到链路上就行了,不用等到达地球),所以算出来是6 x 108比特的传输时间是60秒
30.个人理解应该是有的,举个栗子,你必须拿到登机牌,飞机才知道你的目的地是哪里,登机牌就算是一个“首部”
31.a. 4s,12s
b. 5ms, 都是5ms, 10ms
c. 只关注最后一个分组即可,最后一个分组需要等待799个5ms才能发送,然后需要3个5ms到达目的主机,所以一共需要802个5ms,也就是4.01s,比a的12s小很多。因为分组交换机必须等待把一个分组都收到后才能转发这个分组,如果这个分组非常非常大,那么可能等待的时间很长,而分成很多小分组的话,就可以先把先收到的小分组转发出去,这样就减少了等待时间。最极端的例子就是不等待整个分组再转发,而是收到一个bit就转发一个bit,这样就几乎没有等待的时间了。
d. 减小交换机处理分组的压力(可能交换机的内存很小,一次不能处理整个文件那么大,但是一次可以处理一个分组那么大);并且当一个很大的分组正在处理时,可能后面很小的分组需要排队等很久;还有就是当比特丢失或者错位时,一次需要全部重传,如果分成若干分组的话,哪个分组比特有错误就重传这个分组就行了
e. 每个分组都需要加上一些额外的信息(比如序列号),因为到达目的主机后需要重新把这些分组合并起来,所以总体的大小是比以前整个文件的大小大的
32.略
33.There are F/S packets. Each packet is S=80 bits. Time at which the last packet is received
at the first router is S +80 ⨯ F sec. At this time, the first F/S-2 packets are at the
R S
destination, and the F/S-1 packet is at the second router. The last packet must then be transmitted by the first router and the second router, with each transmission taking
S +80 sec. Thus delay in sending the whole file is delay= S +80 ⨯ ( F + 2)
R R S
To calculate the value of S which leads to the minimum delay,
d delay =0⇒ S = 40F
dS
34.应该是中间有一层服务器做转发,网络电话通过把语音信号经过数字化处理、压缩编码打包、透过网络传输给服务器,然后服务器解压、把数字信号还原成声音,再拨打出去