计算机网络——OSI参考模型

1. OSI模型的基本概念

1.1 定义

        OSI(开放式系统互联)模型是一个用于理解和标准化电信系统或计算机网络功能的概念性的框架,用于描述和标准化不同计算机系统或网络设备间通信的功能。

  • 1.2 OSI模型的性质

    •         这个模型由国际标准化组织(ISO)创建,分为七层。每一层都有其特定的功能和编号。
      •         OSI模型的目的是将网络通信的复杂过程分解成更小、更易管理的部分。
        •         在OSI模型中,每一层只与它的直接上层(N+1)和下层(N-1)交互。
          •         这种模型化的方法使得网络设计和管理更加清晰和有序。

2. 层次简介

  1.         物理层(1)&链路层(2):从机器到网络
    1.         网络层(3):从机器到机器跨越网络
      1.         传输层(4):应用程序的网络(较低层)的抽象
        1.         高层(5 6 7):在应用程序或中间件级别管理的服务

2.1 物理层(第1层)

2.1.1 物理层的定义

        这一层负责在通信介质(如电缆、光纤等)上进行数据的物理传输。它定义了激活、维持和关闭物理连接所需的电气、机械、程序和功能特性。负责在物理媒体上实现原始的比特流传输。这包括了如何在电缆、光纤或无线频道上编码和传输数据

        最初应用的“行为动作”通过传输层进行分割后,变成网络层的数据包数据链路层的数据“帧”,现在是一种二进制序列了,最后在物理层将这些二进制序列转换成信号并在本地介质(铜缆、光纤、无线信号等)上传输,并在目标计算机应用层上显示数据。

2.1.2 物理层的功能

        定义了将数据比特流转换为可以在计算机与网络节点之间的物理链路上传输的模拟信息的方法。定义了物理介质的物理和电气(或光学)特性。

        物理层是最底层,它负责生成和接收通过各种传输介质(如电缆、光纤、无线电波等)传输的原始比特流。这一层涉及的是比特流的物理传输,不涉及数据的编码或解码,也不涉及数据包的构建或解构。物理层确保数据可以在不同设备之间实际移动,这是网络通信的基础。

2.2 数据链路层(第2层)

2.2.1 层次关系

        数据链路层是OSI模型的第二层,负责在两个直接连接的网络设备间可靠地传输数据。这一层建立在物理层之上,物理层只负责传输原始的比特流,而不保证传输的可靠性。数据链路层通过一系列的功能和协议,确保数据能够准确无误地传输。它负责检测并可能纠正在物理层发生的错误。数据链路层从网络层接收数据包,数据包包含了发送方和接受方的IP地址。

2.2.2 两种寻址方式

        有两种寻址方式:逻辑寻址和物理寻址。

        逻辑寻址在网络层已经完成,即在数据段(Segment)中添加了发送方和接收方的IP地址,以形成IP数据包。

        物理寻址就是在数据链路层中完成的,其方法就是在IP数据包中添加发送方计算机和接收方计算机的物理地址:MAC,从而形成一个数据帧。MAC地址是由计算机制造商嵌入到计算机的,也是唯一的,我们的手机也有一个唯一的MAC地址

2.2.3 数据链路层的主要功能

2.2.3.1 帧管理

        数据链路层在物理层提供的服务之上添加了一层结构,确保数据可以在网络中的两个相邻节点之间进行结构化的传输。这种结构化的数据通常被组织成“帧”(frames),这是网络通信中的基本单位。

        数据被组织成帧(frames),每个帧包含一组二进制数据。帧会被顺序编号,这样接收方可以知道每个帧的顺序,以确保数据的完整性。

2.2.3.2 错误检测

        在帧中使用特定的错误检测码(如循环冗余检查CRC),以识别在传输过程中可能发生的错误。

        据链路层负责监控帧在接收时的可靠性。它通过各种控制方法,如校验和(checksum)或循环冗余检查(CRC),来检测传输过程中的错误,并确保数据的准确性。

2.2.3.3 确认回执

        接收方会对收到的帧发送一个确认回执,告知发送方帧已正确接收。如果发送方在规定时间内没有收到确认,可能会触发重传机制。

