叙说 OSI 七层网络模型 | 你在第几层

news2024/11/27 10:25:37

引言

开放系统互联(OSI,Open Systems Interconnection)模型,这一国际标准化组织(ISO)提出的理论框架,是计算机网络通信领域内不可或缺的基础工具。如同语法和句法对于构建和解析语言的重要性一样,OSI模型将复杂的网络通信过程分解为七个逻辑层,每层分别承担着数据处理、传输及交换的不同职责,从物理层到应用层依次为:物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer

请在此添加图片描述

_例如:_在OSI模型中,物理层关注的是信号的物理传输介质和接口规范,确保原始比特流能在网络中有效传播;而网络层则专注于路由选择和逻辑寻址,以确定数据在网络中的最佳传输路径。传输层则负责端到端的数据可靠传输,如TCP协议就实现了这一层次的主要功能。

学习和运用OSI模型,并非单纯记忆各层次名称及其功能,而是要把握其内在逻辑,了解每一层如何与其上下层协同工作,以及在实际网络环境如因特网中如何映射和对应到具体的协议栈。掌握这一模型有助于深入洞察网络故障的原因,优化网络性能,以及在设计新的网络解决方案时遵循统一的原则和标准。

正是有了像OSI模型这样的理论基石,全球范围内的因特网才能成为一个既复杂又精密的实体,无论地域多么遥远,都能无缝链接起亿万个计算系统,实现高效的信息交换与互动,进而推动社会信息化进程的不断深化与拓展。

向因特网人致敬!

本章学习目标

🚲 常见网络术语
🚲 什么是 OSI 模型
🚲 OSI 第一层 物理层
🚲 OSI 第二层 数据链路层
🚲 OSI 第三层 网络层
🚲 OSI 第四层 传输层
🚲 OSI 第五层 会话层
🚲 OSI 第六层 表示层
🚲 OSI 第七层 应用层
🚲 数据在 OSI 模型中如何流动


常见网络术语

在开始了解OSI 之前,我们先熟悉一下常见网络术语,以便我们增进对文章的李姐。

🚦 节点(node)

在网络中,节点(node)是指连接到网络的物理电子设备,比如电脑、打印机、路由器等,它们能够在网络上进行信息的收发。节点可以直接相邻连接,也可以通过中间设备如交换机或路由器进行连接。

通常情况下,路由器连接网络到因特网,而交换机用于网络内部通信。主机(host)则是指需要具有 IP 地址的节点,它们也是网络中的一种节点,但并非所有的节点都是主机。

举个例子:

节点可以彼此相邻,其中的节点 A 可以直接连接到节点 B。节点之间也可以有中间节点,例如节点 A 和节点 B 之间可以放置一个交换机或路由器。

请在此添加图片描述

🚦 链路(link)

链路(link)是连接网络中节点的通信路径,可以是有线的(如以太网)或无线的(如WiFi)。它可以是点对点的,连接两个节点之间的通信路径,也可以是多点的,连接多个节点之间的通信路径。在信息传输中,我们可以将链路看作是一对一的关系,表示一条链路连接两个节点,也可以是一对多的关系,表示一条链路连接多个节点。

举个例子:

  • 点对点链路:以太网连接两台计算机。在家庭网络中,通过以太网电缆直接连接台式电脑和路由器,这形成了一个点对点的链路,用于在这两台设备之间传输数据。
  • 多点链路:WiFi网络连接多台设备。例如,在一个办公室环境中,多台笔记本电脑、智能手机和平板电脑通过WiFi连接到同一个路由器,形成一个多点链路。这个链路允许所有设备之间进行无线通信,实现数据交换和共享。

🚦 协议(protocol)

协议(protocol)是一组相互商定在网络通信中使用的规则,用于网络中节点数据的传输和交换。它定义了通信双方应该如何建立连接、传输数据、处理错误以及终止通信等方面的行为。

协议定义了管理通信过程中语法(可通信的内容)、语义(如何通信)以及同步(何时通信以及通信的速度)的规则。协议可以由硬件、软件或二者的组合实现。协议可以由任何人创建,但是最被广泛采纳的协议都是基于标准的。 —— The Illustrated Network

请在此添加图片描述

协议也可以由硬件、软件或二者的组合实现,并且可以用于有线和无线链路上。

尽管任何人都可以创建协议,但基于因特网组织发布的标准的协议通常是最被广泛采纳的。

