1.3计算机网络体系结构及OSI七层参考模型与TCP/IP参考模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/www_helloworld_com/article/details/82934862

目录

 

1、计算机网络体系结构

2、OSI与Internet参考模型

3、OSI下数据封装与通信过程


1、计算机网络体系结构

为什么需要有计算机网络体系结构?我们都知道计算机网络非常复杂,涉及非常多的组成部分:如主机(hosts)、路由器(routers)、链路(links)、应用(applications)、协议(protocols)等等。那么有没有这样一种系统结构能够很好的描述网络呢?如果有的话是什么样的结构呢?至少这个系统结构可以用来讨论网络。答案是可以使用分层结构来描述复杂系统。为什么采用分层结构呢?(分层结构优点)因为分层结构清晰,有利于我们认识复杂系统的部件及其关系;模块化的分层易于系统更新、维护,任何一层服务实现的改变对于系统其它层都是透明的;有利于标准化。

计算机网络体系结构简称网络体系结构(network architecture)是分层结构,计算机网络体系结构是计算机网络的各层及其协议的集合,每层遵循某个/些网络协议完成本层功能。协议是控制两个对等实体进行通信的规则的集合,协议 是 “ 水平的 ”  。服务:任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供 服务 ,服务是“ 垂直的 ”,下层协议的实现对上层的 服务用户是 透明 的。同系统的相邻层 实体间通过接口进行交互。

2、OSI与Internet参考模型

2.1OSI参考模型

最早的时候网络刚刚出现的时候,很多大型的公司都拥有了网络技术,公司内部计算机可以相互连接。可是却不能与其它公司连接。因为没有一个统一的规范。计算机之间相互传输的信息对方不能理解。所以不能互联。从而形成了一个个的网络孤岛,限制了计算机和网络的发展。因而国际标准化组织(ISO)推出了OSI参考模型。

OSI(Open System Interconnect)即开放式系统互连,一般叫OSI参考模型,OSI参考模型是由国际标准化组织 (ISO) 于1984年提出的分层网络体系结构模型, 目的是支持异构网络系统的互联互通。但由于OSI参考模型的标准实在是太严格了,目前还没有完全按照OSI标准设计的网络,理论成功,市场失败。OSI参考模型采用分层设计的方式,将一个复杂的网络问题划分成了多个小的问题。使网络的维护更利于实现、使网络技术更利于更新。OSI给设计网络和网络排错提供了一个非常好的模型和思路——一个完整的应该具备哪些功能?该功能在哪个层次?通过这样的思考方式很容易定位网络的故障。也很容易的来衡量出一个现实的网络是否完善。OSI参考模型将网络按照功能分为7层,每层完成特定的网络功能。如表1-1所示。

表1-1 OSI七层参考模型
层号 层名 数据的名字 功能描述
7 应用层(Application) 数据(data) 提供用户通过用户代理(如浏览器)或网络接口使用网络(服务)如、文件传输(FTP)、电子邮件(SMTP)、Web(HTTP)等。
6 表示层(Presentation) 数据(data) 处理两个系统间交换信息的 语法与语义(syntax and semantics  ) 问题,比如对用户数据进行相应的编码、加密/解密、压缩/解压缩等
5 会话层(Session) 数据(data) 对话控制(dialog controlling):建立维护对话、同步(synchronization)数据:在数据流中插入“同步点”。
4 传输层(Transport) 数据段(sagment) 为数据提供一种安全可靠的传输方式,主要做的工作:分段与重组、SAP寻址(确保将完整报文提交给正确进程,如端口号)、连接控制、流量控制、差错控制
3 网络层(Network) 分组(packet) 负责源主机到目的主机数据分组(packet)交付。完成数据在网络中的实际传输,确定地址和最佳路径。逻辑寻址(Logical addressing):封装全局唯一逻辑地址,确保数据分组被送达目的主机,如IP地址;路由(Routing):路由器(或网关)互连网络,确定分组从源主机到目的主机最佳传输路径;分组转发:将分组从路由器的输入端口交换到正确的输出端口。
2 数据链路层(Data link) 帧(frame)

负责 结点- 结点(node-to-node ) 之间的数据传输,使用硬件地址来定位远程主机(物理寻址):在帧头中增加发送端和/或接收端的物理地址标识数据帧的发送端和/或接收端(组帧)。并进行必要的控制:

流量控制(Flow control)——避免淹没接收端
差错控制(Error control)——检测并重传损坏或丢失帧,并避免重复帧
访问(接入)控制(Access control)——在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权

1 物理层(Physical) 比特流 传输比特流。将链路层的数据用高低不同的电平值表示发送到物理线路上。物理层规定了设备的接口形状、针脚个数、针脚不同电平值的含义。

2.2TCP/IP(Internet)参考模型

TCP/IP协议栈是美国国防部高级研究计划局计算机网(Advanced Research Projects Agency Network,ARPANET)及其后继Internet使用的参考模型。从低层到高层依次为:网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型中的会话层、表示层和应用层)。TCP/IP由于得到广泛应用而成为事实上的国际标准。TCP/IP的层次结构及各层的主要协议如图1.1所示。

 