2.2.3.4 重传机制

        如果确认回执没有收到或收到的帧检测到错误,那么发送方需要重新发送该帧。它还可以实现错误恢复机制,例如自动重传请求(Automatic Repeat reQuest,ARQ),在检测到错误时自动重新发送数据帧。

2.2.3.5 流量控制

        流量控制机制,以防止发送方过快地发送数据而使接收方来不及处理。

        这可以通过一些机制实现,如滑动窗口协议,它允许发送方发送一定数量的帧,而不需要等待每一帧的确认。

2.2.4 总结

        数据链路层中的数据单元称为“帧”数据,链路层作为计算机的软件网络接口卡嵌入,网卡提供经由本地介质将数据从一台计算机传送到另一台计算机的装置,本地介质包括铜线、光纤或无线电信号

数据链路层执行两个基本功能:

  1. 允许上层使用“帧封装”之类的各种技术访问介质;
  2. 控制如何放置和接收来自介质的数据,并进行错误检测。

        有时候可能会有多个设备连接到公共介质,如果两个或多个设备连接到同一个介质,并同时发送数据,那么这些消息可能会发生冲突,从而形成一个收件人无法理解的信息,为了避免这些情况,数据链路层会密切关注,并监视什么时候共享的媒介是空闲的,这样设备就可以为接收端传递正确的数据,这就是所谓的CSMA(载波监听多路访问)技术。

        通过这些功能,数据链路层大大提高了网络通信的可靠性。在物理层只提供原始的、可能出错的传输服务的基础上,数据链路层通过引入帧序列、错误检测和纠正、确认和重传机制以及流量控制,确保数据能够安全、准确地到达目的地。数据链路层是非常关键的,因为它提供了节点间直接通信的基础,并确保这种通信是可靠的。这个层次的工作是确保从一个节点到另一个节点的数据传输是正确的,并且在必要时能够进行错误检测和修正。

2.3 网络层(第3层)

2.3.1 层次关系

        网络层是实现跨网络设备之间通信的关键,它允许不同网络和设备之间的互连互通。无论是局域网内还是跨越全球的互联网,网络层都在数据传输中扮演着至关重要的角色。

        这一层管理数据从源头到目的地通过多个网络的传输(路由)。它还处理地址编址、拥塞控制和数据包在主机之间的路由。它负责在多个网络之间传输数据包,这包括路由选择和数据包转发。

        传输层将数据传递到网络层,网络层用于将接收到的数据段从一台计算机传输到不同网络中的另一台计算机,网络层的数据单元称为数据包(Packets),网络层的功能是进行逻辑寻址(Logical Addressing)、路由(Rout)和路径确定(Path Determination)。

2.3.2 网络层的主要功能包括

2.3.2.1 路由(Routage)

        路由是网络层的核心功能。路由器使用路由表来决定如何转发数据包。

        网络层负责在终端机器之间通过网络节点传输信息。它确定数据应该如何从源头移动到目的地,包括跨越多个网络和中间节点。

        网络层在网络节点中实现路由机制。路由是决定数据包从源到目的地的路径的过程,这涉及到路径选择和转发决策

2.3.2.2 拥塞控制

        当网络中的数据包过多,超出网络的承载能力时,就会发生拥塞。网络层通过控制数据包的发送速率和调整路由策略来管理和减少网络拥塞。

2.3.2.3 服务质量管理(Quality of Service)

        服务质量保证了数据包的传输满足某些服务参数,比如延迟、带宽、丢包率等。

        QOS机制可以为不同类型的流量提供优先级管理,如视频通话和在线游戏需要较高优先级以保持低延迟。

2.3.2.4 地址分配

        网络层负责定义网络地址和设备地址,确保数据包能被正确地发送和接收。

        在互联网中,这通常是通过IP地址(Internet Protocol Address)实现的。

2.3.2.5 路由类型

        静态路由(Statique):路由是预先配置的,不会根据网络的变化而改变。适用于网络变化不大的环境。

        动态路由(Dynamique):路由器根据当前网络状态动态选择最佳路径。这通过使用各种路由协议如RIP, OSPF, BGP等来实现。

2.3.2.5.1 首先是逻辑寻址(Logical Addressing)

        在网络层进行的IP寻址称为逻辑寻址,网络中每一台计算机都有一个唯一的IP地址,网络层为每一个分段(Segment)都会被分配发送方和接收方的IP地址,并形成一个IP数据包,分配IP地址是为了确保每一个数据包到达正确的目的地。

