第一章 计算机网络和因特网

1.1 什么是因特网(Internet)

在博客这一系列文章中,我们使用一种特定的计算机网络,即公共因特网作为讨论计算机网络及其协议的主要载体。什么是因特网?可以用两种方式来回答这个问题:其一,我们能够通过因特网的具体构成来描述因特网,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。

1.1.1 具体构成描述

节点

  • 主机及其运行在上边的应用程序
  • 路由器、交换机等网络交换设备

边:通信链路

  • 接入网链路:主机连接到互联网的链路
  • 主干链路:路由器间的链路

协议

  • 协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和接收或其他事件方面所采取的动作

接入到因特网的各种设备被称为主机或端系统。

端系统通过通信链路分组交换机的网络连接到一起,不同的通信链路能够以不同的速率传输数据,并以比特/秒(bit/s或bps)来度量通信链路的传输速率。当一台端系统要向另一台端系统传输数据时,发送端系统首先将数据分段,并未每段数据加上首部字节,由此形成的数据包称为分组。分组将在目的端系统完成装配。

分组交换机负责转发分组,常见的分组交换机有路由器链路层交换机。链路层交换机通常用于接入网中,路由器通常用于网络核心中。

端系统通过因特网服务提供商(ISP)接入互联网,如大学ISP、公司ISP,每个ISP本身就是一个由多台分组交换机和多段通信链路组成的网络。各ISP为端系统提供了不同类型的网络接入,包括线缆调制解调器或DSL那样的住宅宽带接入、高速局域网接入和移动无线接入。ISP本身也是互联的,低层次的ISP通过国家的、国际的较高层次ISP互联起来,较高层次的ISP是由通过高速光纤链路互联的高速路由器组成的。

端系统、分组交换机和其它互联网部件都要运行多个协议,这些协议控制因特网中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是互联网中两个最为重要的协议。IP定义了在路由器和端系统之间发送和接收的分组格式。

因特网协议是人们能够创造出交互操作的系统和产品的关键,因此指定统一的标准显得格外重要。因特网标准因特网工程任务组(Internet Engineering Task Force, IETF)研发。IETF的标准文档称为请求评论(Request For Comment,RFC)。它们定义了TCP、IP、HTTP(用于Web)和SMTP(用于邮件)等协议。

1.1.2 服务描述

使用通信设施进行通信的分布式应用,例如:Web、VoIP、email、分布式游戏、电子商务、社交网络

通信基础设施为应用提供编程接口(通信服务)

  • 将发送和接收数据的应用与互联网连接起来
  • 为应用提供服务选项,类似邮政服务,存在两种类型的服务方式,面向连接的可靠服务和无连接的不可靠服务

分布式应用,涉及多个相互交换数据的端系统的应用。

运行在一个端系统的应用要如何指挥互联网向运行在另一个端系统上的软件传送数据呢?

与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。因特网套接字接口是一套发送程序必须遵循的规则集合,因此因特网能够将数据交付给目的地。

1.2 网络边缘

通常把位于因特网边缘的计算机和其他设备称为端系统。因特网的端系统包括桌面计算机和服务器。

端系统也称为主机,因为它们容纳(即运行)应用程序,主机有时也会被进一步划分为两类:客户和服务器。客户通常是桌面PC、移动PC和智能手机等,而服务器通常是更为强大的机器,用于存储和发布web页面、流视频、中继电子邮件等。

1.2.1 接入网

了解网络边缘设备后,考虑将它们接入网,这是将端系统物理连接到其边缘路由器的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。下面介绍几种接入网和接入网的几种环境(家庭、公司和广域移动无线)。

1. 家庭接入:DSL、电缆、FTTH和5G固定式无线

宽带住宅接入有两种方式:数字用户线(Digital Subscriber Line, DSL)和电缆。

住户通常从提供本地电话接入的本地电话公司处获得DSL因特网接入,因此,在使用DSL时,用户的本地电话公司也是它的ISP。