图1.1TCP/IP参考模型

2.3五层参考模型

综合OSI和TCP/IP参考模型的优点,我们将七层参考模型中的会话层和表示层的功能由应用层来做,采用五层参考模型来学习计算机网络。五层分别为:物理层、数据链路层、网络层、传输层和应用层。

3、OSI下数据封装与通信过程

在OSI参考模型中主机要完成所有的七层功能,中间系统只需要完成下三层的功能,也就是物理层、数据链路层、网络层。之前也提到了,按照层次结构来看,所有对等层次之间都遵循相关的协议,进行数据交换,也就是说,对应层次之间协议规定了这个层次如何去构造数据,如何去交换数据,但要注意协议画的是虚线,在对等层之间交换的数据并不是物理上直接到达的,只是逻辑上到达对应的对等层。那么物理上真正通信是如何通信的呢?物理上通信怎么说也得通过链路,通过光信号、电信号、或者电磁波,所以物理层最下边是物理介质,物理介质完成物理信号传输。

那么按照OSI参考模型来看,数据是怎么进行通信的呢?比如A主机要发送一个数据给B,主机A的应用层最先处理数据,应用层处理完交给表示层,表示层交给会话层......,一层一层留下来通过物理介质发送到中间系统,中间系统从物理层把数据接收过来,接收以后要把数据进行还原,还原的时候遵循对等层之间的协议,比如中间系统的物理层还原数据时要遵循和主机A的物理层的协议。逐层还原到网络层。网络层明确数据应该在哪一段连路上传输,然后逐层处理交到物理层,传输到主机B,主机B再逐层还原。
注意:图1.2中实线所描述的过程是数据真正流动的方向,OSI参考模型把这个也叫做实通讯(或物理通讯)。那么虚线看到的是对等层之间的通信。协议规定的是对等层之间如何交换数据,比如应用层,在这一层看来,似乎数据是从主机A的应用层直接送到主机B的应用层。举个例子,我给女朋友(-vv-)写信,我写完信邮寄给女朋友,女朋友收到之后回信,看似好像是我直接和女票通信。事实上是我把信加上信封,按照规定(协议)写上邮政编码等信息,然后交给我们那的邮递员,邮递员逐层往下交,然后通过汽车、火车或者飞机等邮寄,邮寄的时候也是每一环节读取信封上的信息确定该往哪发,最后我女票收到信后,打开看信。所以协议是“水平的”,在传输过程中,相邻层之间交换信息是通过接口把数据交给下一层,或者通过接口向上一层提供服务。

我们从图1.2发现OSI上面四个层是和下面三层不太一样,中间系统实现的功能只到第三层,网络层再往上中间系统理论上就不用实现了。也就意味着上面四层直接从源主机对应到目的主机对应层次,这四层协议规定处理的数据直接到目的主机去处理。我们把这四层叫做端到端层(end-end)。

图1.2 OSI参考模型数据通信过程

 

我们假设撇开中间系统,看源主机A到目的主机B的通信,从顶层来看我们是希望源主机A的用户数据送到目的主机B接收,比如一个文件,或一句话。按照OSI参考模型来看,主机A和主机B都需要实现7层功能。

在OSI参考模型看来,数据通信时,是一层一层处理,逐层封装好,在物理上进行实在的传输:从源主机(SOURCE)的应用层发出来的数据是有一定格式的协议数据单元,称为PDU(protocol data unit)。应用层发给下一层表示层后,在PDU前面加上了本层控制信息,也就是图1.3中的AH,加在头部。图1.3中加了头部PH的A-PDU,更新为本层的PDU,也就是要发给第五层会话层的内容。即A-PDU+PH=P-PDU。上一层向下一层发送PDU,逐层加上本层的头部后成为下一层的PDU。直至发到数据链路层,数据链路层还加一个尾部,也就是DT,起到校验作用,如果数据正确,继续传输,数据错误直接丢掉不继续传输。数据链路层发给物理层后,物理层将PDU转换为二进制编码(比特流),通过硬件转换为信号发送出去。这样源主机七层任务完成。

图1.3右侧是目的主机的数据接收过程:接收到硬件的二进制信号后,物理层转换为PDU发个数据链路层。数据链路层拆掉头部和尾部后,将赤裸的PDU送给网络层。网络层再拆掉头部,送入下一层,逐层拆掉头部,到了送给应用层时,前面不同层添加的头部完全被拆干净,留下原本发送的最原始PDU,也就是用户数据。

图1.3 OSI参考模型数据封装与通信过程

那么这里就有一个问题,为什么要进行数据封装?回答这个问题之前,先来了解一下加了那么多的头和尾,加的都是些什么内容。我们在构造协议数据单元(PDU)时会在头部增加控制信息,这些控制信息主要包括1)地址(Address):用来标识发送端和接收端,源主机得知道数据往哪发,目的主机得知道数据是谁给发的。2)差错检测编码(Error-detecting code): 用于差错检测或纠正。3)协议控制(Protocol control): 实现协议功能的附加信息,如: 优先级(priority)、服务质量(QoS)、 和安全控制等。

猜你喜欢

转载自blog.csdn.net/www_helloworld_com/article/details/82934862