网络基础——网络体系结构
OSI较早开始研究,但由于过于复杂,最先应用的是TCP,因此,后来大多用TCP。
一.协议与层次划分
计算机有条不紊的交换数据,必须按照一定的规则。这些规则明确了交换的数据的格式和有关的同步问题。这里所说的同步不是狭义的(即通频或同频同相)而是广义的,即在一定的条件下应当发生什么事情(如,应当发送一个应答信息),因而同步含有时序的意思。这些位进行网络中的数据交换而建立的规则、标准或约定称为网络协议。网络协议也简称协议,主要由三个要素组成:
1.语法,即数据与控制信息的结构或格式。
2.语义,即需要发出何种控制信息,完成何种动作或做出何种相应。
3.同步,即事件实现顺序的详细说明。
只要我们需要在连接的另一台电脑上做一些事情就必须由协议,自己的计算机则不需要。
协议由两种不同形式。一种是使用便于人来阅读和理解的文字描述,
另一种是使用让计算机用够理解的程序代码。
这两种形式的协议都必须能够对网络上的信息交换做出精确的解释。对于复杂的网络协议,应该是层次性的。
加入我们在主机1和主机2之间通过一个通信网络传送文件。
我们要做三类工作:
第一类:与传送文件直接有关,如发送端文件传送应用程序应确人接收端文件管理程序已做好接受和存储文件的准备。若两台主机所用的文件格式不一样,则至少由一个主机应完成文件格式的转换。这两项工作可用一个文件传送模块来完成。这样,两台主机可将文件传输模块作为最高的一层。在这两个模块之间的虚线表示两台主机系统交换文件和一些有关文件交换的指令。
传输层次的划分我们不使用文件传输模块完成一切,这样太复杂,因此可再设立一个通信服务模块,用来保证文件和文件传送命令可靠的再两个系统之间交换。也就是说,让位于上面的文件传送模块利用下面的通信服务模块所提供的服务,同样道理我们可再见建立一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。
好处是:
1.各层是独立的,不需要知道它的下层如何工作,仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能。因而可以将一个难以处理的问题细化位很多个小问题。
2.灵活性好,当任意一层改变,只要接口不变就不需要改。
3.结构上可分割开。各层都可以采用最合适的技术实现。
4.易实现和维护。
5.能促进标准化的工作。因为每一层的功能及所提供的服务都有了精准的说明。
通常来说各层需要完成的工作由以下几种,
1.差错控制 使得通信更可靠。
2.流量控制 发送端的数据必须使得接收端来得及接受,不能太快。
3.分段和重装 发送端将要发送的数据分成更小的部分,再接收端将其还原。
4.复用和分用 发送端几个高层会话复用一条低层的链接,在接收端再分用。
5.链接建立和释放 交换数据前先建立一条逻辑连接,数据传输后释放连接。
缺点是:可能会在不同层反复出现,产生额外开销。
计算机网络各层及其协议的集合就是网络的体系结构。这些功能可能是由硬件或软件完成。
二.具有五层协议的体系结构
OSI的七层协议体系结构的概念清楚,理论完整,但它复杂且不实用。TCP/IP体系结构则不同,但它却得到了广泛的应用。
TCP/IP是一个四层结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同的网络互联问题),不过从实质将它只有上三层,最下层网络接口层没什么具体内容。
因此在学习是一般用折中的方式,即综合OSI和TCP/IP的优点,采用只有五层的体系结构,这样即整洁又能将概念阐述清楚,有时为了方便,也将底下两层曾为网络接口层。
OSI、TCP和五层协议应用层:
应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对不同的网络应用需要不同的协议,如域名系统DNS、万维网应用HTTP协议,电子邮箱SMTP协议等。
运输层:
运输层的主要任务是负责向两台主机中进程之间的通信提供数据服务服务,传输的进程数据在一层被打包为报文。所谓通用的,是指并不针对某个特定的网络应用,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面的运输层的服务,分用和复用相反,是运输层把收到的信息分别交付给上面的应用层中的相应进程。
运输层主要使用的以下两种协议:
传输控制协议TCP——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。
用户数据报协议UDP——提供无连接的、尽最大努力的数据传输服务(不保证数据的可靠性),其传输数据的单位是用户数据报,
网络层:
负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称数据报。
另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
互联网由大量的异构网络通过路由器构建。互联网使用的网络层协议是无连接的网际协议IP和许多种路由选择协议,因此网路层也叫网际层或IP层。
数据链路层:
数据链路层常简称为链路层。两台主机间的数据传输,总在一段一段的链路上传送的,这就需要使用专门的链路层的协议,在两个相邻的结点间传送数据时,数据链路层将网路层交下来IP数据报组装成帧,在两个相邻的结点间的链路上传送帧,每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制)。
在接收数据时, 控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。 这样, 数据链路层在收到一个帧后, 就可从中提取出数据部分, 上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错。 如发现有差错, 数据链路层就简单地丢弃这个出了差错的帧, 以免继续在网络中传送下去白白浪费网络资源。 如果需要改正数据在数据链路层传输时出现的差错(这就是说, 数据链路层不仅要检错, 而且要纠错) , 那么就要采用可靠传输协议来纠正出现的差错。 这种方法会使数据链路层的协议复杂些。
物理层
在数据层上传输的数据单位是比特,因此物理层需要考虑用多大的电压代表1或0,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚如何连接。但是解使比特的意思不是物理层的任务,传输信息所用的物理媒介,如双绞线、光纤等,并不在物理层而在物理层下面,因此也有人把物理层下面的物理媒体当作第0层。
TCP/IP和TCP、IP
TCP和IP两个协议,现在人们提高TCP‘/IP不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。
数据在各层之间的传输假定主机1的AP1应用进程向主机2的AP2应用进程发送数据
AP1先将其数据交给本主机的第五层(应用层)。第五次加上必要的控制信息给第四层运输层,运输层加上本层的控制信息给第三层网路层,成为第三层的数据单元。以此类推不过到第2层(数据链路层)后,控制信息被分层两部分,分别加入到首部和尾部,而第一层物理层由于比特流传送,因此,不需要控制信息。
当这一串的比特流离开主机1经网络的物理媒体传送到路由器时,就从路由器的第1层依次上升到第3层。 每一层都根据控制信息进行必要的操作, 然后将控制信息剥去, 将该层剩下的数据单元上交给更高的一层。 当分组上升到了第3层时, 就根据首部中的目的地址查找路由器中的转发表, 找出转发分组的接口, 然后往下传送到第2层, 加上新的首部和尾部后, 再到最下面的第1层, 然后在物理媒体上把每一个比特发送出去。
当这一串的比特流离开路由器到达目的站主机2时, 就从主机2的第1层按照上面讲过的方式, 依次上升到第5层。 最后, 把应用进程AP1发送的数据交给目的站的应用进程AP2。
可以用一个简单例子来比喻上述过程。 有一封信从最高层向下传。每经过一层就包上一个新的信封, 写上必要的地址信息。 包有多个信封的信件传送到目的站后, 从第1层起, 每层拆开一个信封后就把信封中的信交给它的上一层。 传到最高层后, 取出发信人所发的信交给收信人。
当研究开放系统中的信息交换时, 往往使用实体(entity) 这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。 在许多情况下, 实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体) 进行通信的规则的集合。 协议的语法方面的规则定义了所交换的信息的格式, 而协议的语义方面的规则就定义了发送者或接收者所要完成的操作, 例如, 在何种条件下, 数据必须重传或丢弃。
在协议的控制下, 两个对等实体间的通信使得本层能够向上一层提供服务。 要实现本层协议, 还需要使用下面一层所提供的服务。
路由器在发送过程种最多用到网络层,它的结构是这样的:
TCP/IP四层协议表示方法 另一种表示形式也就是说现在的应用已经并不是再逐层递进了,而在实现上使用TCP/IP协议已经演变为直接使用IP层,或下面的网络接口层,有时网络接口层也叫子网层。
沙漏型画法这种很像沙漏计时器形状的TCP/IP协议族表明: TCP/IP协议可以为各式各样的应用提供服务(所谓的everything over IP) , 同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行(所谓的IP over everything) 。 正因为如此, 互联网才会发展到今天的这种全球规模。 从图不难看出IP协议在互联网中的核心作用。