下图是DSL因特网接入

每个用户的DSL调制解调器(DSL modem)使用现有的电话线与位于电话公司的本地中心局(central office,CO)中的数字用户线接入复用器(DSLAM)交换数据。家庭的DSL调制解调器得到数字数据后将其转化为高频音,以通过电话线传输给本地中心局;来自许多家庭的模拟信号在DSLAM处被转换为数字形式。

住宅电话线同时承载了数据和传统的电话信号,他们用不同的频率进行编码:

  • 高速下行信道,位于50kHz~1MHz频段
  • 中速上行信道,位于4kHz~50kHz频段
  • 普通的双向电话信道,位于0~4kHz频段

这种方法使得单根DSL线路看起来就像有3根单独的线路一样,因此一个电话呼叫和一个因特网连接能够同时共享DSL线路(频分复用技术)。在用户一侧,一个分频器(splitter)把到达家庭的数据信号和电话信号分隔开,并将数据信号转发给DSL调制解调器。在电话公司一侧,在本地中心局中,数字用户线路接入复用器(DSLAM)把数据和电信号分隔开,并将数据送往因特网。一个DSLAM可以与多个家庭相连。

DSL标准定义了多个传输速率,包括24Mbps和52Mbps的下行传输速率,以及3.5Mbps和16Mbps的上行传输速率;罪行的标准规定了有关1Gbps的总计上行加下行速率[ITU 2014]。因为这些上行速率和下行速率是不同的,所以这种接入技术被称为不对称的。

DSL利用电话现有的本地电话基础设施,而电缆因特网接入(cable Internet access)利用了有线电视公司现有的有线电视基础设施。

如果在一个系统中既使用了光纤也应用了同轴电缆,它被称为混合光纤同轴(Hybird Fiber Coax, HFC)系统。

电缆因特网接入需要使用电缆调制解调器(cable modem)。电缆调制解调器通常是个外部设备,通过一个以太网端口连接到家庭PC。在电缆头部(cable headend),电缆调制解调器端接系统(Cable Modem Termination System,CMTS)与DSL网络的DSLAM具有类似的功能,即将来自许多下行家庭的模拟信号转化为数字形式。电缆调制解调器将HFC网络划分为上行和下行两个信道。接入通常是不对称的,下行信道分配的传输速率通常比上行信道的高。DOCSIS 2.0和3.0标准分别定义了40Mbps和1.2Gbps的下行速率以及30Mbps和100Mbps的上行速率。

电缆因特网接入的一个重要特征是共享传播媒体。特别是,由头部发送的每个分组下行经每段链路到达每个家庭;每个家庭发送的每个分组经上行信道传输到达头端。因此,如果几个用户同时经下行通道下载文件,每个用户接收文件的实际速率将大大低于电缆总计的下行速率。因为上行信道也是共享的,所以需要一个分布式多路访问协议来协调传输和避免碰撞。

除上述两种外,还有一种叫光纤到户(Fiber To The Home,FTTH)的技术。即,提供一条从本地中心局直接到家庭的光纤路径。FTTH能提供每秒千兆比特的因特网接入速率。

从本地中心局到家庭有几种光线分布方案,最简单的为直接光纤,从CO到用户设置一个光纤。更为一般的是,从中心局出来的每根光纤实际上由许多家庭共享,直到相对接近这些家庭的位置,该光纤才分成每户一根光纤。进行这种分配时,有两种光线分布体系结构:有源光纤网络(Active Optical Network,AON)和无源光纤网络(Passive Optical Network,PON)。AON本质上是交换以太网,这个后边再讨论。

