OSI参考模型
OSI(OpenSystemInterconnect),即开放式系统互联。是ISO(国际标准化组织)组织在20世纪80年代制定的网络互连的七层框架的一个参考模型,称为开放系统互连参考模型,简称OSI/RM(OpenSystemInternetworkReferenceModel)。
1、产生背景与特点
OSI参考模型,为了实现各厂商设备的兼容操作,国际标准化组织ISO(InternationalStandardizationOrganization)于1984年提出了开放系统互联参考模型OSI/RM(OpenSystemInterconnectionreferenceModel),它很快成为计算机网络通信的基础模型,被人称为网络界的“法律”。它定义了网络互联的七层框架,在OSI框架下ISO进一步规定了各层的功能,以实现开放系统环境中的互联性、互操作性与应用的可移植性。OSI中的“开放”是指只要遵循OSI标准,一个系统就可以与世界上任何地方同样遵循该标准的其他任何系统进行通信。OSI参考模型分为七个层次,自底向上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。当接受数据时,数据是自下而上传输;当发送数据时,数据则是自上向下传输的。OSI模型并未确切描述用于各层的协议和服务,它仅仅是告诉我们每一层该做些什么。最初,OSI的产生无疑是一种非常理想的解决从物理介质到应用程序接口复杂协调问题的方法,是一个理想化的理论模型。
2、划分原则
ISO为了更好的使网络应用更为普及,就推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。提供各种网络服务功能的计算机网络系统是非常复杂的。根据分而治之的原则,ISO将整个通信功能划分为七个层次,划分原则是:
(1)网路中各结点都有相同的层次;
(2)不同结点的同等层具有相同的功能;
(3)同一结点内相邻层之间通过接口通信;
(4)每一层使用下层提供的服务,并向其上层提供服务;
(5)不同结点的同等层按照协议实现对等层之间的通信。
3、OSI分层及各层功能
分层
物理层:是OSI参考模型的最低层,也就是第1层。它建立在物理通信介质的基础上,作为系统和通信介质的接口,提供网络设备数据传输规则。主要功能是完成相邻节点之间原始比特(bit)流的传输。
OSI的体系结构
数据链路层:是OSI参考模型的第2层。主要功能是如何在不可靠的物理线路上进行数据的可靠传输,实现网络相邻节点之间可靠的数据通信。
网络层:是OSI参考模型的第3层。主要功能是完成网络中端到端(主机到主机)的报文传输。它使用数据链路层提供的服务并进而向传输层提供自己的功能服务。
传输层:是OSI参考模型的第4层。OSI/RM模型经常被分为高层(4~7层)和低层(1~3层)。传输层与低层相连,作为资源子网和通信子网的桥梁,使得高层实体在数据交互过程中不受低层技术的影响。主要功能是完成网络中不同主机上的用户进程之间的可靠数据通信。
会话层:是OSI参考模型的第5层。主要功能是负责在网络中的两个节点之间建立和维持通信。“会话”是指在两个实体之间建立交互式连接,常用于表示终端与主机之间的通信。
表示层:是OSI参考模型的第6层。主要功能是用于处理所有与数据表示和传输有关的问题,如数据转换、加密和压缩等。其目的在于解决不同计算机体系结构所使用的格式和数据表示的差别。它向应用层(它的上一层)提供的服务包括:数据变换、数据格式化、语法选择、数据压缩技术、数据加密技术等。
应用层:是OSI参考模型的第7层,也就是最高层。主要功能是负责两个应用进程之间的通信,为网络用户提供专用的程序。
数据发送时,从第七层传到第一层,接收数据则相反。
上三层总称应用层,用来控制软件方面。下四层总称数据流层,用来管理硬件。
数据在发至数据流层的时候将被拆分。
在传输层的数据叫段,网络层叫包,数据链路层叫帧,物理层叫比特流,这样的叫法叫PDU(协议数据单元)
OSI模型
各层功能
1物理层(PhysicalLayer)
物理层处于最底层,是整个开放系统的基础,为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。这一层负责传送比特流,它从第二层数据链路层(DDL)接收数据帧,并将帧的结构和内容串行发送(每次发送1个比特),然后这些数据流被传输给DLL重新组合成数据帧。物理层定义了实际的机械规范和电子数据比特流,包括电压大小、电压变动以及代表“1”和“0”的电平定义。该层还包括了传输的数据速率、最大距离和物理接头。从表面上看,物理层只能看见0和1,它没有一种机制确定自己所传输比特流的含义,而只与电信号技术和光信号技术的物理特征相关。这些特征包括用于传输信号电流的电压、介质类型以及阻抗特征,甚至包括用于终止介质的连接器的物理形状。
物理层只是一个功能模型,包括一种将信号放到传输介质上并从介质上收到信号的处理过程和机制,而不包括产生和发送通讯数据信号的整套机制。
2数据链路层(DataLinkLayer)
OSI参考模型的第二层称为数据链路层(DLL)。与其它层一样,它负责发送和接收。在发送方,DLL负责将指令、数据等包装到帧中。帧(frame)是DLL层生成的结构,包含足够的信息,确保数据安全地通过本地局域网到达目的地。安全发送意味着数据帧完整无缺地到达目的地。所以,帧中必须包含一种机制用于保证传送过程中内容的完整性。
为确保数据传送完整安全到达,必须要做到两点:①每个帧完整无缺地被目标节点收到时,源节点必须收到一个响应;②在目标节点发出收到帧的响应之前,必须验证帧内容的完整性。
很多情况会导致帧不能发送到达目标或在传输过程中被破坏。因此,DLL的另一个职责是重新组织从物理层收到的数据比特流。如果帧的结构和内容都被发出,DLL就不重建一个帧,而是缓存收到的比特流直到它们构成一个完整的帧。任何类型的通信都要求有第一层和第二层的参与,不管是局域网(LAN)还是广域网(WAN)都是如此。
3网络层(NetworkLayer)
网络层负责在源机器和目标机器之间建立其使用的路由。该层没有任何错误检测和修正机制,因此,必须依赖于由DLL提供的可靠传输服务。
网络层用于本地LAN网段计算机系统的通信建立,能实现这样的功能,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的。这称为路由协议,包括IP、Novell公司的IPX以及AppleTalk协议。
4传输层(TransportLayer)
传输层提供类似DLL所提供的服务,也是保证数据在端端之间完整传输。与DLL不同,传输层在本地LAN网段之上提供这种服务,它可以检测到路由器丢弃的包,并自动产生重新传输请求。传输层的另一项重要功能就是将乱序收到的数据包重新排序。数据包乱序有很多原因,例如,这些包通过网络的路径可能不同,或者有些在传输过程中被破坏。传输层可以识别数据包的最初顺序,并在将这些包传递给会话层前将其恢复成发送时的顺序。
传输层是一个过渡性的层次。它下面的3层主要处理网络通信。发送方和接收方之间的每一个节点都必须执行协议,以确保信息准确有效地传输。传输层及其上面的3个层为用户提供各种服务。它们主要发送和接收节点,确保信息正确到达目标节点,并回应发送节点。
传输层提供可靠有效的网络连接。它允许上面的3个层次不受实际网络结构限制地执行各自的任务。同时,它依靠下面的3个层次控制实际的网络操作,并监督信息从源节点出发,最终到达目标节点。传输层最主要的职责在于为会话层提供网络线路,即传输线路。
5会话层(SessionLayer)
OSI会话层主要是用于管理两个计算机系统连接间的通信流。通信流称为会话,它决定了通信是单工还是双工,保证了它完成一个请求之后接受一个新请求。
会话层允许不同主机上的应用程序进行会话,或建立虚连接。例如,用户登录到某个远程系统,并与之交换信息时,会话层管理这一进程,控制哪一方有权发送信息,哪一方必须接收信息。这其实是一种同步机制。
会话层也处理差错恢复。允许用户在一个长信息流中插入检查点。若文件传输过程中网络发生故障,只要将最后一个检查点以后的数据续传。
用户层次上的单一事务机制也是由会话层实现的。例如,从数据库中删去一个记录,这在用户看来只是个单一操作,但实际上它包括几个步骤。首先需找到这个记录,然后修改指针和地址,可能还需修改索引或散列表,最后完成删除动作。如果是通过网络访问数据库,在删除开始前,会话层必须确保所有低级操作已经完成。如果这些数据操作只是简单地按照接收顺序依次执行,网络一旦发生故障,势必破坏数据的完整性。
6表示层(PresentationLayer)
表示层负责管理数据编码方式。不是所有计算机系统都使用相同的数据编码方式,表示层就是在可能不兼容的数据编码方式如ASCII和EBCDIC间提供翻译。表示层用于浮点格式间的调整转换,并提供加密解密服务。
表示层以用户可理解的格式为上层用户提供必要的数据。例如,当两台计算机使用不同的数字和字符格式时,表示层可在这两种不同的数据格式之间进行转换,使用户感觉不到这种差别。数据与信息之间的差异是表示层需要解决的问题,因为在网络支持下,用户可以交换的只是信息,而不是原始的比特流。
表示层也具有保证数据安全的功能,如加密解密都是在表示层。在把数据交给低层传送前,先对数据进行加密;另一端的表示层负责在收到数据后解密。对于侵权问题严重的广域网来说,这一技术特别重要。
7应用层(ApplicationLayer)
OSI参考模型的最顶层是应用层,虽称为应用层,但它并不包含任何应用,而只在应用和网络服务间提供接口。这一层可以看成是初始化通信会话的起因。例如,邮件客户可能会发出从邮件服务器检索新消息的请求,客户端应用自动向与之相关的第七层协议发出请求,并产生通信会话,从而获取所需要的文件。
应用层直接与用户和应用程序相联系,为用户提供电子邮件、文件传输、远程登录和资源定位等服务,但它并不等同于一个应用程序。例如,一方的应用层能够直接传送文件给另一方的应用层,但不管低层网络和计算机体系结构是否相同。另外,应用层也定义了一些协议集,以支持通过全屏幕文字编辑器方式模拟各种不同类型的终端。
对等层(虚拟通信)