一.计算机网络和因特网
计算机网络是指多台计算机通过通信线路或其他连接方式相互连接起来,实现信息交换和共享的系统。而因特网是利用标准化协议互联起来的全球性计算机网络,是计算机网络的一种特殊形式。
1.1 什么是因特网
1.1.1 从具体构成描述
因特网由端系统(主机)、分组交换机、通信链路、协议构成。
端系统(主机):连接到因特网的设备。如智能手机、平板电脑、电视、游戏机、手表、眼镜、汽车等等。端系统通过通信链路和分组交换机连接到一起。
通信链路:通信链路有多种不同的类型,不同类型的通信链路由不同类型的物理媒体组成,这些物理媒体包括同轴电缆、铜线、光纤和无线电频谱。
分组交换机:市面上流行着各种类型、各具特色的分组交换机,但在当今因特网中,二种最著名的类型是路由器和链路层交换机。链路层交换机通常用于接入网中,路由器通常用于网络核心中。
因特网服务提供商(ISP):端系统通过因特网服务提供商(ISP)接入因特网,ISP包括如本地电缆或电话公司那样的住宅区ISP、公司ISP、大学ISP,在机场、旅馆、咖啡店、等公共场所提供WiFi接入的ISP,以及为智能手机和其它设备提供移动接入的蜂窝数据ISP。每个ISP自身就是由一个多台分组交换机和多段通信链路组成的网络。各ISP为端系统提供了各种不同类型的网络接入。
协议:端系统、分组交换机和其它因特网部件都要运行一系列协议。TCP和IP是因特网中二个最重要的协议。因此因特网的主要协议统称为TCP/IP协议。
1.1.2 从服务描述
把因特网作为一个基础设施为端系统上的分布式应用程序服务,与因特网相连的端系统提供了一个套接字接口,分布式应用程序可以通过套接字接口互相通信。
分布式应用程序:分布式应用程序是指电脑、手机上的那些软件。
套接字接口:套接字接口规定了运行在一个端系统上的应用程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。
1.1.3 协议
协议是对等层实体在通信过程中应该遵守的规则的集合,这些规则包括报文的格式和顺序、报文发送后或接收后对等层实体所采取的动作等。
1.2 网络边缘
1.2.1 接入网
接入网是指将端系统物理连接到其边缘路由器的网络。边缘路由器是端系统到任何其它远程端系统的路径上的第一台路由器。
1.家庭接入网
宽带住宅接入有二种最流行的类型:数字用户线(DSL)和电缆,DSL和电缆网络当前代表了超过85%美国住宅宽带接入。
数字用户线(DSL):当使用DSL时,用户的本地电话公司是它的ISP。如下图所示,每个用户的DSL调制解调器使用现有的电话线与位于电话公司的本地中心局(CO)中的DSLAM(数字用户线接入复用器)交换数据。家庭的DSL调制解调器得到数字数据后将其转换为高频音,以通过电话线传输给本地中心局;来自许多家庭的模拟信号在DSLAM处被转换回数字形式。
电缆:电缆因特网接入利用了有线电视公司现有的有线电视基础设施。如下图所示,光缆将电缆头端连接到地区枢纽,从这里使用传统的同轴电缆到达各家各户和公寓。因为在这个系统中应用了光纤和同轴电缆,所以他经常被称为混合光纤同轴(HFC)系统,与DSL类似,电缆接入也有类似的电缆调制解调器,这个解调器通过一个以太网端口连接到家庭PC。在电缆头端,电缆调制解调器端接系统(CMTS)与DSL中的DSLAM具有类似的功能,即将许多来自下行家庭中的电缆调制解调器发送的模拟信号转换回数字形式。
光纤(Fiber To The Home,FTTH):从本地中心局直接到家庭提供了一条光纤路径。更为一般的是,从中心局出来的每根光纤实际上由许多家庭共享,直到相对接近这些家庭的位置,该光纤才分成每户一根光纤。进行这种分配有2种有竞争性的光纤分布体系结构:有源光纤网络(Active Optical Network,AON)和无源光纤网络(Passive Optical Network,PON)。AON本质上就是交换以太网,后面再讨论它。
简要讨论一下PON,该技术用于Verizon的FIOS服务中。下图显示了使用PON分布体系结构的FTTH。每个家庭具有一个光纤网络端接器(Optical Network Termi- nator, ONT),它由专门的光纤连接到邻近的分配器(splitter)。该分配器把一些家庭(通常少于100个)集结到一根共享的光纤,该光纤再连接到本地电话和公司的中心局中的光纤线路端接器(Optical Line Terminator,OLT)。该OLT提供了光信号和电信号之间的转换,经过本地电话公司路由器与因特网相连。在家庭中,用户将一台家庭路由器(通常是无线路由器)与ONT相连,并经过这台家庭路由器接入因特网。在PON体系结构中,所有从OLT发送到分配器的分组在分配器(类似于一个电缆头端)处复制。
卫星:在无法提供DSL、电缆和FTTH的地方,将住宅以超过1Mbps的速率与因特网相连,
拨号:使用传统电话线的拨号接入与DSL基于相同的模式:家庭的调制解调器经过电话线连接到ISP的调制解调器。与DSL和其它宽带接入网相比,拨号接入56kbps的慢速率是令人痛苦的。
2.企业(和家庭)接入:以太网和WiFi
以太网
在公司和大学校园以及越来越多的家庭环境中,使用局域网(LAN)将端系统连接到边缘路由器。尽管有许多不同类型的局域网技术,但是以太网到目前为止是公司、大学和家庭网络中最为流行的接入技术。如下图所示,以太网用户使用双绞铜线与一台以太网交换机相连。
WiFi:
然而,越来越多的人从便携机、智能手机、平板电脑和其他物品无线接入因特网。在无线LAN环境中,无线用户到一个接入点发送/接收分组,该接入点与企业网连接(很可能使用了有线以太网),企业网再与有线因特网相连。一个无线LAN用户通常必须位于接入点的几十米范围内。基于IEEE 802.11技术的无线LAN接入,更通俗地称为WiFi,目前几乎无所不在,如大学、商业办公室、咖啡厅、机场、家庭,甚至在飞机上。
虽然以太网和WiFi接入网最初是设置在企业、公司或大学环境中的,但它们近来已经成为家庭网络中相当常见的部件。今天许多家庭将宽带住宅接入(即电缆调制解调器或DSL) 与廉价的无线局域网技术结合起来,以产生强大的家用网络。下图显示了典型的家庭网络。这个家庭网络组成如下:一台漫游的便携机和一台有线PC;一个与无线PC和家中其他无线设备通信的基站(无线接入点);一个提供与因特网宽带接入的电缆调制解调器;一台互联了基站及带有电缆调制解调器的固定PC的路由器。该网络允许家庭成员经宽带接入因特网,其中任何一个家庭成员都可以在厨房、院子或卧室漫游上网。
3.广域无线接入
iPhone 和安卓等设备越来越多地用来在移动中发信息、在社交网络中分享照片、观看视频和放音乐这些设备应用了与蜂窝移动电话相同的无线基础设施,通过蜂窝网提供商运营的基站来发送和接收分组 WiFi 不同的是, 一个用户仅需要位于基站的数万米(而不是几十米)范围内。现在的4G网络和5G网络就是广域无线接入。
蜂窝网:蜂窝网络,又称移动网络。由于构成网络覆盖的各通信基地台的信号覆盖呈六边形,从而使整个网络像一个蜂窝而得名,每一个六边形实际上就是一个基站。这种技术被广泛应用于移动电话网络,如2G、3G、4G、5G等。
1.2.2 物理媒体
物理媒体就是端系统和分组交换器或分组交换器之间的链路,物理媒体有二种类型,分别是导引型媒体和非导引型媒体。
导引型媒体:对于导引型媒体,电波沿着固体媒体前行,如光缆、双绞铜线。同轴电缆。
非导引型媒体:对于非导引型媒体,电波在空气或外层空间中传播,例如在无线局域网、陆地无线电信道、卫星无线电信道。
1.3 网络核心
网络核心,即由互联因特网端系统的分组交换机和链路构成的网状网络。
1.3.1 分组交换
在各种网络用中、端系统彼此交换报文。报文能够包含协议设计者需要的任何东西,报文可以执行 一种控制功能,也可以包含数据,例如电子邮件数据、 JPEG 图像或 MP3 音频文件,为了从源端 系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组,在源和目的地之间,每个分组都通过通信链路和分组交换机传送,分组以等于该链路最大传输速率的速度传输通过通信链路。因此,如果某源端系统或分组交换机经过一条链路发送一个L比特的分组,链路的传输速率为R比特/秒,则传输该分组的时间为L/R秒。
1.存储转发传输
存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前 ,必须接收到整个分组。
2. 排队时延和分组丢失
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存, 它用于存储路由器准备发往那条链路的分组。
排队时延:如果到达的分组需要传输到某条链路, 但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待。此时,分组在输出缓存中等待的时间称为排队时延。
分组丢失:缓存空间的大小是有限的, 一个到达的分组可能发现该缓存已被其它等待传输的分组完全充满了,在此情况下,到达的分组或已经排队的分组之一将被丢弃。
3.转发表和路由选择协议
在因特网中,每个端系统具有一个称为 IP 地址的地址,当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的 IP 地址。
如同邮政地址那样,该地址具有一种等级结构,当一个分组到达网络中的路由器,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。
转发表:每台路由器具有一个转发表,用于将目的地址(或目的地址的部分)映射成为输出链路。 当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当 的出链路,路由器则将分组导向该出链路。
转发表是如何进行设置的呢?
路由选择协议:因特网具有一些特殊的路由选择协议,用千自动地设置这些转发表。例如,一个路由选择协议可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径结果来配置路由器中的转发表。
1.3.2 电路交换
通过网络链路和交换机移动数据有两种基本方法 :电路交换和分组交换。
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些资源则不是预留的;会话的报文按需使用这些资源,其后果可能是不得不等待(即排队)接入通信线路。
1.电路交换网络中的复用
频分复用:采用了频分复用的链路的频谱由跨越链路的所有连接共享。特别是,在连接期间链路为每条连接专用一个频段。
时分复用:时间被划分为固定期间的帧,每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙,这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。
下图显示了一个支持多达4条电路的特定网络链路的 FDM 和 TDM
2.分组交换与电路交换的对比
分组交换的性能能够优于电路交换的性能。且趋势是朝着分组交换的方向发展。
1.3.3 网络的网络
当今的因特网的网络结构由接入ISP、区域ISP、第一层ISP、内容提供商网络、存在点(PoP)、多宿、对等和IXP组成。
存在点(PoP):PoP是提供商网络中的一台或多台路由器群组,客户网络与提供商网络连接时就连接到PoP路由器上。
多宿:除第一层外的ISP都可以与多个提供商ISP相连。优点是当一个提供商出现故障时,这个ISP仍然能够接收和发送分组。
对等:位于相同等级结构上的邻近一对ISP可以互联。优点是任一个ISP不用向其对等ISP付费。
IXP(因特网交换点):IXP是一个汇合点,多个ISP在这个汇合点能够一起对等。
内容提供商网络:谷歌是当前这样的内容提供商网络的一个突出例子,在本书写作之时,谷歌估计有50 ~ 100 个数据中心分布于北美、欧洲、亚洲、南美和澳大利亚 中的某些数据中心容纳了超过十万台的服务器,而另一些数据中心则较小,仅容纳数百台服务器,谷歌数据中心都经过专用的 TCP/IP 网络互联,该网络跨越全球,不过独立于公共因特网。
如下图所示,谷歌专用网络通过与较低层 ISP 对等 (无结算),尝试绕过因特网的较高层,采用的方式可以是直接与它们连接, 或者在 IXP 处与它们连接。然而, 因为许多接人 ISP 仍然仅能通过第一层网络的传输到达, 所以谷歌网络也与第一层ISP连接,并就与这些 ISP 交换的流量向它们付费。通过创建自己的网络,内谷提供商不仅减少了向顶层 ISP 支付的费用,而且对其服务最终如何交付给端用户有了更多的控制。
1.4 分组交换网中的时延、丢包和吞吐量
1.4.1 时延概述
当分组从一个节点(主机或路由器)沿着这条路径到后继节点(主机或路由器),该分组在沿途的每个节点经受了几种不同类型的时延。
这些时延最为重要的是节点处理时延 、排队时延、传输时延、和传播时延, 这些时延总体累加起来是节点总时延。
许多因特网应用,如搜索、 Web 浏览、电子邮件、 地图、即时讯息和 IP 语音,它们的性能受网络时延的影响很大。
时延的类型
1.处理时延:检查分组首部和决定将分组导向何处所需要的时间是处理时延的一部分,处理时延还包括其他一些因素。
2.排队时延:在队列中,当分组在链路上等待传输时,它经受排队时延。
3.传输时延:传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的比值,与两台路由器之间的距离无关。传输时延=L/R,L是分组长度,R是传输速率。
4.传播时延:传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是二台路由器之间距离的函数,而与分组长度或链路传输速率无关。
1.4.2 排队时延和丢包
排队时延取决于流量到达该队列的速率、链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。
流量强度:假设R是传输速率,即从队列中推出比特的速率,再假设比特到达队列的平均速率是Labps,则流量强度为La/R。
- La/R>1时:比特到达队列的平均速率超过从该队列传输出去的速率,队列将会趋向于无限增加。所以设计系统时,流量强度不能大于1。
- La/R<=1时:到达流量的性质影响排队时延,分组如果周期性到达,即每L/R秒到达一个分组,则每个分组到达一个空队列中,不会有排队时延。另一方面,如果分组是突发性到达,则可能会有很大的平均排队时延。
丢包:当链路前的队列满了,将会把到来的分组或者队列中的某个分组丢弃。
1.4.3 端到端时延
端到端时延中,除了节点时延,还存在其它时延。
1.4.4 计算机网络中的吞吐量
为了定义吞吐量,考虑从主机A到主机B跨越计算机网络传送一个大文件。
瞬时吞吐量:主机接收到该文件的速率(以 bps 计)。许多应程序包括许多 P2P 文件共享系统,其用户界面显示了下载期间的瞬时吞吐量,也许你以前已经观察过它。
平均吞吐量:如果该文件由 F 比特组成,主机B接收到所有 F 比特用去T秒,则文件传送的平均吞吐量为 F/T bps。
吞吐量取决于数据流过的链路中瓶颈链路的传输速率。目前因特网的核心超量配置了高速率的链路,从而很少出现拥塞,在今天因特网中对吞吐量的限制因素通常是接入网。
1.5 协议层次及其服务模型
1.5.1 分层的体系结构
1.因特网协议栈
2.OSI模型
OSI模型的成型时间早于因特网协议栈,它比因特网协议栈多了表示层和会话层。因特网缺少了在 OSI 参考模型中建立的两个层次,如果一个应用程序需要这些服务之一,应用程序开发者就应该在应用程序中构建该功能。
表示层:表示层的作用是使通信的应用程序能够解释交换数据的含义。
会话层:会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
1.5.2 封装
封装是指协议栈中的上一层向下一层传输分组,下一层收到分组将分组添上首部信息。
所以说,一个分组有二种类型的字段,首部字段和有效载荷字段。