【Linux进阶之路】网络——“?“(上)

news2025/1/22 16:45:36

文章目录

  • 一、历史发展
    • 1. 独立形态
    • 2. 互联形态
    • 3. 局域网
  • 二、网络协议
    • 1.OSI七层协议
    • 2.TCP/IP四(五)层模型
  • 三、网络通信
    • 1.封装与解包
    • 2.数据的传输
      • 1.局域网
      • 2.广域网
  • 总结
  • 尾序

  • 本篇文章的目的是带大家初步认识网络,为后面的网络编程打下基础,

一、历史发展

1. 独立形态

在这里插入图片描述

  • 说明:数据的传递人来完成,效率是较低的,且中间可能会出现错误。

2. 互联形态

在这里插入图片描述

  • 说明:数据的传输由人变为了机器,更加的高效。
  • 拓展:
  1. 服务器的存储、计算和服务支持,为客户端设备提供各种网络相关的服务和资源。
    在这里插入图片描述
  2. 光纤:光电信号的传输介质,广泛的用于长距离(百公里)、高速(最大100Gbps)、抗干扰和安全性要求高的场合。
    在这里插入图片描述
  3. 网线: 电信号的传输介质,适用于需要长距离传输(百米内)、高速传输(最大40Gbps)、安全性要求高以及网络负载大的场合。成本综合来看比光纤较低。
    在这里插入图片描述
    这是双绞线属于网线的一种。

3. 局域网

随着设备的增多,使用路由器与交换机来保证网络连接的稳定与高效。
在这里插入图片描述

说明:

  1. 交换机:主要用于在局域网内转发数据包和避免数据包的碰撞,提高网络的安全和稳定。
    在这里插入图片描述
  2. 路由器:主要功能是连接不同的网络,并提供数据包转发等功能,使得计算机可以通过路由器实现跨网络的通信和互联网访问。
    在这里插入图片描述
  3. 集线器:一种传统的网络设备,主要功能是将多台计算机或网络设备连接在一起形成局域网,还有信号放大的功能。与交换机相比,集线器的性能较低,无法提供交换机那样的灵活性、安全性和高效性能。因此,在现代网络环境中,交换机已经取代了集线器成为更常见的局域网连接设备。
    在这里插入图片描述
  • 广域网,简而言之就是由多个局域网组成的。

在这里插入图片描述

二、网络协议

  • 简而言之,协议其实就是一种" 约定 "。
  • 举个例子:再回学校前,父亲叮嘱你隔一段时间就要给他打电话报一次平安,而你又想省一笔电话费,于是就跟父亲说,我打电话的时候知道是我就先不用接,听电话响几声即可,我们之间定一个规定,电话响一声就挂了意思是放心好了,我没事。电话响两声就挂了的意思是我缺生活费了,赶紧打钱。响三声以及以上就接电话,这是其它事,可以接电话了。因为一般不会有响三声及以上的情况,所以能省一笔电话费。
  • 说明:在抗战期间发电报,以及摩斯密码其实本质上也是一种约定。

 回过头来看,网络传输其实就是光电信号的传输,其实跟发电报一个样,计算机之间需要定一个"约定",需要知道如何将传来的光电信号转换为数字信号,然后再呈现给用户,或者将数字信号转化为光电信号发送给另一个用户。

涉及三点:

  1. 网络完成传输数据。
  2. 传输的数据的接受。
  3. 待发送数据的处理。
  • 说明:协议完成就是后两点。

1.OSI七层协议

  • 纯理论的协议,是协议指定规范,但在实际的协议进行制定中反而过于复杂。
  • 从下到上:
  1. 物理层:例如网卡只负责将数字信号和电信号之间的转换。(数据单位为比特)
  2. 数据链路层:例如交换机负责互联设备之间传送和识别数据帧(特指这一层的数据单位)
  3. 网络层:例如路由器负责地址管理和路由选择,将数据准确的发送到目的地。数据单位为数据报
  4. 传输层:例如通信协议,也就是"约定",负责检测数据是否可靠,通常被嵌入到操作系统中。数据单位为报文段
  5. 会话层:例如会话层协议,负责建立和维护应用程序之间的会话连接,以实现数据传输的可靠性和完整性。数据单位为数据包
  6. 表示层:例如数据转换器,负责将固有形式的信号(比如文本,声音,视频)转换为网络标准数据格式。数据单位为数据单元
  7. 应用层:例如HTTP等协议,负责支持不同应用之间的网络服务。每个协议都有特定的功能和用途,以满足特定的通信需求。数据单位为消息,请求,响应等。