请在此添加图片描述

例如,因特网工程任务组(IETF,Internet Engineering Task Force)主要目标是协调制定因特网标准,发布的标准协议被广泛应用于因特网及其相关网络中。

🚦 网络(network)

网络(network)是指一组计算机、打印机或任何其他想要共享数据的设备的通用术语。网络的类型包括:

  • LAN(Local Area Network,局域网):连接在相对较小的地理范围内的设备,如家庭、办公室或学校内部的网络。
  • HAN(Home Area Network,家庭网络):用于连接家庭内部设备的网络。
  • CAN(Campus Area Network,校园网):连接在学校、大学或公司校园内部的网络。
  • MAN(Metropolitan Area Network,城域网):覆盖城市范围的网络,连接多个局域网或校园网。
  • WAN(Wide Area Network,广域网):覆盖广泛地理范围的网络,如跨越国家或大洲的网络。
  • BAN(Body Area Network,体域网):连接人体周围的电子设备的网络,例如健康监测设备。
  • VPN(Virtual Private Network,虚拟专用网络):通过公共网络建立的安全连接,用于远程访问私人网络。

🚦 拓扑(topology)

拓扑(topology)描述了网络中节点和链路如何组合在一起的方式。通常,拓扑可以用图形方式表示,以显示网络中的物理或逻辑连接方式。

常见的网络拓扑类型包括:

  1. 星型拓扑(Star Topology):所有节点都连接到一个中心设备,例如交换机或集线器。
  2. 总线拓扑(Bus Topology):所有节点都连接到一根共享的通信介质(总线)上。
  3. 环形拓扑(Ring Topology):每个节点都连接到相邻节点,形成一个闭合的环路。
  4. 树状拓扑(Tree Topology):将多个星型或总线型拓扑连接在一起形成层级结构。
  5. 网状拓扑(Mesh Topology):每个节点都与其他节点直接连接,形成复杂的网络结构。
  6. 混合拓扑(Hybrid Topology):将不同拓扑结构组合在一起形成更复杂的网络。

请在此添加图片描述

网络拓扑不仅描述了物理连接方式,还可以描述逻辑连接方式。无论网络的规模和复杂程度如何,通过学习 OSI 模型和七层网络,可以更好地理解计算机网络中发生的各种事情,包括节点、链路以及管理节点间数据传输的协议。

什么是 OSI 模型

OSI 模型由七层网络组成,在介绍之前,我们先了解一下(layer)是什么?

在计算机网络中,层(layer)是对网络功能和行为进行分类和分组的一种方式。在 OSI 模型中,层的组织结构从最具形态和最物理的层到不太有形、虚拟但更接近最终用户的层。

每一层都抽象了低层的功能,直到达到最高层。最终用户通常只看到网络的最高层,而不了解其他层的细节和内部运作。

如何记住所有层的名字呢?So Easy。

请不要把暗号告诉任何人(Please Do Not Tell the Secret Password to Anyone)。

  • Please | 物理层(Physical Layer)
  • Do | 数据链路层(Data Link Layer)
  • Not | 网络层(Network Layer)
  • Tell (the)| 传输层(Transport Layer)
  • Secret | 会话层(Session Layer)
  • Password (to)| 表示层(Presentation Layer)
  • Anyone | 应用层(Application Layer)

需要注意的是,尽管某些技术在逻辑上可能属于某一层,但并非所有技术都完全符合 OSI 模型中的单个层。例如,以太网、IEEE 802.11(Wifi)和地址解析协议(ARP)可能在多个层上都有所作用。

OSI 模型是一个用于理解和描述计算机网络的框架,而不是一组严格的规则。

OSI 第一层 物理层

在 OSI 模型中,第一层是物理层。物理层涉及的内容非常广泛,包括:

节点(设备)和网络硬件:

  • 包括集线器、中继器、路由器、计算机、打印机等设备,以及这些设备内的硬件,如天线、放大器、网卡等。

设备接口机制:

  • 涉及电缆如何连接到设备以及连接到设备上的哪个地方,包括连接器的大小、形状以及引脚的功能等。

功能和程序逻辑:

  • 确定每个引脚的功能,例如发送或接收,以及决定事件顺序以便节点能够与第二层上的另一个节点通信的程序逻辑。

电缆协议和规范:

  • 例如以太网(CAT)、USB、数字用户线(DSL)等协议,包括最大电缆长度、调制技术、无线电规范、线路编码和位同步等规范。

