计算机网络 协议与OSI模型

mac2025-09-12  5

目录

协议

简介

分组交换协议

计算机通信的诞生及其标准化  OSI与TCP/IP协议

OSI参考模型

简介

OSI协议与OSI参考模型

OSI参考模型中各个分层的作用

OSI参考模型通信处理举例

应用层

表示层

会话层

传输层

网络层

网络层与传输层区别

数据链路层、物理层

主机B端


协议

简介

简单来说,协议就是计算机与计算机之间通过网络实现通信时事先达成的一 种“约定”。这种“约定“使那些由不同厂商的设备、不同的CPU以及不同的操 作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果所 使用的协议不同,就无法实现通信。这就好比两个人使用不同国家的语言说话, 怎么也无法相互理解。协议可以分为很多种,每一种协议都明确地界定了它的行 为规范。两台计算机之间必须能够支持相同的协议,并遵循相同协议进行处理, 这样才能实现相互通信。

人们平常说话时根本不需要特别注意就能顺其自然地吐字、发音。并且在很 多场合,人类能够根据对方的语义、声音或表情,合理地调整自己的表达方式和 所要传达的内容,从而避免给对方造成误解。甚至有时在谈话过程中如果不小心 漏掉几个词,也能从谈话的语境和上下文中猜出对方所要表达的大体意思,不至 千影响自己的理解。然而计算机做不到这一点。因此,在设计计算机程序与硬件 时,要充分考虑通信过程中可能会遇到的各种异常以及对异常的处理。在实际遇 到问题时,正在通信的计算机之间也必须具备相应的设备和程序以应对异常。

在计算机通信中,事先达成一个详细的约定,并遵循这一约定进行处理尤为 重要。这种约定其实就是“协议”。

分组交换协议

当人们邮寄包裹时,通常会填写一个寄件单贴到包裹上再交给邮局。寄件单 上一般会有寄件人和收件人的详细地址。类似地,计算机通信也会在每一个分组 中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地 址以及分组序号写人的部分称为"报文首部”。

一个较大的数据被分为多个分组时,为了标明是原始数据中的哪一部分,就 有必要将分组的序号写人包中。接收端会根据这个序号,再将每个分组按照序号 重新装配为原始数据。

通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信 息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等。为了 双方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定 义和解释。

那么,通信协议到底由谁来规定呢?为了能够让不同厂商生产的计算机相互 通信,有这么一个组织,它制定通信协议的规范,定义国际通用的标准。

计算机通信的诞生及其标准化  OSI与TCP/IP协议

在计算机通信诞生之初,系统化与标准化并未得到足够的重视。每家计算机 厂商都出产各自的网络产品来实现计算机通信。对于协议的系统化、分层化等事 宜没有特别强烈的意识。

1974年,IBM公司发布了SNA, 将本公司的计算机通信技术作为系统化网络 体系结构公之千众。从此,计算机厂商也纷纷发布各自的网络体系结构,引发了 众多协议的系统化进程。然而,各家厂商的各种网络体系结构、各种协议之间并 不相互兼容。即使是从物理层面上连接了两台异构的计算机,由于它们之间采用 的网络体系结构不同,支持的协议不同,仍然无法实现正常的通信。

这对用户来说极其不便。因为这意味着起初采用了哪个厂商的计算机网络产 品就只能一直使用同一厂商的产品。若相应的厂商破产或产品超过服务期限,就 得将整套网络设备全部换掉。此外,因为不同部门之间使用的网络产品互不相同, 所以就算将它们从物理上相互连接起来了也无法实现通信,这种情况亦不在少数。 灵活性和可扩展性的缺乏使得当时的用户对计算机通信难以应用自如。

为了解决上述问题,ISO 制定了一个国际标准OSI, 对通信系统进行了标 准化。现在,OSI所定义的协议虽然并没有得到普及,但是在OSI协议设计之初 作为其指导方针的OSI参考模型却常被用千网络协议的制定当中。

TCP/IP并非ISO所制定的某种国际标准。而是由IETF所 建议的、致力于推进其标准化作业的一种协议。在当时,大学等研究机构和计算 机行业作为中心力量,推动了TCP/IP的标准化进程。TCP/IP作为互联网之上的 一种标准,也作为业界标准,俨然已成为全世界所广泛应用的通信协议。那些支持互联网的设备及软件,也正着力遵循由IETF标准化的TCP/IP协议。

协议得以标准化也使所有遵循标准协议的设备不再因计算机硬件或操作系统 的差异而无法通信。因此,协议的标准化也推动了计算机网络的普及。

OSI参考模型

简介

ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论, 最终提出了作为通信协议设计指标的OSI参考模型。这一模型将通信协议中必要 的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。

在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为 自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做"接口"。同一层之间的交互所遵循的约定叫做“协议”。

协议分层就如同计算机软件中的模块化开发。OSI参考模型的建议是比较理 想化的。它希望实现从第一层到第七层的所有模块,并将它们组合起来实现网络 通信。分层可以将每个分层独立使用,即使系统中某些分层发生变化,也不会波 及整个系统。因此,可以构造一个扩展性和灵活性都较强的系统。此外,通过分 层能够细分通信功能,更易于单独实现每个分层的协议,并界定各个分层的具体 责任和义务。这些都属千分层的优点。

