【达哥讲网络——只讲你不知道的】第1集:网络体系结构中的功能模块

news2024/11/17 9:44:12

    大家好,经过公司缜密的思考和策划,【达哥讲网络——只讲你不知道的】系列连载今天正式与大家见面了。经过深入考虑,本系列只对一些重要的网络技术原理、网络功能实现原理及配置进行连载,其中会穿插一些实战案例,以帮助大家消化。为了便于学习,提高学习效率,决定采用图文方式,每集阅读时间在10分钟左右。今天是第1集,专门就网络体系结构中的功能模块进行介绍,下一集专门介绍一下许多朋友还不是很清楚的各类型网络中的数据封装和解封装原理。

    学网络的,一开始都要学习OSI/RM和TCP/IP网络体系结构。大家也都知道OSI/RM参考模型划分了7层,TCP/IP模型划分了5层,且大致也知道各层的主要功能,但却很少人从宏观上深入分析网络体系结构中的整体功能模块划分。

1. 体系结构的功能模块

     其实TCP/IP体系结构与OSI/RM的设计原理基本上是一样的,可以把TCP/IP模型看成是OSI/RM中专门针对TCP/IP网络的一种优化特例。在TCP/IP体系结构中,各层中所用的协议均为TCP/IP网络中支持的协议,且把OSI/RM中最高三层合并成一层,因为OSI/RM中的“会话层”和“表示层”功能少且简单,合并在“应用层”更便于网络软/硬件开发,无需单独划分层次。

    TCP/IP体系结构中的5层各司其职,但我们不能孤立地看问题,不能单独看某一层的功能。其实总的来说,这五层分成了三大功能模块:最低“网络通信模块”,中间的“数据传输模块”,最高的“网络应用模块”。

 1. 网络通信模块

     “网络通信模块”包括了TCP/IP体系结构中最低的三层,即“物理层”、“数据链路层”和“网络层”,解决的是网络通信中最基础的通信平台建设的问题,使网络通信中传输的数据有“路”可走,还可选择走什么“路”。所谓的有“路”可走,是指通信两端有可供数据转发的路径(包括“线路”)。至于采用什么样的线路,那就是走什么“路”的问题了。

     现在的网络通信线路有许多种,在有线网络中,最常见的就是双绞线线路、光纤线路,在WLAN无线网络中的线路则是看不见的电波。不同的线路特性不同,性能也不同,架设的成本也不同,当然也各有自己的优势和适用的场景。在这里我们立马会联想到现实生活中的一个实例,那就异地货物运输。当你有货物要运输到外地客户时,你肯定首先要根据运输成本、货物特点、客户所在地等因素决定采用什么运输方式,是陆运、水运,还是空运,其实也是走什么“路”的问题。不同的运输方式有不同的特性,成本也大不一样,当然也有各自不同的优势和适用的货物、客户类型。只有网络建设好了,才有后续的网络通信事件的发生,就像只有运输方式确定了,才能有后续的货物运输事件发生一样。

     “网络通信模块”中的三层也有高低之分,既各司其职,又相互协作,下层通过SAP(服务访问点)为相邻的上层服务。“物理层”是最低层,可以看成是用来实现网络设备之间的物理和电气连接,这是网络通信平台建设的最基本前提。“数据链路层”是第二层,实现的是同一IP网段中设备之间的网络通信,其功能实现前提仅是网络中各设备已实现了物理和电气连通,所以它在“物理层”之上,共同构建同一IP网段的网络通信平台。

    “网络层”是第三层,实现的是不同IP网段(跨网段)中设备之间的网络通信,需要借助路由来选择在不同IP网段间进行数据转发的路径。但跨网段的网络通信通常也包括同一IP网段内设备之间的通信,因为数据从一个IP网段进入另一个IP网段后,又会按照同一IP网段的中“数据链路层”转发规则进行寻址和转发,所以“网络层”又位于“数据链路层”之上,再加上实现网络设备物理和电气连通的“物理层”共同构建不同IP网段的网络通信平台。