图解:
在这里插入图片描述

  • 其实这七层协议是贯穿于整个操作系统的,我们可以画一张图来表示之间的关系。

在这里插入图片描述

2.TCP/IP四(五)层模型

  1. 物理层: 负责光/电信号的传递方式。
  2. 数据链路层: 负责设备之间的数据帧的传送和识别。
  3. 网络层: 负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网路层。
  4. 传输层: 负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  5. 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
  • 说明:
  1. 四层协议是将物理层和数据链路层合并为链路层。
  2. 应用层包含OSI七层协议的应用层,表示层,会话层。
  3. 因为传输层的TCP协议和网络层的IP协议较为重要因此名字叫做TCP/IP协议,实际上是一系列协议的统称。

图解:
在这里插入图片描述

  • 说明:从上到下叫数据的封装,从下到上叫数据的解包。网络通信的本质就是不断的封装和解包的过程。
  • 拓展:在进行向上解包的过程中,目标层可能不止一种协议,因此计算机还要能够正确的识别报文的协议,从而正确的分发数据。

三、网络通信

1.封装与解包

  •  有了上面的铺垫,我们可以先开始数据的封装和解包的具体流程,数据的传输我们放下文讲解。

图解:
在这里插入图片描述

  • 说明:
  1. 报头:通常位于数据的开头部分,用于描述和控制数据的传输以及提供必要的信息。
  2. 有效载荷:指的是报文除了报头的部分,是用户数据核心的一部分。
  3. 报文 = 报头 + 有效载荷。
  • 每一层都得必须有把报头与有效载荷封装与分离的能力,只有这样才能将这一层有用的数据封装/解析出来,而且通常是通过报头的长度,即数据的字节数

概念铺垫:

  1. 端口号:位于应用层,指的是用于标记进程或者服务的逻辑地址。既然是地址那么一个可执行程序或者服务一般只能拥有一个端口号。
  2. IP地址:
  1. 位于网络层。
  2. 通常分为内网IP和公网IP,分别对应的是局域网和广域网,即内网一般是在私有网络或局域网通信使用,公网IP指的是在全球范围的网络中进行使用。
  3. 会随着位置的变化而变化。
  4. 表示形式一般有两种。
  1. IPv4地址,由四个十进制数字组成,每个数字的取值范围为0到255,以点分隔。例如,192.168.0.1是一个IPv4地址。大小为4个字节。
  2. IPv6地址,由八组四位十六进制数(共32位)组成,每组之间使用冒号分隔。IPv6地址的长度更长,提供了更大的地址空间,以满足互联网上设备的增长需求。大小为32个字节。
  1. MAC地址: 位于数据链路层,是一个由48位二进制数组成的物理地址,通常以十六进制表示,并被用于在局域网内唯一标识网络设备不会随着位置的变化而变化。可以用于准确的定位设备
  2. 使用ifconfig 指令可查看内网地址与以太网的地址:
    在这里插入图片描述

那么在网络层与数据链路层数据的封装的大致过程即为:

  1. 将源IP地址和目的IP地址等信息作为报头封装起来。
  2. 将当前设备的Mac地址等信息作为报头封装起来。

2.数据的传输

1.局域网

  • 引入:
  • 假设我们在教室里面上课,大概有几十个学生,一个老师讲课。
  • 这个班每个学生的名字唯一。
  • 这时老师要对一名叫张三的学生进行提问,于是在讲台上说:“张三,请你站起来回答一个问题”。
  • 于是这名张三的学生就站起来了……

把老师看做局域网内的一台A主机,张三看做一台B主机,剩余的几十名学生也看做其它主机。

  1. 我们可以明显的看出是老师对张三发消息,即A主机向B主机发送消息。
  2. 其它学生听到了消息的内容,但是不对消息进行处理,因为不是张三,所以没有站起来。即其它主机在不是本主机的数据传输中,有获取信息的能力,但是不对信息进行处理和反应,选择了沉默。

图解:
在这里插入图片描述

  • 简而言之,向网络中发一条消息和老师在课堂上点一位同学的名的本质其实是相同的,只不过一个是向网络里发,一个是向空气里面发,一份数据都能够各个主机(同学)被"听到",对应的主机会对发来的数据进行接受和处理。

  1. 那么如果老师在课堂上点张三名的同时,其它人也在说话,这时可能会导致张三听不到,可能就得需要老师反复的给张三发消息,也可以让全班人闭嘴,然后再发消息。
  2. 在网络里面这叫做数据之间发生了碰撞,如果对面没收到可以重复再发,或者没有设备在网络里面发送信息时再发,从而避免大部分的碰撞。与此也产生了相应的碰撞避免算法,有兴趣可以了解一下。
  • 拓展:在网络中如果局域网过大,则发生数据碰撞的可能性也就越大,可采取使用交换机的方式将局域网进行分割(原理),进而降低局域网之间发生数据碰撞的可能性。而且交换机也可以完成定向传输的功能。

