zoukankan      html  css  js  c++  java
  • OSI7层模型

    1.什么是OSI模型?

      开放系统互连(OSI)模型是国际标准化组织创建的概念模型,它使各种通信系统能够使用标准协议进行通信。简单而言,OSI为保证不同计算机系统能够相互通信提供了标准。

      人们可以将OSI模型视为一种通用计算机网络语言。它基于将通信系统分为七个抽象层的概念,每个抽象层堆叠在最后一层。根据这一概念,通信系统分成七个抽象层,逐层堆叠而成。

      OSI 模型的每一层负责处理特定作业并与其上下层进行通信。DDoS攻击的目标是特定的网络连接层;应用程序层攻击的目标第7层,协议层攻击的目标第3层和第4层。

     

    2.为什么OSI模型至关重要?

      虽然现代Internet并未严格采用OSI模型(更倾向于采用较简单的Internet协议套件),但OSI模型对于解决网络问题仍然很有帮助。无论是某位无法使用笔记本电脑上网的用户,还是为数千名用户提供服务的网站,OSI模型都能帮助分解问题并找到问题根源。如果可以将问题范围缩小到模型的某个特定层,就能避免许多不必要的工作。

     

    3.OSI模型的七层结构分别是什么?

      OSI 模型的七个抽象层定义如下(自上而下):

      7.应用程序层

      这是唯一直接接触用户数据的层。软件应用程序(如Web浏览器和电子邮件客户端)依靠应用程序层发起通信。但需要明确的是,客户端软件应用程序不属于应用程序层;相反,应用程序层负责协议和数据操作,软件依靠上述操作向用户呈现有效数据。应用程序层协议包括HTTP和SMTP(简单邮件传输协议是支持开展电子邮件通信的协议之一)。

      6.表示层

      这一层主要负责准备数据,以便应用程序层进行使用;换言之,第6层用于确保数据可供应用程序使用。表示层负责完成数据转换、加密和压缩。

      两台相互通信的设备可能使用不同的编码方法,因此第6层负责将传入数据转换为接收设备应用程序层可以理解的语法。

      如果设备通过加密连接进行通信,则第6层负责发送端加密和接收端解密,以便向应用程序层呈现非加密可读数据。

      最后,表示层还负责压缩从应用程序层接收的数据,然后将数据传递到第5层。这有助于尽量减少要传输的数据量,从而提高通信速度和效率。

      5.会话层

      这一层负责打开和关闭两个设备之间的通信。通信打开与关闭之间的时间称为会话。会话层用于确保会话保持打开的时长足以传输所有交换数据,而后立即关闭会话以避免浪费资源。

      会话层还负责同步数据传输与检查点。例如,如果传输一个100MB的文件,会话层可以每5MB设置一个检查点。如果在传输了52MB后连接断开或崩溃,可以从最后一个检查点恢复会话,也就是只需再传输50MB数据。若未设置检查点,则必须从头开始传输整个文件

      4.传输层

      第4层负责两个设备间的端到端通信。包括从会话层提取数据,将数据分解为多个区块(称为数据段),然后再发送到第3层。接收设备传输层负责重组数据段,确保数据可供会话层使用。

      传输层还负责进行流量控制和错误控制。流量控制用于确定最佳传输速度,避免采用快速连接的发送方压垮采用慢速连接的接收方。传输层通过确保接收数据的完整性(如果不完整,则请求重新传输)来对接收端进行错误控制。

      3.网络层

      网络层负责促进两个不同网络之间的数据传输。如果两个通信设备位于同一网络,则不需要使用网络层。网络层在发送设备上将传输层发出的数据段分解更小的单元(称为数据包),再在接收设备上重组这些数据包。网络层还要确定数据到达目的地所需的最佳物理路径;人们将此称为路由。

      2.数据链路层

      数据链路层与网络层十分相似,但数据链路层用于促进“同一”网络上两个设备之间的数据传输。数据链路层从网络层提取数据包并将数据包分解成更小的部分(称为帧)。与网络层一样,数据链路层也负责网络内部通信流量控制和错误控制(传输层仅负责网络间通信流量控制和错误控制)。

      1.物理层

      这一层包括参与数据传输的物理设备,如电缆和交换机。同时还负责将数据转换为位流,也就是由1和0构成的字符串。另外,两台设备的物理层必须达成信号约定,以便区分两台设备的字符串1和0。

     

    4.数据在OSI模型中如何流动

      为通过网络将人类可读信息从一台设备传输到另一台设备,必须在发送设备沿OSI模型的七层结构向下传输数据,然后在接收端沿七层结构向上传输数据。

      库珀先生想给帕尔梅女士发一封电子邮件。库珀先生在笔记本电脑的电子邮件应用程序中编写邮件,然后点击“发送”。电子邮件应用程序将电子邮件传递到应用程序层,应用程序层选取协议(SMTP),再将数据传递到表示层。接着,表示层压缩数据,再将数据传递到会话层,由会话层初始化通信会话。

      而后,数据将到达发送方的传输层,在传输层进行分段,再在网络层将这些数据段分解为数据包,然后在数据链路层进一步分解为帧。随后,数据链路层将这些帧传输到物理层,物理层将数据转换为位流1和0,最后通过物理介质(如电缆)发送数据。

      帕尔梅女士的计算机通过物理介质(如她的WiFi)接收位流后,数据将沿其设备的同一系列层级流动,但顺序刚好相反。首先,物理层将位流从1和0转换为帧,传递到数据链路层。然后,数据链路层将帧重组为数据包,供网络层使用。接着,网络层将数据包重组为数据段供传输层使用,传输层再将数据段重组为数据片段。

      随后,数据将流入收件方的会话层,会话层将数据传递到表示层并结束通信会话。表示层解压数据并将原始数据传递到应用程序层。应用程序层将人类可读数据传递到帕尔梅女士的电子邮件软件,这样她就能在笔记本电脑屏幕上阅读库珀先生的电子邮件了。

    作者:小家电维修

    相见有时,后会无期。

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/lizexiong/p/14847240.html
Copyright © 2011-2022 走看看