电缆类型:

  • 选择有屏蔽或非屏蔽双绞线、非双绞线、同轴电缆等。

信号类型:

  • 基带信号和宽带信号,以及其对应的传输方式。

信号传输方法:

  • 可能是有线的(如电、光)或无线的(如无线电波),包括不同频率和网络标准的选择。

🏅 在 OSI 模型的第一层,物理层的数据单元是比特(bit)

请在此添加图片描述

物理层它涉及到网络通信的物理传输和传输介质。数据的最小单元是比特(bit)。

比特是可传输数字信息的最小单元,它可以表示为0或1,是二进制编码的基本元素。字节(byte)由八个比特组成,用于表示单个字符、数字或符号等。

数据传输的速率,也称为传输速率,通常以每秒或每毫秒传输的比特数量来衡量。这个速率取决于硬件设备的支持情况,而比特则被发送到或从设备传出。

比特传输通常是同步的,这意味着在单位时间内发送和接收的比特数量是相等的,这被称为比特同步。传输方式取决于信号的传输方式,可以是有线的或无线的。

在节点之间的通信中,节点可以发送比特、接收比特,或同时进行发送和接收操作。根据节点的功能,可以将节点划分为单工、半双工和全双工模式:

  • 单工模式:节点只能发送或只能接收数据。
  • 半双工模式:节点可以在不同时间段内进行发送和接收操作,但不能同时进行。
  • 全双工模式:节点可以同时进行发送和接收操作,允许双向通信。

最初的以太网是半双工的,但现在也可以选择全双工的以太网,这取决于使用的设备和网络配置。

通过了解物理层的工作原理和特性,我们可以更好地理解网络通信的基础,并且可以根据需求选择适合的网络设备和传输方式。

OSI 第二层 数据链路层

在 OSI 模型中,第二层是数据链路层,数据链路层主要负责定义数据的传输格式、数据流量的控制以及错误的检测。它承担着以下任务:

线路规划

  • 确定哪些节点之间可以进行通信,以及通信持续的时间。
  • 确定节点之间的数据传输速率和时长。

流量控制

  • 确定应该传输的数据量,以防止网络拥塞和数据丢失。
  • 控制数据的传输速率,以确保网络资源的有效利用。

错误控制-检测和校正

  • 检测在数据传输过程中可能发生的错误,例如传输中断、数据包丢失或损坏等。
  • 根据检测到的错误采取相应的纠正措施,例如重新发送数据包或请求数据重传。

它有两个子层:介质访问控制(MAC)子层和逻辑链路控制(LLC)子层。

🏅 介质访问控制(MAC,Media Access Control)子层

  • MAC 子层负责分配硬件标识号,即 MAC 地址。MAC 地址是唯一标识网络上各个设备的地址,用于在局域网中进行数据包的传输和识别。
  • MAC 地址通常由网络设备的制造商在生产时分配,位于设备的网卡中。这些地址在网络中应该是唯一的,两个设备不应具有相同的 MAC 地址。
  • 交换机是网络中常见的设备之一,它会跟踪网络上所有设备的 MAC 地址,并根据这些地址进行数据包的转发和交换。

🏅 逻辑链路控制(LLC,Logical Link Control)子层

  • LLC 子层处理数据帧的寻址和流量控制。它负责确定数据帧的接收和发送顺序,以及对数据流量的调节。
  • 数据帧的传输速率取决于两个节点之间的链路速度,例如以太网或无线网络(Wifi)。

🏅 在 OSI 模型的第二层,数据单元被称为帧(frame)。

每个帧由三部分组成:

帧头(Frame Header):帧头通常包含了源节点和目标节点的 MAC 地址。MAC 地址用于唯一标识网络中的设备。帧头还可能包含其他控制信息,如帧的起始和结束标记,以及帧的类型。

主体(Payload):主体部分包含了要传输的实际数据,它由一系列比特组成。主体的内容可以是任何需要在网络节点之间传输的信息,如文本、图像、音频或视频数据。

帧尾(Frame Trailer):帧尾通常包含了错误检测信息,用于确定帧在传输过程中是否发生了错误。常见的错误检测技术包括循环冗余校验(CRC,Cyclic Redundancy Check)和帧校验序列(FCS,Frame Check Sequence)。如果帧尾中的错误检测信息表明帧存在错误,那么根据网络配置或协议的要求,该帧可能会被丢弃,或者错误信息会被报告给上层协议以进一步处理。