2.广域网

  • 所谓广域网,其实就是由多种局域网组成的大型互联网,这个局域网可能是无线网(WIFI),以太网,令牌环网等网络的联合,那么我们是如何将不同的局域网联合呢?

  • 答案很简单,使用路由器,将不同数据在不同网络里面进行转发。但是如何转发确保能够发送到目标主机呢?下面我们娓娓道来。

  • 科普小知识:以太网,其中的以太曾被认为是光传播的介质,但实际被证明并不存在,只是科学家假想的一种物质。而Robert Metcalfe即罗伯特·梅特卡夫,以太网的发明者,比较喜欢希腊神话,觉得其中的以太是一种神秘的物质,并且查阅了大量的资料,于是便觉得这符合他的观点,便将发明的网络取名为以太网。

假设要从郑州到云南进行旅游,交通工具使用高铁,采用走一路玩一路的形式进行旅游。

  1. 我们可以先到陕西去看一看兵马俑,然后再考虑往哪一个省份游玩。
  2. 然后我们可以去临近的四川吃一顿火锅,也可以到湖北去看一看黄鹤楼,因为迫切想要去云南,此时我们选择靠近云南的四川。
  3. 吃完火锅之后,我们直奔云南昆明去度假,看看美景,吃一吃美食,顺便静一下心。

在这里插入图片描述

走进网络:

  1. 首先数据在进行传输的过程前,肯定得知道自己的出发地点和目的地点是哪,即网络层封装进报头的源IP信息和目的IP。也就是从郑州到云南。
  2. 其次在数据传输过程中,得知道自己当前的位置在哪和下一次该去哪。比如我们到了陕西看兵马俑,就得知道往云南可以走四川然后直接到,也可以湖北再转一下再到。其中的路径规划和选择交由路由器,所谓的路径规划其实就是根据网络层的目的IP,在数据链路层进行完成Mac地址的解包和选择新Mac地址封装的过程。
  3. 最终,数据经过路由器不断转发,到源IP所在的局域网,将数据发送到目标主机进行接收。
  • 总结大致图解:
    在这里插入图片描述
  • 最后,网络的本质其实是在传输数据,而计算机实际上是处理发来的数据,然后再呈现给上层的应用程序,于是就有了各种各样的APP,而一个一个的运行的应用程序不就是操作系统的进程么,那么所谓的网络之间的通信,其实就是进程之间在进行通信。

总结

  1. 认识网络发展的三种基本形态。
  2. 认识网络协议的基本原理与相关概念。
  3. 认识网络传输的基本流程。
  4. 理解网络传输的本质。

尾序

我是舜华,期待与你的下一次相遇!

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

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

相关文章

three.js 细一万倍教程 从入门到精通(二)

目录 三、全面认识three.js物体 3.1、掌握几何体顶点_UV_法向属性 3.2、BufferGeometry设置顶点创建矩形 3.3、生成酷炫三角形科技物体 四、详解材质与纹理 4.1、初识材质与纹理 4.2、详解纹理偏移_旋转_重复 偏移 旋转 重复 4.3、设置纹理显示算法与mipmap mapFil…

第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的

给你介绍一款适合教培行业的手机软件,很好用,关键还是免费的,DT浏览器不同于普通意义上的浏览器,DT的含义就是数据资料的意思,更专注于资料的收集和管理,是一款资料管理类的浏览器,也是一款面向…

【好玩AI】【Prompt】情人节了,用GPT写个【骂醒恋爱脑】的机器人跟自己对话吧

情人节了,让我们用GPT写个【骂醒恋爱脑】的机器人跟自己对话吧。 通过本文,你能学到: 1. 如何零代码搭建一个自己的机器人Bot 2. 骂醒恋爱脑的高级Prompt 通过本文,你还能得到: 恋爱脑可能被骂醒 为了白嫖,…

从计算机恢复已删除文件的 6 种方法!

如果您的重要文件之一已从计算机中删除怎么办?如果不小心从硬盘中删除了文件怎么办? 如今的公司通常将重要数据存储在云或硬盘中。但最重要的是,您必须考虑这样一个事实:您可能会丢失计算机上的数据。数据丢失的原因有多种&#x…

校招扫盲篇:写一份让HR过目不忘的简历