介绍先PON,如上图,每个家庭都有光纤网络端接器(Optical Network Terminator, ONT),它由专门的光纤连接到临近的分配器(splitter)。该分配器把一些家庭(通常少于100个)连接到一根共享的光纤,该光纤再连接到本地电话和公司的中心局中的光纤线路端接器(Optical Line Terminator,OLT),该OLT提供了光信号和电信号之间的转换,经过本地电话公司路由器与因特网相连。在家庭中,用户将一台家庭路由器与OLT相连,并经过这台家庭路由器接入因特网。在PON体系结构中,所有从OLT发送到分配器的分组在分配器(类似于一个电缆头端)处复制 (分光器通过光分路原理(如熔融拉锥技术)将输入光信号的能量分配到多个输出光纤,本质是 光功率的复制与分配,而非主动的数据包复制)

5G固定式无线,使用波束成形技术,数据以无线方式从供应商的基站发送到家中的调制解调器。

2. 企业(和家庭)接入:以太网和WiFi

在公司和大学校园以及越来越多的家庭环境中,都使用局域网(LAN)将端系统连接到边缘路由器。以太网技术是目前最为流行的接入技术。以太网用户使用双绞铜线与一台以太网交换机相连,以太网交换机获益者中方式相连的交换机网络,则再与更大的因特网相连。

然而,越来越多的人使用手机等物品无线接入因特网,在无线LAN环境中,无线用户从/到一个接入点发送/接收分组,该接入点与企业网连接,企业网再与有线因特网相连。基于IEEE 802.11技术的无线LAN接入(WiFi),目前几乎无处不在。

今天许多家庭将宽带住宅接入(即电缆调制解调器或DSL)与廉价的无线局域网技术结合起来,以组成强大的家用网络,如下图:

3. 广域无线接入:3G、LTE 4G和5G

iphone和安卓等设备越来越多地在移动环境中进行各种活动,这些设备应用了与蜂窝移动电话相同地无线基础设施,通过蜂窝网络提供商运营地基站来发送和接受分组。用户可以在位于基站数万米地范围内进行进行各种网络活动。

1.2.2 物理媒介

物理媒介分为两种类型:导引型媒介(guided media)和非导引型媒介(unguided media)

1. 双绞铜线

最便宜并且最常用地导引型传输媒介是双绞铜线。双绞铜线由两根相互绝缘地铜线组成,每根大约1mm粗,以规则的螺旋状排列着。这两根线被绞合起来,以减少临近类似的双绞线的电气干扰。通常许多双绞线困扎在一起形成一根电缆,并在这些双绞线外面覆盖上保护性防护层。一对电线构成了一条通信链路。无屏蔽双绞线(Unshielded Twisted Pair,UTP)常用在局域网中。

2.同轴电缆

与双绞线类似,同轴电缆由两根铜导线构成,但这两根导体是同心的而不是并行的。同轴电缆在电缆电视系统中应用相当普遍。同轴电缆能被用作导引型共享媒介。特别是,许多端系统能够直接与该电缆相连,每个端系统都能接收由其它端系统发送的内容。

3.光纤

光纤是一种能够导引光脉冲的媒介,其中每个脉冲表示一个比特。它们不受电磁干扰,光缆信号衰减极低,并且很难窃听。因此光纤成为长途导引型传输媒介,特别是跨海链路。但光设备的成本较高,比如发射器、接收器和交换机。光载波(Optical Carrier, OC)标准链路速率的范围从51.8Mbps到39.8Mbps,这些标准常被称为OC-n,其中的链路速度等于n*51.8Mbps。

4.陆地无线电信道

陆地无线电信道使用电磁频谱承载信号。它不需要安装物理线路,并具有穿透墙壁、提供与移动用户的连接与长距离承载信号的能力。无线电信道的特性极大的依赖于传播环境和信号传输的距离。环境上的考虑取决于路径损耗和遮挡衰落、多径衰落(由于干扰对象的信号反射)以及干扰。

陆地无线电信道大致可分为三类:一类:运行在很短的距离(如1m或2m);另一类运行在局域,通常跨越数十到几百米;第三类运行在广域,跨越数万米。

5.卫星无线电信道