请在此添加图片描述

帧的大小通常受到最大传输单元(MTU,Maximum Transmission Unit)的限制。MTU 是指数据链路层可以传输的数据帧的最大大小。如果帧的大小超过了MTU,它就被称为巨型帧。网络设备和协议通常会规定特定的MTU值,以确保网络的正常运行和数据传输的有效性。

帧是数据链路层中用于传输数据的基本单元,它包含了源节点和目标节点的地址信息、实际数据以及错误检测信息。通过对帧的组成和结构的理解,可以更好地管理和维护网络通信,确保数据的安全和可靠传输。

OSI 第三层 网络层

在 OSI 模型的第三层,也就是网络层,主要负责网络间的通信和数据包的路由。在这一层,我们使用路由器来实现网络间或跨网络的信息传输。

下面是网络层的一些重要概念和特点:

  1. 路由器(Router):路由器是网络层的主要设备,用于在不同的网络之间转发数据包。它们能够跨越多个网络,并根据目标地址的路由信息将数据包从一个网络转发到另一个网络。路由器不仅连接到互联网服务提供商(ISPs)以提供因特网访问,还在所连接的网络中跟踪所有的地址和路由信息。
  2. 网络到网络通信:网络层不仅支持节点之间的通信,还支持网络到网络之间的通信。通过路由器,可以在不同的网络之间传输数据,并在网络之间建立连接。
  3. 路由表(Routing Table):路由器通过维护路由表来确定如何转发数据包。路由表包含了目标地址及其对应的路由信息,指示了数据包应该通过哪条路径转发到目标地址。路由表的更新和维护是路由器在网络层工作的关键。

网络层的任务是确保数据包从源节点传输到目标节点,即使这些节点位于不同的网络中也能实现。通过路由器的路由功能,网络层能够有效地管理数据包的传输路径,并确保数据在网络间的顺利传输。

在网络层的作用下,数据包能够跨越不同的网络并到达目标地址,实现了网络间的通信和连接。

请在此添加图片描述

🏅 在 OSI 模型的第三层,数据的基本单元是数据包(data packet)。

数据包是网络通信中的基本单元,它负责承载和传输数据。通常,每个数据包都包含一个帧和一个 IP 地址信息的包装。这意味着帧被第三层的地址信息封装,以便在网络中正确地路由和传送。

数据包中传输的实际数据通常被称为负载(payload)。这个负载是数据包携带的信息,它可能是文本、图像、音频、视频或任何其他形式的数据。每个数据包都包含了到达目的地所需的全部信息,包括源和目标的地址以及负载数据。然而,尽管数据包携带了这些信息,但是它能否成功抵达目的地则取决于网络中的路由和传输条件。

第三层的传输是无连接的和尽力而为的。这意味着网络层将数据包发送到目标地址,但不保证数据包的成功到达。网络层的主要任务是根据目标地址路由数据包,并尽力将其传递到正确的目的地。如果数据包在传输过程中遇到了问题,比如网络拥塞、路由故障或丢包,网络层通常不会进行错误处理或重新传输。这种无连接的传输方式使得网络更加灵活,但也意味着应用层需要负责处理数据的可靠性和完整性。

🏅 举个例子:

当你通过网络向远程服务器发送请求时,你的数据被分割成数据包,并附上目标服务器的 IP 地址。这些数据包经过网络层的路由选择算法,被传输到正确的目的地。如果网络中出现了拥塞或其他问题,某些数据包可能会丢失或延迟,但网络层不会主动进行数据包的重新传输。相反,这些问题可能需要由更高层的协议(如 TCP)来处理,以确保数据的可靠传输。

OSI 第四层 传输层

OSI模型的第四层,被称为传输层。传输层的主要任务是在源节点和目的节点之间提供端到端的通信服务,它负责管理数据的可靠传输,确保数据在网络中的正确交付。

🏅 在传输层,数据包通常被分段,这意味着数据被拆分成小片并在网络中传输。与第三层不同,传输层要理解整个消息,而不仅仅是每个独立的数据包。根据对整个消息的理解,传输层不会一次性发送所有数据包,而是根据需要管理网络拥塞。

🏅 传输层的数据单元有几个不同的名字,对于 TCP 协议而言,数据单元是数据包。而对于 UDP 协议而言,包被称为数据报(datagram)。