2.3.2.5.2 路由(Rout)

        路由是一种将数据包从源端移动到目的端的方法,该方法建立子啊IPV4 & IPV6基础之上。

2.3.2.5.3 路径选择(Path Determination)

        计算机可以通过多种方式连接到Internet服务器,从源到目标的数据传递的最佳可能路径称为“路径选择”,关于路径选择的协议有OSPF、边界网关协议(BGP)、中间系统到中间系统协议(IS-IS),以确定数据传递的最佳可能路径。

2.3.2.6 数据单元

        在网络层中,数据的单位称为“包”(packets)。包含源和目的网络地址的信息头被加到数据上,以确保数据能够正确地到达目的地。

        它负责在复杂的网络结构中传输数据。网络层的主要目标是确保数据包从源地址正确地路由到目的地址,即使这两个地址位于不同的网络且通过多个网络节点或路由器相连。网络层对整个网络通信至关重要,它不仅确保数据能够在网络中有效地传输,而且还处理拥塞控制和路径的选择,这是多节点网络环境中进行数据传输的基础。

2.4 传输层(第4层)

        输层确保数据在网络端点之间可靠地传输。它负责数据的分段和连接管理

2.4.1 传输层的主要职责包括

2.4.1.1 端到端的消息传输

        传输层保证数据可以从源端系统传输到目标端系统,确保数据的完整性和正确性。

2.4.1.2 数据重组

        在应用层之下工作,传输层将来自应用层的数据(如文件或消息)分割为更小的单位,然后在接收端重新组装。

2.4.1.3 可靠性保证

        通过确认回执和错误管理机制,传输层可以保证数据的可靠传输。

        在传输过程中检测到错误时,可以重新发送有问题的数据包。

        传输层通过各种机制来补偿网络层可能出现的问题,例如丢包、错误、数据包顺序错乱等。传输层确保数据可靠地从一个端点传输到另一个端点,如果必要的话,它会进行错误检测、纠正和数据重传。

2.4.1.4 流量控制

        控制数据流,以防止网络拥塞和确保接收方来得及处理接收到的数据。

2.4.1.5 连接导向的通信

        类似于电话系统,建立一个逻辑连接,然后在这个连接上进行通信。TCP(传输控制协议)是一种提供这种服务的协议,它确保数据的顺序,检查错误并进行确认。

        确保数据的有效和可靠传输,通过如TCP(传输控制协议)实现端到端的通信控制和错误处理。

2.4.1.6 无连接的通信

        类似于邮寄服务,数据被发送到网络,而无需预先建立连接。UDP(用户数据报协议)是一种无连接的协议,它发送数据而不保证其到达或顺序。

2.4.1.7 应用和网络层之间的接口

        传输层为上层的应用提供了一个与下层网络层的接口,确保数据可以从一端的应用传输到另一端的应用。

2.4.1.8 网络抽象

        传输层为上层应用提供了一个抽象的网络连接,使应用不必关心网络层的具体细节。

2.4.2 功能的总结

        在会话层之下时传输层。传输层通过分段(Segmentation)、流量控制(Flow Control)和差错控制(Error Control)来控制通信的可靠性。

        a.首先在分段中,传输层从会话层接收数据,并将数据分为称为“段”(Segment)的数据单元:且每个数据单元(Data Unit)包含一个源端口号、目的端口号和序列号,这些端口号有助于引导每一个网段执行正确的应用程序。序列号有助于按照正确的顺序重新综合段,以便再接收者处形成正确的消息

        b.其次,在流量控制中,传输层可以控制传输的数据量。假如一个移动设备连接到一个服务器,若服务器的最大可以传输100Mbps的数据,而我们移动端设备最大可以处理10Mbps的数据,现在我们正在从服务器下载一个文件,但是服务器开始以50Mbs的速度发送数据,这比手机所能处理的速率要高,所以手机在传输层的帮助下,可以告诉服务器将数据传输速率降低到10Mbps,这样就不会有数据丢失。

        c.最后一个是差错控制。传输层也可用于差错控制,在数据传输的过程中,如果某些数据出现丢失,目标传输层将使用自动重复请求方案,来重新传输丢失或损坏的数据,传输层向每个段添加一个称为“校验和”的位,以找出所接收到的传输层控制协议。