嵌入式简历怎么写 一、简历构成二、各部分写法的主要事项1.个人的基本信息2.教育背景3.专业技能4.实习经历5.项目经历6.荣誉经历7.校园经历8.自我评价 Last but not least 一、简历构成 首先我们要清楚写一份简历有哪些部分组成。按内容来分的话可以分为个人信息、教育背景、专…

分享83个jQuery特效,总有一款适合您

分享83个jQuery特效,总有一款适合您 83个jQuery特效下载链接:https://pan.baidu.com/s/15rS5EqE2JZPktI_yZGkzxQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理…

STM32 cubemx配置DMA+空闲中断接收不定长数据

文章目录 前言一、串口空闲中断二、DMA空闲中断接收不定长数据实现思路三、STM32Cubemx配置DMA空闲中断接收不定长数据四、代码编写总结 前言 本篇文章给大家讲解一下DMA串口空闲中断接收串口不定长数据,之前我们也是讲解过串口接收不定长数据的,那么本…

【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解

一、冯诺依曼体系结构 1、概念 (1)什么是冯诺伊曼体系结构? 数学家冯诺伊曼于 1946 年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯诺伊曼理论的要点是:计算…

第六篇:MySQL图形化管理工具

经过前五篇的学习,对于数据库这门技术的理解,我们已经在心中建立了一个城堡大致的雏形,通过命令行窗口(cmd)快速上手了【SQL语法-DDL-数据定义语言】等相关命令 道阻且长,数据库技术这一宝藏中还有数不清的…

类与结构体(6)

我们上一起讲了这一期讲存储类和继承,这个难度很大的。 存储类 存储类主要规定了函数和变量的范围,在c中有这些存储类↓: ৹ auto(自动判断函数是什么类型) ৹ register (常用的变量和inline差不多,但应…

《软件方法》强化自测题-杂项题目解析01

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 杂项(1) 3 [ 单选题 ] 《软件方法》第1章“建模和UML”开头所引用的歌曲,其词曲作者还写过下列歌曲中的: A) 爱江山更爱美人&#…

配置DNS正反向解析服务!!!!

一.准备工作 #关闭防火墙和selinux,或者允许服务通过 [rootnode ~]# nmcli c mod ens32 ipv4.method manual ipv4.address 192.168.32.133/24 ipv4.gateway 192.168.32.2 ipv4.dns 192.168.32.132 [rootnode ~]# nmcli c reload [rootnode ~]# nmcli c up ens32[rootnode ~]# …

MATLAB知识点:normrnd函数(★★☆☆☆)生成正态分布的随机数

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章:课后习题讲解中拓展的函数 在讲解第…

Codeforces Round 924 (Div. 2)B. Equalize(思维+双指针)

文章目录 题面链接题意题解代码 题面 链接 B. Equalize 题意 给一个数组 a a a,然后让你给这个数组加上一个排列,求出现最多的次数 题解 赛时没过不应该。 最开始很容易想到要去重,因为重复的元素对于答案是没有贡献的。 去重后排序。&a…

C# CAD交互界面-自定义面板集-查找定位(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 1. 类成员变量声明&#xff1a; List<ObjectId> objectIds new List<ObjectId>(); // 用于存储AutoCAD实体对象的ObjectId列表 private static Autodesk.AutoCAD.Windows.PaletteSet _ps2; // 自定义浮动面板…

java之Maven

1. maven Maven是管理和构建java项目的工具 项目依赖资源(jar包)的管理,避免版本冲突统一项目结构项目构建&#xff0c;标准跨平台(Linux,window,MacOS)的自动化项目管理 2.maven依赖仓库 2.maven安装 maven安装视频教程 3. IDEA集成Maven 4. maven的依赖范围 5. maven生命…

寒假作业——2/13

作业1 作业2 cp cp 当前的文件位置 复制到哪个位置 格式 : cp 路径/文件 路径/目录名/重新命名的目录名 mv mv 当前的文件位置 复制到哪个位置 格式 : mv 路径/文件 路径/目录名/重新命名的目录名 也可进行重命名操作 find 查找文件 find 目标路径 -name 文件名 后续…

猫头虎分享已解决Bug ‍ || 修改mongodb3.0副本集用户密码遇到 BeanDefinitionParsingException

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

LeetCode二叉树的垂序遍历

题目描述 给你二叉树的根结点 root &#xff0c;请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言&#xff0c;其左右子结点分别位于 (row 1, col - 1) 和 (row 1, col 1) 。树的根结点位于 (0, 0) 。 二叉树的 垂序遍历 从最左边的列开始直到…