🏅 在第四层中,两个最著名的协议是**传输控制协议(TCP,Transmission Control Protocol)用户数据报协议(UDP,User Datagram Protocol)**

TCP 是一种面向连接的协议,其重点在于保证数据的质量而非速度。TCP 显式地与目的节点建立连接,并要求在数据传输时进行源节点与目的节点之间的握手操作。这种握手可以确认数据已被接收,如果数据丢失,TCP 会要求进行重传。此外,TCP 还能够确保数据包以正确的顺序交付或者重组。

相反,UDP 是一种无连接的协议,其重点在于速度而非数据的质量。UDP 不要求进行握手,因此也被称为无连接的协议。UDP 可以更快地发送数据,但并不保证所有数据都能成功传输,也无法确认数据包的顺序。

无论是 TCP 还是 UDP,它们都将数据发送到网络设备上的特定端口,每个网络设备都有自己的 IP 地址。IP 地址和端口号的组合被称为套接字(socket)。通过使用套接字,TCP 和 UDP 可以确保数据被正确地发送和接收。

请在此添加图片描述

🏅 举个例子:

当你通过浏览器访问网页时,通常会使用TCP协议来传输数据,因为网页的完整性和顺序性对用户体验至关重要。而在进行实时音视频通话时,可能会选择使用UDP协议,因为它能够提供更低的延迟和更高的传输速度,对于实时性要求较高的数据传输更加适用。

OSI 第五层 会话层

OSI模型的第五层,也称为会话层,承担着建立、维持和终止会话的任务。这里的“会话”指的是两个网络应用之间的连接,这种连接是双方事先商定好的,并且在通信期间保持活动状态。

请在此添加图片描述

在会话层,会话被视为在应用程序之间建立的一种逻辑连接,其中包含了一系列的请求和响应。这些会话可以是短暂的,也可以是长时间的,具体取决于应用程序的需求和网络条件。

在会话层,有一些重要的概念需要考虑:

客户端与服务器:通信的一方通常被称为客户端,而另一方则被称为服务器。客户端发起请求,服务器响应请求并提供所需的服务或信息。

请求与响应:会话期间会有来回的信息请求和响应。客户端向服务器发送请求,服务器则返回响应。这种请求-响应的模式是会话层通信的基础。

🏅 举个例子:

假设你正在使用一个在线聊天应用程序与朋友进行聊天。在这个场景中,会话层的作用如下:

会话建立:当您启动聊天应用程序并选择与特定的朋友开始聊天时,会话层开始建立会话。在此过程中,应用程序将向服务器发送请求,以建立与您朋友的连接。服务器将验证您的身份,并建立一个唯一的会话标识符以便将您和您的朋友的通信关联起来。

会话维护:一旦会话建立成功,会话层负责维护您与朋友之间的通信。它确保消息的顺序正确,并处理任何可能出现的错误或中断。例如,如果您的网络连接断开,会话层可能会尝试重新连接或者暂时存储未发送的消息,以便在恢复连接后继续发送。

会话终止:当您结束与朋友的聊天时,会话层负责终止会话。这可能涉及向服务器发送一个请求,以通知服务器您要关闭连接。服务器会释放与该会话相关的资源,并关闭连接。

在这个例子中,会话层的功能确保了你与朋友之间的通信顺利进行,无论是建立连接、发送消息还是结束会话,都能够在网络中正确地进行。

OSI 第六层 表示层

在 OSI 模型中,第六层被称为表示层,它位于会话层之上,应用层之下。表示层的主要职责在于处理数据的表示方式、编码格式以及数据的转换,确保不同系统间的数据交换不仅在结构上一致,而且在语义上可理解。其核心功能主要包括数据格式化、数据加密/解密、数据压缩/解压缩等,旨在消除不同终端系统在数据表示上的差异,确保信息的有效传递。

请在此添加图片描述

表示层的主要功能包括:

数据表示与编码

  • 数据格式转换:将数据从发送端的应用程序特定格式(如ASCII、EBCDIC、Unicode等字符集,或特定图像、音频、视频编码)转换为网络标准格式,反之亦然,确保数据在传输过程中具有通用性。
  • 数据结构定义:规定数据的逻辑结构和层次关系,如记录、字段、数组等,使得接收端能够正确解析接收到的数据。