2.4.3 TCP/UDP

        传输层控制协议有面向连接的传输和面向无连接的传输,面向连接的传输通过TCP来实现的,面向无连接的传输是通过UDP来实现的。

        UDP比TCP更快,因为它不会提供任何关于数据是否真正交付的反馈,而TCP提供反馈,因此丢失的数据可以在TCP中重新传输。在是否接收到所有的数据并不重要的应用场景中,如流媒体电源、歌曲、游戏、IP语音、TFTP、DNS等可以使用UDP协议传输数据;而必须要进行完整的数据传输的场合,例如万维网、电子邮件、FTP等,就需要使用TCP协议。

2.4.4 总结

        传输层涉及到分段(Segmentation)、流量控制(Flow Control)、差错控制(Error Control)、面向连接(TCP)和无连接(UDP)的传输。

        传输层是OSI模型中的第四层,负责端到端的通信和数据的完整传输。这层确保从发送应用程序到接收应用程序的数据传输是可靠的,无论它们在物理网络上的位置如何。

        传输层是用户和网络之间交互的关键层次,为上层应用提供了一个透明的数据传输服务。它允许应用程序进行通信,就像它们是直接连接的一样,无需关心底层网络细节。

        传输层的一个关键概念是端到端通信。在网络层处理节点到节点的通信之后,传输层确保数据能够在应用之间完整无误地传输。例如,TCP(传输控制协议)是传输层中一个为互联网上的应用提供可靠数据流的协议。

2.5 会话层(第5层)

2.5.1 会话层的定义

        会话层是负责在两个系统之间的通信会话中管理和维护会话控制。它建立、管理和终止在应用程序之间的会话。这一层确保了有效的数据交换,为用户提供了一个可靠的通信通道

        会话层用于建立和管理连接、启用、发送和连接数据,就像你为聚会雇用助手一样,会话层也有自己的助手,也就是各种API或应用程序接口,还有NetBIOS,即网络基本输入输出系统,它允许不同计算机上的应用程序相互通信。

        在客户端与服务器建立会话之前,服务器会执行一项为身份验证的功能,比如你在客户端计算机输入了用户名和密码之后(指向服务器应用程序对于的API),客户端计算机和服务器之间将建立会话或链接。通过身份验证后,服务器将检查用户授权身份验证和授权,授权是服务器来确定你是否有访问文件权限的过程,如果服务器确认你所登录的账号没有相应的权限,则客户端计算机就会收到一条消息,告诉你:您未被授权访问此页面。

        身份验证和授权这两个功能都由会话层执行,会话层提供正在下载的文件的跟踪。

        举个例子,我们上网浏览的网页包含了文本、图片等信息,这些文本和图片作为单独的文件存储在Web服务器上,当你在Web浏览器中请求网站时,你的Web浏览器将建立一个到Web服务器的单独会话,以便分别下载这些文本和图像信息文件。这些文件以数据包的形式被接收,与此同时,会话层也给出了下载下来的那个数据包属于哪个文件的轨迹,以确定是文本文件还是图像文件,并追踪他们收到数据包的位置,最终将文本和图片展示在浏览器中,这个就是会话层的会话管理功能。

2.5.2 关键功能

2.5.2.1 会话管理(Session Management)

        管理用户间的对话,确保通信的连续性,并在中断后能够恢复通信

        会话层允许两个应用程序在网络上建立、维持和管理通信会话。这意味着会话层可以设置和管理两个系统之间交换数据的对话。

2.5.2.2 认证(Authentication)

        对通信双方进行身份验证,以确保数据只在授权的用户之间交换

2.5.2.3 对话控制(Dialogue Control)

        管理对话控制,控制两个系统之间的交互。这可能包括确定谁可以发送数据以及何时发送。

        会话层负责对会话进行组织和控制,确保会话的持续性,以及数据可以在两个方向上流动,而且是按照正确的顺序。

2.5.2.4 令牌管理(Token Management)

        使用令牌来控制两个通信实体之间的对话,确保双方不会同时尝试执行相同的操作。

