跳到主要内容

OSI 与 TCP/IP 参考模型

· 阅读需 13 分钟

最后更新于 2016-06-17 17:39:00

目前流行的两大网络体系结构是 OSI/RM 和 TCP/IP 参考模型,他们均是分层结构。分层是为了简化问题,降低网络设计复杂性,而且各层次结构相互独立,实现的功能也相对独立。层与层之间只在层间接口处关联,层间耦合最小。

OSI(Open System Interconnect)

OSI/RM(Open System Interconnection Reference Module,简称 OSI)即开放系统互联参考模型。为了解决不同网络体系结构的互联、互操作问题,ISO(国际标准化组织)制定了 OSI 模型。OSI 模型把网络通信的工作分为七层,自上而下依次为:

  • 应用层(Application)
  • 表示层(Presentation)
  • 会话层(Session)
  • 传输层(Transport)
  • 网络层(Network)
  • 链路层(Data Link)
  • 物理层(Physical)

第 1-3 层(物理层、链路层、网络层)属于 OSI 参考模型的底层,负责创建网络通信连接的链路,通常称为 通信子网;第 5-7 层(会话层、表示层、应用层)是 OSI 参考模型的高层,具体负责端到端的数据通信、加密/解密、会话控制等,通常称为 资源子网;第 4 层(传输层)是 OSI 参考模型的高层与底层之间的连接层,起着承上启下的作用,是 OSI 参考模型中第一个端到端的层次。

OSI 参考模型中的每一层都能完成一定的功能,直接为上层提供服务,并且所有层次都相互支持,网络通信可以自上而下(发送端)或自下而上(接收端)双向进行。而且每一层的内部结构对上、下层屏蔽不可见,上层依赖于下层所提供的服务,仅通过层间接口进行数据传输,实现层间耦合最小。

通信机制

OSI 参考模型采用逐层传递、对等通信的通信机制。整个通信过程都必须经过一个自上而下(发送端),或自下而上(接收端)的数据传输过程,但通信必须在双方对等层进行。网络中的节点之间要相互通信,必须经过一层一层的信息转换来实现,即源主机向目标主机发送数据,数据必须自上而下逐层封装(数据打包),目标主机接收数据后,必须对封装的数据进行自下而上逐层分解(解封)。对于用户来说,这种数据通信看起来就像是在两台计算机相关联的对等层之间直接进行的,而对同一主机内的相邻层之间的通信是透明的,两台主机的通信就像在通信的双方对应层之间建立了一种逻辑的、虚拟的通信。实际上,真正的通信只发生在同一主机内彼此相邻的两层之间。

OSI 参考模型中,在网络各层的实体之间传送的比特组称为数据单元(Data Unit)。常用的数据单元有服务数据单元(SDU)和协议数据单元(PDU)。 SDU 是在同一主机上的两层之间传送的信息,而 PDU 则是发送主机上每层发送到接受主机上的相应层(对等层)的信息。

OSI 参考模型中第 1-3 层(物理层、链路层、网络层)采用的是点到点传输,而剩下的第 4-7 层(传输层、会话层、表示层、应用层)则采用端到端传输。

物理层(Physical Layer)

物理层规定了通信设备的机械特性、电气特性、功能特性和规程特性,用于建立、维护、拆除物理链路的连接。物理层传输的数据单元是比特(bit)。物理层定义的典型规范有 EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45 等。物理层的典型设备有光纤、同轴电缆、双绞线、中继器、集线器和网卡等。

数据链路层是在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路(逻辑的),通过差错控制提供数据帧在信道上无差错的传输。数据链路层传输的数据单元是帧(Frame)。数据链路层协议主要有 SDLC、HDLC、PPP、STP、帧中继等。数据链路层的典型设备有二层交换机、网桥、网卡等。

网络层(Network Layer)

网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送到目的地。网络层还可以实现拥塞控制、网际互联等功能。网络层传输的数据单元是数据分组(Packet)。网络层协议主要有 IP、IPX、ICMP、IGMP、RIP、OSPF 等。网络层的典型设备就是路由器。

传输层(Transport Layer)

传输层居中,是承上启下层,该层负责获取全部信息,为上层提供端到端的透明的、可靠的数据传输服务。传输层传输的数据单元是报文(Message)或数据包(Packets),具体也可称为数据段(TCP 协议)或数据报(UDP 协议)。传输层协议主要有 TCP、UDP、SPX 等。传输层及以上高层次的典型设备就是各种终端设备(PC、平板、手机等)。