而分层的劣势,可能就在千过分模块化、使处理变得更加沉重以及每个模块 都不得不实现相似的处理逻辑等问题。

OSI参考模型将这样一个复杂的协议整理并分为了易于理解的7个分层。

OSI参考模型对通信中必要的功能做了很好的归纳。网络工程师在讨论协议 相关问题时也经常以OSI参考模型的分层为原型。对千计算机网络的初学者,学 习OSI参考模型可以说是通往成功的第一步。

不过,OSI参考模型终究是一个“模型”,它也只是对各层的作用做了一系列 粗略的界定,并没有对协议和接口进行详细的定义。它对学习和设计协议只能起 到一个引导的作用。因此,若想要了解协议的更多细节,还是有必要参考每个协 议本身的具体规范。

许多通信协议,都对应了OSI参考模型7个分层中的某层。通过这一点,可 以大致了解该协议在整个通信功能中的位置和作用。

虽然要仔细阅读相应的规范说明书才能了解协议的具体内容,但是对于其大 致的作用可以通过其所对应的OSI模型层来找到方向。这也是为什么在学习每一 种协议之前,首先要学习OSI模型。

OSI协议与OSI参考模型

介绍的是OSI参考模型。然而人们也时常会听到OSI协议这个 词。OSI协议是为了让异构的计算机之间能够相互通信的、由ISO和ITU­T推进其标准化的一种网络体系结构。

OSI (参考模型)将通信功能划分为7个分层,称作OSI参考模型。OSI 协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关 的标准。遵循OSI协议的产品叫OSI产品,而它们所遵循的通信则被称为OSI 通信。由于"OSI参考模型”与"OSI协议”指代意义不同,请勿混淆。

虽然实际的TCP/IP分层模型与OSI还有这若 干区别,借助OSI参考模型可以有助于加深对TCP/IP的理解。

OSI参考模型中各个分层的作用

应用层

为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。

表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换 为上层能够处理的格式。因此它主要负责数据格式的转换。

具体来说,就是将设备固有的数据格式转换为网络标准传输格式。不同设备 对同一比特流解释的结果可能会不同。因此,使它们保持一致是这一层的主要 作用。

会话层

负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。

传输层

起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。

网络层

将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某 一个地址。因此这一层主要负责寻址和路由选择。

数据链路层

负责物理层面上互连的、节点之间的通信传输。例如与l个以太网相连的2 个节点之间的通信。

将0、l序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。

物理层

负责0、1比特流(O、l序列)与电压的高低、光的闪灭之间的互换。

OSI参考模型通信处理举例

在7层OSI模型中,如何模块化通信传输?

分析方法可以借鉴语言与电话机组成的2层模型。发送方从第7层、 第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7 层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的 数据时可以附上当前分层的协议所必须的“首部“信息。然后接收端对收到的数 据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的 数据恢复为原状。

例子:收发邮件

应用层

用户A在主机A上新建一封电子邮件,指定收件人为B, 并输入邮件内容为 “早上好”。

收发邮件的这款软件从功能上可以分为两大类:一部分是与通信相关的,另 一部分是与通信无关的。例如用户A从键盘输入“早上好”的这一部分就属千与 通信无关的功能,而将“早上好”的内容发送给收件人B则是其与通信相关的功 能。因此,此处的"输入电子邮件内容后发送给目标地址”也就相当于应用层。

从用户输入完所要发送的内容并点击“发送”按钮的那一刻开始,就进入了 应用层协议的处理。该协议会在所要传送数据的前端附加一个首部(标签)信 息。该首部标明了邮件内容为“早上好”和收件人为"B"。这一附有首部信息的 数据传送给主机B以后由该主机上的收发邮件软件通过“收信”功能获取内容。 主机B上的应用收到由主机A发送过来的数据后,分析其数据首部与数据正文,如果收件人的邮箱空间已满无法接收新的邮件,则会返回一个错误给发送方。对这 类异常的处理也正属于应用层需要解决的问题。

表示层

表示层的”表示“有”表现“、”演示"的意思,因此更关注数据的具体表 现形式。此外,所使用的应用软件本身的不同也会导致数据的表现形式截然不 同。例如有的字处理软件创建的文件只能由该字处理器厂商所提供的特定版本的 软件才来打开读取。

那么,电子邮件中如果遇到此类问题该如何解决呢?如果用户A与用户B所 使用的邮件客户端软件完全一致,就能够顺利收取和阅读邮件,不会遇到类似的 问题。但是这在现实生活当中是不大可能的。让所有用户于篇一律地使用同一款 客户端软件对使用者来说也是极不方便的一件事情。

解决这类问题有以下几种方法。首先是利用表示层,将数据从“某个计算机 特定的数据格式”转换为“网络通用的标准数据格式”后再发送出去。接收端主 机收到数据以后将这些网络标准格式的数据恢复为"该计算机特定的数据格式... 然后再进行相应处理。

