TCP/IP 与 OSI:这两种模型有什么区别?
当我们谈论第 2 层交换机和第 3 层以太网交换机时,我们实际上指的是通用协议模型的层——开源互连 (OSI) 模型。它通常用于描述网络通信。如果没有共同的规则来发送和接收数据包,则不同网络之间的数据通信是不可能的。这些规则被称为协议,其中传输控制协议(TCP)/互联网协议(IP)是使用最广泛的协议之一。TCP/IP 模型广泛用于网络描述,比 OSI 模型更老。它们都有很多层,它们之间有什么区别?
OSI 参考模型层
OSI 模型是一种概念模型,它表征和标准化网络通信中涉及的不同软件和硬件组件应如何分工和相互交互。它有七层。
图 1:OSI 模型的七层。
第 7 层:应用层
OSI模型的应用层直接与软件应用程序交互,提供所需的通信功能,最接近终端用户。应用层的功能通常包括验证通信伙伴和资源的可用性以支持任何数据传输。该层还为终端应用定义协议,例如域名系统(DNS)、文件传输协议(FTP)、超文本传输协议(HTTP)、互联网消息访问协议(IMAP)、邮局协议(POP)、简单邮件传输协议 (SMTP)、简单网络管理协议 (SNMP) 和 Telnet(终端仿真)。
第 6 层:表示层
表示层检查数据以确保它与通信资源兼容。它将数据转换成应用层和更低层接受的形式。任何需要的数据格式化或代码转换也由第六层处理,例如将扩展二进制编码十进制交换码 (EBCDIC) 编码的文本文件转换为美国信息交换标准码 (ASCII) 编码的文本文件。它也可用于数据压缩和加密。比如视频通话在传输过程中会被压缩,这样可以更快地传输,数据会在接收端恢复。对于安全性要求较高的数据,例如包含您的密码的短信,将在这一层进行加密。
第 5 层:会话层
会话层控制计算机之间的对话(连接)。它建立、管理、维护并最终终止本地和远程应用程序之间的连接。第 5 层软件还处理身份验证和授权功能。它也验证数据是否已交付。会话层通常在使用远程过程调用的应用程序环境中显式实现。
第 4 层:传输层
传输层提供通过一个或多个网络将数据序列从源主机传输到目标主机的功能和手段,同时保持服务质量(QoS)功能并确保数据的完整传递。数据的完整性可以通过纠错和类似功能来保证。它还可以提供显式的流量控制功能。虽然不严格遵循 OSI 模型,但 TCP 和用户数据报协议 (UDP) 是第 4 层中必不可少的协议。
第三层:网络层
网络层通过逻辑寻址和交换功能处理数据包路由。网络是许多节点可以连接到的媒介。每个节点都有一个地址。当一个节点需要向其他节点传递消息时,它只需要提供消息的内容和目的节点的地址,网络就会想办法将消息传递到目的节点,可能会通过其他节点进行路由。如果消息太长,网络可能会在一个节点将其拆分为多个片段,分别发送它们并在另一个节点重新组装这些片段。
第 2 层:数据链路层
数据链路层提供节点到节点的传输——两个直接连接的节点之间的链接。它处理帧中数据的打包和解包。它定义了在两个物理连接的设备之间建立和终止连接的协议,例如点对点协议 (PPP)。数据链路层一般分为两个子层——媒体访问控制(MAC)层和逻辑链路控制(LLC)层。MAC 层负责控制网络中的设备如何访问媒体和传输数据的权限。LLC层负责识别和封装网络层协议,控制错误检查和帧同步。
第 1 层:物理层
物理层定义了数据连接的电气和物理规范。例如,连接器的引脚布局、电缆的工作电压、光纤电缆的规格以及无线设备的频率。它负责在物理介质中传输和接收非结构化原始数据。比特率控制在物理层完成。它是底层网络设备的层,从不关心协议或其他更高层的项目。
TCP/IP 模型层
TCP/IP 模型也是一个分层的参考模型,但它是一个四层模型。它的另一个名称是 Internet 协议套件。它通常被称为 TCP/IP,因为基础协议是 TCP 和 IP,但在此模型中不仅使用这两个协议。
应用层
TCP/IP 模型的应用层为应用程序提供了访问其他层服务的能力,并定义了应用程序用来交换数据的协议。最广为人知的应用层协议包括 HTTP、FTP、SMTP、Telnet、DNS、SNMP 和路由信息协议 (RIP)。
传输层
传输层,也称为主机到主机传输层,负责为应用层提供会话和数据报通信服务。这一层的核心协议是 TCP 和 UDP。TCP 提供一对一的、面向连接的、可靠的通信服务。它负责对发送的数据包进行排序和确认,以及恢复传输中丢失的数据包。UDP 提供一对一或一对多、无连接、不可靠的通信服务。当要传输的数据量很小(例如该数据适合单个数据包)时,通常使用 UDP。
互联网层
Internet 层负责主机寻址、打包和路由功能。互联网协议层的核心协议是IP、地址解析协议(ARP)、互联网控制消息协议(ICMP)和互联网组管理协议(IGMP)。IP 是一种可路由协议,负责 IP 寻址、路由以及数据包的分段和重组。ARP 负责发现网络访问层地址,例如与给定 Internet 层访问关联的硬件地址。ICMP 负责提供诊断功能并报告由于 IP 数据包传送不成功而导致的错误。IGMP 负责管理IP 组播组。在这一层中,IP 将包头添加到数据包中,这称为 IP 地址。
图 2:IPv4 地址和 IPv6 地址示例。
网络接入层
网络访问层(或链路层)负责将 TCP/IP 数据包放在网络介质上,并从网络介质上接收 TCP/IP 数据包。TCP/IP 被设计为独立于网络访问方法、帧格式和介质。换句话说,它独立于任何特定的网络技术。通过这种方式,TCP/IP 可用于连接不同的网络类型,例如以太网、令牌环、X.25、帧中继和异步传输模式 (ATM)。
传输过程中如何处理数据?
在分层系统中,一层的设备以不同的格式交换数据,称为协议数据单元(PDU)。下表显示了不同层中的 PDU。
表:在不同层处理的协议数据单元 (PDU)。
型号类型OSI 层协议数据单元 (PDU)TCP/IP 层主机层应用层数据应用层表示层会话层会话层应用传输层段 (TCP) / 数据报 (UDP)传输层媒体层网络层包互联网层数据链路层框架网络接入层物理层少量
例如,当用户请求在计算机上浏览一个网站时,远程服务器软件首先将请求的数据提供给应用层,由应用层逐层处理,每一层执行其指定的功能。然后数据通过网络的物理层传输,直到目标服务器或其他设备接收到它。此时,数据再次通过层向上传递,每一层执行其分配的操作,直到数据被接收软件使用。
图 3:数据从上层向下流向下层,每一层都在 PDU 中添加页眉/页脚。
在传输过程中,每一层都向来自上层的 PDU 添加一个标头或页脚,或两者兼有,用于引导和识别数据包。这个过程称为封装。页眉(和页脚)和数据一起形成下一层的 PDU。该过程一直持续到到达最低层(物理层或网络访问层),数据从该层传输到接收设备。接收设备反转该过程,在每一层使用指导操作的页眉和页脚信息对数据进行解封装。然后应用程序最终使用数据。该过程一直持续到所有数据都被发送和接收。
TCP/IP 和 OSI 对故障排除的意义
有了分层的知识,我们就可以在连接失败时诊断出问题出在哪里。原则是从最低层检查,而不是从最高层检查。因为每一层都是为比它高的层服务的,处理低层的问题会更容易。例如,如果您的计算机无法连接互联网,您应该首先检查您的计算机是否插入了网线,或者无线接入点 (WAP) 是否连接到交换机,或者 RJ45 的针脚是否连接器状况良好。
TCP/IP 模型与 OSI 模型
TCP/IP 模型比 OSI 模型更早。下图显示了它们层的对应关系。
图 4:OSI 模型与 TCP/IP 模型以及 TCP/IP 协议套件。
比较 TCP/IP 模型和 OSI 模型的层,TCP/IP 模型的应用层类似于 OSI 第 5、6、7 层的组合,但 TCP/IP 模型没有单独的表示层或会话层。TCP/IP 的传输层包含了 OSI 传输层的职责和 OSI 会话层的一些职责。TCP/IP 模型的网络访问层包括 OSI 模型的数据链路和物理层。请注意,TCP/IP 的 Internet 层没有利用 OSI 模型的数据链路层中可能存在的排序和确认服务。TCP/IP 模型中的传输层负责。
考虑到这两个参考模型的含义,OSI 模型只是一个概念模型。它主要用于描述、讨论和理解单个网络功能。然而,TCP/IP 最初是为了解决一组特定的问题而设计的,而不是像 OSI 模型那样充当所有网络通信的生成描述。OSI 模型是通用的、独立于协议的,但大多数协议和系统都遵循它,而 TCP/IP 模型是基于 Internet 开发的标准协议。在 OSI 模型中应该注意的另一件事是,并非所有层都用于更简单的应用程序。虽然第 1、2、3 层对于任何数据通信都是必需的,但应用程序可能会使用一些独特的接口层到应用程序,而不是模型中通常的上层。
概括
TCP/IP 模型和 OSI 模型都是用于描述所有网络通信的概念模型,而 TCP/IP 本身也是所有 Internet 操作中使用的重要协议。通常,当我们谈论网络设备工作的第 2 层、第 3 层或第 7 层时,我们指的是 OSI 模型。TCP/IP 模型既用于对当前的 Internet 体系结构进行建模,又用于提供一组规则,所有形式的网络传输都遵循这些规则。