网络参考模型

OSI七层网络参考模型

在这里插入图片描述

OSI模型仅作为参考,现实中并不用,OSI模型的目的是为了解决主机之间的网络通讯。

1. 物理层:

物理层将由比特(0和1)组成的数据用不同的媒介(电、光或其他形式的电磁波)传输出去。数据从网络接口出去后,经过不同形式的网络拓扑(并不是一条线走到底)。
在这里插入图片描述

因此需要中继器和集线器这样的设备。信号去哪台设备是需要定向的,所以需要高级一点的网络模型。
在这里插入图片描述

在这里插入图片描述

2. 数据链路层:

在数据链路层,比特会被封装成帧(数据链路层表示数据的特殊名字而已),在封装时会加上mac地址(物理地址)。
在这里插入图片描述

网卡出厂时就有全球唯一的Mac地址(16进制)。
在这里插入图片描述

为了可以通过Mac地址对不同设备进行数据的传输,就出现了交换机,这里说的是二层交换机,比方说这里有一台交换机连接多台主机,发送端发送数据的时候,交换机就知道了发送端的Mac地址,如果此时交换机也知道接收端的Mac地址,就可以把数据直接发送过去了。物理地址就是这样一跳一跳的进行传递。另外,因为物理层在传输0和1的时候,可能会0变成1或者1变成0,会进行差错检测以及一定的差错纠正。另外,设备之间的传输能力以及接收能力也是个问题,很可能这边喷水式传输,另一边夹缝式接收。因此需要流动控制来避免这种不对称。

3. 网络层:

互联网是一张大网,如果用Mac物理地址来作为唯一的寻址方法是不科学的。比如我和你买了同一个厂出的网卡,我和你的网卡如果差别就只有一个字母,但是我和你的距离十万八千里,物理地址此时就很难做出快速定位,相当于我有你的名字,但我不知道你住哪里,找不到你,因此需要IP地址来进行寻址和路由选择。IP这样的逻辑地址就是实现端到端的基础了,而不是物理地址那样的跳到跳传输。说到路由选择,也就是说路由器也是网络层的核心。包就是网络层里数据的名字。在封装为二层帧之前,就是包。
在这里插入图片描述

路由器根据包里的IP地址进行路由转发,地址管理和路由选择就是这一层的核心。

4. 传输层:

虽然有Mac和IP地址,就是可以抵达对方主机。但是对方主机可能运行着无数多个软件进程,假设我用谷歌和火狐浏览器同时登录网站,如何让数据去到指定的软件服务上,就需要用到端口号作为地址来定位了。
比如客户端这里生成不同的端口号,即使同时访问HTTP端口80也是没问题的。根据不同的语言端口号来做出响应就可以了。
在这里插入图片描述

所以传输层在网络层的端到端基础上实现了服务进程到服务进程的传输。段就是传输层里数据的名字,在封装为三层包之前就是段。
在这里插入图片描述

传输层管理两个节点之间数据的传输,负责可靠传输(TCP协议)和不可靠传输(UDP协议),另外还有一个新的叫QUIC。其中TCP允许应用把字节流变成多份段,而不是整个字节数据完整的发送出去。
在这里插入图片描述

传输层还有流量控制来保证传输速度,再加上错误控制来进行数据完整的接收。

5. 会话层:

比方说你现在登录某个网站,网站服务可以保持你的登录状态,不用每次都输入账号和密码。当然,网站服务会管理和控制登录状态,另外会话层还负责同步服务,比方说你上次看到电影高潮的时刻突然停电了,再次登录账号的时候就可以自动同步到上次看到的时间段。

6. 表示层:

不同计算机内部的各自表示方式可能不太相同,表示层就来负责这样的转换,也就是编码和解码数据往往还需要进行加密。比方说HTTPS就会对我们的数据进行加密和解密。另外我们可能还需要给文件瘦身,压缩也是这一层负责的。

7. 应用层:

常见的应用层协议:HTTP、FTP
应用层使得应用之间可以实现沟通(逻辑上),是最接近用户的那一层。实际上的连通需要物理层。
应用层、表示层和会话层的数据统称为应用数据或者应用负载,也可以叫做上层数据,同时也是教科书上说的报文。

了解了各层的作用,现在就可以把全部关联起来。客户端要发送数据,也就是报文,报文来到传输层,加上端口号,封装成段。段来的网络层加上IP地址,封装成包。注意这里的包是含有目标IP地址的,但因为目标IP地址不是同一个网络下的,要发送到其他的网络就需要经过默认网关。
在这里插入图片描述