一颗通信卫星连接地球上的两个或多个微波发射器/接收器,他们被称为地面站。通信中通常使用两类卫星:同步卫星和近地轨道卫星。

1.3 网络核心

网络核心,即由互联因特网端系统的分组交换机链路构成的网状结构。

通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。

1.3.1 分组交换

在某种网络应用中,端系统批次交换报文(message)。报文可以执行一种控制功能,也可以包含一段数据,例如图片、电子邮件或MP3音频数据。为了从源端系统向目的系统发送一个报文,源将长报文划分为较小的数据块,称为分组(packet)。在源和目的地之间,每个分组都通过通信链路和分组交换机(packet switch)传送,交换机主要有路由器(router)和链路层交换机(link-layer switch)。分组以等于该链路最大传输速率的速度通过通信链路。因此,如果某源端系统或分组交换机经过一条链路发送一个L bit的分组,链路的传输速率为R bps,则传输该分组的时间为L/R s。

1.存储转发传输

多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。存储转发是指在交换机开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。

考虑:通过由N条速率均为R的链路组成的路径(所以,在源和目的地之间由N-1台路由器),从源到目的地发送一个分组。端到端时延是d_{end-end} = N\frac{L}{R},P个分组经过N条链路序列的时延有d_{end-end}=(N+P-1)\frac{L}{R}

2.排队时延和分组丢失

每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存[output,也称为输出队列(output queue)],它用于存储路由器准备发往那条链路的分组。如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该分组必须在输出缓存中等待。因此,分组在传输过程中,需要承受存储转发时延输出缓存的排队时延。因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满,此时将出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。

3. 转发表和路由选择协议

在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部中包含了目的地址的IP地址。该IP地址具有等级结构。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻的路由器转发该分组。每台路由器具有一个转发表(forwarding table),用于将目的地址(或目的地址的一部分)映射为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的出链路。路由器再将该分组导向该出链路。

路由器使用分组的目的地址来索引转发表并决定适当的出链路。因特网具有一些特殊的路由选择协议(routing protocol),用于自动地设置这些转发表。例如,一个路由选择协议可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径结果来配置路由器中的转发表。

1.3.2 电路交换

在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些资源则是不预留的。会话的报文按需使用这些资源,其后果可能是不得不等待(即排队)接入通信链路。

在一个由四台交换机和4条链路组成的一个简单电路交换网络中,每台主机都与一台交换机直接相连。当两台主机要通信时,该网络在两台主机之间创建一条专用的端到端连接(end-to-end connection)。因此,主机A要与主机B通信,必须在两条链路的每条上先预留一条电路,比如下图中加粗的线路。因为每条链路具有4条电路,对于由端到端连接所使用的每条链路而言,该连接在连接期间获得链路总传输容量的1/4。

1. 电路交换网络中的复用

链路中的电路是通过频分复用(Frequency-Division Multiplexing, FDM)或时分复用(Time-Division Multiplexing, TDM)来实现的。

对于FDM,链路的频谱由跨越链路创建的所有连接共享。特别是,在连接期间链路为每条连接专设一个频段。这个频段的宽度称为带宽(band width)。调频无线电台也使用FDM来共享88MHz~108MHz的频谱,其中每个电台被分配一个特定的频段。

对于一条TDM链路,时间被划分为固定时段的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一个连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。

下图显示了一个支持多达4条电路的特定网络链路的FDM和TDM。对于FDM,其频率域被分割为4个频段,每个频段的带宽是4kHz。对于TDM,其时域被分割为帧,在每个帧中具有4个时隙,在循环的TDM帧中每条电路被分配相同的专用时隙。对于TDM,一条电路的传输速率等于帧速率乘以一个时隙中的比特数量。例如,如果链路每秒传输8000个帧,每个时隙由8个比特组成,则每条电路的传输速率是64kbps。

2. 分组交换与电路交换的对比

电路交换不考虑不考虑需求,而预先分配了传输链路,这使得已分配而并不需要的链路时间未被利用。另一方面,分组交换按需分配链路,链路传输能力将在所有需要在链路上传输分组的用户之间逐分组地被共享。