会话层(Session Layer)

会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立、维护应用进程之间通信的机制,如服务器验证用户登录等。会话层及以上的高层次中,数据传送的单元不再另外命名,统称为某层报文。会话层没有具体的协议。

表示层(Presentation Layer)

表示层主要解决用户信息的语法表示、加密/解密、压缩/解压等问题。它将欲交换的数据从适合某一用户的抽象语法,转换为适合 OSI 系统内部使用的传送语法,即提供格式化的表示和转换数据服务。表示层也没有具体的协议。

应用层(Application Layer)

应用层是 OSI 参考模型的最高层,它是服务用户,惟一直接为用户应用进程访问 OSI 环境提供手段和服务的层次,应用层以下各层通过应用层间接地向应用进程提供服务。应用层协议主要有 DNS、Telnet、FTP、HTTP、SMTP、SNMP 等。

TCP/IP(Transmission Control Protocol/Internet Protocol)

TCP/IP(Transmission Control Protocol/Internet Protocol Reference Module,简称 TCP/IP)参考模型就是 TCP/IP 协议栈(协议簇),其中核心协议是 TCP 和 IP。它分为 4 层,与 OSI 参考模型中的分层类似,但并非完全一致。它的四层结构自上而下依次为:

  • 应用层(对应 OSI 中:应用层+表示层+会话层)
  • 传输层(对应 OSI 中:传输层)
  • 网际互联层(对应 OSI 中:网络层)
  • 网络接口层(对应 OSI 中:链路层+物理层)

TCP/IP 协议栈与 OSI 参考模型一样采用逐层传递、对等通信的通信机制。在发送端主机自上而下进行数据的封装,发送到接收端后,接收端主机自下而上进行数据的分用(解封),实现对等层通信。

网络接口层(Network Interface Layer)

网络接口层又称为网络访问层(Network Access Layer),包括 OSI 参考模型中的物理层和链路层,负责向网络物理介质发送数据包,从网络物理介质接受数据包。实际上,TCP/IP 并没有对物理层和链路层进行定义,只是定义了一个接口,并且支持现有的各种底层网络技术和标准。网络接口层涉及操作系统中的设备驱动程序和网络接口设备。

网际互联层(Interconnection Layer)

网际互联层又称为 IP 层,是 TCP/IP 模型中最主要的层次,是整个体系结构的关键部分,负责处理 IP 数据包的传输、路由选择、流量控制和拥塞控制。网际互联层主要协议有网际协议 IP、地址解析协议 ARP、反向地址解析协议 RARP、Internet 控制报文协议 ICMP、组管理协议 IGMP、内部网关协议 IGP、外部网关协议 EGP 等。网际协议 IP 是 TCP/IP 协议栈中的核心协议。

传输层(Transport Layer)

传输层为两台主机上的应用程序提供端到端的通信,该层主要定义了两个端到端的协议:传输控制协议 TCP 和用户数据报协议 UDP。这两种协议对应不同的性质的服务,TCP 为主机提供可靠的面向连接的传输服务;UDP 为应用层提高简单高效的无连接传输服务。

应用层(Application Layer)

应用层包括 OSI 参考模型中的会话层、表示层、应用层,直接为特定的应用提供服务。TCP/IP 协议栈给出了应用层的一些常用协议规范,如文件传输协议 FTP、简单邮件传输协议 SMTP、超文本传输协议 HTTP 等。

OSI 与 TCP/IP 模型比较

  • OSI 模型是一个概念模型,并没有提供一个可供实现的方法;而 TCP/IP 模型是已经被广泛实现的事实标准。OSI 参考模型制定时 TCP/IP 协议已经实现,随后为了实现网络通信标准化通过借鉴 OSI 参考模型制定了 TCP/IP 参考模型。
  • 两种体系结构均能提供面向连接(TCP)和无连接(UDP)两种通信服务机制。
  • TCP/IP 参考模型的网络接口层并不是真正的一层,它没有像 OSI 模型一样定义物理层和链路层,只是定义了一个接口。
  • OSI 参考模型的抽象能力高,降低了各层之间耦合度,适合于描述各种网络;而 TCP/IP 是先有了协议,才制定 TCP/IP 模型的,并且各层之间耦合度相对来说比较高。