简单认识OSI(计算机网络分层)七层模型

news2024/11/25 12:55:05

 前言

        学校上课讲的太笼统啥也不是,自己学的太玄学似懂非懂突然在看到了一篇公众文文章。文章从初始到现在,步步为营的遇到一个解决一个前人的问题,有了细致入微的讲述,把之前学的死东西都连起来了。

如果让你来设计网络https://mp.weixin.qq.com/s/jiPMUk6zUdOY6eKxAjNDbQ


一、协议分层
 

在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次,比如网络信号如何在光缆网线等介质传输、发起端如何将复杂的本地信息打包成在网络中传播的信号、传播的信号如何寻找接收端、信号在网络中如何在各个中转站正确的选择下一个中转站、接收端收到信息后如何读取利用网络的信息等都是每层协议所要解决的问题,而分层最大的好处在于 "封装" ,我们可以将每一层的问题解耦开来,逐个击破,找到局部最优即可,在面对未来某个单层的协议迭代时对于其它层的影响也可降到最低。
 

二、OSI七层模型
 

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

TCP/IP五层(或四层)模型
 

由于个别层协议解决的问题不是我们所关注的; 所以我们一般按照TCP/IP四层模型学习

  •  物理层(不重要): 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

 一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;
                                                                                                       

网络传输基本流程


 同一个网段内的两台主机进行文件传输

 跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.

数据包封装和分用
 

  •  不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.

 层与层之间就是一个首部的封装和解包(链路层还有尾部)

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

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

相关文章

chatgpt赋能python:Python取余数:介绍和实际应用

Python取余数:介绍和实际应用 Python是一种高级编程语言,其灵活性和多功能性使其成为开发者的首选之一。在Python中,取余数是常见的数学运算之一,这个操作在编写程序时非常有用。在本文中,我们将介绍Python中的取余数…

chatgpt赋能python:Python中单行输出的使用方法

Python中单行输出的使用方法 Python是广泛使用的高级编程语言之一,具有易于学习、可读性强和简单易用等优点。在Python编程中,我们经常需要输出文本内容,而Python中单行输出便是一个非常重要的功能。 什么是单行输出 单行输出是指将多个元…

TDengine 深入解析缓存技术

TDengine是一款高性能的物联网大数据平台。为了高效处理时序数据,TDengine中大量用到了缓存技术,自己实现了哈希表、缓存池等技术。本文会为大家讲解TDengine中用到的这些缓存技术。 首先会介绍一下什么是缓存,常用的缓存技术,最后…

想知道怎么翻译多个文本?我教你三个好方法吧

随着电子商务的全球化发展,越来越多的企业意识到将产品推向全球市场的重要性。在全球市场中,各种语言和文化的消费者都存在着巨大的潜在需求。为了吸引和服务这些不同语言的客户,企业需要采取一系列的措施,其中翻译是至关重要的一…

科技发展的那些事儿

近30年来,科技发展取得了惊人的成就,涉及范围广泛,包括计算机科学、通讯技术、生物医学、能源等多个领域。本文将列举近30年来科技发展的重要事件,并探讨这些事件对我们的生活、工作和社会产生的影响。 1991年,Linux操…

chatgpt赋能python:Python中可以用八进制表示整数吗?

Python中可以用八进制表示整数吗? Python是一种流行的动态编程语言,它支持许多整数表示方法。八进制是一种表示整数的方法,那么Python中可以使用八进制表示整数吗?本文将探讨这个问题。 什么是八进制? 在计算机科学…

基于SSM的服装设计供需系统设计与实现

摘 要:作为服装设计的重要形式之一,服装具有显著的审美性,是人类情感表达不可忽视的代表形态。但在新时期背景下,随着服装设计的进一步优化,服装设计创新融合强度也随之增强。本文就服装设计供需系统进行深入探究。 服…

chatgpt赋能python:如何在Python中去掉逗号

