1. 什么是Internet
回答这个问题有两种种方式:其一,我们能够描述因特网的具体构成,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。
1.1 具体构成
联网的计算机、手机,包括一系列家用电器,这些设备都称为主机(host)或端系统(end system)。端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。
不同链路的传输速率不同,用比特/秒来衡量。即bit/s或者bps。
当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包用计算机网络的术语来说称为分组(packet)。分组=用户数据+必要信息,链路系统就是用来传输分组的。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通 过该网络的路径。
分组交换机从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组,常用的是路由器(router)和链路层交换机(link-layer switch).两者的的不同之处在于,链路层交换机主要用在接入网中,路由器主要用在网络核心.
端系统通过因特网服务提供商(Internet Service Provider, ISP)接入因特网。每个ISP自身就是一个由多台分组交换机和多段通信链路组成的网络。
端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),TCP (Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最为重要的协议。
网络(network)由若干结点(node)和连接这些结点的链路(link)组成。网络中的结点可以是计算机、集线器、交换机或路由器等。如图(a)所示。
网络和网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网。如图(b)所示。
因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。习惯上,大家把连接在因特网上的计算机都称为主机(host)。
1.2 服务描述
因特网包括电子邮件和Web冲浪等传统应用,也包括多人游戏、视频会议等基应用程序,因为这些应用程序设计多个交换数据的端系统,故他们被称为分布式应用程序(distributed application)。
与因特网相连的端系统提供了一个套接字接口( socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。
1.3 网络协议
在因特网中,涉及两个或多个远程通信实体的所有活动都受协议的制约。
协议就是如何使用必要数据理解用户数据的方法或者规则;分组接收者接收到分组并按照协议获得了用户数据后,还应该对此消息做出反应,而如何做出反应也是协议规范的一部分(不反应也是一种反应)
协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
2. 网络边缘
边缘部分由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
端系统:处在因特网边缘的部分就是连接在因特网上的所有的主机,即端系统。端系统有时又被进一步分类:客户(client)和服务器(server)。
2.1 接入网
接入网,是指将端系统物理连接到其边缘路由器(edge router)的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。
(1)家庭接入
宽带住宅接入有两种比较流行的类型:数字用户线(Digital Subscriber Line, DSL)和电缆。用户的本地电话公司是它的ISP。
其使用的通信链路的物理材质为电话线,是一种双绞线。
用户使用DSL调制解调器通过电话线与ISP中的数字用户线接入复用器(DSLAM)来交换数据;家庭DSL调制解调器将数字数据转换为高频音后通过电话线传输到ISP中心,并且通过DSL解调器将DSLAM发送过来的模拟信号转为数字信号;
电缆因特网接入(cable Internet access)利用了有线电视公司现有的有线电视基础设施。住宅从提供有线电视的公司获得了电缆因特网接入。它的ISP是有线电视公司。
用户使用电缆调制解调器通过同轴电缆与光纤结点相连,光纤结点通过光缆与电缆头端相连,而电缆头端接入了因特网。在电缆头端,电缆调制解调器端接系统(Cable Modem Termination System)起到DSLAM的作用,即实现模拟信号和数字信号的转换;
(2)企业接入
在公司和大学以及越来越多的家庭环境中,使用局域网(LAN)将端系统连接到边缘路由器。其中,以太网是最为流行的技术。以太网用户使用双绞铜线与一台以太网交换机相连。使用以太网接入,用户通常以100Mbps或 lGbps速率接入以太网交换机,而服务器可能具有1Gbps甚至10Gbps的接入速率。
在无线LAN环境中,无线用户从/到一个接入点发送/接收分组,该接入点与企业网连接(很可能使用了有线以太网),企业网再与有线因特网相连。一个无线LAN用户通常必须位于接入点的几十米范围内。基于IEEE 802. 11技术的无线LAN接入,更通俗地称为WiFi。
(3)广域无线接入
在移动设备中,通过蜂窝网提供商运营的基站来发送和接收分组,与WIFI不同的是,用户仅需要位于基站的数万米范围之内即可。
2.2 物理媒体
一个比特从一个端系统开始传输,通过一系列链路和路由器,到达另一个端系统。这个比特当从源到目的地传输时,通过一系列“发射器-接收器”对。对于每个发射器-接收器对, 通过跨越一种物理媒体 (physical medium) 传播电磁波或光脉冲来发送该比特。
(1)双绞铜线
最便宜最常用。从电话机到本地交换机的连线超过99%使用,DSL和以太网也使用它。双绞线数据传输速率在10Mbps到10Gbps之间,具体数据传输速率取决于线的粗细以及传输距离;双绞线实际上已经成为高速局域网联网的主要方式;因为现代的双绞线技术速率和传输距离都是很不错的。
双绞线由两根绝缘的铜线组成,每根大约lmm粗,以规则的螺旋状排列着。这两根线被绞合起来,以减少邻近类似的双绞线的电气干扰。通常许多双绞线捆扎在一起形成一根电缆,并在这些双绞线外面覆盖上保护性防护层。一对电线构成了一个通信链路。
(2)同轴电缆
同轴电缆由两个铜导体组成,但是这两个导体是同心的而不是并行的。同轴电缆在电缆电视系统中相当普遍。电缆电视系统最近与电缆调制解调器结合起来,为住宅用户提供数十Mbps速率的因特网接入。
(3)光纤
光纤是一种细而柔软的、能够导引光脉冲的媒体,每个脉冲表示一个比特。一根光纤能够支持极高的比特速率,高达数十甚至数百Gbpso它们不受电磁干扰,长达100km的光缆信号衰减极低,并且很难窃听。
(4)陆地无线电信道
无线电信道承载电磁频谱中的信号。它不需要安装物理线路,并具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力,因而成为一种有吸引力的媒体。
(5)卫星无线电信道
一颗通信卫星连接地球上的两个或多个微波发射器/接收器,它们被称为地面站。该卫星在一个频段上接收传输,使用一个转发器再生信号,并在另一个频率上发射信号。通信中常使用两类卫星:同步卫星和近地轨道。
2.3 通信方式
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)
(1)客户-服务机模式
在因特网上是最常用,传统方式。包括发送邮件、查找资料。
采用客户-服务器方式可以使两个应用进程能够进行通信。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
(2)对等连接方式
对等连接(peer-to-peer,简写为P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。这种工作方式也称为P2P文件共享。
对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
![image-20221201104944580](https://i-blog.csdnimg.cn/blog_migrate/63b8eaa28e76d9f7ed6fdd547caa9ce4.png)
3. 网络核心
网络核心部分是因特网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信。通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换。
3.1 分组交换
在各种网络应用中,端系统彼此交换报文。传输过程中,长报文被划分成较小数据块,称为分组。在源和目的地之间,每个分组都通过通信链路和分组交换机传送,交换机主要有两类:路由器和链路层交换机。
如果某源端系统或分组交换机经过一条链路发送一个L比特的分组,链路的传输速率为R比特/秒,则传输该分组的时间为L/R
秒。
(1)存储转发传输
多数分组交换机在链路的输入端使用存储转发传输机制。指交换机能够开始向输出链路传输该分组的第一个比特前,必须接收到整个分组。
根据该机制,从源发送分组,到目的地接受到分组,完整的时间应该是2L/R
。而当经过N条速率为R的链路组成的路径,完整过程需要时间,即端时延为:
d
端
到
端
=
N
L
R
d_{端到端} = N\frac{L}{R}
d端到端=NRL
(2)排队时延和分组丢失
每台分组交换机有多条链路与之相连,对于每条链路有一个输出缓存,也称为输出队列,用于存储路由器准备发生的那条链路的分组,即缓存作用。该输出缓存在分组交换中起着重要作用。
如果到达分组需要传输到某条链路,但发现链路正忙于其他分组,前者必须要在输出缓存中等待,这部分时间称为输出缓存的排队时延。
如果分组到达时,该缓存剩余空间不足,则会出现分组丢失(丢包),到达的分组或已经排队的分组之一将被丢弃。
(3)转发表和路由选择协议
在路由器中,每个端系统具有一个称为IP地址的地址。
每台路由器具有一个转发表,用于将目的地址(或目的地址的一部分)映射成为输出链路,当某个分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表。
因特网具有一些特殊的路由选择协议,用于自动地设置这些转发表。
3.2 电路交换
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。
当网络创建这种电路时,它也在连接期间在该网络链路上预留了恒定的传输速率(表示为每条链路传输容量的一部分)。既然已经为该发送方-接收方连接预留了带宽,则发送方能够以确保的恒定速率向接收方传送数据。
下图的电路网络,对于由端到端连接所使用的每条链路而言,该连接在连接期间获得链路总传输容量的1/4。例如, 如果两台邻近交换机之间每条链路具有1Mbps传输速率,则每个端到端电路交换连接获得250kbps专用的传输速率。
链路中的电路是通过频分复用(FDM)或时分复用(TDM)来实现的,对于FDM,链路的频谱由跨越链路创建的所有连接共享。将频率域划分为频段,然后将频段分配给连接;此频段被用来专门传输链接的数据。该频段的宽度成为带宽。
时分复用(Time-Division Multiplexing TDM):是指将时间划分为固定区间的帧,每个帧则又被划分为固定数量的时间空隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。
3.3 分组交换VS电路交换
(1)分组交换
- 分组交换不适合实时服务;
- 分组交换提供了比电路交换更好的带宽共享;
- 比电路交换更简单、更有效,实现成本更低。
(2)电路交换
- 提供了端对端传输数据的速率保证
- 电路交换存在静默期,这是指专用电路空闲时,其占用的资源并没有得到充分的利用;
- 建立连接的过程比较复杂;
总体上来说,分组交换的性能要好于电路交换的性能,但是不同类型的分组交换方式有不同的应用场景;比如一些对最低速率有着严格要求的应用,比如实时服务等,为了获得速率保证,牺牲网络的效率也是可以接受的。趋势向着分组交换发展。
3.4 网络的网络
ISP:因特网服务提供者,Intenet Service Provider。在许多情况下,因特网服务提供者ISP就是一个进行商业活动的公司,因此ISP又常译为因特网服务提供商。例如,中国电信、中国联通和中国移动就是我国最有名的ISP。
网络结构1:存在唯一的全球承载ISP互联所有的接入ISP,这是指,全球ISP是一个又路由器和通信链路构成的网络,该网络跨越全球,并且其他的接入ISP都至少和一个它的路由器相连。
网络结构2:由数十万个接入ISP和多个全球传输ISP组成。为了实现端系统的互联,这多个全球传输ISP也必须互联;网络结构是一个两层结构,其中全球承载ISP位于顶层,接入ISP处于底层。
网络结构3:顶层全球承载ISP基本上已经定型,但是接入ISP现在还很混乱,比如,它们直接同顶层ISP相连;而网络结构3中,接入ISP也是分层的:较小区域中的ISP连入较大区域的ISP,而不是直接与顶层ISP相连。类似于县市省的架构,能很好地提高通信速度。
网络结构4:是在网络结构3的基础上,增加了以下特点而形成的结构:存在点(Point of Presence,PoP)、多宿、对等、因特网交换点(Internet exchange point,IXP)。PoP存在于等级结构的所有层次,但底层(接入ISP)等级除外。
网络结构5:网络结构5是在网络结构4的基础上增加了内容提供商网络而构成。内容提供商构建自己的网络,并且通过与较低层ISP对等而“绕过”较高层因特网ISP,而且内容提供商对端用户也有了更多的控制。
总体来说,今天的因特网是一个“网络的网络”,其结构复杂,由十多个顶层ISP和数十万个较低层ISP构成。近年来,主要的内容提供商创建自己的网络,直接在可能的地方与较低层ISP互联
4. 分组交换中的时延、丢包、吞吐量
因特网能够看成是一种运行在端系统上的分布式应用提供服务的基础设施。计算机网络必定要要限制在端系统之间的吞吐量,故在端系统之间引入时延,而且在实际上也会丢失分组。
4.1 时延概述
一个分组在沿途每个节点承受不同类型的时延,这些时延中最为重要的是:结点处理时延、排队时延、传输时延和传播时延,这些时延总体累加起来是结点总时延。
(1)处理时延:检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。也包括检查比特级别的差错所需要的时间。
(2)排队时延:当分组在链路上等待传输时,它经受排队时延。
(3)传输时延:假定分组以先到先服务方式传输— 这在分组交换网中是常见的方式,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。
(4)传播时延:一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。
补充:传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。另一方面,传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。
如果令
d
p
r
o
c
d_{proc}
dproc、
d
q
u
e
u
e
d_{queue}
dqueue、
d
t
r
a
n
s
d_{trans}
dtrans和
d
p
r
o
p
d_{prop}
dprop分别表示处理时延、排队时延、传输时延和传播时延, 则节点的总时延由下式给定:
d
nodal
=
d
proc
+
d
queue
+
d
trans
+
d
prop
d_{\text {nodal }}=d_{\text {proc }}+d_{\text {queue }}+d_{\text {trans }}+d_{\text {prop }}
dnodal =dproc +dqueue +dtrans +dprop
4.2 排队时延和丢包
当表征排队时延时,人们通常使用统计量来度量,如平均排队时延、排队时延的方差和排队时延超过某些特定值的概率。
令a表示分组到达队列的平均速率(a的单位是分组/ 秒,即pkt/s);前面讲过R是传输速率,即从队列中推出比特的速率(以bps即b/s为单位)。为了简单起见,也假定所有分组都是由L比特组成的。则比特到达队列的平均速率是La bps。最后,假定该队列非常大,因此它基本能容纳无限数量的比特。比率LA/R
称为流量强度。
流量强度在估计排队时延的范围方面经常起着重要的作用。如果流量强度大于1,则比特到达队列的平均速率超过从该队列传输岀去的速率,持续情况下则会出现发生丢包。一般情况下,流量强度越接近于1,平均排队时延就越大。
4.3 端到端时延
假设在源主机和目的主机之间有N-1台路由器,假设该网络此时是无拥塞的(因此排队时延是微不足道的),在每台路由器和源主机上的处理时延是
d
p
r
o
c
d_{proc}
dproc,每台路由器和源主机的输出速率是R bps,每条链路的传播时延是
d
p
r
o
p
d_{prop}
dprop。节点时延累加起来,得到端到端时延:
d
end-end
=
N
(
d
proc
+
d
trans
+
d
prop
)
d_{\text {end-end }}=N\left(d_{\text {proc }}+d_{\text {trans }}+d_{\text {prop }}\right)
dend-end =N(dproc +dtrans +dprop )
4.4 计算机网络的吞吐量
考虑从主机A到主机B跨越计算机网络传送一个大文件,在任何时间瞬间的瞬时吞吐量(instantaneous throughput)是主机B接收到该文件的速率(以bps计)。
如果该文件由F比特组成,主机B接收到所有F比特用去T秒, 则文件传送的平均吞吐量(average throughput.)是F/T
bps。
没有其他干扰流量时,吞吐量可以近似为源和目的地之间路径的最小传输速率。最小传输速率的链路为瓶颈链路。
在今天,因特网对吞吐率的限制因素通常是接入网。
5. 协议层次及其服务类型
5.1 分层体系结构
为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的方式组织协议以及实现这些协议的网络硬件和软件。每个协议属于这些层次之一。每层通过在该层中执行某些动 作或使用直接下层的服务来提供服务。
只要对上提供的服务和对下利用的服务没有变化,其层内部的实现并不会对系统结构产生影响;对于大而复杂且需要不断更新的系统来说,改变服务的实现而不影响系统其他组件是分层模式的另一个重要优点。
一个协议层能够用软件、硬件或两者的结合来实现。协议分层具有概念化和结构化的优点。分层的一个潜在缺点是一层可能冗余较低层的功能。第二种潜在的缺点是某层的功能可能需要仅在其他某层才出现的信息(如时间戳值),这违反了层次分离的目标。
5.1.1 协议分层
总体来说,将各层的所有协议组合起来,称为协议栈。因特网的协议栈有5个层次组成:物理层、链路层、网络成、传输层、应用层。
(1)应用层:应用层是网络应用程序及它们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP、SMTP和FTP。将网站链接转化为32比特的网络地址,也是借助于特定的应用层协议即域名系统DNS完成的。处于应用层的分组称为报文。
(2)运输层:因特网的运输层在应用程序端点之间传送应用层报文,在因特网中有两种运输协议——TCP和UDP。TCP向它的应用程序提供了面向连接的服务,TCP提供确保传递、流量控制、拥塞控制机制。UDP提供无连接服务,即不提供不必要服务的服务。没有可靠性、没有流量和拥塞控制。处于运输层的分组称为报文段。
(3)网络层:网络层负责将数据报的网络层分组从一台主机移动到另一台主机。源主机通过运输层协议向网络层递交运输层报文段和目的地址。网络层协议包含著名的IP协议以及其他一些路由选择协议。
(4)链路层:为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。在该下一个节点,链路层将数据报上传给网络层。链路层分组称为帧。
(5)物理层:链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。它提供了传输信息的实际物理通道。
5.1.2 OSI模型
OSI参考模型的7层是:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层;其中5层的功能大致与它们名字类似的因特网对应层的功能相同。
表示层的作用是使通信的应用程序能够及时交换数据的含义,这些服务包括数据压缩、数据加密和数据描述。会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
因特网缺少了在OSI参考模型中额外建立的两个层次,这通常留给应用程序开发者来处理。
5.2 封装
一个分组,在不同的层次有不同的称谓,是因为它们经过每一层的时候就被该层封装上了属于该层的相关信息,也就是前面提到的必要信息;于是,每一分层的分组有两种类型的字段:首部字段和有效负载;其中有效负载即为来自上一层的分组数据,而首部字段就是该层加上的必要信息;分组不断被封装以实现各层协议规定的相关功能。