原文链接:What is OSI Model | 7 Layers Explained
目录
Layer 1 – 物理层 (Physical Layer)
Layer 2 – 数据链路层(Data Link Layer (DLL))
Layer 4 – 传输层(Transport Layer)
Layer 6 – 表示层(Presentation Layer)
Layer 7 – 应用层(Application Layer)
OSI(开放系统互连 (Open Systems Interconnection))模型是一组解释不同计算机系统如何在网络上通信的规则。OSI模型是由国际标准化组织(ISO - International Organization for Standardization)开发的。OSI模型由7层组成,每一层都有特定的功能和职责。
这种分层的方法使不同的设备和技术更容易协同工作。OSI模型为数据传输和管理网络问题提供了一个清晰的结构。OSI模型被广泛用作理解网络系统如何运行的参考。
在本文中,我们将详细讨论OSI模型和OSI模型的每一层。我们还将讨论OSI模型中的数据流以及OSI模型与TCP/IP模型的不同之处。
Layer 1 – 物理层 (Physical Layer)
OSI参考模型的最低层是物理层。它负责设备之间的实际物理连接。物理层包含比特(bits)形式的信息。物理层负责将单个比特(bits)从一个节点(node)传输到下一个节点。当接收数据时,该层将接收到的信号转换成0和1发送给数据链路层(Data Link layer),Data Link layer 将帧重新组合在一起。
设备
常见的物理层设备有集线器( Hub)、中继器(Repeater)、调制解调器(Modem )和电缆(Cables)。
Physical Layer的功能
位同步:(Bit Synchronization)
物理层通过提供时钟(clock)来实现位的同步。这个时钟控制发送方和接收方,从而在 bit 级别(bit level)上提供同步。
比特率控制:(Bit Rate Control: )
物理层还定义传输速率,即每秒发送的比特数。
物理拓扑:(Physical Topologies:)
物理层指定不同的设备/节点如何在网络中排列,即总线拓扑(bus topology),星型拓扑(star topology )或网状拓扑(mesh topology)。
传输模式:(Transmission Mode:)
物理层还定义了数据在连接的两个设备之间的流动方式。各种可能的传输模式是单工(Simplex)、半双工和全双工( half-duplex and full-duplex )。
Layer 2 – 数据链路层(Data Link Layer (DLL))
数据链路层负责消息的节点到节点(node-to-node)传递。这一层的主要功能是确保数据在物理层上从一个节点到另一个节点的传输没有错误(error-free)。当数据包(packet)到达网络时,DLL负责使用其MAC地址(MAC address)将其传输到主机。数据链路层中的数据包称为帧(Frame)。
设备
交换机和网桥(Switches and Bridges )是常见的数据链路层设备。
数据链路层分为两个子层:
从网络层接收的数据包(packet)根据网卡(NIC(Network Interface Card))的帧大小进一步分成帧(frames)。DLL还在头文件中封装(encapsulates)了发送方和接收方的MAC地址。
接收方的MAC地址是通过在网络上传输一个ARP(地址解析协议- ARP(Address Resolution Protocol))请求来获得的,请求问道“谁拥有该IP地址?”,目标主机将用它的MAC地址回复。
Data Link Layer 的功能
分帧:(Framing)
分帧是数据链路层的一个功能。它为发送方提供了一种传输一组对接收方有意义的比特的方法。这可以通过在帧的开头和结尾附加特殊的位模式来实现。
物理寻址:(Physical Addressing:)
创建帧后,数据链路层在每个帧的报头中添加发送方和/或接收方的物理地址(MAC地址)。
错误控制:(Error Control: )
数据链路层提供错误控制机制,检测并重传损坏或丢失的帧。
流量控制:(Flow Control: )
双方的数据速率必须保持不变(constant),否则数据可能会损坏,因此,流量控制协调接收确认之前可以发送的数据量。
访问控制:(Access Control: )
当一个通信通道由多个设备共享时,数据链路层的MAC子层有助于确定哪个设备在给定时间对该通道具有控制权。
Layer 3 – 网络层(Network Layer)
网络层用于将数据从一台主机传输到位于不同网络中的另一台主机。它还负责数据包路由(packet routing),即从可用的路由数量中选择传输数据包的最短路径。发送方和接收方的IP地址( IP address)由网络层放在报头中。网络层中的段(Segment)称为包(Packet)。
设备
网络层是由路由器、交换机等网络设备实现的。
Network Layer的功能
路由:(Routing)
网络层协议决定从源到目的的合适路由。网络层的这个功能被称为路由。
逻辑寻址:(Logical Addressing:)
为了唯一地标识网络间(inter-network)的每个设备,网络层定义了一个寻址方案(addressing scheme)。发送方和接收方的IP地址由网络层放在报头中。这样的地址可以唯一地、普遍地区分每个设备。
Layer 4 – 传输层(Transport Layer)
传输层向应用层提供服务,并从网络层获取服务。传输层中的数据被称为段(Segments)。它负责完整消息的端到端传递。传输层还提供数据传输成功的确认,并在发现错误时重新传输数据。传输层使用的协议有TCP(TCP)、UDP(UDP)、NetBIOS(NetBIOS)、PPTP(PPTP)。
在发送端,传输层从上层接收格式化的数据,执行分段(Segmentation),并实现流和错误控制(Flow and error control),以确保正确的数据传输。它还在其报头中添加源端口号和目的端口号(port number),并将分段数据转发到网络层。
一般情况下,该目的端口号是默认配置或手动配置的。例如,当web应用程序请求web服务器时,它通常使用端口号80,因为这是分配给web应用程序的默认端口。许多应用程序都分配了默认端口。
在接收端,传输层从其报头读取端口号,并将接收到的数据转发给相应的应用程序。它还执行分段数据的排序和重组(sequencing and reassembling)。
Transport Layer 的功能
分割和重组:(Segmentation and Reassembly: )
这一层接受来自(会话 - session)层的消息,并将消息分解成更小的单元。生成的每个片段都有一个与之相关的头(header)。目的站(destination station)的传输层重新组装消息。
服务点寻址:(Service Point Addressing: )
为了将消息传递到正确的进程,传输层报头包含一种称为服务点地址或端口地址(service point address or port address.)的地址类型。因此,通过指定此地址,传输层确保将消息传递到正确的进程。
传输层提供的服务
面向连接的服务 Connection-Oriented Service
无连接服务 Connectionless Service
Layer 5 – 会话层(Session Layer)
OSI模型中的会话层负责在两个设备之间建立连接、管理连接、终止会话。它还提供身份验证(authentication)和安全性(security)。会话层使用的协议有NetBIOS、PPTP。
Session Layer的功能
会话建立、维护和终止:(Session Establishment, Maintenance, and Termination: )
该层允许两个进程建立、使用和终止连接。
同步:(Synchronization)
这一层允许进程添加检查点(checkpoints ),这些检查点被认为是数据中的同步点。这些同步点有助于识别错误,以便正确地重新同步数据,并且不会过早地(prematurely)切断消息的结尾,从而避免数据丢失。
对话控制器:(Dialog Controller: )
会话层允许两个系统以半双工或全双工(half-duplex or full-duplex)方式开始相互通信。
例子
让我们考虑这样一个场景:用户希望通过浏览器中运行的Messenger应用程序发送消息。这里的“Messenger”充当应用层,为用户提供创建数据的接口。该消息或所谓的数据被压缩,可选地加密(如果数据是敏感的),并转换成比特(0和1),以便可以传输。
Layer 6 – 表示层(Presentation Layer)
表示层也称为Translation layer.。来自应用层的数据在这里被提取,并按照所需的格式进行操作,以便在网络上传输。表示层使用的协议有JPEG、MPEG、GIF、TLS/SSL等。
Presentation Layer的功能
转换:(Translation:)
例如,从ASCII到EBCDIC。
加密/解密:(Encryption/ Decryption: )
数据加密将数据转换为另一种形式或代码。加密的数据称为密文(ciphertext),解密的数据称为明文(plain text)。密钥值(key value)用于对数据进行加密和解密。
压缩:(Compression)
减少需要在网络上传输的比特数。
Layer 7 – 应用层(Application Layer)
在OSI参考模型层栈的最顶层,我们发现了由网络应用程序实现的应用层。这些应用程序产生要在网络上传输的数据。这一层还充当应用程序服务访问网络和向用户显示接收到的信息的窗口。应用层使用的协议有SMTP, FTP, DNS等。
Application Layer的功能
网络虚拟终端(NVT):(Network Virtual Terminal(NVT) )
允许用户登录到远程主机。
文件传输访问和管理(FTAM):(File Transfer Access and Management(FTAM):)
该应用程序允许用户访问远程主机中的文件,检索远程主机中的文件,并从远程计算机管理或控制文件。
邮件服务:(Mail Services: )
提供电子邮件服务。
目录服务:(Directory Services: )
该应用程序提供分布式数据库源和对各种对象和服务的全局信息的访问。
数据流向过程
当我们将信息从一个设备传输到另一个设备时,它要经过(travels down)OSI模型的7层。首先,数据从发送端经过7层传输,然后在接收端爬回(climbs back)7层。
数据流通过OSI模型一步一步的过程:
应用层:应用程序创建数据。
表示层:数据被格式化和加密。
会话层:建立和管理连接。
传输层:数据被分割成段,以便可靠地传输。
网络层:将网段打包成报文并进行路由。
数据链路层(Data Link Layer):数据包成帧后发送到下一个设备。
物理层:帧被转换成比特并进行物理传输。
每一层都添加特定的信息,以确保数据正确到达目的地,这些步骤在到达目的地后颠倒过来(reversed)。
通过下面的例子,我们可以理解数据是如何通过OSI模型流动的。
假设A给他的朋友B发了一封电子邮件。
步骤1:人员A与Gmail、outlook等电子邮件应用程序交互。写他的电子邮件发送。(这发生在应用层)。
第二步:在表示层,邮件应用程序为数据传输做准备,如对数据进行加密和格式化以供传输。
步骤3:在会话层,在互联网上的发送方和接收方之间建立了连接。
第四步:在传输层,电子邮件数据被分成更小的部分。它增加了序列号和错误检查信息,以保持信息的可靠性。
第五步:在网络层,对数据包进行寻址,以便找到最佳的传输路径。
第六步:在数据链路层,数据包被封装成帧,然后为本地设备添加MAC地址,然后使用错误检测来检查错误。
第7步:在物理层,帧以电信号/光信号的形式通过物理网络介质(如以太网电缆或WiFi)传输。
在电子邮件到达接收者(即B)之后,该过程将反转并解密电子邮件内容。最后,邮件将显示在Person B的邮件客户端上。
各层所使用的协议
OSI Model 为什么重要?
OSI模型很重要,因为它为用户提供了“数据如何在网络中移动”的清晰结构。由于OSI模型由7层组成,每一层都有其特定的作用,因此它有助于通过关注其中一层而不是整个网络来轻松理解,识别和解决复杂的网络问题。
由于现代互联网不太喜欢OSI模型,但OSI模型仍然对解决网络问题非常有帮助。它可以帮助人们很容易地理解网络概念。
OSI and TCP/IP 模型的不同
OSI代表开放系统互连。 (Open Systems Interconnection.) | TCP/IP代表传输控制协议/互联网协议。 (Transmission Control Protocol/Internet Protocol.) |
OSI模型有7层。 | TCP/IP模型由4层组成。 |
在OSI模型中,包的传递是有保证的。 | 在TCP/IP模型中不能保证包的传递。 |
在OSI模型中,数据传输只需要第1、2和3层。 | 数据传输需要TCP/IP模型的所有层。 |
每一层的协议都是相互独立的。 | TCP/IP模型的各层是集成的,有些层是其他层所需要的。 |
OSI模型是一个概念框架,在实际应用中较少使用。 | 广泛应用于Internet和通信系统等实际网络中。 |
Advantages of OSI Model
OSI模型将计算系统的通信定义为7个不同的层。其优点包括:
它将网络通信分为7层,使其更容易理解和排除故障。
它使网络通信标准化,因为每一层都有固定的功能和协议。
使用OSI模型更容易诊断网络问题。
因为每一层都可以单独获得更新,所以更容易通过进程进行完善。
Disadvantages of OSI Model
OSI模型有七层,对于初学者来说可能很复杂,很难理解。
在实际的网络中,大多数系统使用一种更简单的模型,称为Internet协议组( Internet protocol suite)(TCP/IP),因此OSI模型并不总是直接适用。
OSI模型中的每一层都添加了自己的一套规则和操作,这可能会使整个过程更耗时,效率更低。
OSI模型更多的是一个理论框架,这意味着它对于理解概念很好,但对于实现并不总是实用的。