OSI 七层协议模型
OSI 七层模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。其中,OSI 是 Open System Interconnection 的缩写。因此,通常又称为一般称为 OSI 参考模型或七层模型。
然而,由于 OSI 模型过于复杂。在实际应用中,技术人员将其简化为四层模型(OSI 七层协议中的应用层、表示层、会话层,对应着 TCP/IP 四层协议中的应用层),并基于四层模型开发出了 TCP/IP 协议栈,获得了更广泛的使用,成为了事实上的标准。
下图展示了 OSI 七层模型和 TCP/IP 四层模型的区别。
会话层负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式。
会话层常见的协议有:
- RPC(Remote Procedure Call Protocol,远程过程调用协议)
- SQL(Structured Query Language)
- NFS(Network File System)
物理层
为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。并可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议和服务。 它的传输单位是比特流,解决用户在使用时对物理传输介质建立、维持和释放问题。
物理层特性:
- 机械特性。指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。这很像平时常见的各种规格的电源插头的尺寸都有严格的规定。 (例如双绞线标准)
- 电气特性。物理层的电气特性规定了在物理连接上传输二进制位流时线路上信号电压高低、阻抗匹配情况、传输速率和距离的限制等。
- 功能特性。规定了接口信号的来源、作用以及其他信号之间的关系。即物理接口上各条信号线的功能分配和确切定义。物理接口信号线一般分为数据线、控制线、定时线和地线。
- 规程特性。定义了再信号线上进行二进制比特流传输的一组操作过程,包括各信号线的工作顺序和时序,使得比特流传输得以完成。
传输数据单位:比特流 也就是所谓电流
数据链路层
数据链路层定义了在单个链路上如何传输数据,数据链路层必须具备 一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧,帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。
- 物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式
- 网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构
- 错误校验向发生传输错误的上层协议告警
- 数据帧序列重新整理并传输除序列以外的帧
- 流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。
数据链路层实际上由两个独立的部分组成,媒体访问控制(Media Access Control, MAC)和逻辑链路控制层(Logical Link Control, LLC)。MAC 描述在共享介质环境中如何进行帧的调度、发生和接收数据。MAC 确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC 只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC 规则定义了地址,以标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2 标准定义了 LLC。LLC 支持无连接服务和面向连接的服务。在数据链路层的信息帧中定义了许多域。这些域使得多种高层协议可以共享一个物理数据链路。
数据链路层主要有两个功能 :帧编码和误差纠正控制。
帧编码
为了使传输中发生差错后只将有错的有限数据进行重发,数据链路层将比特流组合成以帧为单位传送。每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。帧的组织结构必须设计成使接收方能够 明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止,这就是帧同步要解决的问题。
- 字节计数法
- 使用字符填充的首尾定界符法
- 使用比特填充的首尾标志法
- 违法编码法
误差纠正控制
一个实用的通信系统必须具备发现(即检测)这种差错的能力,并采取某种措施纠正之,使差错被控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。
数据链路层的主要协议有:
- 点对点协议(Point-to-Point Protocol);
- 以太网(Ethernet);
- 高级数据链路协议(High-Level Data Link Protocol);
- 帧中继(Frame Relay);
- 异步传输模式(Asynchronous Transfer Mode);
网络层
网络层负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同 MAC 标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的MAC标准之间的数据传输都涉及到网络层。例如 IP 路由器工作在网络层,因而可以实现多种网络间的互联。
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路由选择、路由及逻辑寻址”。
路由选择
- 静态路由:静态路由选择策略不用测量也无须利用网络信息,这种策略按某种固定规则进行路由选择。其中还可分为泛射路由选择、固定路由选择和随机路由选择三种算法。
- 泛射路由选择。这是一种最简单的路由算法。一个网络节点从某条线路收到一个分组后,再向除该条线路外的所有线路重复发送收到的分组。
- 固定路由选择。这是一种使用较多的简单算法。每个网络节点存储一张表格,表格中每一项记录对应着某个目的节点或链路。
- 随机路由选择。在这种方法中,收到分组的节点,在所有与之相邻的节点中为分组随机选择一个出路节点。方法虽然简单,也较可靠,但实际路由不是最佳路由,增加了不必要的负担,而且分组传输延迟也不可预测,故此法应用不广。
- 动态路由:节点路由选择要依靠网络当前的状态信息来决定的策略称动态路由选择策略,这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能。但由于算法复杂,会增加网络的负担,有时会因反应太快引起振荡或反应太慢不起作用。独立路由选择、集中路由选择和分布路由选择是三种动态路由选择策略的具体算法。
- 独立路由选择:在这类路由算法中,节点仅根据自己搜到的有关信息作出路由选择的决定,与其它节点不交换路由选择信息,虽然不能正确确定距离本节点较远的路由选择,但还是能较好地适应网络流量和拓扑结构的变化。
- 集中路由选择:集中路由选择也象固定路由选择一样,在每个节点上存储一张路由表。
- 分布路由选 择:采用分布路由选择算法的网络,所有节点定期地与其每个相邻节点交换路由选择信息。
网络层协议
TCP/IP网络层的核心是IP协议,它是TCP/IP协议族中最主要的协议之一。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。
- IP地址。TCP/IP网络使用32位长度的地址以标识一台计算机和同它相连的网络,它的格式为:IP地址=网络地址+主机地址。IP地址是通过它的格式分类的,它有四种格式:A类、B类、C类、D类。
- 地址解析。ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
- 逆地址解析。网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中)。
- 因特网报文。ICMP的作用:由于IP协议的两个缺陷:没有差错控制和查询机制,因此产生了ICMP。ICMP主要是为了提高IP数据报成功交付的机会,在IP数据报传输的过程中进行差错报告和查询,比如目的主机或网络不可到达,报文被丢弃,路由阻塞,查询目的网络是否可以到达等等。
- 因特网组管理协议称为IGMP协议(Internet Group Management Protocol),主机IP软件需要进行组播扩展, 才能使主机能够在本地网络上收发组播分组。但仅靠这一点是不够的,因为跨越多个网络的组播转发必须依赖于路由器。路由器为建立组播转发路由必需了解每个组员在Internet中的分布,这要求主机必须能将其所在的组播组通知给本地路由器,这也是建立组播转发路由的基础。主机与本地路由器之间使用Internet组管理协议来进行组播组成员信息的交互。
传输层
传输层是国际标准化组织提出的开放系统互连(OSI)参考模型中的第四层。传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。
传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。而在数据传送阶段又分为一般数据传送和加速数据传送两种形式。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。传输层提供逻辑连接的建立、传输层寻址、数据传输、传输连接释放、流量控制、拥塞控制、多路复用和解复用、崩溃恢复等服务。
在这一层,信息传送的协议数据单元称为段或报文。
网络层只是根 据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下:
- 分割与重组数据
- 按端口号寻址
- 连接管理
- 差错控制和流量控制,纠错的功能
传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。
传输层既是OSI层模型中负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的高三层之间的中间层,并向高层用户屏蔽通信子网的细节。
会话层
会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。
会话层(Session)是建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。
- 为会话实体间建立连接。为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作
- 将会话地址映射为运输地址
- 选择需要的运输服务质量参数(QOS)
- 对会话参数进行协商
- 识别各个会话连接
- 传送有限的透明用户数据
- 数据传输阶段。这个阶段是在两个会话用户之间实现有组织的,同步的数据传输.用户数据单元为SSDU,而协议数据单元为会话用户之间的数据传送过程是将SSDU转变成SPDU进行的。
- 连接释放。连接释 放是通过”有序释放”,”废弃”,”有限量透明用户数据传送”等功能单元来释放会话连接的。
表示层
表示层位于OSI分层结构的第六层,它的主要作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。与第五层提供透明的数据运输不同,表示层是处理所有与数据表示及运输有关的问题,包括转换、加密和压缩。
表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机系统可以相互交换数据;转化模式通过使用不同的文本和数据表示,在系统间交换信息,例如 ASCII(American Standard Code for Information Interchange,美国标准信息交换码);标准数据压缩模式确保原始设备上被压缩的数据可以在目标设备上正确的解压;加密模式确保原始设备上加密的数据可以在目标设备上正确地解密。
表示层协议一般不与特殊的协议栈关联,如 QuickTime 是 Apple 计算机的视频和音频的标准,MPEG 是 ISO 的视频压缩与编码标准。常见的图形图像格式 PNG、GIF、JPEG 是不同的静态图像压缩和编码标准。
应用层
应用层是最接近终端用户的 OSI 层,这就意味着 OSI 应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的 API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了 OSI 模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。
OSI 的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP、DNS等。