热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络计算机网络分层结构

为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商

为了解决计算机网络复杂的问题,提出了计算机网络分层结构。
计算机网络分层结构主要有OSI 7层参考模型,TCP/IP 4层参考模型两种。


为什么要分层


  • 不同产商生产的产品都可以通过统一标准实现通信。
  • 不同层面发生变化,不会影响到别的层面,只需要改变该层面即可。
  • 方便网路通信,因为计算机网络是一个非常复杂的事情,当对其进行划分时,方便我们进行管理与通信。

OSI参考模型

在这里插入图片描述
通信子网:物理层、数据链路层、网络层,只要是负责数据的通信。
资源子网:会话层、表示层、应用层,主要是负责数据的处理。
传输层:主要是将通信子网与资源子网链接起来。

应用层
所有能和用户产生网络流量的程序都属于应用层。

表示层
用于处理在两个通信系统中交换信息的表示方式(语法与语义)


  • 功能一:数据格式变化。
  • 功能二:数据加密与解密。
  • 功能三:数据压缩与解压缩。
    例如:我们在访问网页时,如果网络不稳定,有时我们会看到一些乱码,这就是表示层对数据格式进行的处理。
    我们在使用微信聊天的时候,给对方发送的消息,都先要进行加密处理,同时当对方收到消息后,先对加密的消息进行解密。如果我们给对方发送视频或者图片时,由于视频或图片过大,对网络带宽要求比较高,所以表示层会对其先进行压缩处理。

会话层
向表示层实体建立连接,并在连接上有序地传输数据。


  • 功能一:建立、管理、终止会话。
  • 功能二:使用校验点可使的会话在通信失效传输失败的时候,恢复通信重新在校验点处重传数据 ,实现数据的同步。
    在这里插入图片描述
    我们可以查看会话层,查看我们电脑是否存在木马病毒。因为木马程序一直是在系统后台运行,需要一直与外部建立联系,所以一定会存在于会话层中,netstat -n命令可以查看。netstat -nb命令可以查看会话层中程序名称。

传输层

主要是负责两个进程之间的通信,传输单位是报文或者是用户数据报。


  • 功能一:可靠传输、不可靠传输。
  • 功能二:流量控制。控制两个进程之间接收与传输的速度匹配。
  • 功能三:数据纠错。
  • 复用与分用。
    例如:我们在使用微信聊天时,当我们给对方发送的消息非常短,只需要一个数据包就可以发送完,则称为不可靠传输。当消息非常多,一个数据包发送不了时,会对该消息进行分割,将该消息分为多个数据包发送,给每个数据包进行编号,当发送完一个后,等待对方确认收到(RTT),接着发送下一个数据包,我们称其为可靠传输。
    当发送端发送的数据过快,接收端接收不过来时,会通过传输层告诉发送端发送的慢一点,这就是流量控制。
    当一个数据包帧发生错误了,负责对数据帧进行纠错。

网络层


  • 负责选择最佳的路径
  • 规划IP地址。

数据链路层


  • 封装帧的开始与结尾。
  • 差错检验。
    数据在网络中传输是使用数据帧的形式传输,数据链路层就是负责给数据帧加上其开始与结尾的标志信息。同时也可以判断数据帧在传输的过程中是否发生错误,但是对错误不进行纠错,只负责检验。

物理层


  • 提供接口标准。
  • 电器标准。统一定义网卡上的信息。

各个层面之间的联系

在这里插入图片描述
每一层都是为上一层提供服务。如果这一层出现问题,则其上面所有的层都不能正常工作。


TCP/IP 协议的分层结构

TCP/IP协议为 4层结构就相当于对OSI 7层结构的一个简化。
在这里插入图片描述
在这里插入图片描述
应用层
应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层
提供结点之间的数据传送,应用程序之间的通信服务。主要功能有数据格式化、数据重传、传输确认。传输控制协议TCP,用户数据报协议UDP。主要是负责数据的传输以及确认数据已经被接收。

互连网络层
负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机,但是不检查是否被成功接收。

网络接口层
接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层。

在这里插入图片描述


推荐阅读
  • 说明Python教程正在编写中,欢迎大家加微信sinbam提供意见、建议、纠错、催更。drymail是一个邮件发送库,封装了Python的smtplib ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 本文介绍了在 Android 平台上的图片上传工具类优化方案,重点讨论了如何通过设置 `MultipartEntity` 来实现图片的高效上传。具体实现中,通过自定义 `UserUploadServiceImpl` 类,详细展示了如何构建和发送包含图片数据的 HTTP 请求。此外,还探讨了如何处理上传过程中的常见问题,如网络异常和文件格式验证,以确保上传的稳定性和可靠性。 ... [详细]
  • Spring框架下发送嵌入图片邮件时遇到的技术挑战与解决方案
    在Spring框架中发送嵌入图片的HTML格式邮件时,常遇到技术挑战。一种有效的解决方案是在邮件内容中直接使用``标签来引用图片。此外,还可以通过MimeMessageHelper类的addInline方法将图片作为内联资源添加到邮件中,确保图片能够正确显示。这种方法不仅提高了邮件的可读性,还增强了用户体验。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 所在位置|室友_Python+OpenCv实现图像边缘检测(滑动调节阈值)
    所在位置|室友_Python+OpenCv实现图像边缘检测(滑动调节阈值) ... [详细]
  • React 实现 Post 请求下载 PDF 文件的解决方案
    在 React 应用中实现通过 POST 请求下载 PDF 文件的功能,本文提供了完整的代码示例。具体实现包括设置状态以显示加载提示,并通过控制台日志记录下载索引,确保请求的正确性和用户体验。此外,还详细介绍了如何处理响应流并将其转换为可下载的 PDF 文件,适用于需要安全传输数据的场景。 ... [详细]
  • 大数据应用实例:电视收视率分析企业项目实操第二篇
    本文继续探讨大数据在电视收视率分析中的应用,详细介绍了如何在CentOS系统中进行防火墙管理。针对CentOS 6.5及更早版本,提供了具体的命令操作步骤,包括停止防火墙服务和禁用防火墙启动。此外,还深入讨论了这些操作对数据传输和系统安全的影响,为实际项目实施提供了宝贵的技术参考。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 系统管理员可以通过多种方法实时监控Linux系统中的用户活动,包括当前已登录的用户及其正在进行的操作。利用特定的命令和工具,管理员可以轻松获取这些信息,确保系统的安全性和稳定性。例如,使用`who`、`w`或`last`等命令可以快速查看当前登录的用户及其活动详情。 ... [详细]
author-avatar
手机用户2602928363_688
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有