2. 数据传输模块

    “数据传输模块”仅包括“传输层”这一层,实现的就是在已搭建好的网络通信平台中进行数据传输,即把数据从源端传输到目的端,实现真正的“端到端”的数据传输。就像货物运输中,确定了运输方式后,就要根据所选定的运输方式,以及所装载的货物类型、特性等与收货方共同商定选择适当的货物装载容器、装载工具,然后与运输商签定运输协议,通常是选择把货物从发货方直发收货方。传输层中的功能类似,不同的上层应用协议选择不同的传输层协议(如TCP和UDP),如果选择的是TCP,则需要事先在源端和目的端之间建立一个专门的连接,然后才能正式进行数据传输。就像货物运输时,如果选择空运,则先要向民航管理机构申请使用专门的航道一样。

3. 网络应用模块

    “网络应用模块”对应的就是网络体系结构中的最高层——应用层。这是用户应用数据的真正始发层,也相应于货特运输中要真正运输的货物。网络通信的最终目的就是实现一个个具体的网络应用,如通过HTTP实现远程的Web服务器访问,通过DHCP实现对远程客户端的IP地址分配,通过Telnet实现对远程设备的登录和管理等。

    在应用层,不同的应用所选择的数据传输方式有可能不同,也就是对应不同的传输层协议。而不同的应用又有不同的特性,如有不同的应用参数,不同的数据保护方法(如加密方式),不同的数据格式等。就像不同货物在装载时要选择不同的加固/ 保护方式,不同的包装/保鲜方式等一样。

    在源端用户要发送的数据必须经过对应的应用层协议封装(会加装对应的应用层协议的头部)后才能发往下面的传输层,选择对应的传输层协议进行传输,否则数据到达对端后无法交由对应的应用程序模块进行恰当的处理(如是否需要解除密,是否需要对数据进行完整性验证,是否需要对发送方身份进行认证等)。就像货物在运输前,必须采用相应的包装、标识方式对货物进行标识,否则接收方收到货物后不能从包装、标识上获知货物的类型、数量等,也就很难对货物进行完整的验收,做出恰当的货物接收(由哪个部门接收)、处理(是直接交付使用,还是先放入仓库暂存等)方式。

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

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

相关文章

python与蒸散发与植被总初级生产力估算