1.3.3 网络的网络

通过上文我们知道,端系统经过一个接入ISP与因特网相连,但通过接入ISP为端系统和内容提供商提供连接是不够的,互联网是由数以亿计的用户组成的,要解决这个,接入ISP自身之间必须互联。通过创建网络的网络可以做到这一点。

接下来递进的介绍这个网络:

网络结构1:用单一的全球传输ISP互联所有接入ISP。因为接入ISP向全球传输ISP付费,故接入ISP被认为是客户(customer),而全球传输ISP被认为是提供商(provider)。(全球传输ISP是假想存在的)

网络结构2:数十万个接入ISP和多个全球传输ISP。

网络结构3:在一个区域中有多个区域ISP,接入ISP与区域ISP相连,并向其支付费用,区域ISP与第一层ISP相连(类似上述中的假想的全球传输ISP,不是无处不在的)。

网络结构4:在网络结构3上增加存在点(Point of Present,PoP)、多宿、对等和因特网交换点。PoP存在于等级结构的所有层次,但底层(接入ISP)除外。一个PoP只是提供商网络中的一台或多台路由器(在相同位置)群组,其中客户ISP能够与提供商ISP连接。对于要与提供商PoP连接的客户网络,他能从第三方电信提供商租用高速链路并将它的路由器之一直接连接到位于该PoP的一台路由器。任何ISP(除了第一层)都可以选择多宿(multi-home),即可以与两个或更多提供商ISP连接。位于相同等级结构层次的临近的一对ISP能够对等(peer),也就是说能够直接将它们的网络连接到一起,使它们之间的所有流量经直接连接而不是通过上游的中间ISP传输。任何一个ISP都不向其对等收费。因特网交换点(Internet Exchange Point, IXP),IXP是一个汇合点,多个ISP能够在这里一起对等。总而言之,由接入ISP、区域ISP、第一层ISP、PoP、多宿、对等和IXP组成了网络结构4。

网络结构5:在网络结构4顶部增加内容提供商(content provider network)构建而成。比如:谷歌,谷歌数据中心经过专用的TCP/IP网络互联,该网络跨越全球,不过独立于公共互联网。谷歌专用网络通过与较低层ISP对等(无结算),绕过因特网的较高层,通过直接与接入ISP相连或者与在IXP处与它们相连。如图:

1.4 分组交换网中的时延、丢包和吞吐量

1.4.1 分组交换网中的时延

时延的类型

分组在传播过程中经受的比较重要的时延主要有以下几种类型:

(1) 节点处理时延(node processing delay)

检查分组首部和决定该分组导向何处所需要的时间是节点处理时延的一部分。除此之外,节点处理时延还包括检查比特级别的差错所需要的时间—该差错出现在从上游节点向路由器A传输这些分组比特的过程中。高速路由器的处理时延通常是微秒或更低的数量级。

(2) 排队时延(queuing delay)

在队列中,当分组在链路上等待传输时,将经受排队时延。实际的排队时延可以是毫秒到微秒量级。

(3) 传输时延(transmission delay)

假定分组以先到先服务方式传输,即仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用L表示该分组的长度,用R表示从路由器A到路由器B的链路传输速率。传输时延是L/R。这是将所有分组的比特推向链路所需要的时间。实际的传输时延通常在毫秒到微秒量级。

(4) 传播时延(propagation delay)

一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。该传播速率取决于该链路的物理媒介(即光纤、双绞铜线等),其速率范围是2*10^8~3*10^8 m/s,这等于或略小于光速。传播时延是d/s,其中d是路由器A和路由器B之间的距离,s是该链路的传播速率。在广域网中,传播时延为毫秒量级。

如果令d_{proc}d_{queue}d_{trans}d_{prop}分别表示处理时延、排队时延、传输时延和传播时延,则节点的总时延右下式决定:d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}