现在就出现了个问题,客户端主机最初并不知道默认网关的Mac地址,没有办法封装成帧,这个时候就可以用ARP协议进行广播,找到网关IP对应的Mac地址,把包封装成帧,原Mac地址写自己的,目标mac地址填广播地址。
在这里插入图片描述

假设当前网络有个2层交换机,这个交换机只需要记录下不同的接口对应的Mac地址就好了。交换机收到广播后就帮忙发送出去,人手一份,所以默认网关收到消息后查看了帧,发现了发送端的Mac地址,再解封发现包里面的IP地址,就会把客户端ma地址和IP地址关联为一台主机。同时默认网关会把自己的IP地址放入包里,再结合自己的Mac地址封装成帧,默认网关就这样做出响应,这样原路返回,发送端就知道默认网关的Mac地址了,现在就可以封装成帧,并且发送数据比特流到了默认网关的时候解封为帧,发现是发送给自己的,再解封为包,查看到目标地址是在另一个网络中的,就会进行路由转发,最终到达目的网络。如果目标的网关知道目标IP地址和Mac地址是哪台主机,封装成帧就可以直接发送过去了。如果不知道,也还是可以用ARP就好,目标主机收到包,确认是自己的IP地址以后,解封查看段可以发现源和目标端口号,用目标端口号给到指定的应用程序,应用程序处理好后就可以按照源的信息做出响应。回去的原理也是一样的。

TCP/IP 参考模型

另外一个著名的模型是 TCP/IP 模型。TCP/IP 是传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol)的简称,是指能够在多个不同网络间实现信息传输的协议族。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

  • TCP/IP 4层模型(思科)
  • TCP/IP 5层模型(华为)

OSI参考模型与TCP/IP模型都采用了分层体系结构,将庞大而复杂的问题转化为着干个较小且易于处理的子问
题。不同的是OSl参考模型划分7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用
层,而TCP/IP参考模型最多划分了5个层次,分别是物理层,数据链路层、网络层、传输层和应用层,将OSI参考模型中的高三层合并为一层统称应用层。在层次结构上,两者都采用了分层体系结构,但是TCP/IP参考模型比OSI参考模型更简化。
在这里插入图片描述
OSI 参考模型没有考虑任何一组特定的协议,因此 OSI 更具有通用性。而 TCP/IP 参考模型与 TCP/IP 协议簇吻合得很好,虽然该模型不适用于其他任何协议栈,但如今的网络多以 TCP/IP 协议簇作为基础,这使得在分层设计上没有过多考虑协议的 OSI 分层理念,所以没有广泛地应用于实际工作中。相反,人们更多地应用 TCP/IP 分层模型在实际工作中分析问题、解决问题。

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

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

相关文章

解决Microsoft store下载/更新时出现错误代码: 0x80070422的方法

首先winr,输入services.msc打开服务面板 找到Microsoft store安装服务这一项,双击打开 启动类型设为自动或手动,然后启动,点击确定即可

Vatee万腾平台:开启企业数字化新纪元的钥匙

在当今瞬息万变的商业环境中,企业数字化转型已成为不可逆转的趋势。这一转型不仅关乎企业的生存与发展,更是企业在激烈的市场竞争中保持领先地位的关键。Vatee万腾平台,作为数字化领域的佼佼者,正以其卓越的性能和广泛的应用场景&…

薪资与职级全景:一览互联网巨头的晋升之路

薪资与职级全景:一览互联网巨头的晋升之路 帮大家整理了包含阿里巴巴、腾讯、百度、字节跳动、华为、京东、美团、滴滴、小米 9*多家 家互联网大厂的薪资、职级、考核、晋升**等内容。 (超多内容,建议收藏起来慢慢看) 字节跳动 全…

什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路

一、什么是虚拟DOM 虚拟 DOM (Virtual DOM )这个概念相信大家都不陌生,从 React 到 Vue ,虚拟 DOM 为这两个框架都带来了跨平台的能力(React-Native 和 Weex) 实际上它只是一层对真实DOM的抽象,以JavaScript 对象 (VNode 节点) 作为基础的树,用对象的属性来描述节点,…

开放式耳机哪个品牌好?2024开放式蓝牙耳机排行榜推荐

​在当今的耳机界,开放式耳机凭借其舒适的佩戴感和新颖的非入耳构造,赢得了众多用户的青睐。这种耳机设计让你在享受音乐的同时,还能清楚地听到周围的声音,方便交流,对耳朵健康也更友好。对于喜欢运动和追求音质的朋友…