植被总初级生产力(GPP)是指植物通过光合作用吸收的碳,是陆地生物圈和大气之间最大的碳通量,GPP的准确量化对于理解气候变化中生态系统功能、农业生产和碳循环的动态以及对气候的反馈具有重要意义 蒸散发(Evapotranspiration,ET&a…

websdk上传阿里云视频完整教程

批量上传视频到阿里云 这段时间项目里有一个上传视频到阿里云的功能是我来负责写的,之前一直没有写过这种功能,感觉很难的亚子,但是后来仔细研究了一遍发现也没想象中那么难,最后经过不懈的努力也算是搞出来了哈哈哈,开…

集合List和Map

ArrayList底层的实现原理 初始化后ArrayList添加元素的步骤 首先计算数组的容量,如果当前数组已使用长度1后的大于当前的数组长度,则调用grow方法扩容(原来的1.5倍),确保新增的数据有地方存储之后,则添加元素到size的位置上。返回…

docker环境下安装mysql 5.6

一、查看mgsql镜像版本 docker search mysql 二、拉取mysql镜像到本地标签为5.6版本 docker pull mysql:5.6 三、使用mysql5.6镜像创建容器(也叫运行镜像) 1.执行命令: docker run -p 3306:3306 --name mysql -v /haolb/mysql/conf:/etc/mysql/conf.d -v /haolb/my…

P2P、BT、ED2k、FTP、磁力链接下载到底是什么鬼?

1、HTTP/HTTPS 下载 有小伙伴会问,这个协议不是用来浏览网页的时候用的吗? 其实不然,用来下载文件一样可以,本质上都是从服务器拉取资源到本地,不同的是网页内容被渲染到浏览器上,而文件直接放在你的下载…

财富航向:企业为何急需财务管理软件?

随着市场的竞争日益激烈,企业对于财务数据的管理越来越重视。财务管理软件存在的好处越来越明显,它们可以帮助企业更好地管理财务信息并提高工作效率。 企业为什么需要财务管理软件? 1、方便管理财务数据 财务管理软件能够方便地管理与公司财…

教程学习:AutoQSAR

教程和练习文件从软件官网下载 内容: 1、拷贝教程提供的练习文件素材: 在软件的help中选择需要的教程,点击Copy to,可以将教程需要的文件拷贝到指定的文件夹里。点击Browse可以进行预览。 2、建立一个数值型的QSAR模型评估结合…

msvcr120.dll找不到是什么原因,怎样修复

msvcr120.dll的定义 msvcr120.dll是微软Visual C Redistributable软件包中的一个动态链接库文件。它是Microsoft Visual 所需的一个重要组件。这个文件主要用于支持和管理C语言编写的应用程序的运行。它包含了许多C的运行库函数和类,以便应用程序能够正常运行和调用…

2023-07-10:Kafka如何做到消息不丢失?

2023-07-10:Kafka如何做到消息不丢失? 答案2023-07-10: Kafka采用多种机制来确保消息的不丢失,其中包括副本机制、ISR(In-Sync Replicas)机制以及ACK机制等。 1.副本机制 Kafka通过副本机制来确保消息不…

【ElasticSearch】ES自动补全查询与Java接口实现

文章目录 1、安装拼音分词器2、自定义分词器3、completion suggester查询4、hotel索引库更新5、代码修改6、RestAPI实现自动补全7、需求:搜索框实现自动补全 自动补全就是当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项。 1、安装拼音分词…

“小程序化”,一种创新的超级App开发模式

超级App是一种集成了多个功能和服务的移动应用程序,它在一个平台上提供了广泛的服务和体验。超级App通常具有大量的用户群体和高度活跃的用户社区,通过提供便利、多样化的功能,吸引用户在一个应用中完成多个任务和满足多个需求。 与传统的单…

postgresql 数据库 重建索引 所需时间测试

postgresql 数据库 重建索引 所需时间测试 文章目录 postgresql 数据库 重建索引 所需时间测试前言测试前准备重建索引前数据库状态测试计划重建索引命令测试开始1.先对表2进行测试2. 表3测试3. 表1测试 🌈后记 前言 众所周知,postgresql数据库使用久了…

【业务功能篇42】ThreadPoolTaskExecutor多线程处理耗时较高的数据接口

业务场景:当前业务模块中,有个查询产品直通率接口,随着数据量的递增,百万级数据,并且需要并表的情况下,那么返回数据就会开始变慢,而在数据层方面,已经比较难去做进一步的sql优化&am…

一致性哈希算法小结

在实际生产应用中,经常会设置多台服务器共同组成一个集成对外提供服务,为了确保合理的分配来自客户端的请求,我们会采取负载均衡的策略。例如采用「轮询」的方式让每个节点都能公平的接收到请求;采用「加权轮询」的方式让硬件配置…

MySQL-MySQL分组查询每组最新的一条数据

方法一: 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘se_jck的博客-CSDN博客 这个错误是由于 MySQL 的新版本中默认开启了ONLY_FULL_GROUP_BY模式,即在 GROUP BY 语句中的 SELECT 列表中&am…

[MMDetection]测试模型

以下是基于MMdetection3.10版本 1、简单测试模型 测试模型一般使用tools中的test.py,一般使用方式 python tools/test.py config文件路径 权重文件路径 可以通过--show 来以gui展示检测结果 python tools/test.py config文件路径 权重文件路径 --show 可以通过--s…

【Linux】部署Prometheus + Grafana简介、监控及设置告警详细操作(多种方式安装,亲测无问题)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 一、环境准备二、部署 Prometheus&am…

优思学院|精益管理入门书籍有哪些推荐?

精益管理是一门易学难精的学问,如果对其基本原则了解不正确,可能会误入歧途,不但不能发挥精益工具的威力,甚至会令企业走向错误的方向,反带来更多的浪费和捐失。以下将介绍几本经典的书籍,可以让你有效地、…

python简单使用【mac-ide:pycharm】

小白实用快捷键记录 一、Mac下安装并配置python3开发环境二、python学习三、pycharm常用快捷键记录 一、Mac下安装并配置python3开发环境 点我查看python及pycharm下载安装、环境配置 二、python学习 不是很推荐,想系统学习的同学可以做个参考: Pytho…

排序之玩转qsort函数——【C语言】

说起排序,我们会想起许多算法,在之前的博客中我也写到过,比如:冒泡排序法、快速排序法、选择排序法等等。其实在C语言中一直有一个可以将数组中的内容进行排序的函数且功能完善内容齐全的库函数——qsort函数。今天就让我们来探索…