数据压缩与解压缩

  • 提高传输效率:通过对数据进行压缩,减小数据在网络中传输的大小,降低带宽占用,加快传输速度,特别是在低带宽或高延迟的网络环境下尤为关键。
  • 解压缩还原:在接收端,表示层负责将接收到的压缩数据解压还原为原始格式,以便上层应用正确处理。

数据加密与解密

  • 保障数据安全性:对敏感数据进行加密处理,保护数据在传输过程中的隐私性和完整性,防止未经授权的访问、窃取或篡改。
  • 密钥管理与交换:在某些情况下,表示层可能参与密钥的管理和交换过程,为数据加密提供必要的安全基础设施。

字符集与编码协商

  • 语言与字符适配:对于跨国或多语言环境下的通信,表示层负责协商和处理字符集和编码方式,确保不同语言环境下的文本信息能够准确无误地交换。

🏅 举个例子:

假设有两台计算机,一台运行着Windows操作系统,另一台运行着Linux操作系统,它们通过网络连接进行数据交换。现在,Windows计算机上的用户想要与Linux计算机上的用户共享一个文本文件。

在这种情况下,表示层起着关键作用:

数据格式化:Windows和Linux操作系统可能使用不同的文本文件编码格式,例如Windows通常使用的是ANSI编码,而Linux通常使用的是UTF-8编码。表示层可以负责将文本文件的编码格式进行转换,以确保它们在不同操作系统上能够正确地显示。

数据转换:Windows和Linux操作系统可能使用不同的行结束符,例如Windows使用的是CRLF(回车换行),而Linux使用的是LF(换行)。表示层可以负责将文本文件中的行结束符进行转换,以确保它们在不同操作系统上都能够正确识别和解释。

数据压缩:表示层还可以负责对文本文件进行压缩,以减少网络传输时的数据量,提高传输效率。这可以通过使用诸如ZIP或GZIP等压缩算法来实现。

通过这些方式,表示层可以确保文本文件在Windows和Linux操作系统之间进行正确的交换和共享,使用户能够无缝地在不同平台上访问和编辑文件。

OSI 第七层 应用层

OSI模型的第七层,即应用层,是整个模型的顶层,也是最靠近最终用户的一层。这一层负责为用户应用程序提供接口,以实现网络服务的访问和信息交换。应用层协议定义了应用程序之间交互的规则、数据格式和错误处理机制,确保不同系统、不同平台的应用能够有效沟通。

请在此添加图片描述

应用层的主要功能包括:

用户服务接口

  • 提供用户友好的界面,使用户能够通过应用程序(如Web浏览器、电子邮件客户端、即时通讯软件等)与网络进行交互。
  • 实现用户身份验证、授权、访问控制等安全机制,确保只有合法用户能够访问相应的网络服务。

应用功能支持

  • 定义并实现特定网络服务的应用程序,如文件传输、电子邮件、网页浏览、远程登录、即时消息、在线会议、数据库查询等。
  • 支持应用程序间的协同工作,如跨平台文件共享、分布式计算、云服务访问等。

应用协议规范

  • 设计和实现一系列应用层协议,为不同类型的网络服务提供标准的通信规则和数据格式,确保异构系统间的互操作性。
  • 协议之间可能存在相互依赖或协作关系,形成复合应用服务,如Web应用结合使用HTTP、HTTPS、FTP、SMTP、IMAP等多种协议。

🏅 举个例子:

这一层涉及到诸多网络应用,例如电子邮件、文件传输、远程登录等。让我们通过一些例子来说明应用层的作用:

电子邮件(Email):电子邮件是应用层最常见的例子之一。在发送电子邮件时,用户使用邮件客户端(例如Outlook、Gmail)与邮件服务器进行通信。邮件客户端负责将用户撰写的邮件内容封装成电子邮件格式,然后通过应用层协议(如SMTP)将邮件传输到邮件服务器。收件人的邮件客户端再通过应用层协议(如POP3或IMAP)从邮件服务器接收邮件,并将其解析成可读的格式供用户查看。

网页浏览(Web Browsing):在浏览网页时,用户使用浏览器与Web服务器进行通信。浏览器发送HTTP请求到Web服务器,请求特定的网页资源(如HTML文件、图像、视频等)。Web服务器响应这些请求,并将网页内容作为HTTP响应发送回用户的浏览器。浏览器接收到响应后,通过应用层协议(如HTML、CSS、JavaScript)将网页内容解析并渲染成用户可见的页面。

