本文参考于《2021年计算机网络考研复习指导》(王道考研),《计算机网络》
思维导图:
一般认为,计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来的,由功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。
在计算机网络发展的不同阶段,人们对计算机网络给出了不同的定义,这些定义反映了当时网络技术发展的水平。这些定义可分为以下三类
这种观点认为,只要是能实现远程信息处理的系统或能进一步达到资源共享的系统,都是计算机网络。广义的观点定义了一个计算机通信网络,它在物理结构上具有计算机网络的雏形,但资源共享能力弱,是计算机网络发展的低级阶段。
这种观点认为,计算机网络是“以能够相互共享资源的方式互联起来的自治计算机系统的集合”。该定义包含三层含义:①目的:资源共享;②组成单元:分布在不同地理位置的多台独立的“自治计算机”;③网络中的计算机必须遵循的统一规则——网络协议。该定义符合目前计算机网络的基本特征。
这种观点认为,存在一个能为用户自动管理资源的网络操作系统,它能够调用用户所需要的资源,而整个网络就像一个大的计算机系统一样对用户是透明的。用户使用网络就像使用一台单一的超级计算机,无须了解网络的存在、资源的位置信息。用户透明性观点的定义描述了一个分布式系统,它是网络未来发展追求的目标。
从不同的角度,可以将计算机网络的组成分为如下几类:
(1)从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成。硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件。软件部分多属于应用层。协议是计算机网络的核心, 如同交通规则制约汽车驾驶一样,协议规定了网络传输数据时所遵循的规范。
(2)从工作方式上看,计算机网络(这里主要指Internet)可分为边缘部分和核心部分。 边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享; 核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统(end system),“端”就是末端的意思(即互联网的末端)。
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
①客户-服务器方式:
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务请求方,服务器是服务提供方
服务请求方和服务提供方都要使用网络核心部分所提供的服务。
在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点:
客户程序:
(1)被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址
(2)不需要特殊的硬件和很复杂的OS
服务器程序:
(1)是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求
(2)系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
(3)一般需要有强大的硬件和高级的OS支持
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据
②对等连接方式:
对等连接(Peer-to-peer,P2P)是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种方式也称为P2P方式。对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一台主机既是客户又同时是服务器。
(3)从功能组成上看,计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。 资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
它是计算机网络最基本和最重要的功能,用来实现联网计算机之间的各种信息的传输,并将分散在不同地理位置的计算机联系起来,进行统一的调配、控制和管理。
资源共享可以是软件共享、数据共享,也可以是硬件共享
当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。
计算机网络中的各台计算机可以通过网络互为替代机
将工作任务均衡地分配给计算机网络中的各台计算机
(1)广域网(WAN)
广域网的任务是提供长距离通信,运送主机所发送的数据,其覆盖范围通常为几十千米到几千千米的区域,因而有时也称远程网。广域网是因特网的核心部分。连接广域网的各结点交换机的链路一般都是高速链路,具有较大的通信容量。
(2)城域网(MAN)
城域网的覆盖范围可以跨越几个街区甚至整个城市,覆盖范围约为5~50km。城域网大多采用以太网技术,因此有时也常并入局域网的范围进行讨论
(3)局域网(LAN)
局域网一般用微机或工作站通过高速线路相连,覆盖范围较小,通常为几十米到几千米的区域。 局域网在计算机配置的数量上没有太多的限制,少的可以只有两台,多的可达几百台。传统上,局域网使用广播技术,而广域网使用交换技术。
(4)个人区域网(PAN)
个人区域网是指在个人工作的地方将消费电子设备用无线技术连接起来的网络,也常称为无线个人区域网(WPAN),其覆盖的区域直径约为10m
广域网和局域网之间的差异不仅在于它们所覆盖范围 的不同,还在于它们所采用的协议和网络技术的不同(不单单是从网络覆盖范围区分的局域网与广域网)
(1)广播式网络
在广播式网络中,所有联网计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会“收听”到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接收该分组。
局域网基本上都采用广播式通信技术, 广域网中的无线、卫星通信网络也采用广播式通信技术。
(2)点对点网络
每条物理线路连接一对计算机。如果通信的两台主机之间没有直接连接的线路,那么它们之间的分组传输就要通过中间结点的接收、存储和转发,直至目的结点。
是否采用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别,广域网基本都属于点对点网络。
网络拓扑结构是指由网中结点(路由器、主机等)与通信线路(网线)之间的几何关系(如总线形、环形)表示的网络结构,主要指通信子网的拓扑结构。
按网络的拓扑结构,主要分为总线形、星形、环形和网状形网络等。
星形、总线形和环形网络多用于局域网,网状形网络多用于广域网
(1)总线形网络
用单根传输线把计算机连接起来。总线形网络的优点是建网容易、增减结点方便、节省线路。缺点是重负载时通信效率不高、总线任意一处对故障敏感。
(2)星形网络
每个终端或计算机都以单独的线路与中央设备相连。中央设备早期是计算机,现在一般是交换机或路由器。星形网络便于集中控制和管理,因为端用户之间的通信必须经过中央设备。缺点是成本高、中心结点对故障敏感。
(3)环形网络
所有计算机接口设备连接成一个环。环形网络最典型的例子是令牌环局域网。 环可以是单环,也可以是双环,环中信号是单向传输的。
(4)网状形网络
一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中。有规则型和非规则型两种。其优点是可靠性高,缺点是控制复杂、线路成本高
以上4种基本的网络拓扑结构可以互连为更复杂的网络。
(1)公用网
指电信公司出资建造的大型网络。“公用”的意思是指所有愿意按电信公司的规定交纳费用的人都可以使用这种网络,因此也称公众网
(2)专用网
指某个部门为满足本单位特殊业务的需要而建造的网络。这种网络不向本单位以外的人提供服务。
交换技术是指各台主机之间、各通信设备或主机与通信设备之间为交换信息所采用的数据格式和交换装置的方式。按交换技术可将网络分为如下几种:
(1)电路交换网络
在源节点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网是传统电话网络。
该类网络的主要特点是整个报文的比特流连续地从源点直达终点,好像是在一条管道中传送。优点是数据直接传送、时延小。缺点是线路利用率低、不能充分利用线路容量、不便于进行差错控制。
电路交换适合于数据量很大的实时性传输
(2)报文交换网络
用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻结点,全部存储后,再转发给下一个结点,重复这一过程直到到达目的结点。 每个报文可以单独选择到达目的结点的路径。
报文交换网络也称存储-转发网络,主要特点是整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。 优点是可以较为充分地利用线路容量,可以实现不同链路之间不同数据率的转换,可以实现格式转换,可以实现一对多、多对一的访问,可以实现差错控制。缺点是增大了资源开销 (如辅助信息导致处理时间和存储资源的开销)。增加了缓冲时延,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到报文之前不能预知报文的大小)
(3)分组交换网络
也称包交换网络。其原理是将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组(包),以存储-转发方式传输。 其主要特点是单个分组(它只是整个报文的一部分)传送到相邻结点,存储后查找转发表,转发到下一个结点。 除具备报文交换网络的优点外,分组交换网络还具有自身的优点:缓冲易于管理;包的平均时延更小,网络占用的平均缓冲区更少;更易于标准化;更适合应用。现在的主流网络基本上都可视为分组交换网络。
传输介质可分为有线和无线两大类,因此网络可以分为有线网络和无线网络。
因特网的所有标准都以RFC(Request For Comments)的形式在因特网上发布,但并非每个RFC都是因特网标准,RFC要上升为因特网的正式标准需经过以下4个阶段
(1)因特网草案(Internet Draft)
这个阶段还不是RFC文档
(2)建议标准(Proposed Standard)
从这个阶段开始就成为RFC文档
(3)草案标准(Draft Standard)
(4)因特网标准(Internet Standard)
此外,还有实验的RFC和提供信息的RFC。各种RFC之间的关系如图:
在国际上,负责制定、实施相关网络标准的标准化组织有:
(1)国际标准化组织ISO:
制定的主要网络标准或规范有OSI参考模型、HDLC等
(2)国际电信联盟ITU
(3)国际电气电子工程师协会IEEE:
IEEE在通信领域最著名的研究成果是802标准
(1)带宽
在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”的同义语,单位是比特/秒(bit/s或b/s)
(2)时延
指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需要的总时间,它由四部分组成:发送时延、传播时延、处理时延和排队时延。
a.发送时延
结点将分组的所有比特推向(传输)链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间,因此也称传输时延。
发送时延=分组长度/信道宽度
b.传播时延
电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一端传播到另一端所需的时间。
传播时延=信道长度/电磁波在信道上的传播速率
c.处理时延
数据在交换结点为存储转发而进行的一些必要的处理所花费的时间。 例如,分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。
d.排队时延
分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发,这就产生了排队时延
因此,数据在网络中经历的总时延就是以上4部分时延之和:
总时延=发送时延+传播时延+处理时延+排队时延
在题目中,除非另有说明,排队时延和处理时延一般可以忽略不计。另外,对于高速链路,提高的仅是数据发送速率而非比特在链路上的传播速率。 提高数据的发送速率只是为了减少数据的发送时延。
(3)时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积=传播时延x信道带宽
如图所示,考虑一个代表链路的圆柱形管道,其长度表示链路的传播时延,横截面积表示链路带宽,则时延带宽积表示该管道可以容纳的比特数量。
(4)往返时延(Round-Trip Time,RTT)
指从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延。 在互联网中,往返时延还包括各中间结点的处理时延、排队时延及转发数据时的发送时延。
(5)吞吐量(Throughput)
指单位时间内通过某个网络(或信道、接口)的数据量。 吞吐量受网络带宽或网络额定速率的限制。
(6)速率
网络中的速率是指连接到计算机网络上的主机在数字信道上传送数据的速率,也称数据率或比特率, 单位为b/s(bit/s或bps,比特/秒)。数据率较高时,可用kb/s(k=10^3)、Mb/s(M=10 ^6)或Gb/s(G=10 ^9)表示。在计算机网络中,通常把最高数据率称为带宽
(7)利用率
利用率有信道利用率和网络利用率两种
信道利用率 指某一信道有百分之多少的时间是有数据通过的,即信道利用率=有数据通过时间/(有+无)数据通过时间
网络利用率则是全网络的信道利用率的加权平均值
信道利用率并非越高越好,当某信道的利用率增大时,该信道引起的时延也就迅速增加。若令D0表示网络空闲时的时延,D表示网络当前的时延,U为网络利用率,则
D=D0/(1-U)
信道或网络的利用率过高会产生非常大的时延
例题:计算机网络的资源主要是指()
A.服务器、路由器、通信线路与用户计算机
B.计算机操作系统、数据库与应用软件
C.计算机硬件、软件与数据
D.Web服务器、数据库服务与文件服务器
答案:C;
例题:局域网和广域网的差异不仅在于它们所覆盖的范围不同,还主要在于它们()
A.所使用的介质不同 B.所使用的协议不同
C.所能支持的通信量不同 D.所提供的服务不同
答案:B;广域网和局域网之间的差异不仅在于它们所覆盖范围 的不同,还在于它们所采用的协议和网络技术的不同,广域网使用点对点等技术,局域网使用广播技术
例题:在n个结点的星形拓扑结构中,有()条物理链路
答案:注意是物理链路,有n-1条;星形拓扑结构是用一个结点作为中心结点,其他n-1个结点直接与中心结点相连构成的网络。中心结点既可以是文件服务器,也可以是连接设备。常见的中心结点为集线器。
例题:下列关于广播式网络的说法中,错误的是()
A.共享广播信道 B.不存在路由选择问题
C.可以不要网络层 D.不需要服务访问点
答案:D;广播式网络共享广播信道(如总线),通常是局域网的一种通信方式(局域网工作在数据链路层),因此不需要网络层,因而也不存在路由选择问题。但数据链路层使用物理层的服务必须通过服务访问点实现。
例题:假定有一个通信协议,每个分组都引入100字节的开销用于头和成帧。现在使用这个协议发送10^6字节的数据,然而在传送的过程中有一个字节被破坏,因而包含该字节的那个分组被丢弃。试对于1000字节和20000字节的分组的有效数据大小分别计算“开销+丢失”字节的总数目。分组数据大小的最佳值是多少?
答案:丢失指丢失的数据;101000B;25000B;最佳值10^4B
例题:在两台计算机之间传输一个文件有两种可行的确认策略。第一种策略把文件截成分组,接收方逐个确认分组,但就整体而言,文件没有得到确认。第二种策略不确认单个分组,但当文件全部收到后,对整个文件予以确认。请讨论这两种方式的优缺点
答案:若网络容易丢失分组,那么对每个分组逐一进行确认较好,此时仅重传丢失的分组。另一方面,如果网络高度可靠,那么在不发生差错的情况下,仅在整个文件传送的结尾发送一次确认,从而减少了确认次数,节省了带宽。不过,即使只有单个分组丢失,也要重传整个文件。
例题:试在下列条件下比较电路交换和分组交换。要传送的报文共x比特。从源点到终点共经过k段链路,每段链路的传播时延为d秒,数据传输速率为b比特/秒。在电路交换时电路的建立时间为s秒。在分组交换时分组长度为p比特,且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的时延要小?
答案:电路交换时间:x/b+kd+s;注意有k段链路,除源点外,有k-1个结点有传输过程
设分组数为n,分组交换时间:n x p/d+kd+(k-1)p/d;
对于分组交换,np ≈ \approx ≈x,当(k-1)p/b
例题:在上题的分组交换网中,设报文长度和分组长度分别为x和p+h比特,其中p为分组的数据部分的长度,而h为每个分组所带控制信息,为固定长度,与p的大小无关。通信的两端共经过k段链路。链路的数据传输率为b比特/s,传播时延、结点的排队时延和处理时延可忽略不计。若欲使总的时延为最小,问分组的数据部分长度p应取多大
答案:p= ( x h ) / ( k − 1 ) \sqrt{(xh)/(k-1)} (xh)/(k−1)
例题:在下列情况下,计算传送1000KB文件所需要的总时间,即从开始传送时起直到文件的最后一位到达目的地为止的时间。假定往返时间RTT为100ms,一个分组是1KB(即1024B)的数据,在开始传送整个文件数据之前进行的起始握手过程需要2RTT的时间。
(1)带宽是1.5Mb/s,数据分组可连续发送
(2)带宽是1.5Mb/s,但在发送完每个数据分组后,必须等待一个RTT(等待来自接收方的确认)才能发送下一个数据分组
(3)假设带宽是无限大的值,即我们取发送时间为0,并在等待每个RTT后可以发送多达20个分组
答案:(1)5.71s;(2)105.61s;(3)5.15s
例题:有两个网络,它们都提供可靠的面向连接的服务,一个提供可靠的字节流,另一个提供可靠的报文流。请问两者是否相同?为什么?
答案:不相同。在报文流中,网络保持对报文边界的跟踪;而在字节流中,网络不进行这样的跟踪。例如,一个进程向一条连接写了1024B,稍后又写了1024B,那么接收方共读了2048B。对于报文流,接收方将得到两个报文,每个报文1024B。而对于字节流,报文边界不被识别,接收方将全部2048B作为一个整体,在此已经体现不出原先有两个不同报文的事实。
把计算机网络的各层及其协议的集合称为网络的体系结构。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合。这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现问题。体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件。
在计算机网络的分层结构中,第n层中的活动元素通常称为n层实体。具体来说,实体指任何可发送或接收信息的硬件或软件进程,通常是一个特定的软件模块。 不同机器上的同一层称为对等层,同一层的实体称为对等实体。 n层实体实现的服务为n+1层所利用。在这种情况下,n层被称为服务提供者,n+1层则服务于用户。
每一层还有自己传送的数据单位,其名称、大小、含义也各有不同。
在计算机网络体系结构的各个层次中,每个报文都分为两部分:一是数据部分,即SDU;二是控制信息部分,即PCI,它们共同组成PDU。
服务数据单元SDU:
为完成用户所要求的功能而应传送的数据。第n层的服务数据单元记为n-SDU。
协议控制信息PCI:
控制协议操作的信息。第n层的协议控制信息记为n-PCI
协议数据单元PDU:
对等层次之间传送的数据单位称为该层的PDU。 第n层的协议数据单元记为n-PDU。在实际的网络中,每层的协议数据单元都有一个通俗的名称,如物理层的PDU称为比特,数据链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文。
在各层间传输数据时,把从第n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就变成了第n层的PDU,交给第n-1层后作为SDU发送,接收方接收时做相反的处理
因此n-SDU+n-PCI=n-PDU=(n-1)-SDU
具体地,层次结构的含义包括以下几方面:
(1)第n层的实体不仅要使用第n-1层的服务来实现自身定义的功能,还要向第n+1层提供本层的服务, 该服务是第n层及其下面各层提供的服务总和
(2)最低层只提供服务,是整个层次结构的基础;中间各层既是下一层的服务使用者,又是上一层的服务提供者;最高层面向用户提供服务。
(3)上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其它层的服务;下一层所提供服务的实现细节对上一层透明。
(4)两台主机通信时,对等层在逻辑上有一条直接信道, 表现为不经过下层就把信息传送到对方。
协议,就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),它是控制两个(或多个)对等实体进行通信的规则的集合,是水平的。不对等实体间是没有协议的, 比如用TCP/IP协议栈通信的两个结点,结点A的传输层和结点B的传输层之间存在协议,但结点A的传输层和结点B的网络层之间不存在协议。
协议由语法、语义和同步三部分组成。语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及做出何种应答;同步规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口是同一结点内相邻两层间交换信息的连接点, 是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点(Service Access Point,SAP)进行交互。 服务是通过SAP提供给上层使用的,第n层的SAP就是第n+1层可以访问第n层服务的地方。 每个SAP都有一个能够标识它的地址。SAP是一个抽象的概念,它实际上是一个逻辑接口(类似于邮政信箱),它和硬件接口不同。
服务是指下层为紧邻的上层提供的功能调用,它是垂直的。 对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。
上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在OSI中称为服务原语。 OSI将原语划分为4类:
(1)请求
由服务用户发往服务提供者,请求完成某项工作
(2)指示
由服务提供者发往服务用户,指示用户做某件事情
(3)响应
由服务用户发往服务提供者,作为对指示的响应
(4)证实
由服务提供者发往服务用户,作为对请求的证实
这四类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部4类原语,而无应答服务则只有请求和指示两类原语
四类原语的关系如图:
协议和服务在概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是水平的,即协议是控制对等实体间通信的规则。但服务是垂直的,即服务是由下层通过层间接口向上层提供的。 另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
协议、接口、服务三者之间的关系如图:
计算机网络提供的服务可按以下三种方式分类:
(1)面向连接服务与无连接服务
在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。 因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。
在无连接服务中,通信前双方不需要先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。 这是一种不可靠的服务。 这种服务常被描述为 “尽最大努力交付” (Best-Effort-Delivery),它并不保证通信的可靠性。例如IP、UDP就是一种无连接服务的协议。
(2)可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。
对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。 例如,用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。
(3)有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于WWW服务,客户端收到服务器发送的页面文件后不给出应答。
国际标准化组织ISO提出的网络体系结构模型,称为开放系统互连参考模型(OSI/RM),通常简称为OSI参考模型。 OSI有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能;高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。 传输层承上启下。
OSI参考模型各层的功能:
(1)物理层
物理层的传输单位是比特,任务是透明的传输比特流,功能是在物理媒体上为数据端设备透明地传输原始比特流。
物理层主要定义数据终端设备DTE和数据通信设备DCE的物理与逻辑连接方法,所以物理层协议也称物理层接口标准,也称为物理层规程。
物理层接口标准有EIA-232C、EIA/TIA RS-449、CCITT的X.21等。
下图所示为两个通信结点以及它们间的一段通信链路,物理层主要研究以下内容:
①通信链路与通信结点的连接需要一些电路接口,物理层规定了这些接口的一些参数,如机械形状和尺寸、交换电路的数量和排列等,例如,笔记本电脑上的网线接口,就是物理层规定的内容之一。
②物理层也规定了通信链路上传输信号的意义和电气特征。例如物理层规定信号A代表数字0,那么当结点要传输数字0时,就会发出信号A,当结点接收到信号A时,就知道自己接收到的实际上是数字0。
注意,传输信息所利用的一些物理媒体,如双绞线、光缆、无线信道等,并不在物理层协议之内而在物理层协议之下。 因此,有人能把物理媒体当做第0层。
(2)数据链路层
数据链路层的传输单位是帧,任务是将网络层传来的IP数据报组装成帧。 数据链路层的功能有:成帧、差错控制、流量控制、传输管理
由于外界噪声的干扰,原始的物理连接在传输比特流时可能发生错误。一结点想向另一结点传输数字0,于是发出了信号A;但传输过程中受到干扰,信号A变成了信号B,而信号B又刚好代表1,结点接收到信号B时,就会误以为发送数据的结点传送了数字1,从而发生差错。两个结点之间如果规定了数据链路层协议,那么就能检测出这些差错,然后把收到的错误信息丢弃,这就是差错控制功能。
在两个相邻结点之间传送数据时,由于两个结点性能的不同,可能结点A发送数据的速率会比结点B接收数据的速率快,如果不加控制,那么结点B就会丢弃很多来不及接收的正确数据,造成传输线路效率的下降。流量控制可以协调两个结点的速率, 使结点A发送数据的速率刚好是结点B可以接收的速率
广播式网络在数据链路层还要处理新的问题,即如何控制对共享信道的访问。数据链路层的一个特殊的子层——介质访问子层,就是专门处理这个问题的。
典型的数据链路层协议有SDLC、HDLC、PPP、STP和帧中继等
(3)网络层
网络层的传输单位是数据报, 它关心的是通信子网的运行控制,主要任务是把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。关键问题是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互联等功能
如图所示,结点A向结点B传输一个分组时,既可经过边a、c、g,也可经过边b、h,有很多条可以选择的路由,而网络层的作用就是根据网络的情况,利用相应的路由算法计算出一条合适的路径,使这个分组可以顺利到达结点B。
若结点都处于来不及接收分组而要丢弃大量分组的情况,那么网络就处于拥塞状态,拥塞状态使得网络中的两个结点无法正常通信。网络层要采取一定的措施来缓解这种拥塞,这就是拥塞控制。
因特网是一个很大的互联网,它由大量异构网络通过路由器相互连接起来。因特网的主要网络层协议是无连接的网际协议(Internet Protocol,IP)和许多路由选择协议,因此因特网的网络层也称网际层或IP层。
网络层的协议有IP、IPX、ICMP、IGMP、ARP、RARP和OSPF等
(4)传输层
传输层也称运输层,传输单位是报文段(TCP)或用户数据报(UDP), 传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。
数据链路层提供的是点到点的通信,传输层提供的是端到端的通信, 两者不同。通俗地说,点到点可以理解为主机到主机之间的通信,一个点是指一个硬件地址或IP地址,网络中参与通信的主机是通过硬件地址或IP地址标识的;端到端的通信是指运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识,所以称端到端通信。
使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在。通过传输层的屏蔽,高层用户看不到子网的交替和变化。由于一台主机可同时运行多个进程,因此传输层具有复用和分用的功能。复用是指多个应用层进程可同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程。
传输层的协议有TCP、UDP
端到端通信与点到点通信:
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信,它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程)之间的通信。“端”是指用户程序的端口,端口号标识了应用层中不同的进程。
(5)会话层(Session Layer)
会话层允许不同主机上的各个进程之间进行会话。会话层利用传输层提供的端到端的服务,向表示层提供它的增值服务。这种服务主要为表示层实体或用户进程建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)
会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。会话层可以使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步。
(6)表示层(Presentation Layer)
表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。数据压缩、加密和解密也是表示层可提供的数据表示变换功能。
(7)应用层
应用层是OSI模型的最高层,是用户与网络的界面。应用层为特定类型的网络应用提供访问OSI环境的手段。因为用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多。典型的协议有用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP等。
模型从低到高依次为网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型中的会话层、表示层和应用层)。 TCP/IP由于得到广泛应用而成为事实上的国际标准。
网络接口层的功能类似于OSI的物理层和数据链路层。它表示与物理网络的接口,但实际上TCP/IP本身并未真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传递IP分组。具体的物理网络既可以是各种类型的局域网,如以太网、令牌环网、令牌总线网等,也可以是诸如电话网、SDH、X.25、帧中继和ATM等公共数据网络。网络接口层的作用是从主机或结点接收IP分组,并把它们发送到指定的物理网络上。
网际层(主机-主机)是TCP/IP体系结构的关键部分。 它和OSI网络层在功能上非常相似。网际层将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序地到达,各个分组的有序交付由高层负责。网际层定义了标准的分组格式和协议,即IP。
传输层(应用-应用或进程-进程)的功能同样和OSI中的传输层类似,即使得发送端和目的端主机上的对等实体进行会话。传输层主要使用以下两种协议:
(1)传输控制协议(Transmission Control Protocol,TCP),它是面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
(2)用户数据报协议(User Datagram Protocol,UDP)。它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
应用层(用户-用户)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)。
IP协议是因特网中的核心协议;TCP/IP可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP也允许IP协议在由各种网络构成的互联网上运行(所谓的IP over everything)。
TCP/IP模型与OSI参考模型有许多相似之处
首先,二者都采取分层的体系结构,将庞大且复杂的问题划分为若干较容易处理的、范围较小的问题,而且分层的功能也大体相似。
其次,二者都是基于独立的协议栈的概念
最后,二者都可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信。
它们之间的比较如图:
两个模型的差别有:
第一,OSI参考模型的最大贡献是精确定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/IP模型在这三个概念上却没有明确区分,不符合软件工程的思想。
第二,OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好。TCP/IP模型正好相反,首先出现的是协议,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于任何其他非TCP/IP的协议栈。
第三,TCP/IP模型在设计之初就考虑到了多种异构网的互联问题,并将网际协议IP作为一个单独的重要层次。OSI参考模型最初只考虑到用一种标准的公用数据网将各种不同的系统互联。OSI参考模型认识到网际协议IP的重要性后,只好在网络层中划分出一个子层来完成类似于TCP/IP模型中的IP的功能。
第四,OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但在传输层支持无连接和面向连接两种模式。
教材中使用的是五层协议的体系结构,即物理层、数据链路层、网络层、传输层、应用层。
使用通信协议栈进行通信的结点的数据传输过程:每个协议栈的最顶端都是一个面向用户的接口,下面各层是为通信服务的协议。用户传输一个数据报时,通常给出用户能够理解的自然语言,然后通过应用层,将自然语言转化为用于通信的通信数据。通信数据到达传输层,作为传输层的数据部分(传输层SDU),加上传输层的控制信息(传输层PCI),组成传输层的PDU,然后交到网络层,传输层的PDU下放到网络层后,就成为网络层的SDU,然后加上网络层的PCI,又组成了网络层的PDU,下放到数据链路层,就这样层层下放,层层包裹,最后形成的数据报通过通信线路传输,到达接收方结点协议栈,接收方再逆向地逐层把“包裹”拆开, 最后把收到的数据提交给用户。
例题:()不是对网络模型进行分层的目标
A.提供标准语言 B.定义功能执行的方法
C.定义标准界面 D.增加功能之间的独立性
答案:B;
例题:当数据由端系统A传送至端系统B时,不参与数据封装工作的是()
A.物理层 B.数据链路层
C.网络层 D.表示层
答案:A;物理层不存在下一层,自然不需封装
例题:在OSI参考模型中,提供流量控制功能的层是第(①)层;提供建立、维护和拆除端到端的连接的层是(②);为数据分组提供在网络中路由的功能的是(③);传输层提供(④)的数据传送;为网络层实体提供数据发送和接收功能及过程的是(⑤)
①A.1,2,3 B.2,3,4 C.3,4,5 D.4,5,6
②A.物理层 B.数据链路层 C.会话层 D.传输层
③A.物理层 B.数据链路层 C.网络层 D.传输层
④A.主机进程之间 B.网络之间
C.数据链路之间 D.物理线路之间
⑤A.物理层 B.数据链路层 C.会话层 D.传输层
答案:BDCAB
例题:协议与服务有何区别?有何联系?
答案:协议是控制两个对等实体间通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下一层提供的服务。
协议与服务概念的区分:
(1)协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上面的服务用户是透明的。
(2)协议是水平的,即协议是控制两个对等实体之间的通信的规则。但服务是垂直的,即服务是由下层通过层间接口向上层提供的