2.5.2.5 同步

        在数据交换过程中插入同步点,这样如果会话中断,只需从上一个同步点重新开始,而不是从头开始。

        会话层可以创建同步点。这些同步点被用来管理数据流,例如,在长时间的数据传输过程中创建检查点,以便在发生错误时能够从最后一个同步点而不是从头开始重新传输,从而提高数据传输的效率。

        会话层为用户级别的接口提供了结构,使得不同的进程可以在网络上以同步或异步方式进行数据交换。这个层次在需要复杂的交互,比如远程登录会话、文件传输以及数据库查询等应用程序中尤为重要。会话层在多个点上提供服务,这对于确保数据一致性和正确的会话流程是非常重要的。它也可以提供安全性控制,确保会话在安全的环境中进行。

2.6 表示层(第6层)

2.6.1 定义

        表示层从应用层接受数据,这些数据是以字符和数字的形式出现的(如:Chinese、666),表示层将这些字符和数据,转换成机器能够理解的二进制格式(1001 0110),表示层的这个功能称为“翻译”功能,即把人类的语言翻译成机器能理解的语言。

        在传输数据之前,表示层减少了用来表示原始数据的比特数,也就是将原始数据进行了压缩,数据压缩减少了数据原始数据所需的空间,随着文件大小的减少,它就可以在很短的时间内到达目的地,数据压缩对实时视频和音频传输有很大的帮助,以保持完整性的数据传输前的数据加密。

        与此同时,在发送端,数据会在表示层被加密,然后在接受端,数据再在表示层进行解密操作,保证数据传输的安全型。

        确保数据为应用层的格式。该层处理数据格式之间的转换、加密和解密。其职责是处理数据的表示方式,确保从一个系统发送的数据能够被另一个系统的应用层正确解读。

        表示层是OSI模型的第六层,主要负责数据的表示、安全(加密和解密)、以及数据结构和格式化。它确保从一个系统发送的信息可以被另一个系统理解和解释。

2.6.2 主要职责

2.6.2.1 数据格式化和编码

        它处理不同计算机系统之间交换数据时可能出现的兼容性问题,比如不同系统中字符编码的差异(例如ASCII和EBCDIC)。

        它负责将数据从发送方的格式转换成跨平台通用的格式,然后再转换成接收方的格式。

        表示层负责数据编码和转换,以确保不同系统之间的信息交换。它解决了不同系统可能采用不同的数据表示方法(如字符编码、数据压缩和加密)的问题。

2.6.2.2 数据压缩和解压缩

        减少所需的带宽,提高传输效率。

2.6.2.3 数据加密和解密

        提供数据传输的安全性,确保只有授权的接收方能够读取数据。

2.6.2.4 数据的表示和解

        确保数据结构如字符串、数字和对象等能被不同类型的系统正确处理。

        例如,处理数字的表示方式,确保浮点数和整数在不同系统间正确转换。

2.6.2.5 字节序或端序(Endianness)的处理

        管理多字节数据在不同系统中的存储方式,这涉及到Little-Endian和Big-Endian的差异。

        Little-Endian系统中,最低有效字节(Least significant byte)存储在最低的内存地址。

        Big-Endian系统中,最高有效字节(Most significant byte)存储在最低的内存地址。

        表示层还处理大端和小端的问题——不同的计算机架构在存储多字节数据时,字节的顺序可能不同。表示层确保数据在不同类型的系统之间传输时,能够正确地识别和转换字节顺序。

        表示层的这些功能对于确保在不同的系统和平台之间能够有效地通信是至关重要的。它们帮助解决了由于硬件、操作系统、或者应用程序之间的差异而导致的数据交换问题。

        通过这些功能,表示层确保数据在网络中传输时保持其语义内容不变,无论底层的系统架构如何。它为数据的格式和编码提供了一个共同的参照标准,从而使不同硬件和操作系统平台上的应用程序能够理解交换的数据。

2.7 应用层Application Layer(第7层)

2.7.1 定义

        应用层是由网络应用程序使用的,它是最接近用户的层,提供网络服务直接与用户应用程序的接口。

        它为用户应用程序提供网络服务,如电子邮件、文件传输和网页浏览。

        应用层通过各种协议(FTP——文件传输协议;HTTP/S——网上冲浪协议;SMTP——邮件传输协议;Telnet——与虚拟端之间的通信协议),为网络应用提供服务(网络应用是指使用会互联网的计算机应用),执行用户活动。

2.7.2 主要功能包括

