计算机网络核心知识--1.1 网络核心知识讲解(OSI七层参考模型)

本文主要是介绍计算机网络核心知识--1.1 网络核心知识讲解(OSI七层参考模型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络核心知识,这里主要是了解OSI七层参考模型。
先看下七层参考模型的示意图:
在这里插入图片描述
OSI(开放网络互联)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
主要分7层:
(1)物理层:解决两台物理机之间的通信需求,简单讲就是机器A往机器B发送比特流,机器B要能够收到这些比特流。物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率,其主要作用就是传输比特流啦,即我们的0101二进制数据,物理层将比特流转换成电流的强弱来进行传输,到达目的后,再转换为0101的机器码,也就是我们常说的数模转换与模数转换。这一层的数据叫做比特,网卡就是工作在这一层。

(2)数据链路层:在传输比特流的过程中,会产生错传,数据传输不完整的可能。因此数据链路层应运而生。数据链路层定义了如何格式化数据以进行传输,以及如何控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据传输的可靠性。本层将比特数据组成了帧,其中交换机工作在这一层里面,对帧解码,并根据帧中包含的信息,把数据发送到正确的接收方。

(3)网络层:那随着网络节点的不断增加,点对点通信的时候需要经过多个节点,那么如何找到目标节点,如何选择最佳路径,便成为首要需求,此时便有了网络层。网络层的作用就是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑,发送优先权,网络拥塞程度,服务质量以及可选路由的花费,来决定从一个网络中节点A到另一个网络节点B的最佳路径。由于网络层处理并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。此层的数据我们称为数据包,此层我们要关注的协议是TCP/IP协议栈中的IP协议。

(4)传输层:随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输的,可能需要很长时间。而网络在通信的过程中,会中断很多次,此时为了保证传输大量文件时的准确性,需要对发出去的数据进行切分,切割成一个一个的段落及segement进行发送,那么如果其中一个段落丢失了怎么办?要不要重传?每个段落要按照顺序到达吗?这就是传输层需要考虑的问题了。传输层解决了主机间的数据传输,数据间的传输可以是不同网段的,并且传输层解决了传输质量的问题。传输协议同时进行流量控制,或是基于接收方可接受数据的快慢程度,规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸,将较长的数据包进行强制分割,例如以太网无法接受大于1500字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一个数据片安排一个序列号,以便数据到达接收方节点的传输层的时候,能以正确的顺序重组,该过程即称为排序。传输层我们需关注TCP/IP协议栈中的TCP协议。

(5)会话层:现在我们已经保证给正确的计算机发送正确封装过后的信息了,但是用户级别的体验好不好?难道我们每次都调用TCP去打包,然后调用IP协议去找路由?自己去发?当然不行。所以我们要建立一个自动收发包,自动寻址的功能,于是会话层出来了。会话层的作用就是建立和管理应用程序之间的通信。

(6)表示层:现在我们能保证应用程序自动收发包和寻址了,但如果我们要用Linux给Windows发包,两个系统语法不一致,就像安装包一样,exe是不能在Linux上运行的,shell在Windows下也不能直接运行。于是需要表示层(即presentationLayer)帮我们解决不同系统之间的通信语法问题,在表示层,数据将按照网络能理解的方案进行格式化,这种格式化也因所使用网络类型的不同而不同。

(7)应用层:此时虽然发送方知道自己发送的是什么东西,转成字节数组之后有多长,但接收方肯定不知道,所以应用层的网络协议诞生了。它规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里面必须记录消息体的固定长度等一系列信息,以方便接收方能够正确地解析发送方发送的数据。应用层旨在让你更方便地应用同一网络中接受到的数据,至于数据的传递,没有该层,你也可以直接在两台电脑间开干,不过传来传去,都是一堆由0和1组成的字节数组,该层要重点关注的是TCP/IP协议栈中的HTTP协议。

看完上面的大段文字描述,我们用图来简化一下各层的功能:
在这里插入图片描述

以上就是对osi各个层次的划分,从应用层开始,都会对要传输的数据头部进行处理,加上本层的一些信息,最后由物理层通过以太网电缆等介质将数据解析成比特流,在网络中传输。数据传递到目标地址,并自底而上地将现前对应成的头部给解析分离出来,这个就是网络数据处理的整个流程。

osi是一个定义良好的协议规范集,并由许多可选部分完成类似的任务,它定义了开放系统的层次结构,层次之间的相互关系以及各层所包括的可能的任务,是作为一个框架来协调和组织各层所提供的服务。但是OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定,即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念型框架。
试行的标准是TCP/IP四层架构参考模型,TCP/IP参考模型是首先由arpant所使用的网络体系结构,后来该结构被美国国防部作为计算机网络的标准,由于领头大哥的推动,市面上绝大多数厂商也以该标准为主,用以商用。虽然TCP/IP协议并不完全符合osi的七层参考模型,但我们依然可以理解为它是OSI的一种实现。

OSI七层模型和TCP/IP概念模型的对比:
在这里插入图片描述
现在我们按照TCP/IP的概念模型来简单描述一下数据传输流程:
应用层准备好要传输的数据,到达传输层之后,数据被切分成块或段并编号,然后发往网络层,在网络层,给每一个数据块加上目标IP地址和源IP地址,组成一个数据包,发往数据链路层,在数据链路层,给每一个数据包加上源mac地址和目标mac地址及帧校验序列FCS,组成数据帧,发往物理层,然后物理层通过物理设备将帧转换为比特流传输。在接收端则以相反的顺序一步步解析得到原始数据。

将网络进行分层的好处
有了这些规范之后,这些不同的厂商生产的网络设备就可以按照这个规范来生产,然后它们之间用网线一连就可以连上,比方说,现在有思科的交换机,也有华为的交换机,我们都是以以太网的标准来制造的,它们用网线一连,就可以通讯了。这就是标准化之后的好处。如果不遵循这个标准,那么这个公司生产这这种标准的网络设备,那个公司生产那种标准的网络设备,它们之间用网线连不上,这实际上是不利于互联网的发展的。分层也使得每一层比较独立,某一层变化,不会影响其他层的改变。

这篇关于计算机网络核心知识--1.1 网络核心知识讲解(OSI七层参考模型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815543

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

usaco 1.1 Broken Necklace(DP)

直接上代码 接触的第一道dp ps.大概的思路就是 先从左往右用一个数组在每个点记下蓝或黑的个数 再从右到左算一遍 最后取出最大的即可 核心语句在于: 如果 str[i] = 'r'  ,   rl[i]=rl[i-1]+1, bl[i]=0 如果 str[i] = 'b' ,  bl[i]=bl[i-1]+1, rl[i]=0 如果 str[i] = 'w',  bl[i]=b

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能