文件传输(File Transfer):在进行文件传输时,用户可以使用诸如FTP(文件传输协议)或SFTP(SSH文件传输协议)等应用层协议。这些协议允许用户将文件从一个计算机传输到另一个计算机,无论是在同一网络内还是跨越不同网络。

远程登录(Remote Login):远程登录允许用户通过网络连接到远程计算机,并在远程计算机上执行命令或操作。常见的远程登录协议包括Telnet和SSH。用户可以使用Telnet协议通过命令行界面远程登录到远程计算机,并执行命令。而SSH协议提供了加密的安全通道,允许用户安全地远程登录到远程计算机进行操作。

数据在 OSI 模型中如何流动

🏅 以张三浏览某知识网站为例说明数据在OSI模型中的流动:

  1. 物理层: 张三使用他的笔记本电脑连接到家里的Wi-Fi网络。当他打开浏览器并键入知识网站的地址时,他的电脑产生了一系列的电信号,这些信号通过Wi-Fi路由器传输到网络中。
  2. 数据链路层: 在家庭网络中,数据被划分成帧,并且每个帧被分配了MAC地址。这些数据帧通过Wi-Fi路由器和家庭中的其他网络设备(如交换机)传输。
  3. 网络层: 数据帧被赋予了IP地址,并且通过Wi-Fi路由器传输到互联网。路由器根据IP地址和路由表将数据包发送到互联网服务提供商(ISP)的服务器上。
  4. 传输层: 在传输层,数据使用TCP协议进行传输。当张三的电脑向知识网站的服务器发送请求时,TCP在张三的电脑和知识网站服务器之间建立连接,并确保数据的可靠传输。
  5. 会话层: 会话层负责建立和维护会话。在浏览知识网站时,张三的浏览器与知识网站的服务器之间建立了会话,以便顺利地传输数据。
  6. 表示层: 表示层对数据进行编码和格式化,以确保在网络上传输。例如,网站上的文本、图像和视频数据会被转换为适当的格式,以便在张三的浏览器上正确显示。
  7. 应用层: 最终,数据到达了应用层,张三的浏览器在这里运行。浏览器接收到来自知识网站服务器的网页数据,并将其渲染为用户可以浏览的页面,使张三能够获取所需的知识信息。

通过这个例子,我们可以清楚地看到数据在OSI模型中的流动路径,以及每一层所承担的功能和作用,从而让张三顺利地浏览知识网站。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python对PDF文件页面的旋转和切割