1.4.2 排队时延和丢包

排队时延

当表征排队时延时,人们通常使用统计量来度量,如平均排队时延、排队时延的方差和排队时延超过某些特定值的概率。

排队时延的大小很大程度上取决于流量到达该队列的速率、链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。令a表示分组到达队列的平均速率(a的单位是分组/秒,即pkt/s)。R是传输速率,即从队列中推出比特的速率(以bps为单位)。假定所有分组都是由L bit组成的,则比特到达队列的平均速率是La bps。假定该队列非常大,因此它基本能容纳无限数量的比特。比率La/R被称为流量强度(traffic intensity)。如果La/R > 1,则比特到达队列的平均速率超过从该队列传输出去的速率,该队列将会趋于无限增加,并且排队时延将趋于无穷大。因此,设计系统时流量强度不能大于1。

流量强度与排队时延的关系:随着流量强度接近1,平均排队时延迅速增加。该强度的少量增加将导致时延大比例增加。

丢包

在现实中,一条链路前的队列只有有限的容量,如果到达的分组发现队列已满,通常情况下路由器将丢弃该分组。丢弃的分组可能基于端到端的原则重传,以确保所有的数据最终从源传送到目的地。

1.4.3 端到端时延

考虑从源到目的地的总时延,假定在源主机和目的主机之间右N-1台路由器。该网络此时是无拥塞的(因此排队时延是微不足道的),在每台路由器和源主机上的处理时延是d_{proc},每台路由器和源主机的输出速率是R bps,每条链路的传播时间是d_{prop}。节点时延累加起来,得到端到端时延:d_{end-to-end}=N(d_{proc} + d_{trans} + d_{prop}),式中d_{trans}=L/R,其中L是分组长度。

除了上述时延外,端系统中还有其他一些重要时延。例如,希望向共享媒介(例如在WiFi或电缆调制解调器情况下)传输分组的端系统可能有意地延迟它的传输,把这作为它与其他端系统共享媒介的协议的一部分;另一个重要的时延是媒介分组化时延,这种时延出现在IP语音(VoIP)应用中。在VoIP中,发送方在向因特网传递分组之前必须首先用编码的数字化语音填充一个分组。这种填充一个分组的时间称为分组化时延,它可能较大,并能够影响用户感受到的VoIP呼叫的质量。

1.4.4 计算机网络中的吞吐量

为了定义吞吐量,考虑从主机A到主机B跨越计算机网络传送一个大文件。在任何时间,瞬时吞吐量(instantaneous throughput)是主机B接收到该文件的速率(以bps计)。如果该文件以F bit组成,主机B接收到所有F bit用去 T s,则文件传送的平均吞吐量(average throughput)是F/T bps。

考虑从服务器传送一个文件到客户的吞吐量。令R_{s}表示服务器与路由器之间的链路速率,R_{c}表示路由器与客户之间的链路速率。假定在整个网络中只有从该服务器到客户的比特在传送,并且只存在一个路由器。在这种情况下,链路网络的吞吐量是min{R_{c}R_{s}},也就是瓶颈链路(bottleneck link)的传输速率。在决定了吞吐量之后,可以近似的得到从服务器到客户传输一个F bit的大文件所需要的时间是F/min{R_{c}, R_{s}}。

如果在服务器与客户之间具有N条链路的网络,这N条链路的传输速率分别是R_{1}, R_{2}, ..., R_{N},此时从服务器到客户的文件传输吞吐量是min{R_{1}, R_{2}, ..., R_{N}},这同样是服务器和客户之间路径的瓶颈链路的速率。

吞吐量取决于数据流过的链路的传输速率。

1.5 协议层次及其服务模型

1.5.1 分层的体系结构

协议分层

为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的方式组织协议并实现这些协议的网络硬件和软件。每个协议属于这些层次之一。每层通过在该层中执行某些操作或使用直接下层的服务来提供服务。

