1.3计算机⽹络体系结构及OSI七层参考模型与TCPIP参考模型⽬录
1、计算机⽹络体系结构
session数据错误是什么意思为什么需要有计算机⽹络体系结构?我们都知道计算机⽹络⾮常复杂,涉及⾮常多的组成部分:如主机(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)——检测并重传损坏或丢失帧,并避免重复帧
差错控制(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)、 和安全控制等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论