Python对PDF文件页面的旋转和切割 利用Python的.rotate()方法和.mediabox属性对PDF页面进行旋转和切割,最终生成一个PDF。下面结合案例进行说明,本示例中的名为split_and_rotate.pdf文件在practice_files文件夹中, 示例(1&#…

ShardingSphere分库分表产品介绍

目录 一、ShardingSphere分库分表产品介绍 二、客户端分库分表与服务端分库分表 1、ShardingJDBC客户端分库分表 2、ShardingProxy服务端分库分表 3、ShardingSphere混合部署架构 三、分库分表,能不分就不分! 1、为什么要分库分表? 2、…

基于SpringBoot点餐系统【附源码】

基于SpringBoot点餐系统 效果如下: 系统首页界面 用户注册界面 美食信息页面 促销活动页面 管理员登录主页面 系统管理界面 订单管理界面 研究背景 随着互联网的迅猛发展和人们生活节奏的加快,传统的点餐方式已经无法满足现代消费者对快速、便捷服务的…

解决银河麒麟操作系统中无法通过管理员安装软件或运行有执行权限脚本的问题

解决银河麒麟操作系统中无法通过管理员安装软件或运行有执行权限脚本的问题 1、问题描述2、问题分析3、问题解决方法 💐The Begin💐点点关注,收藏不迷路💐 1、问题描述 在银河麒麟操作系统中,通过终端执行命令时&…

103页PPT | 智慧城市综合解决方案

智慧城市概况 PPT开篇介绍了智慧城市的发展历程,从2014年国家提出《国家新型城镇化规划(2014-2020年)》开始,到2017年提出从“智慧城市”到“新型智慧城市”的转变,再到2020年新型智慧城市建设取得显著成效。这一过程中&#xff…

3.1 显示层技术演变

文章目录 静态网站公共网关接口CGIServletJSPJSP模板引擎第三方模板引擎前后端分离Thymeleaf 今天我将与大家分享显示层技术的演变历程,以及它们在现代Web开发中的应用。 静态网站 首先,我们从静态网站开始。静态网站主要由HTML、CSS和JavaScript等静态…

JimuReport报表部署 | 升级 | 仪表盘集成 | 迁移其他项目 (图文讲解)

目录 前言1. 项目部署2. 项目升级3. 仪表盘集成3.1 配置类事项3.2 版本升级事项4. 迁移到ruoyi-vue-pro4.1 权限4.2 前端5. 彩蛋前言 以下针对Vue以及Java的项目 对于文中所说的nginx以及Java的相关知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(…

冷热数据分离

优质博文:IT-BLOG-CN 一、背景 随着机票业务的快速发展,订单量持续增长对业务性能带来影响,需要进行冷热数据分离。目前机票订单模块主要使用Mysql(InnoDB)作为数据库存储,历史订单信息状态修改频率低并占用大量数据库存储空间&…

第69期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

LeetCode 1928.规定时间内到达终点的最小花费:动态规划

【LetMeFly】1928.规定时间内到达终点的最小花费:动态规划 力扣题目链接:https://leetcode.cn/problems/minimum-cost-to-reach-destination-in-time/ 一个国家有 n 个城市,城市编号为 0 到 n - 1 ,题目保证 所有城市 都由双向道…

Apache DolphinScheduler社区9月进展记录

各位热爱 Apache DolphinScheduler 的小伙伴们,社区 9 月月报更新啦!这里将记录 Apache DolphinScheduler 社区每月的重要更新,欢迎关注! 月度 Merge Star 感谢以下小伙伴上个月为 Apache DolphinScheduler 做的精彩贡献&#x…

数据结构前置知识(上)

1. 初识集合框架 1.1 什么是集合框架 在了解集合框架之前,我们先来认识一下数据结构,所谓数据结构就是描述和组织数据的一个东西. 那什么是集合框架呢?在java里面集合框架(Java Collection Framework),又被称为容器container,说白了就是很多个接口,抽象类,实现类组成的一个包,…

Node脚本实现批量打包Vue项目(child_process子进程、window)

前言 前几天用pnpmworkspace实现了monorepo,也就是单仓库多个项目,并且互相之间可能存在一定的联系。所以就存在一个打包的问题,也就是说,我想在打包某个特定子项目时,其他项目也执行build的命令。主要用到的是node的…

字节跳动推机器人大模型GR-2 展现智能自主操作新高度

字节跳动研究团队近日推出的第二代机器人大模型GR-2(Generative Robot2.0)正在引发业界广泛关注。这款智能机器人不仅标志着机器人大模型技术的重大突破,更预示着智能机器人应用即将迎来一个全新纪元。 GR-2的独特之处在于其创新的学习方式。…

力扣之1355.活动参与者

题目: Sql 测试用例: Create table If Not Exists Friends (id int, name varchar(30), activity varchar(30)); Create table If Not Exists Activities (id int, name varchar(30)); Truncate table Friends; insert into Friends (id, name, acti…

FreeRTOS学习总结

背景:在裸机开发上,有时候我们需要等待某个信号或者需要延迟时,CPU的运算是白白浪费掉了的,CPU的利用率并不高,我们希望当一个函数在等待的时候,可以去执行其他内容,提高CPU的效率,同…

朝花夕拾:多模态图文预训练的前世今生

Diffusion Models专栏文章汇总:入门与实战 前言:时间来到2024年,多模态大模型炙手可热。在上一个时代的【多模态图文预训练】宛若时代的遗珠,本文的时间线从2019年到2022年,从BERT横空出世讲到ViT大杀四方,…

通过阿里云Milvus与PAI搭建高效的检索增强对话系统

阿里云Milvus现已无缝集成于阿里云PAI平台,一站式赋能用户构建高性能的RAG(Retrieval-Augmented Generation)对话系统。您可以利用Milvus作为向量数据的实时存储与检索核心,高效结合PAI和LangChain技术栈,实现从理论到…

数学建模算法与应用 第8章 时间序列分析

目录 8.1 确定性时间序列分析方法 Matlab代码示例:移动平均法提取趋势 8.2 平稳时间序列模型 Matlab代码示例:差分法与ADF检验 8.3 时间序列的Matlab相关工具箱及命令 Matlab代码示例:ARIMA模型的建立 8.4 ARIMA序列与季节性序列 Matl…

【Golang】Go语言中缓冲bufio的原理解读与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…