在前面这个例子中,由于数据被转换为通用标准的格式后再进行处理,使得 异构的机型之间也能保持数据的一致性。这也正是表示层的作用所在。即表示层 是进行“统一的网络数据格式”与“某一台计算机或某一款软件特有的数据格 式”之间相互转换的分层。

此例中的“早上好”这段文字根据其编码格式被转换成为了“统一的网络数据 格式”。即便是一段简单的文字流,也可以有众多复杂的编码格式。就拿日语文字 来说,有EUC-JP、Shift_JIS、ISO- 2022- JP、UTF-8以及UTF-16等很多编码格式。如果未能按照特定格式编码,那么在接收端就是收到邮件也可能会是乱码"'。

表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输 的数据转交给下一层去处理。

会话层

在两端主机的会话层之间是如何高效地进行数据交互,采用何种方法传输数据的。

假定用户A新建了5封电子邮件准备发给用户B。这5封邮件的发送顺序可 以有很多种。例如,可以每发一封邮件时建立一次连接,I',随后断开连接。还可以一经建立好连接后就将5封邮件连续发送给对方。甚至可以同时建立好5个连 接,将5封邮件同时发送给对方。决定采用何种连接方法是会话层的主要责任。

会话层也像应用层或表示层那样,在其收到的数据前端附加首部或标签信息 后再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。

传输层

主机A确保与主机B之间的通信并准备发送数据。这一过程叫做“建立连 接"。有了这个通信连接就可以使主机A发送的电子邮件到达主机B中,并由主 机B的邮件处理程序获取最终数据。此外,当通信传输结束后,有必要将连接 断开。

如上,进行建立连接或断开连接的处理,在两个主机之间创建逻辑上的通 信连接即是传输层的主要作用。此外,传输层为确保所传输的数据到达目标地址, 会在通信两端的计算机之间进行确认,如果数据没有到达,它会负责进行重发。

例如,主机A将“早上好”这一数据发送给主机B。期间可能会因为某些原 因导致数据被破坏,或由千发生某种网络异常致使只有一部分数据到达目标地址。 假设主机B只收到了“早上“这一部分数据,那么它会在收到数据后将自己没有收到“早上”之后那部分数据的事实告知主机A。主机A得知这个情况后就会将 后面的“好”重发给主机B, 并再次确认对端是否收到。

这就好比人们日常会话中的确认语句:“对了,你刚才说什么来着?”计算机 通信协议其实并没有想象中那么晦涩难懂,其基本原理是与我们的日常生活紧密 相连、大同小异的。

由此可见,保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠 性,在这一层也会为所要传输的数据附加首部以识别这一分层的数据。然而,实 际上将数据传输给对端的处理是由网络层来完成的。

网络层

网络层的作用是在网络与网络相互连接的环境中,将数据从发送端主机发送 到接收端主机。两端主机之间虽然有众多数据链路,但能够将数据从主机A送到主机B也都是网络层的功劳。

在实际发送数据时,目的地址至关重要。这个地址是进行通信的网络中唯 一指定的序号。也可以把它想象为我们日常生活中使用的电话号码。只要这个目 标地址确定了,就可以在众多计算机中选出该目标地址所对应的计算机发送数据。 基于这个地址,就可以在网络层进行数据包的发送处理。而有了地址和网络层的 包发送处理,就可以将数据发送到世界上任何一台互连设备。网络层中也会将其 从上层收到的数据和地址信息等一起发送给下面的数据链路层,进行后面的处理。

网络层与传输层区别

在不同的网络体系结构下,网络层有时也不能保证数据的可达性。

例如在相当于TCP/IP网络层的IP协议中,就不能保证数据一定会发送 到对端地址。因此,数据传送过程中出现数据丢失、顺序混乱等问题可 能性会大大增加。像这样没有可靠性传输要求的网络层中,可以由传输 层负责提供“正确传输数据的处理”。TCP/IP中,网络层与传输层相互 协作以确保数据包能够传送到世界各地,实现可靠传输。

每个分层的作用与功能越清晰,规范协议的具体内容就越简单,实 现,'这些具体协议的工作也将会更加轻松。

数据链路层、物理层

通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这 些通过传输介质互连的设备之间进行数据处理。

物理层中,将数据的0、1转换为电压和脉冲光传输给物理的传输介质,而相互直连地址或硬件地址。采用MAC地址,目的是为了识别连接到同一个传输介质上的 设备。因此,在这一分层中将包含MAC地址信息的首部附加到从网路层转发过来 的数据上,将其发送到网络。

网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层 负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的 数据。

主机B端

接收端主机B上的处理流程正好与主机A相反,它从物理层开始将接收到的 数据逐层发给上一分层进行处理,从而使用户B最终在主机B上使用邮件客户端 软件接收用户A发送过来的邮件,并可以读取相应内容为“早上好”。

可以将通信网络的功能分层来思考。每个分层上的协议规定 了该分层中数据首部的格式以及首部与处理数据的顺序。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最新回复(0)