协议分层具有概念化和结构化的优点。分层提供了一种结构化方式来讨论系统组件。模块化使得更新系统组件更加容易。分层的一个潜在缺点是一层可能冗余较低层的功能。例如,许多协议栈在基于每段链路和基于端到端两种情况下,都提供了差错恢复。第二种缺点是某层的功能可能需要仅在其他层才出现的信息(如时间戳值),这违反了层次分离的目的。

各层的所有协议被称为数据栈(protocol stack)。因特网的协议栈由5个层次组成,自下向上依次是:物理层、链路层、网络层、传输层和应用层。

(1) 应用层

应用层是网络应用程序及它们的应用层协议存留的地方。应用层协议有:HTTP(它提供了Web文档的请求和传送)、SMTP(它提供了电子邮件报文的传输)、FTP(它提供了两个端系统之间的文件传送)、域名系统(DNS)(将端系统名字转换为32比特的网络地址)。

应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。把这种位于应用层的信息分组称为报文(message)。

(2) 运输层

因特网的运输层在应用程序端点之间传送应用层报文。在因特网中有两种运输协议,即TCP和UDP。TCP向它的应用程序提供面向连接的服务。这种服务包括确保应用层报文向目的地的传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。把运输层的分组称为报文段(segment)。

(3) 网络层

因特网网络层的分组称为数据报(datagram)。

因特网的网络层包括著名的网际协议(IP),该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。IP仅有一个,所有具有网络层的因特网组件必须运行IP。因特网的网络层也包括决定路由的路由选择协议,它根据该路由将数据报从源传输到目的地。因特网具有许多路由选择协议。

(4) 链路层

因特网的网络层通过源和目的地之间的一系列路由器路由数据报。为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据包传递给下一个节点。在下一个节点,链路层将数据报上传给网络层。

由链路层提供的服务取决于应用于该链路的特定链路层协议。例如,某些协议基于链路提供可靠传递,从传输节点跨越一条链路到接收节点。这种可靠的传递服务不同于TCP的可靠传递服务,TCP提供从一个端系统到另一个端系统的可靠交付。链路层的例子包括以太网、WiFi和电缆接入网的DOCSIS协议。因为数据包从源到目的地传送通常需要经过几条链路,一个数据包可能被沿途不同链路上的PPP(点对点协议)所处理。网络层将受到来自每个不同的链路层协议的不同服务。把链路层分组称为(frame)。

(5) 物理层

链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。在这层中的协议仍然是是链路相关的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒介相关。以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤,等等。在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。

1.5.2 封装

在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷通常是来自上一层的分组。

1.6 面对攻击的网络

1. 经因特网将有害程序放入计算机中

从因特网中得到的恶意软件能够从我们的设备中盗取个人隐私信息、破坏电脑,也能使它称为数以千计的受害设备网络(僵尸网络)中的一员。攻击者可能利用这个网络对目标主机展开垃圾邮件分发或分布式拒绝服务攻击。

2. 攻击服务器和网络基础设施

拒绝服务攻击(Denial-of-Service(DoS) attack),会使得网络、主机或其他基础设施部分不能由合法用户使用。

大多数DoS攻击属于下列三种:

1. 弱点攻击,向一台目标主机上运行的易受攻击的应用程序或操作系统发送特定的报文。

2.带宽洪泛,攻击者向目标主机发送大量的分组。

3.连接洪泛,攻击者在目标主机中创建大量的半开或全开TCP连接。

还有一种叫做分布式DoS攻击(DDoS攻击),这种攻击更加难以检测和防范。

3. 嗅探分组

记录每个流经的分组副本的被动接收机被称为分组嗅探器(packet sniffer),能够获取无线传输

4. 伪装成信任的人

将具有虚假源地址的分组注入因特网的能力被称为IP哄骗(IP spoofing)。我们可以通过端点鉴别的方式来解决这个问题。

以上内容来自黑皮书——计算机网络 自顶向下方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值