1、OSI 七层模式简单通俗理解这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人。总体来说,OSI 模型是从底层往上层发展出来的。这个模型推出的最开始,是是因为美国人有两台机器之间进行通信的需求。需求 1:科学家要解决的第一个问题是,两个硬件之间怎么通信。具体就是一台发些比特流,然后另一台能收到。于是,科学家发明了物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为
2、1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。需求 2:现在通过电线我能发数据流了,但是,我还希望通过无线电波,通过其它介质来传输。然后我还要保证传输过去的比特流是正确的,要有纠错功能。于是,发明了数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。需求 3:现在我能发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次(事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的)。那么,我还须要保证传输大量文
3、件时的准确性。于是,我要对发出去的数据进行封装。就像发快递一样,一个个地发。于是,先发明了传输层(传输层在 OSI 模型中,是在网络层上面)例如 TCP,是用于发大量数据的,我发了 1 万个包出去,另一台电脑就要告诉我是否接受到了 1 万个包,如果缺了 3 个包,就告诉我是第 1001,234,8888 个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。例如 UDP,是用于发送少量数据的。我发 20 个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏,也经常用 UDP 协议,因为一般都是简单的信息,而且有广播的需求。如果用 TCP,效率就很低,因为它会不停地告诉主机
4、我收到了 20 个包,或者我收到了 18 个包,再发我两个!如果同时有 1 万台计算机都这样做,那么用 TCP 反而会降低效率,还不如用 UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。TCP 协议是会绑定 IP 和端口的协议,下面会介绍 IP 协议。需求 4:传输层只是解决了打包的问题。但是如果我有多台计算机,怎么找到我要发的那台?或者,A 要给 F 发信息,中间要经过 B,C,D,E,但是中间还有好多节点如 K.J.Z.Y。我怎么选择最佳路径?这就是路由要做的事。于是,发明了网络层。即路由器,交换机那些具有寻址功能的设备所实现的功能。这一层定义的是 IP 地址,通过
5、 IP 地址寻址。所以产生了 IP 协议。需求 5:现在我们已经保证给正确的计算机,发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我每次都要调用 TCP 去打包,然后调用 IP 协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包,自动寻址的功能。于是,发明了会话层。会话层的作用就是建立和管理应用程序之间的通信。需求 6:现在我能保证应用程序自动收发包和寻址了。但是我要用 Linux 给 window 发包,两个系统语法不一致,就像安装包一样,exe 是不能在 linux 下用的,shell 在 window 下也是不能直接运行的。于是需要表示层(presentation
6、),帮我们解决不同系统之间的通信语法问题。需求 7:OK,现在所有必要条件都准备好了,我们可以写个 android 程序,web 程序去实现需求把。补充:Socket:这不是一个协议,而是一个通信模型。其实它最初是伯克利加州分校软件研究所,简称BSD 发明的,主要用来一台电脑的两个进程间通信,然后把它用到了两台电脑的进程间通信。所以,可以把它简单理解为进程间通信,不是什么高级的东西。主要做的事情不就是:A 发包:发请求包给某个已经绑定的端口(所以我们经常会访问这样的地址182.13.15.16:1235,1235 就是端口);收到 B 的允许;然后正式发送;发送完了,告诉 B要断开链接;收到断
7、开允许,马上断开,然后发送已经断开信息给 B。B 收包:绑定端口和 IP;然后在这个端口监听;接收到 A 的请求,发允许给 A,并做好接收准备,主要就是清理缓存等待接收新数据;然后正式接收;接受到断开请求,允许断开;确认断开后,继续监听其它请求。可见,Socket 其实就是 I/O 操作。Socket 并不仅限于网络通信。在网络通信中,它涵盖了网络层、传输层、会话层、表示层、应用层其实这都不需要记,因为 Socket 通信时候用到了 IP 和端口,仅这两个就表明了它用到了网络层和传输层;而且它无视多台电脑通信的系统差别,所以它涉及了表示层;一般 Socket 都是基于一个应用程序的,所以会涉及
8、到会话层和应用层。通信原理之 OSI 七层参考模型(一)1、什么是计算机网络谈计算机通信原理当然离不开计算机网络,那么什么是计算机网络。官方定义:计算机网络是由两台或两台以上的计算机通过网络设备连接起来所组成的一个系统,在这个系统中计算机与计算机之间可以进行数据通信、数据共享及协同完成某些数据处理的工作。其实说白了就是,计算机组成的网络或者说在这个网络系统中有很多计算机,这里的计算机不仅仅指我们的电脑,其实指的是所有在网络中的网络设备,比如手机,平板电脑等。2、计算机之间如何进行通信有了计算机等设备,也就得考虑如何连接起来他们,这就是他们之间该如何通信的问题。对计算机来说,就是一个硬件设备,如
9、何让计算机与计算机连接起来,必需需要软件的支撑。那么支持计算机通讯的软件是什么呢?就是计算机网络参考模型。这个计算机网络参考模型就是计算机网络软件。最经典的当然是国际化标准的OSI(Open System InterConnect 开放式系统互联)参考模型。它是通过一个机器上的一个应用进程与另一个机器上的进程进行信息交互。下面我们了解下这个模型。2.1、OSI 七层模型上面我们已经知道,计算机和计算机之间是通过两个软件进程连接起来的。但想让这两个进程之间进程通信,还需解决很多问题。OSI 参考模型解决此问题是,首先就是分层,简单的来说,这两个进程之间的通信是通过七大部分来完成,也就是 OSI
10、七层参考模型。每一层都完成网络当中的一个独立任务。下面是七层模型图:这张图看起来确实复杂,让我们分解来看,主机 A 和主机 B 都的进程都分七层处理,下面首先了解下各层什么作用。(1)物理层在 OSI 参考模型中,物理层(Physical Layer)是参考模型的最低层,也是 OSI 模型的第一层。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化。物理层的任务就是为它的上
11、一层提供一个物理连接,以及它们的机械、电气、功能和规程特性。如规定使用电缆和接头的类型、传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是 bit。理解着确实难,不过总之一句话,就是把最初的电流什么,为上一层提供物理连接。保证电流的透明化等。(2)数据链路层Datalink Layer,OSI 参考模型的第二层,它控制网络成和物理成的通信,是一个桥梁, 其主要功能是如何在不可靠的物理线路上进行数据的可靠传递。说白了就是保证传输的可靠性。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方
12、和接收方的物理地址以及检错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。 如果在传送数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。数据链路层的功能独立于网络和它的节点和所采用的物理层类型,也不关心是否正在运行Word 、Excel 或使用 Internet 。有一些连接设备,如交换机,由于它们要对帧解码并使用帧信息将数据发送到正确的接收方,所以它们是工作在数据链路层的。数据链路层在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可
13、靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。感觉挺难懂的,简单总结为保证数据传输的可靠性,还有纠错和重发机制等。(3)网络层Network Layer,OSI 参考模型的第三层。其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点 A 到另一个网络中节点 B 的最佳路径。由于网络层处理,并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。网络负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误检测和修正机制,
14、因此,网络层必须依赖于端端之间的由 DLL 提供的可靠传输服务。简单的来说就是在网络中找到一条路径,一段一段地传送,由于数据链路层保证两点之间的数据是正确的,因此源到目的地的数据也是正确的,这样一台机器上的信息就能传到另外一台了。但计算机网络的最终用户不是主机,而是主机上的某个应用进程。这个过程由传输层实现。(4)传输层Transport Layer,OSI 参考模型的第四层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。例如,以太网无法接收大于 1500 字节(Byte)的数据包。发送方节点的
15、传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组。该过程即被称为排序。工作在传输层的一种服务是 TCP/IP 协议套中的 TCP(传输控制协议),另一项传输层服务是IPX/SPX 协议集的 SPX(序列包交换)。网络层交给传输层后,传输层必需标识了服务是哪个进程请求的,要交给谁的问题。我把东西交你时,希望通知你一下,就是会话层的工作。(5)会话层Session Layer,OSI 参考模型的第五层。负责在网络中的两节点之间建立、维持和终止通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,
16、决定通信是否被中断以及通信中断时决定从何处重新发送。通知有人给你打好招呼,以便进行通话。就像现在我和你说话,你耳朵听到了也能理解,但如果下面是外国人,他听到了我的声音,他理解了吗?他不能理解。那对于计算机网络来言,客户机发了一个请求给服务器,服务器应该能理解这个请求到底是什么,所以接下去的问题是你怎么样理解?这个理解有两个层次,我讲中国话,他只能懂英文,那么这当中应该有一个翻译。把汉语翻译成英语,这样的工作就交给下一层表示层来做了。(6)表示层Presentation Layer, OSI 参考模型中的第六层。应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式
17、化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet 上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。(7)应用层Application Layer,OSI 参考模型中的最高层,即第七层。应用层也称为应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公共应用服务元素(CASE)组成。每个 SASE 提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。
18、CASE 提供一组公共的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。主要负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。举个例子来理解:我这边说的是普通话,对面对方只能动英文,对方通过表示层把我的话翻译成了普通话,但未必对面就某些特殊汉子,词组的意思。那么就需要专业知识和领域知识,学习后才能听懂。应用层就是干这个的。对于计算机来讲,每一个应用都有它特定的表达方式。总结下:1.物理层:主要定义物理设备标准,如网线的接口类型、
19、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后再转化为 1、0 ,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。2.数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。3.网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet 的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。4.传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP( 传输
20、控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是 IP 也可以是 MAC 或者是主机名)。6.表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC 程序与另一台计算机进行通信,其
21、中一台计算机使用扩展二一十进制交换吗(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。7.应用层:是最靠近用户的 OSI 层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。OSI 七层模型基础知识及各层常见应用OSI Open Source Initiative(简称 OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。OSI 参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection
22、Reference Model,OSI/RM),它是由国际标准化组织 ISO 提出的一个网络系统互连模型。它是网络技术的基础,也是分析、评判各种网络技术的依据,它揭开了网络的神秘面纱,让其有理可依,有据可循。一、 OSI 参考模型知识要点图表 1:OSI 模型基础知识速览模型把网络通信的工作分为 7 层。1 至 4 层被认为是低层,这些层与数据移动密切相关。5至 7 层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。由低到高具体分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。第 7 层应用层直接对应用程序提供服务,应用程序可以变化,但要包括电子
23、消息传输第 6 层表示层格式化数据,以便为应用程序提供通用接口。这可以包括加密服务第 5 层会话层在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层 4 中处理双工方式第 4 层传输层常规数据递送面向连接或无连接。包括全双工或半双工、流控制和错误恢复服务 第 3 层网络层本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据第 2 层数据链路层在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址第 1 层物理层原始比特流的传输电子信号传输和硬件接口数据发送时,从第七层传到第一层,接受方则相反。各层对应的典型设备如下:应用层
24、 .计算机:应用程序,如 FTP,SMTP,HTTP表示层 .计算机:编码方式,图像编解码、URL 字段传输编码会话层 .计算机:建立会话,SESSION 认证、断点续传传输层 .计算机:进程和端口网络层网络:路由器,防火墙、多层交换机数据链路层 网络:网卡,网桥,交换机物理层网络:中继器,集线器、网线、HUB二、 OSI 基础知识OSI/RM 参考模型的提出世界上第一个网络体系结构由 IBM 公司提出(74 年,SNA),以后其他公司也相继提出自己的网络体系结构如:Digital 公司的 DNA,美国国 防部的 TCP/IP 等,多种网络体系结构并存,其结果是若采用 IBM 的结构,只能选用
25、 IBM 的产品,只能与同种结构的网络互联。为了促进计算机网络的发展,国际标准化组织 ISO 于 1977 年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互联模型(OSI 参考,open system interconnection)OSI 的设计目的OSI 模型的设计目的是成为一个所有销售商都能实现的开放网路模型,来克服使用众多私有网络模型所带来的困难和低效性。OSI 是在一个备受尊敬的国际标准团体的参与下完成的,这个组织就是 ISO(国际标准化组织)。什么是 OSI,OSI 是 Open System Interconnection
26、 的缩写,意为开放式系统互联参考模型。在 OSI 出现之前,计算机网络中存在众多的体系结构,其中以 IBM 公司的 SNA(系统网络体系结构 )和 DEC 公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。为了解决不同体系结构的网络的互联问题,国际标准化组织 ISO(注意不要与 OSI 搞混)于 1981 年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。这个模型把网络通信的工作分为 7 层,它们由低到高分别是物理层(Physical Layer),数据链路层(D
27、ata Link Layer),网络层(Network Layer),传输层( Transport Layer),会话层(Session Layer),表示层(Presentation Layer)和应用层( Application Layer)。第一层到第三层属于 OSI 参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为 OSI 参考模型的高四层,具体负责端到端的数据通信。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过 OSI 的全部七层,有的甚至只需要双
28、方对应的某一层即可。物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。OSI 标准制定过程中采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构办法。在 OSI 中,采用了三级抽象,既体系结构,服务定义,协议规格说明。OSI 划分层次的原则网络中各结点都有相同的层次不同结点相同层次具有相同的功能同一结点相邻层间通过接口通信每一层可以使用下层提供的服务,并向上层提供服务不同结点的同等层间通过协议来实现对等层间的通信
29、OSI/RM 分层结构对等层实体间通信时信息的流动过程对等层通信的实质:对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成在发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递.协议数据单元 PDUSI 参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。而传输层及以下各层的 PDU 另外还有各自特定的名称:传输层数据段(Segment) 网络层分组(数据包)(Packet)数据链路层数据帧(Frame)物理层比特(Bit)三、 OSI 的七层结构第一层:物理层(PhysicalLayer)规定通信设备的机械
30、的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输 bit 流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE 和 DCE 之间各个线路的功能;过程特性定义了利用信号线进行 bit 流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE 和 DCE 双方在各电路上的动作系列。在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA R
31、S-449、V.35、RJ-45 等。物理层的主要功能: 为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接, 传送数据,终止物理连接.所谓激活, 就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路. 传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特 (BIT)数), 以减少信道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要. 完成物理层的一些
32、管理工作.物理层的主要设备:中继器、集线器。产品代表:TP-LINK TL-HP8MU 集线器第二层:数据链路层(DataLinkLayer)在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP 、STP、帧中继等。 链路层的主要功能:链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备
33、的功能来实现。链路层应具备如下功能:链路连接的建立,拆除,分离。 帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界。 顺序控制,指对帧的收发顺序的控制。 差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发技术来完成。数据链路层主要设备:二层交换机、网桥产品代表:D-Link DES-1024D第三层:网络层(Network layer)在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就
34、是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。 如果你在谈论一个 IP 地址,那么你是在处理第 3 层的问题,这是“数据包”问题,而不是第 2 层的“帧”。IP 是第 3 层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第 3 层处理。地址解析和路由是 3 层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX 、RIP、OSPF 等。网络层主要功能:网
35、络层为建立网络连接和为上层提供服务,应具备以下主要功能:路由选择和中继 激活,终止网络连接 在一条数据链路上复用多条网络连接,多采取分时复用技术 差错检测与恢复 排序,流量控制 服务选择 网络管理网络层标准简介网络层主要设备:路由器产品代表:TP-LINK TL-R4148第四层:处理信息的传输层(Transport layer)第 4 层的数据单元也称作数据包( packets)。但是,当你谈论 TCP 等具体的协议时又有特殊的叫法,TCP 的数据单元称为段(segments)而 UDP 协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片
36、、乱序到达的数据包和其它在传输过程中可能发生的危险。第 4 层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。 传输层协议的代表包括:TCP、UDP、SPX 等。传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。 传输层也称为运输层.传输层只存在于端开放系统中,是介于低 3 层通信子网系统和高 3 层之间的一层,但
37、是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层.有一个既存事实,即世界上各种通信子网在性能上存在着很大差异.例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率, 数据延迟通信费用各不相同.对于会话层来说,却要求有一性能恒定的界面.传输层就承担了这一功能.它采用分流/合流,复用/ 介复用技术来调节上述通信子网的差异, 使会话层感受不到.此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异.传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口.上述功能的最终目的是为会话提
38、供可靠的,无误的数据传输.传输层的服务一般要经历传输连接建立阶段,数据传送阶段 ,传输连接释放阶段 3 个阶段才算完成一个完整的服务过程.而在数据传送阶段又分为一般数据传送和加速数据传送两种。传输层服务分成 5 种类型.基本可以满足对传送质量,传送速度, 传送费用的各种不同需要.产品代表:NETGEAR GS748TS第五层:会话层(Session layer)这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。 会话层提
39、供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层,表示层 ,应用层构成开放系统的高 3 层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等 . 会话层同样要担负应用进程服务要求,而运输层不能完成的那部分工作,给运输层功能差距以弥补.主要的功能是对话管理,数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合, 已经制定的功能单元已有几十种.现将会话层主要功能介绍如下.为会话实体间建立连接。为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作:将会话地址映
40、射为运输地址 选择需要的运输服务质量参数(QOS) 对会话参数进行协商 识别各个会话连接 传送有限的透明用户数据 数据传输阶段这个阶段是在两个会话用户之间实现有组织的,同步的数据传输.用户数据单元为 SSDU,而协议数据单元为 SPDU.会话用户之间的数据传送过程是将 SSDU 转变成 SPDU 进行的. 连接释放连接释放是通过“有序释放“,“废弃“,“有限量透明用户数据传送 “等功能单元来释放会话连接的.会话层标准为了使会话连接建立阶段能进行功能协商,也为了便于其它国际标准参考和引用,定义了 12 种功能单元. 各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理
41、的会话服务子集.会话层的主要标准有“DIS8236:会话服务定义“和“DIS8237:会话协议规范“.第六层:表示层(Presentation layer)这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于 OSI 系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。例如图像格式的显示,就是由位于表示层的协议来支持。第七层:应用层(Application layer)应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP 、HTTP 、SNMP 等。
42、通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机 B 的应用程序,则计算机 A 中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机 B 。计算机 B 的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B 的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过
43、程。下面图示说明了这一过程。OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。 当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有
44、传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。 例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B 的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随
45、着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。计算机 B 中的物理层收到信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取计算机 A 的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服
46、务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个 OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A 的数据链路层应与其网络层,物理层以及计算机 B 的数据链路层进行通信。 四、 OSI 分层的优点1)人们可以很容易的讨论和学习协议的规范细节。(2)层间的标准接口方便了工程模块化。(3)创建了一个更好的互连环境。(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。(5)每层利用紧邻的下层服务,更容易记住个层的功能。OSI 是一个定义良好的协议规范集,并有许多可选部分完成类似的任务。它定义了开放系统
47、的层次结构、层次之间的相互关系以及各层所包括的可能的任务。是作为一个框架来协调和组织各层所提供的服务。OSI 参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。即 OSI 参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。五、 OSI 模型与 TCP/IP 模型的比较TCP/IP 模型实际上是 OSI 模型的一个浓缩版本,它只有四个层次:1.应用层2.运输层3.网际层4.网络接口层与 OSI 功能相比:应用层对应着 OSI 的 应用层 表示层 会话层运输层对应着 OSI 的传输层网际层对应着 OSI 的网络层网络接口层对应着 OSI 的数据链路层和物理层