计算机网络
-
第一章、计算机网络
1.1 什么是因特网
两种回答方式:
- 基本构成,即因特网的基本硬件和软件组成。
- 根据为分布式应用提供服务的互联网基础设施来描述
1.1.1具体构成
如PC、Linux工作站、移动设备等所有这些设备都称为主机(host)或者端系统(end system)。
端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。
通信链路:由不同类型的物理媒体组成,包括同轴电缆,铜线,光纤等,不同的链路能以同的传输速率(transmission rate)进行出传输数据,链路的传输速率以比特/秒(bit/s,或者bps)。
分组:一台端系统向另一台端系统发送数据时,发送端将数据分段,并为每段加上首段字母。
分组交换机从他的一条入通信线路接受到达的分组,并从一条出通信线路转发该分组。市面上的交换机也是很多的,但最著名的类型是路由器和链路交层交换机,这两种类型的交换机朝着最终的目的地转发分组。
链路层交换机通常用于接入网中,而路由器通常用户网络核心中。
一个分组所经历过的一系列通信链路和分组交换机通称为该网络的路径。
因特网标准由因特网工程任务组(Internet Engineering Task Force,IETF)研发。
IETF的标准文档称为请求评论(Request For Comment,RFC。
1.1.2服务描述
这一类的描述就是根据因特网的特性,将各个端系统连接起来,然后通过各个端系统之间的相互连接,所提供的一些服务,即通过各种不在同一个机器上的为了同一个应用或者功能服务通过相互连通合作所提供的服务。
套接字接口:该接口规定了运行在一个端系统上的程序请求因特网技术设施向运行在另一端系统的特定目的地程序交付数据的方式。
协议(protocol)
协议:定义了两个或多个通讯实体之间交换的报文的格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
1.2 边缘网络
1.2.1接入网络
1、家庭接入:DSL,电缆,GTTH,拨号和卫星
用户接入最流行的两种方式:数字用户线(Digital Subscriber Line,DSL)和电缆。
每个用户的DSL调制解调器使用现有的电话线与位于电话公司的本地中心局(CO)中的数字用户线计入复用器(DSLAM)交换数据。家庭的DSL调至解调器得到数字数据后将其转换为高音频的模拟信号,通过电话先传递给本地中心局,来自许多家庭的模拟信号在DSLAM处被转回数字形式。
电缆因特网接入利用了电视公司现有的基础设施。在电缆头端,电缆调制解调器端接系统(Cable Modem Termination System,CMTS)与DSL网络的DSLAM具有类似的功能,即将来自下行家庭的模拟信号转换为数字信号。
光纤到户(Fiber To The Home,FTTH):从本地中心局直接到家庭提供了一条光纤路径。其实是从本地中心局出来的光纤是共享的,到用户的时候才分出每户的光纤,这中情况下是有两种竞争性的光纤分布体系结构:主动光纤结构(Active Optical Network,PON)和被动光纤结构。
1.2.2 物理媒体
双交铜线,同轴电缆,光纤,陆地无线电信道,卫星无线电信道
1.3 网络核心
1.3.1 分组交换
为了从源端系统向目的端发送一个报文,源将长报文划分成较小的数据块,称之为分组。
在源和目的之前,每个分组都通过通信链路和分组交换机传送。
如果某源端系统或者分组交换机经过一条链路发送一个L比特的分组,链路的出传输速率为R比特/秒,则传输改分组的速率为L/R秒。
- 存储转发传输
多数分组交换机在链路的输入端使用存储转发传输机制。存储转发传输是指指在交换机在向输出链路发出一个分组的第一个比特之前,必须接受到整个分组。

一般情况:通过由N条速率均为R的链路组成的路径,从源到目的地发送一个分组,应用如上的逻辑,看到的端到端的时延是:d = N(L/R);
在这样一个简单的网络中,源在时刻0开始传输,在时刻L/R秒,路由器正好接受到整个分组,然后它可以朝着目的地向出链路开始传递分组,在2L/R,路由器已经传输了整个分组,并且分组已经被整个目的地接受。简单计算一下三个分组被传到目的地所需要的时间。与上类似,在时刻L/R,路由器开始转发第一个分组,而在时刻L/R源也开始发送第二个分组,因为他已经完成了第一个分组的完整发送。在2L/R时刻,目的地已经完整接受到第一个分组并且路由器也已经完整接收到第二个分组。类似的,在时刻3L/R时刻,目的地完整收到第二个分组,路由器接收完成第三个分组。最后在时刻4L/R目的地完整接收到所有的三个分组。
- 排队时延和分组丢失
对于每条相连的链路,该分组交换机都有一个输出缓存(output buffer,也称为输出队列,output queue),他用于存储路由器准备发往那条链路的分组。如果到达的分组需要发送到某条链路,而该链路正在发送其他的分组,因此该分组必须在输出缓存中等待,因此除了转发时延外,分组还需承受输出缓存的派对时延。这些时延的变化是变化的,取决于网络的拥塞程度。因为缓存也是有限的,有可能刚到达的分组发现当前的路由器的缓存已经被其他的分组沾满了,那么这种情况下可能分组丢包的现象,即丢弃达到的分组或者是缓存分组中的一个。
- 转发表和路由选择协议
在因特网中,每个端系统都具有一个称为IP地址的地址。当源端向目的端发送一个分组时,源在该分组的首部包含了目的地的IP地址。当一个分组到达网络中的路由器时,路由器检查该分组的目的地的一部分,并向一台相邻的路由器转发该分组。每个路由器都一个转发表,用于将目的地的地址映射成一个输出链路。当某分组到达一个路由器时,路由器检查该分组,并用这个目的地地址搜索其转发表,以发现适当的出链路。
路由选择协议
1.3.2 电路交换
通过网络链路和交换机移动数据的方式有两种:电路交换和分组交换
1、电路交换网络中的复用
链路中的电路是通过频分复用(Frequency-Division Multiplexing,FDM)和时分复用(Time-Division Multiplesing)实现的。FDM,链路的频谱由所有跨越链路所建立的连接所共享。特别是连接期间链路为每条连接专用一个频段,在电话网络中,这个频段的宽度通常为4KHz(即每秒4000周期),该频段的宽度就成为带宽。
对于TDM,时间被划分成固定长度帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,在每个帧中为该链接指定一个时隙,这些时隙由该链接专门使用,一个时隙可用于传输改链接中的数据。
栗子:主机A、B之间额通过电路交换网络传输一个640 000比特的文件需要的时间。
假如有一个24时隙的TDM,比特速率是1.536mMbps,同时在两个主机之间建立链接需要500ms,每条链路之间具有的传输速率是1.536Mbps/24=64Kbps,因此需要640kb/64kbps=10s,在加上建立链接所需要的500ms,则一共是10.5s。值得注意的是该传输时间与链路数量无关,端到端电路不管是通过一条还是100条,其时间都是10s。
2、分组交换和电路交换的对比
电路狡猾不需要考虑需求,而是预先分配了传输链路的使用。而这使得分配并需需要的链路时间未被使用。另一方面,分组交换按需分配链路使用,链路传输能力将在所有需要的链路上传输分组的用户之间共
1.3.3 网络的网络
网络结构1:用单一的全球传输ISP互联所有的接入ISP。假象全球传输ISP是由一个路由器和通信链路构成的网络,该网络不进跨越全球,而且至少有一台路由器靠近数十万接入ISP的每一个。
网络结构2:他由数十万ISP和最初几个全球传输ISP组成。他是一种两层结构,其中全球传输供应商位于顶层,而ISP位于底层。
网络结构3:这个机构中,在结构2的基础上又会又很多的区域ISP,这些区域的ISP是逐级的向上请求连接,当前也是逐级的向上支付费用。
为了建造一个与今天互联网更为相似的网络,必须在等级化网络结构3上增加存在点(Point Of Prosence,PoP),多宿,对等和因特网交换点。PoP 存在于等级结构中的所有层,但是底层除外。一个PoP只是提供商网络中的一台或多台路由器群组,其中客户ISP能够与提供商ISP连接。任何一个ISP都可以选择多宿,即可以与两个或者更多的ISP连接。位于同等级结构层次的领近一对ISP对等,两个ISP对等时,通常不进行结算。沿着相同的路线,第三方公司能够创建一个因特网交换点(Interent Exechange Point,IXP),IXP是一个汇合点,多个ISP能够在这里对等。
网络结构4:由接入ISP,区域ISP,第一层ISP,PoP,多宿,对等和IXP组成
网络结构5:通过在网络结构4中增加了内容提供商网络构建而成。
1.4 分组交换王中的时延,丢包和吞吐量
1.4.1 分组交换网中的时延概述
在分组从源端向目的端传送的过程中,会产生各种各样的时延,有节点处理时延,排队时延,传输时延和传播时延,这些时延的总体累加起来就是节点总时延。
时延类型
(1)处理时延:检查分组首部和决定该分组导向何处所需要的时间,这只是其中的一部分,还有包括检查比特级别的差错,这个差错主要是从上游节点到路由器传输分组比特的过程中产生的。
(2)排队时延:即在路由器缓存的时间。如果路由器输出链路没有正在传输的分组,而且路由器缓存队列数量为0 ,则排队时延为0,相反,则其中的任何一个部分存在数据或者操作,都会存在时延。
(3)传输时延:L比特表示该分组的长度,R bps表示路由器A到路由器B链路的传输速率,传输时延是L/R,这是将所有分组的比特推向链路所需要的时间,实际的传输时延通常在毫秒到微妙量级。
(4)传播时延:一旦一个比特被推向链路,该比特需要向路由器B传播,从该链路的起点到路由器B所需要的时间。该时延等于两台路由器之间的距离除以传播速率,传播速率取决于物理媒体,通常在2*10^8 到3*10^8之间。即传播时延为d/s。
(5)传输时延和传播时延的比较
传输时延是路由器推出分组所需要的时间,他是分组长度和链路传输速率的函数。而与两台路由器之间的距离无关。传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,他是两台路由器之间距离的函数。传输时延是路由器向链路推送分组所需要的时间,即把一个分组从路由器中推送到链路中所需要的时间,而传播时延是分组从A路由器到B路由器所需要的时间。
1.4.2 排队时延和丢包
流量强度:a表示分组到达队列的平均速率(a的单位是分组/秒,pkt/s),前面说过,R是传输速率,即从队列中推出比特的速率(以bps即b/s为单位)。假定该队列非常大,因此他基本能容纳我先容量的比特,比率La/R被称为流量强度。如果La/R > 1,表示比特到达队列的平局速率超过从该队列传出的速率。这种情况下,该队列趋于无线增加,并且该队列的时延将趋于无穷大。因此流量工程的第一条金科玉律是:设计系统时流量强度不能大于1。
现在考虑La/R <= 1时,到达流量的性质映像排队时延。如果分组周期性到达,即每L/R秒到达一个分组,每个分组将到达一个空队列,不会有排队时延。另一方面,如果分组以突发形式到达,则可能会有很大的平均排队时延。假定N(L/R)秒同时到达N个分组,则传输第一个分组没有排队时延,第二个分组就有L/R个排队时延,更为一般的,n个传输的分组具有(n-1)L/R秒的排队时延。
丢包:由于路由器的存储是有限的,所以不可能存储趋于无限大,时延趋于无穷大。那么当一个分组到达路由器后发现满的队列,没有地方存储,会将这个分组丢弃,即该分组将会丢失,分组丢失的比率会随着流量强度的增加而增加。
1.4.3 端到端的时延
以前讨论的都是集中在节点时延上,现在考虑从从源到目的地,还要假设该网络此时是无拥塞的,每台路由器和源主机上的处理时延是dproc,每台路由器和源主机的输出速率是R bps,每条链路的传播时延是dprop,节点时延累加起来得到端到端时延:dend-end = N(dproc + dtrans + dprop)。式中dtrans=L/R,L是分组长度。
Traceroute:
1.4.4 计算机网络中的吞吐量
瞬时吞吐量:某一时刻接收端接受到文件的速率。
平均吞吐量:某文件F比特,接受该文件用去T秒,则该文件传输的平均吞吐量是F/T bps。
再次的理解一下,如图所示:

这样一个简单的网络,Rs表示从服务器到路由器的链路速度,Rc表示从路由器到客户端的链路速度。假定整个网络中只有这个链路在传输数据这样一个理想的状态。显然,这个服务器不能以大于Rs的速率往这个链路中注入数据,而路由器同样也不能以快于Rc的速率转发比特。
如果Rs < Rc,则在给定吞吐量Rs的情况下,则服务器到客户端的流动链路正常,并且就以Rs的速率流动。
如果Rs > Rc,则路由器就不能像接受比特的速率进行转发比特,而比特离开路由器的速率只能是Rc的速率,这个Rc也就是端到端的吞吐量。此时如果服务器继续以Rs的速率往外传输,就很有可能出现路由器中数据不断积压,这中=种情况是希望出现的。
对于这种简单的网络链路,其吞吐量是min{Rc,Rs},这也就是瓶颈链路的传输速率。
举个栗子:客户端传输一个F比特的文件所需要的时间是F/min{Rc,Rs},一个F= 32*106比特的文件,Rs=2Mbps,Rc=1Mbps,则传输文件所需要的时间就是32秒。
当然,这些理论表示和计算方法都是理想状态的,没有考虑存储并发,处理时延和协议等问题。

相比于上述情况,网络在复杂一点,类似与现在真实的Internet网,10个客户端,10个服务器,客户端的是接受速率是Rc,服务器的发送速率是Rs,目前网络中也是配置了较高速率的链路,所以很少出现拥塞现象。因此,这样的情况下网络的端到端的吞吐量还是取决于Rs和Rc,现在Internet对吞吐量的限制也通常是接入网路。
但是对于更一般的情况下。10个服务器,10个客户端,这个网络中有10个客户端-服务器对,每个客户端中都有下载任务并且是网络中的唯一流量。网络中有一条10个下载都通过的链路,其速率为R,而其他的链路速率都比Rs和Rc大的多,那如此情况下的一个网络中的吞吐量又该如何?
如果共同通过的那条链路的速率比Rc和Rs大的多,不在一个量级,那么这是网络吞吐量的限制还是接入网的限制,即min{Rs,Rc},但是如果是R的速率和Rc和Rs在同一个量级,如Rs=2Mbps,Rc= 1Mbps,R= 5Mpbs,并且公共链路为每个下载平分他的下载速率,这时每个下载的瓶颈不再是接入网,而是位于核心中的共享链路了。该瓶颈仅能为每个下载提供500kbps的吞吐量,因此每个下载端到端的吞吐量也就是500kbps。
1.5 协议层次及其服务模型
1.5.1 分层体系结构
- 协议分层
协议封层具有概念化和结构化的优点。
当然也是有些问题的:一层可能冗余较低层的功能,例如许多协议在基于每段链路和端到端两种情况下,都提供了差错回复;第二种潜在的缺点就是某一层的功能的实现可能需要仅在其他某层才能出现的信息,这违反了层次分离的目标。
将这些综合起来,各层所有的协议被称为协议栈,因特网的协议栈被分成5个层次:物理层,链路层,网络层,运输层和应用层。
- 应用层:是网络应用程序和他们的应用协议存留的地方。
HTTP:web文档的请求的传送
SMTP:电子邮件报文的传输
FTP:两端之间的文件传输
应用层协议分布在多个端系统上,把应用层用应用层协议进行信息交换的分组称为报文。
- 运输层:英特网的运输层在应用程序端点之间传送应用层报文。在因特网中,传输协议有两种:TCP和UDP。
TCP:向应程序提供了面向连接的服务,这种服务确保了应用层向目的地的确保传递和流量控制,将长报文切分成短报文,并且提供拥塞控制机制。
UDP:无连接服务,没有可靠性,没有流量控制,也没有拥塞控制。
应用层的分组称为报文段。
- 网络层:因特网的网络层负责将称为数据包的网络分层分组从一台主机移动到另一台主机。
网际协议IP就属于网络层,该协议定义了数据报中的各个字段以及端系统和路由器如何作用于这些字段。IP之有一个,所有具有网络层的因特网组件必须运行IP。网络层中也有决定路由的路有选择协议。
- 链路层:网络层将数据报下传给链路层,链路层沿着路径将数据包传递给下一个节点。在该下一个节点,链路层将数据报传给网络层。
有链路层提供的协议取决于应用于该链路的特定链路协议。数据报从源到目的地传输通常需要经过几个链路,一个数据报可能被沿途上不同链路的链路层协议处理,例如可能是以太网,也可能是PPP,网络层将受到来自每个不同的链路层协议的不同服务。链路层的分组称为帧。
- 物理层:物理层的任务是将链路层的帧以比特的形式从一个节点移动到另一个节点。这一层的协议仍然是链路相关的,并且进一步与链路的传输媒介相关。例如以太网就具有多种物理层协议:双绞线的,光纤的,同轴电缆的等等。
- OSI模型
应用层,表示层,会话层,网络层,运输层,链路层和物理层。
表示层的作用是使通信的应用程序能够解释交换数据的含义。这些服务包括数据压缩和数据加密以及数据描述。会话层提供了数据交换的定界和同步功能包括了建立检查点和恢复方案的方法。
1.5.2 封装
其主要意义就是从应用层到物理层,从上到下,依次将上层的数据按照本层的协议进行拆分分组,然后在添加上本层的协议首部,继续传至下一层。当然,到了对端数据分组是从下到上进行逐级拆分,去掉每层协议的首部,将数据投送到上级,直至应用层。
649

被折叠的 条评论
为什么被折叠?