2.7.2.1 通信服务

        应用层提供了为应用程序建立和控制通信的服务。这些服务包括网络资源的访问、传输和管理。

2.7.2.2 应用服务

        这一层包括各种高级应用服务,如电子邮件、文件传输和数据库访问。具体来说,它提供了协议和接口,使得应用程序能够发送和接收数据。例如,HTTP(超文本传输协议)用于网页浏览,SMTP(简单邮件传输协议)用于电子邮件服务。

2.7.2.3 用户界面

        应用层也负责处理用户界面的问题,包括显示问题和用户认证。

2.7.2.4 应用程序间的协作

        应用层支持应用程序间的直接对话和数据交换。它允许不同的软件和服务通过网络彼此交互。

        应用层直接服务于最终用户的应用程序,是用户与网络服务交互的最直接层级。这个层次中的每个应用程序都使用下层的服务(通过所有底层的协议栈)来完成网络通信和数据交换。

3. OSI模型中的层级关系

        在OSI模型中,每一层通过定义的接口与其上下层进行通信。数据通过每一层传输时,会根据每层的特定协议进行封装或解码。这样可以实现网络通信的标准化,便于不同系统和技术之间的互操作性。

每一层都有其特定的数据单元:

        SDU (Service Data Unit):服务数据单元是在给定层中传输的数据。

        PDU (Protocol Data Unit):协议数据单元是包含了SDU和该层的控制信息(PCI)的数据单元。

        PCI (Protocol Control Information):协议控制信息是附加到SDU上的头部信息,它包含了控制和地址信息,使得数据可以在网络中正确地传输和路由。

在这个过程中,每一层都会对上一层的SDU执行操作。具体来说:

        当数据从上层传到下层时,上层的PDU变成下层的SDU。

        下层会为这个SDU添加自己的PCI,这样新的组合就构成了这一层的PDU。

这个新的PDU然后被传递到更低的层,过程再次重复。

SAP(Service Access Point),即服务接入点,它是不同OSI层之间交换数据的接口。

4. 封装和解封装

        在实际的网络通信中,这个封装和解封装的过程确保了来自不同层的信息能够正确地添加到数据中,并且在到达目的地时能够被正确解读。

5. 协议实体(Protocol Entity)

        在计算机网络中,协议实体(Protocol Entity)通常指的是实现网络协议的软件模块或应用程序。这些实体可以是操作系统的一部分,或者是运行在操作系统之上的独立程序。

        协议实体的职责是执行特定的通信规则和约定,这些规则和约定定义了数据如何在网络中传输,以及如何对数据进行格式化、处理、发送和接收。

        一个网络层级中可能包含多个协议实体,它们使用不同的协议来提供相同的服务。例如:

        文件下载:可以通过FTP(文件传输协议)或HTTP(超文本传输协议)实现。FTP专门用于文件传输,而HTTP最初是用于网页传输,但也可用于文件下载。

        文件共享:不同的操作系统可能会使用不同的协议来共享文件。例如,Unix系统中通常使用NFS(网络文件系统),Windows环境中使用SMB(服务器消息块),而Macintosh环境中使用了AppleTalk。尽管这些协议的实现和操作方式不同,它们的基本功能都是允许网络中的计算机之间共享文件。

        协议实体的存在使得网络通信可以在不同的软硬件环境和操作系统之间进行,确保了数据能够被不同系统理解和处理。这就是为什么网络协议和相应的协议实体对于现代通信至关重要的原因。

6. 层级关系

        在OSI模型中,同一层级(例如,Service N)的不同协议实体(如Entité Proto A和Entité Proto B)之间,以及不同层级(例如,Service N、Service N-1和Service N-2)之间的逻辑关系。

        在同一层级内部,协议实体之间通过逻辑关系(Relation logique)相连,这表明它们可以直接通信或者交换信息。例如,Entité Proto A可以与另一个Entité Proto A直接通信,而Entité Proto B也可以与另一个Entité Proto B进行通信。

        在不同层级之间,协议实体通过服务访问点(Service Access Point, SAP)进行通信。这些SAP是协议实体用来请求更低层级服务的接口。例如,Entité Proto A通过SAP A与Entité Proto X进行通信,这个通信表示一个更高层级的服务请求了一个更低层级的服务。

        Service N、Service N-1和Service N-2代表不同的服务层级,每个层级都提供特定的网络功能。每个协议实体都专注于它的层级所定义的功能,通过SAP与其他层级的实体协作,以提供网络通信的全套服务。这种结构使得网络服务可以被模块化,并允许不同的网络技术和协议能够在多层网络结构中协同工作。