【Golang】Go多线程中数据不一致问题解决方案--sync锁机制

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

怎样批量删除大量的QQ邮件?

当你的QQ邮箱中存在大量的邮件,手动删除的话,只能批量删除一页数据,显得很费力!我教大家一个快速删除邮件的方法: 第一步:设置收信规则 第二步:利用收信规则,可将将收件箱中的文件…

C++:vector(题目篇)

文章目录 前言一、只出现一次的数字二、只出现一次的数字 II三、只出现一次的数字 III四、杨辉三角五、删除有序数组中的重复项六、数组中出现次数超过一半的数字七、电话号码的字母组合总结 前言 今天我们一起来看vector相关的题目~ 一、只出现一次的数字 只出现一次的数字…

echarts 中添加图片/图标

let myChart echarts.init(this.$refs.chartOne); // 注意这里的 ref 引用 myChart.setOption({ tooltip: {trigger: item,formatter: {b} : {c}},series: [{type: pie,radius: 50%,data: this.swjList,label: {formatter: (params) > {if (params.name ! ) {let percent…

程序设计基础I-实验7 函数(编程题)

7-1 sdut- C语言实验—计算表达式 计算下列表达式值: 输入格式: 输入x和n的值,其中x为非负实数,n为正整数。 输出格式: 输出f(x,n),保留2位小数。 输入样例: 3 2输出样例: 在这里给出相应的输出。例如: 2.00 …

JUC高并发编程11:Fork/Join分支合并框架

1 Fork/Join 框架简介 Fork/Join 框架是 Java 7 引入的一种并行编程框架,用于将一个大任务拆分成多个小任务进行并行处理,最后将子任务的结果合并成最终的计算结果。Fork/Join 框架的核心思想是将任务递归地分解为更小的子任务,直到子任务足…

Zilliz获Forrester报告全球第一;OB支持向量能力;Azure发布DiskANN;阿里云PG发布内置分析引擎

重要更新 1. Azure发布PostgreSQL向量索引扩展DiskANN,声称在构建HNSW/IVFFlat索引上,速度、精准度都超越pg_vector,并解决了pg_vector长期存在的偶发性返回错误结果的问题( [1] )。 2. 阿里云RDS PostgreSQL 发布AP加速引擎(rds…

Rust编程的函数

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 7.1 函 数 定 义 在Rust中,函数使用fn关键字定义,后跟函数…

干货资料速来领取!!

关于【中国ICD行业 PLM市场研究报告】: 作为电子产业的工业粮食,ICD(集成电路设计)是一个高度专业化的领域,当前已广泛应用于计算机、通信、消费电子、汽车、医疗设备等多个行业。 近年来,国家发布多项积极政策,助推行业快速发展来提升自主可控技术及国际市场竞争力,…

数字创意的孵化器:西安园区打造创意产业生态圈

在数字创意蓬勃发展的时代浪潮中,西安犹如一颗闪耀的新星,凭借着独特的园区建设,为数字创意产业注入无限活力。其中,西安数字创意孵化园区正发挥着不可替代的重要作用,尤其是西安国际数字影像产业园,更是成…

卡门涡街,大自然的诗意律动

1959年8月14日,人类拍摄了地球的首张卫星图像。半个多世纪后,地球已经被上万颗卫星环绕,传回的自拍也越来越清晰。2009年,美国宇航局对过去50年的地球卫星图进行评选,排第一名的是这一张,太平洋上的风流过阿…

面试还搞不懂redis,快看看这40道面试题

Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类…

食品研发PLM系统是什么?三品PLM食品行业解决方案详情介绍

在快速变化的食品行业中,企业面临着诸多挑战,特别是在产品研发管理方面。随着消费者对食品品质、健康、创新等方面需求的不断提升,食品企业必须在产品研发上不断创新,以满足市场需求。然而,这一过程中,食品…

数据分布过于集中 怎么办,python 人工智能 ,数据分析,机器学习pytorch tensorflow ,

数据分布过于集中,意味着数据的大部分值都聚集在某个特定区间内,这可能会导致统计分析的结果不够稳健,或者模型训练时出现过拟合等问题。针对这种情况,可以考虑以下几种方法来处理: 变换成 1. **数据转换**&#xff1…

服装生产管理的现代化:SpringBoot框架

2 关键技术简介 2.1 JAVA技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译&#xff0…