如何在Python中去掉逗号 在Python编程中,逗号是一个非常常见的符号,它通常用于分隔多个变量或值。然而,有时候我们需要从文本中去掉逗号,以便更好地处理数据。那么在Python中,如何去掉逗号呢?接下来&#…

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位&a…

idea使用Alibaba Cloud Toolkit插件远程操作Docker

idea使用Alibaba Cloud Toolkit插件远程操作Docker 前言 从github下载的开源项目源码,你基本上都能在项目根目录下发现会有个Dockerfile文件,Dockerfile文件是记录构建docker容器的构建命令,用途:一般用来将本地的jar包远程传输到…

内存对齐原则

struct (1)结构体第一个数据成员放在offset为0的地方,后面每个成员相对于结构体首地址的偏移量(offset)都是成员大小(该变量类型所占字节)的整数倍,如有需要编译器会在成员之间加上填…

中国人工智能学会主办!真实AIGC业务数据驱动,欢迎全球开发者参加

近期,由百度商业联合中国人工智能学会举办、NVIDIA提供战略支持,百度飞桨承办的“百度商业AI技术创新大赛”正式启动,启动会现场,中国工程院院士、中国人工智能学会理事长、清华大学信息科学技术学院院长戴琼海院士通过视频方式对…

chatgpt赋能python:在Python中一行书写两条语句:提高代码效率的好策略

在Python中一行书写两条语句:提高代码效率的好策略 从一开始Python就是因为简单易用、快速开发、名字有趣等因素而受到开发者的喜爱。当然,解释型语言也是Python深受欢迎的原因之一,你可以在Linux、Windows、Mac等各种平台上运行Python脚本&…

基于SSM的图书借阅管理系统

1.项目介绍 本项目是一款基于SpringSpring MVCMybatis的图书借阅管理系统,主要针对计算机相关主页的正在做课程设计的学生与需要项目实战学习、练习的Java学生人群。 该系统基于B/S架构,采用SpringSpring MVCMybatis框架技术,并结合主流的轻…

一起了解AJAX

注册账号的时候账号不能重复,通过AJAX实现实时验证当前注册的账号是否存在。 1.1register.jsp. 1.2HomeRegisterServlet. 2.JSON概述. 2.1何为JSON. JSON即 JavaScript Object Notation (js对象标记) ,是一种轻量级的数据交换格式&#xf…

Eclipse教程 Ⅷ

Eclipse Debug 配置 创建和使用 Debug 配置 Eclipse Debug 配置类似于运行配置但它是用于在调试模式下开启应用。 打开 Debug 配置对话框步骤为:Run > Debug Configurations 。 从左侧列表中选择 "Java Application" 选项来选择要调试的 Java 代码。…

使用KubeSphere3.3在Ubuntu20.04的Kubernetes1.24上部署Word Press

使用KubeSphere3.3在Ubuntu20.04的Kubernetes1.24上部署Word Press 前言 之前已经部署了KubeSphere和K8S的基础环境:https://lizhiyong.blog.csdn.net/article/details/126236516 部署了大数据统一文件编排层Alluxio:https://lizhiyong.blog.csdn.net…

抖音seo源码开发开源--MySQL语言

源码开发是指基于开放源代码的软件或应用程序进行开发和定制。开放源代码是指软件或应用程序的源代码是公开的,任何人都可以查看、修改和分享。源码开发者可以从开放的源代码中学习和了解软件的工作原理,并基于自己的需求进行修改、定制和扩展。开放源代…

chatgpt赋能python:Python字符串首字母大写的方法

Python字符串首字母大写的方法 Python是一种高级编程语言,广泛用于科学计算、Web开发和网络编程等多个领域。在Python编程中,我们常常需要将字符串首字母大写,以符合一些规范或要求。在本文中,我们将介绍Python中将字符串首字母大…

效率至少提升数倍的office技巧

在现代办公室,WPS Office已成为无可替代的工具之一。然而,许多办公室员工却未能充分发掘WPS Office的强大功能和技巧。在快节奏的工作环境中,掌握一些WPS Office的技巧,将帮助员工们提高工作效率、改善文件处理和团队协作能力。下…