OSI七层模型详解.docx
- 文档编号:28958950
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:27
- 大小:62.61KB
OSI七层模型详解.docx
《OSI七层模型详解.docx》由会员分享,可在线阅读,更多相关《OSI七层模型详解.docx(27页珍藏版)》请在冰豆网上搜索。
OSI七层模型详解
第一层物理层
OSI模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。
物理层的协议产生并检测电压以便发送和接收携带数据的信号。
在你的桌面PC上插入网络接口卡,你就建立了计算机连网的基础。
换言之,你提供了一个物理层。
尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。
网络物理问题,如电线断开,将影响物理层。
(一)物理层的主要功能
⑴为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路.
⑵传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要.
第二层数据链路层
数据链路(DataLinkLayer)可以粗略地理解为数据通道。
物理层要为终端设备间的数据通信提供传输媒体及其连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,但是并不纠正错误。
(一)链路层的主要功能
数据链路层是OSI参考模型的第二层,该层解决两个相邻结点之间的通信问题,实现两个相 邻结点链路上无差错的协议数据单元传输。
数据链路层传输的协议数据单元称为数据帧。
所谓链路就是数据传输中任何两个相邻结点间的点到点的物理线路。
数据帧通常是由网卡(NIC)产生:
上一层的协议数据单元(数据包)传递到NIC后,NIC通过添加头部和尾部将数据打包(封装成帧),如图3-2-6所示;然后数据帧沿着链路再传送至目的结点。
数据帧首部和尾部含有对等数据链路进程需要使用的协议信息。
头部的信息包括发送结点和接收结点的地址(MAC地址)以及错误校验信息等。
数据链路层不关心数据包中包含什么信息,而仅是将其传递到网络中的下一结点。
数据链路层的主要功能概括如下:
(1)数据链路的管理
和物理层相似,数据链路层要负责建立、维持和释放数据链路的连接。
在局域网中,数据链路层又被划分为逻辑链路控制子层和介质访问控制子层。
(2)帧同步
帧同步要解决的问题是接收方如何能从收到的比特流中准确地区分出一帧的开始和结束。
一般可采用以下方法(目前普遍使用的是后两种):
☆字节计数法
采用一个特定的字符(例如:
SOH)来表示一帧的开始,并以一个专门的字段(Count)来表示帧内的字节数。
☆字符填充法
采用一些特定的字符来表示一帧的开始和结束。
☆比特填充法
采用一串特定的比特组合来表示一帧的开始和结束。
☆违法编码法
采用“违法”的编码来表示一帧的开始和结束。
(3)差错控制
差错控制是指在数据通信过程中发现能检测或纠正差错,并将差错限制在尽可能小的允许范围内。
差错检测可通过差错控制编码来实现的;而差错纠正则通过差错控制方法来实现。
详见“差错控制技术”一节中的相关介绍。
(4)流量控制
如果发送结点的发送能力大于接收结点的接收能力,将导致接收方来不及接收。
流量控制所要解决的就是控制发送方的速率,使其不超过接收方所能承受的能力。
第三层网络层
OSI模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。
网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。
由于网络层处理路由,而路由器因为即连接网络各段,并智能指导数据传送,属于网络层。
在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。
网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括路由选择、拥塞控制和网际互连等。
第四层传输层
传输层是OSI中最重要,最关键的一层,是唯一负责总体的数据传输和数据控制的一层.传输层提供端到端的交换数据的机制.传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。
传输层也称为运输层.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层.
(一)传输层端口的概念
传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。
在这一层,信息传送的协议数据单元称为段或报文。
网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
计算机网络中的资源子网是通信的发起者和接收者,其中的每个设备称为端点;通信子网提供网络中的通信服务,其中的设备称为结点。
OSI参考模型中用于通信控制的是下面四层,但它们的控制对象不一样。
(二)传输层的基本功能
传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下
(1)分割与重组数据
(2)按端口号寻址
(3)连接管理
(4)差错控制和流量控制
传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。
(三)传输层在OSI中的地位和作用
传输层是整个协议层次结构的核心,是惟一负责总体数据传输和控制的一层。
在OSI七层模型中传输层是负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的高三层之间的中间层。
因为网络层不一定保证服务的可靠,而用户也不能直接对通信子网加以控制,因此在网络层之上,加一层即传输层以改善传输质量。
传输层利用网络层提供的服务,并通过传输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面和不可靠的数据传输方面的问题。
它的主要功能是:
对一个进行的对话或连接提供可靠的传输服务,在通向网络的单一物理连接上实现该连接的复用,在单一连接上提供端到端的序号与流量控制、差错控制及恢复等服务。
第五层会话层
(一)会话层简介
设置会话层的目的是管理用户应用进程之间的对话过程,即提供进程间的会话服务。
所谓对话(dialogue)即是指本地系统的会话实体与远地对等的会话实体之间交换数据的过程。
会话层的主要功能如下:
● 会话连接的管理。
● 对话管理。
对传送的报文划分成对话单元(dialogueunit),在适当的时候中断对话,并在预定的同步点上恢复对话。
●同步管理。
在传送的数据流中插入适当的同步点,一旦出现差错,对等的会话服务用户在商定的同步点上恢复对话。
● 活动管理。
将报文流分成活动(activity)逻辑单元,对用户应用的交互活动过程进行结构化管理,即每一个活动独立于其前、后到达的活动。
●异常情况的处理。
在会话期间报告来自下面网络的异常情况,保证在会话连接释放之前所有的数据单元都被应用进程所接收。
(二)会话层服务的功能单元
会话层服务是定义在ISO8326这一文件中,在1984年完成了最后的标准版本,相应的ITU-T建议书为X.215。
ISO8326规定了会话服务三个阶段(连接建立、数据传送和连接释放)的目的,以及服务描述和服务原语等,共规定了21种服务和58条面向连接的服务原语。
要想全面实现会话层服务是十分复杂的,而且也无此必要,因为几乎没有一个应用会用到所有的服务。
因此ISO8326将若干相关联的服务组成一个功能单元(functionunit),每一个功能单元则提供一种可供选择的工作类型。
所需要的功能单元在会话连接建立时协商。
目前共定义了12个功能单元,最重要的一个功能单元是核心功能单元,它是最小的功能单元,在任何具体实现中都包含这个核心单元,它包括的服务有:
会话连接、正常数据传送、有序释放连接、用户终止连接和提供者终止连接等。
单独的核心功能单元对于微型计算机是有用的。
为了方便用户从12个功能单元中选择一些合适的功能单元来用,会话服务还定义了3个功能单元子集,作为对特定的具体实现的建议。
每个子集包括核心功能以及若干功能单元。
这
3个子集是:
● 基本组合子集BCS(BasicCombinedSubset)。
● 基本同步子集BSS(BasicSynchronizationSubset)。
● 基本活动子集BAS(BasicActivitySubset)。
它是在BCS的基础上增加了活动的管理、用户和服务提供者发出的异常报告等服务,以保证可靠的报文传输,适合于电子邮件方面的应用。
表5-1给出了会话层的3个子集和功能单元的关系,表中的√表示某个子集具有这个功能单元。
序号
功能单元
基本组合子集
BCS
基本同步子集
BSS
基本活动子集
BAS
1
核心(不可协商)
√
√
√
2
半双工
√
√
√
3
全双工
√
√
4
特权数据
√
√
5
异常报告
√
6
协商释放
√
7
次同步
√
√
8
主同步
√
9
重新同步
√
10
加速数据
11
活动管理
√
12
能力数据交换
√
表5-1 会话层的子集和功能单元的关系
在上表中,加速数据功能单元不包含在3个子集之中。
值得注意的是,以上划分的三个子集并不能作为会话协商的单位,在建立会话连接时必须单独对各个功能单元进行协商。
会话层和传输层有着显著区别:
传输协议负责产生和维持在两个端点之间的逻辑连接。
会话协议则在上述基本的连接服务的基础上,用增值的办法提供一个用户接口。
传输层的服务很简单,就是要提供一个可靠的传输数据的服务。
但传输协议是很复杂的,因为要在各种不利的条件下保证传输服务是可靠的。
会话层则相反,当发送出一个会话协议数据单元SPDU时,传输层可以保证将它送到对等用户,因此会话协议是非常简单的。
然而会话层定义的为数据交换用的各种服务却非常丰富而复杂,可供应用层根据需要从中进行选择。
对某个特定的应用来说,某些会话服务就可能不被应用层所选用。
(三)对话管理与对话同步
在任一种双工方式下进行的数据交换过程,即构成一个对话过程,对数据交换过程(对话过程)的控制称为对话管理。
为使对话过程能有条不紊地可靠进行,要求对话双方有同步的措施加以保障,即所谓的对话同步。
对话同步是会话服务的重要内容,会话服务提供者允许会话用户在传送的数据中自由设置同步点,并对同步点赋予同步序号,用于识别同步点和实现同步。
在会话数据流中插入同步点是为了从错误中恢复,虽然传输层能够从通信错误和子网崩溃中恢复,但不能代替会话层的恢复机制。
主次同步点也是有所区别的。
第一个区别是它们对数据交换过程的影响不同。
第二个区别是对退回过程的影响不同。
对话管理和对话同步都是通过使用各种“权标”(token)来完成。
权标代表了某种服务的使用权,类似于局域网中使用的令牌,它被动态地分配给某一方的服务用户,以便允许该用户使用会话层的某种服务,它是会话连接上的一种属性。
权标的引入是由于会话层内存在着较多的用户交互,要控制和协调这些交互,并保证交互动作的逻辑顺序的正确和避免在数据交换中产生混乱,就需要用权标进行统一管理。
会话层共设置了4种权标
● 数据权标:
在单工或半双工方式下使一个服务用户拥有的数据发送权标记。
● 释放权标:
使一个服务用户拥有释放会话连接权的标记。
● 次同步权标:
使一个服务用户拥有使用次同步权的标记,用于控制在对话单元中次同步点的插入。
● 主同步/活动权标:
使一个服务用于使用主同步权或对话活动权的标记,它用于控制活动的开始与结束,以及控制在一个对话活动中主同步点的插入。
建立会话连接时可以就会话中使用哪些权标以及权标的最初持有者进行协商,权标的拥有权可以在两个会话用户之间易手。
权标管理功能提供的服务允许一个用户主动交出权标或是向另一个用户索取权标。
图9-3就是利用数据权标进行双向交替数据传送的例子。
我们知道,网络层和传输层提供两种数据传送功能:
正常数据传送和加速数据传送。
由于会话数据流具有结构性,所以会话层又增加了特权数据传送功能和能力数据传送功能。
正常数据可以采用全双工或半双工方式传送。
如果采用半双工方式,则只有持有权标的一方可以发送数据,另一方想发送数据时,可以向对方请求权标(如图9-3所示)。
特权数据的发送不需要权标,在图9-3中用户B没有权标也可发送特权数据。
这样,特权数据流和正常数据流的混合形成了全双工/半双工的混合操作方式。
特权数据流的真正目的是为高层控制报文和网络管理提供途径。
所谓能力数据,也用作控制目的,不过是为了会话层本身的控制,例如在会话期间改变会话的功能和参数,与特权数据不同的是它必须完全得到对方的确认。
能力数据只能在活动之外(或两个活动之间的间隔内)发出,发送能力数据必须同时持有数据权标、次同步权标和主同步/活动权标。
(四)活动管理
活动是为了保持进程之间的同步,将所传送的数据流分成不同的逻辑工作块,供会话服务用户识别。
在一个会话连接上,某一时刻只能存在一个活动,一个活动可以跨越几个会话连接,即一个活动可以在某个会话连接上中断,而在之后的某一时刻在同一个或在后续某一个连接上恢复,也可以在一个会话连接期间允许有多个顺序的活动。
每一个活动由许多对话单元组成。
活动与对话单元及同步点等概念的关系如图9-4所示。
由图看出,从用户发出会话连接请求开始,到收到连接释放确认为止,是一个会话连接的持续时间。
在这期间的数据交换过程可以分成若干个对话活动来完成,而每个活动又由若干个对话单元所组成。
活动管理功能是主同步点的一个扩展,它为会话用户提供了可以将整个对话分解成若干离散的活动的方法。
每一个活动可以看作是会话用户之间传送数据的一个特定阶段,完成一个活动相当于交换了一个应用协议数据单元APDU,将它作为一个活动来标识则由会话实体来完成。
一次会话过程可能比较长,例如在两台计算机之间一次传送多个文件,用户希望知道什么时候一个文件结束,下一个文件开始。
为此可以把一个文件的传送组织成一个活动,一个活动就是会话过程中相对独立的一部分。
一个活动也可以暂时被中断,成为挂起的活动,例如当一个较长的文件传送时,中途因为紧急情况需要暂时停止,等一会儿再继续传送完成,这时可挂起当前的活动,然后开始一个新的活动,当新的活动结束后再恢复原来被挂起的活动。
活动与同步点有密切关系,一个新的活动开始,同步点序号置为1(主同步点),在一个活动内可以设置其他的主同步点或次同步点。
因此,一旦一个活动开始,它不可能退回到上一个活动而重新同步。
因为会话的双方都必须对一个活动什么时候开始,什么时候结束,都要有一个共同的认识,若两者同时开始设置一个活动就会造成冲突,因此谁能设置活动就必须对权标的控制。
活动权标与数据权标不同,但是和主同步权标是同一个。
(五)会话服务原语
1、会话连接建立原语
会话连接的建立过程涉及连接属性的协商,接收方必须应答,表示同意或不同意发送方的建议。
四种形式的连接原语(S_CONNECT)具有同样的参数集合,有些参数是可选的,有些参数是必要的,所有参数列于表9-3中,以下将解释这些参数的意义和用法。
连接标识由用户选择。
主叫方、被叫方和响应者地址就是与会话用户相关联的服务访问点。
执行结果表示被叫方对连接请求的反应,可能是下面三个结果之一:
接受、会话服务用户拒绝、会话服务提供者拒绝。
服务质量是一个参数表,包括残留差错率、时延、吞吐量、优先级和可靠性等,与传输层的QoS类似。
会话需求是一个功能单元表。
连接的发起者在请求原语中列出一个功能单元表,连接的接受者将在响应原语中列出另一个功能单元表,只有两个表的交集才是协商确定的功能单元,可以在将要建立的会话连接中使用。
初始同步点序号是在0到999998区间中的一个整数,这是一个条件参数,仅当使用同步服务时才有意义。
类似地,权标的初始分配也是条件参数,当选用了权标控制功能时必须协商谁是权标的最初持有者。
这个参数的值在请求/指示原语中可能是“连接请求方”、“连接接受方”或者“由接受方选择”。
如果是前两种值,则返回的响应/确认原语中这个参数为空;如果是第三个值,则返回的原语中这个参数可取“连接请求方”或“连接接受方”。
用户数据也作为会话连接原语的任选参数,可以携带诸如上层应用实体标题等特别信息。
2、置次同步点原语
发送用户可以用S_SYNC_MINOR服务原语在数据流中插入次同步点,该原语的参数包括类型、序号和用户数据三个。
次同步点的序号由原语中的序号参数指定。
次同步点可以是要求确认的或非确认的,由类型参数指明。
用户数据参数部分是任选的。
不一定每一个次同步点都要确认,否则网络信息流量将会增加很多,所以在多数情况下类型参数的值为非确认的。
如果在正常数据流中插入要求确认的次同步点,就形成了要求确认的数据传送服务,可以作为正常数据传送服务的补充功能。
主同步点原语与次同步点原语类似,但不包含类型参数,因为主同步点必须是要确认的。
3、再同步原语
会话用户使用再同步原语把对话过程退回到一个预定的状态,该原语的参数为:
再同步类型、同步点序号、权标分配和同步数据。
再同步类型可取以下三个值之一:
“放弃”(abandon)就是撤消当前的对话,这时其他参数的值就没有意义了;“重启动”(restart)和“设置”(set)都是退回到以前的某个同步点上,但两者有所不同,重启动不能早于最后一次被确认的主同步点,而设置可以适用于任何有效的同步点。
再同步请求原语中的权标分配参数可取以下三个值之一:
请求方、接受方或由接受方选择,类似于连接请求原语中对应的参数。
如果两个用户同时发出再同步请求,其后果将会破坏系统的一致性,所以会话标准中有一些规则来避免这种危险。
4、有序释放原语
有序释放S_RELEASE原语是核心功能之一,用户可随时用这种原语释放会话连接而不致丢失数据。
在有序释放的响应和证实原语中包含结果参数,这个参数的值只有两个值,yes或no,接收方拒绝释放连接的原因只能是请求方没有释放权标。
5、异常情况的报告原语
对于异常情况的报告有两种处理方法。
有时在会话协议实体内产生了不可预料的差错(例如,由于某个协议有差错使得某个用户服务不能完成),这时可由会话协议实体向两个会话用户发出S_P_EXCEPTION_REPORT.indication指示服务原语。
另一种情况是会话用户发现的异常情况,例如,用户发现缺乏存储空间或者出现了序号错误的数据。
这时用户发出S_U_EXCEPTION_REPORT.request原语,对等用户收到S_U_EXCEPTION_REPORT.indication原语。
在这两种情况下,两个会话用户将在双方均同意的先前同步点上继续其对话。
(六)会话协议
在会话协议的标准中一共定义了36种会话协议数据单元,造成如此多的SPDU的原因在于会话服务的复杂性(有58条服务原语)。
而会话协议基本上是直接把会话服务原语映射为会话协议数据单元,用相对简单的传输接口来交换这些原语。
通常的协议参数都具有三个特征:
类型、长度和值,而且大多数协议的参数长度是固定的,类型由固定的字段表示,因而协议数据单元的格式就很规整而简明。
但是在会话协议中,参数的多少变化很大,任选项很多,因此会话协议数据单元的格式就显得比较复杂。
为了统一,SPDU的编码规则只有一条,即用类型—长度—值三个字段的级联形式构成一个参数,这三个字段的组合称为参数单元,其中类型就是参数标识符(PI)。
整个SPDU的第一个字段是SPDU标识符,第二个字段是SPDU头部的长度,其次是参数部分,最后是数据。
这样,具有一个参数单元的SPDU格式如图9-5所示,图中长度字段下面的箭头表示长度统计的范围。
另外,一个SPDU可以有多个参数,具有多个参数或没有参数的SPDU格式可仿照图9-5构造。
有关的参数可以组成参数组,参数组由参数组标识符(PGI)、参数组长度和一个或多个参数单元组成。
(a)和(b)分别是具有一个参数组(含两个参数单元)和两个参数组的SPDU的例子。
连接标识符就是参数组的例子,它由三部分组成:
主叫方的参照标识符(最大64字节)、公共参照数(比如时间,最大64字节)和附加的参照信息(最大4字节)。
这三个部分分别用一个参数单元表示,组成一个参数组。
全双工时正常数据传送的三个阶段:
第一阶段是建立会话连接。
源会话实体收到会话用户发来的S_CONNECT.request原语后,便形成连接SPDU(以CN表示)发送给目标会话实体。
当目标方收到该CN后形成S_CONNECT.indication原语传递给目标会话用户。
如果同意建立这条会话连接,则目标会话实体收到S_CONNECT.response原语,并向源会话实体发送连接接受SPDU(以AC表示)。
这样,当源和目标双方的会话实体交换了CN和AC会话协议数据单元之后,便能建立起一条会话连接。
第二阶段进行正常数据传送。
在全双工通信方式中,源和目标会话实体可以同时向对方发送数据SPDU(以DT表示)。
每当会话实体收到会话用户发来的S_DATA.request原语后,便可发送一个DT。
当会话用户数据太长时,可将它分为几段,形成几个DT。
对等会话实体收到DT后应向会话用户传递S_DATA.indication原语。
与传输层不同的是在数据传送阶段没有设置本层的流量控制机制,但它可利用传输层内的流控机制来间接地控制本层的会话协议数据单元的流量。
第三阶段是释放会话连接。
当会话实体收到会话用户发来的S_RELEASE.request原语后,应采用有序方式来释放会话连接,它将向目标会话实体发送结束SPDU(以FN表示)。
目标会话用户收到S_RELEASE.request后,发出S_RELEASE.response。
目标会话实体将发送断开连接SPDU(以DN表示)。
以上通过S_RELEASE原语的交互表示了会话连接有序释放的情况。
如果在数据传送过程中出现异常情况,任一方会话实体也可不经协商而突然释放连接(对应的服务原语为S_U_ABORT),另一方不能拒绝,这时可能造成数据的丢失。
第六层表示层
(一) 表示层简介
OSI/RM中表示层的作用,就是要处理应用数据以什么样的表示形式来进行传送,才能达到任意应用系统之间的信息沟通。
这就是表示服务的重要性。
具体来说,表示层的作用是对源端内部的数据结构进行编码,形成适合于传送的比特流,到了目的端再进行解码,转换成用户所要求的格式(必须保持数据的意义不变)。
至于数据比特流的传送,则由表示层的下面五层提供可靠、透明、按序的数据传送。
另外,随着通信网的发展,表示服务也从一开始单纯地进行数据格式的转换,演变成为处理数据的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSI 模型 详解