7. OSI模型各层在网络通信中的实现位置

        两台终端机器(如计算机、智能手机等)和它们之间的一个网络设备(如交换机或路由器)。

        物理层和数据链路层:这两层在所有网络设备中都有实现,包括终端机器和交换机或路由器。物理层负责实际的物理连接,而数据链路层处理与物理传输有关的错误检测和纠正。

        网络层:在路由器和终端设备中实现。网络层负责决定数据的路径(路由),以及将数据包从源传输到目的地。

        传输层:通常在终端机器中实现,负责提供端到端的通信服务,例如确保数据完整性和正确顺序。

        会话层、表示层和应用层:这些层通常只在终端机器中实现,负责管理应用程序的会话,数据的表示和格式化,以及为用户提供应用服务。

        在这种结构中,数据会在源终端机器的应用层开始传输,并向下通过每一层直到物理层,然后通过网络设备,并在目的地终端机器上通过物理层向上移动回应用层。这个过程涉及数据的封装和解封装,每个层次都添加或删除特定的头信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327523.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake入门教程【核心篇】定义C++宏定义(add_compile_definitions)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.基本用法2.定义单个宏3.定义多个宏4.条件定义宏5.使用预定义变量6.使用 generator 表达式

7款实用的SQLite数据库可视化管理工具

前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用门槛。今天推荐7款实用的SQLite数据库可视化管理工具(GUI),帮助大家更好的管理SQLite数据库。 什么是SQLite? SQLite是一个…

每日一题——LeetCode1089.复写0

方法一 splice: 通过数组的slice方法,碰到 0就在后面加一个0,最后截取原数组的长度,舍弃后面部分。 但这样做是违反了题目的要求,不要在超过该数组长度的位置写入元素。 var duplicateZeros function(arr) {var le…

超简单的详细教程:如何为一个GitHub开源项目做出贡献!

仓库:Ai-trainee/GPT-Prompts-Hub 让我们通过一个具体的例子,详细了解如何从克隆一个GitHub仓库开始,一步步地贡献到一个项目。以下是详细步骤,包括所需的代码和说明: 首先我们Fork想要贡献的项目,然后请看…

网络安全红队常用的攻击方法及路径

一、信息收集 收集的内容包括目标系统的组织架构、IT资产、敏感信息泄露、供应商信息等各个方面,通过对收集的信息进行梳理,定位到安全薄弱点,从而实施下一步的攻击行为。 域名收集 1.备案查询 天眼查爱企查官方ICP备案查询 通过以上三个…

MySQL进阶篇(一)存储引擎

一、MySQL 体系结构 (1) 连接层 最上层是一些客户端和链接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于 连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念&#xf…

TSConfig 配置(tsconfig.json)

详细总结一下TSConfig 的相关配置项。个人笔记,仅供参考,欢迎批评指正! 另外,如果想了解更多ts相关知识,可以参考我的其他笔记: vue3ts开发干货笔记ts相关笔记(基础必看)ts相关笔记…

【十六】【动态规划】97. 交错字符串、712. 两个字符串的最小ASCII删除和、718. 最长重复子数组,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

Redis基础学习一

1. Redis 入门 1.1. Redis 诞生历程 1.1.1.从一个故事开始 08 年的时候有一个意大利西西里岛的小伙子,笔名 antirez(http://invece.org/),创建了一个访客信息网站 LLOOGG.COM。有的时候我们需要知道网站的访问情况,…

软件测试/测试开发丨Vuetify框架的使用

介绍 Vuetify 是一个基于 Vue.js 精心打造 UI 组件库,整套 UI 设计为 Material 风格。能够让没有任何设计技能的开发者创造出时尚的 Material 风格界面。 为什么要使用Vuetify框架 所有组件遵从 Material Design 设计规范,UI 体验非常优秀&#xff0c…

软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是docker run,用于创建和启动容器。本文将详细解析docker run命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。 docker r…

Springboot整合MQ学习记录

Mq介绍 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。支持Windows、Linux/Unix、MA…