当前位置: 首页 > news >正文

计算机网络练级第一级————认识网络

目录

网络搁哪?

网络的发展史(了解)

独立模式:

网络互联:

局域网时期:

广域网时期:

什么是协议

TCP/IP五层/四层模型

用官话来说:

我自己的话来说

第一层应用层:​编辑

第二层传输层:​编辑

第三层网络层:​编辑

第四层数据链路层:​编辑

不同的设备,有不同的层数

 网络传输的过程

数据包的封装和分用

什么是报头

什么是有效载荷 

报头有效载荷怎么分离

都能拿到数据

网络中的地址管理

IP地址

MAC地址

使用IP协议的一大原因:


网络搁哪?

网络大家应该都很熟悉了,但网络具体是怎么构成的,怎么用的?长话短说

我认为网络就是计算机里的快递业务,从一台计算机中发出,网络接收到数据后,就要把这个数据安全快速完整地发到目标主机上。

大家肯定在想,谁都知道吧,这个人搁这搁这。但主题确实也是从这里开始。

网络的发展史(了解)

独立模式:

这个时期,有点像网络的原始人时期,这个时期每个计算机只能有自己的数据,程序员想要另一台主机的数据,得等到上一台主机用完了,才能从被用的主机获取。效率太低

网络互联:

这个时期,开始进步了,有人觉得走来走去的也挺麻烦的,我们在附近的计算机组成一个联盟,将要共享数据都放在一台更nb的计算机中(服务器)。这里面就存着一些共享的数据,想用就拿。

局域网时期:

这个时期,延用了网络互联的思路,计算机数量更多了, 通过交换机和路由器连接在一起,通过路由器可以使网络互联时期的单个区域组合在一起

广域网时期:

就是把多个局域网在通过更多的路由器,放到一起就是局域网。

什么是协议

计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息,因此要想传递各种不同的信息,就需要约定好双方的数据格式,这就是一种纯硬件的一种约定方案。

就像我给你发的是一个视频,你不能解析出来一团乱码,或者莫名奇妙给我来一张图片。那就乱套了,协议设定的初衷就是为了数据转发的安全快速完整。

因为协议必须要固定且具有权威性,所以不能是有一家公司就做一个协议,那也乱套了。所以必须要由一些行业领导者来制定。

有句话说得好“一流的企业做标准,二流的企业做品牌,三流的企业做产品”

所以就到了我们的下一个主题:

TCP/IP五层/四层模型

这里没有介绍OSI七层模型,是因为TCP/IP是现在常用的,虽然OSI是祖师爷,但流行趋势还是五层/四层(如果是五层的话就是把物理层在单独拿出来当做一层)

TCP/IP也是OSI的衍生物如图所示:

Tcp/ip是将OSI的部分组合在一起变成了一层

计算机在传输数据时就要一层一层地攻关,一层出现失误都要重新再来。在发送端是从应用层往下一层一层走,而接收端就是从物理层一层一层往上走

那和协议有什么关系呢?网络协议是很复杂的,每一层都有每一层的功能,所以每一层都有每一层的协议,所以在之后的练级中呢,我们会一层一层讲解。今天先大体介绍一下每一层有什么用?

用官话来说:

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

我自己的话来说

第一层应用层:

就是每个应用自己规定的一套解析手段:就像抖音给你刷的是短视频,他就不能像说你打开抖音,给你开两把王者,所以应用层的协议是公司自己写,然后只应用与这个应用的。

第二层传输层:

这一层有一个重要的概念协议:TCP传输控制协议:这一层就是要保证你传过来的数据,如果应用层是让接收方看得懂这个数据,那这一层要想的就是,我怎么把数据完整安全地解析上来,不能让别人偷了,也不能说我不管你应用层要什么,我直接把收到的全给你塞上去。那还是乱套了。

所以这一层就是保证数据的可靠性的

第三层网络层:

这一层就是IP协议了,IP协议用来保证传输地址是否正确。这一层就相当于寄快递的,和收快递的。必须精准地送到指定的人手上。

第四层数据链路层:

这一层是接收方的启动层,其实也就是硬件层,我那边的网卡发出来后,这边的网卡收到数据后,就往上传。

不同的设备,有不同的层数

作为路由器你只要指路,而作为计算机你是要使用软件应用的,所以不同的设备拥有的层数不同,不是每一台设备都需要走到最顶层,

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

 网络传输的过程

上面说了网络是一层一层的,所以在传输时也像闯塔一样,一层一层地走

如果你要传输的数据不是局域网内的就要走路由器,就像如果你要送妈妈礼物,直接给就好了。

如果是要送外省读书的朋友礼物,那就要寄个快递。

数据包的封装和分用

那作为操作系统我只知道你传上来一堆数据,那我要怎么识别并且向上层传递呢或者向下层传递?

如图我们可以看出,应用层先把数据打包好,然后给传输层层,传输层加了一个TCP头部。

这个加的头部其实就是之后用来解析的协议的报头(就当做一个头部就好),然后每一层都加上一个报头,之后传到另一个主机时,这个主机就有思路了,根据协议规定,我通过将每一个头部拆分。在根据协议中的规定再来考虑要不要向上传递。(就像,到了一台主机要识别ip,如果不是这个ip,那我就不向上传了)。

什么是报头

报头就是一个协议字段,通过拆下这个报头并且分析我就可以知道数据是否正确完整安全等等

什么是有效载荷 

对于网络层来说IP头部是报头,剩下的部分就是有效载荷

报头有效载荷怎么分离

首先在报头中会有一段数据是用来描述,报头的大小的等等数据,通过这个大小就可以将报头从这一串数据中分离,将有效载荷拆开,有效载荷怎么知道自己要去那一层呢?其实很简单,对于每一层把报头拆开后,里面的有效载荷的下一个字段就是下一层的报头。(套娃的过程)

都能拿到数据

在网络中一台主机发出的数据,同一局域网下的每一个主机都能收到同一份数据,只是基于系统模式,不同的主机根据ip协议,可以决定是否要这份数据。计算机还存在一种模式,就是不管ip是否匹配都能获取传输的数据,但这个模式默认是不开启的。

网络中的地址管理

IP地址

目前有两种ip地址,一种是ipv4,一种是ipv6.每个ip地址在世界上独一份

IP 地址是在 IP 协议中 , 用来标识网络中不同主机的地址 ;
对于 IPv4 来说 , IP 地址是一个 4 字节 , 32 位的整数 ;
我们通常也使用 " 点分十进制 " 的字符串表示 IP 地址 , 例如 192.168.0.1 ; 用点分割的每一个数字表示一个 字节, 范围是 0 - 255;

为什么要新出一个ipv6,是因为ipv4,这个类型只规定了4个0-255范围的数字。随着网络的发展。

之前如果是一人一个电子设备的话暂时还hold住,但由于发展,一个人可能拥有更多的设备。每个设备如果都要入网,那就得有一个新的ip,所以ipv4的数字范围太小 存不下,所以ipv6就是为了解决数量问题

MAC地址

MAC 地址用来识别数据链路层中相连的节点 ;
长度为 48 , 6 个字节 . 一般用 16 进制数字加上冒号的形式来表示 ( 例如 : 08:00:27:03:fb:19)
在网卡出厂时就确定了 , 不能修改 . mac 地址通常是唯一的 ( 虚拟机中的 mac 地址不是真实的 mac 地址 , 可能会冲突; 也有些网卡支持用户配置 mac 地址

和ip地址不同的是,mac地址是在局域网中唯一但是在广域网中并不是唯一的。所以说mac地址更像是学校的学生卡号,虽然在学校是唯一的,但是出了学校只有身份证(ip)是唯一的。

其实mac地址也是为了增大ip地址的利用率之后会详细说明 

使用IP协议的一大原因:

使用ip协议可以屏蔽底层差异

由于网络的类型不只是一种,我们平常家里常用的有蓝牙网络 wifi(wlan),以太网(网线)等等,因为每个网络类型封装的报头不同,但是在ip协议这一环封装的是相同的。

IP协议呢就可以不管你是什么类型的网络,它的目的只是一个传递到属于这个ip地址的计算机。

相关文章:

计算机网络练级第一级————认识网络

目录 网络搁哪? 网络的发展史(了解) 独立模式: 网络互联: 局域网时期: 广域网时期: 什么是协议 TCP/IP五层/四层模型 用官话来说: 我自己的话来说 第一层应用层&#xff1…...

Java基于微信小程序的家庭财务管理系统,附源码

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不…...

P2343 宝石管理系统

不会写平衡树怎么办&#xff0c;可以用STL的vector或者是pb_ds&#xff0c;这个东西太乱&#xff0c;还是STL好用 #include<bits/stdc.h> using namespace std; int read() {int x 0, f 1;char ch getchar();while (ch < 0 || ch > 9) {if (ch -) f -1;ch g…...

Spring6梳理6——依赖注入之Setter和构造器注入

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 一、引言 二、Java方法初始化过程 2.1 set方法及构造器方法实现Book对象初始化 三…...

【C++】C++入门基础,详细介绍命名空间,缺省参数,函数重载,引用,内联函数等

目录 1. 命名空间 1.1 使用命名空间的目的 1.2 命名空间定义 1.3 命名空间使用 2. 缺省参数 2.1 缺省参数概念 2.2 缺省参数分类 2.3 实际案例 2.4 注意事项 3. 函数重载 3.1 函数重载概念 3.2 函数重载原理 4. 引用 4.1 引用的概念 4.2 引用的特性 4.3 使用…...

Android使用Room后无法找到字符BR

一般来讲&#xff0c;无法找到BR字符多与Data Binding 相关。 在 Android Studio 中使用 Data Binding 时&#xff0c;如果突然出现 “BR 文件不可用” 或 “找不到符号 BR” 的错误&#xff0c;可能是由以下原因造成的&#xff1a; Data Binding 未启用&#xff1a;确保在你的…...

网络通讯安全基础知识(加密+解密+验签+证书)

1、加密解密基本概念 通讯的加密和解密‌主要涉及将原始信息&#xff08;明文&#xff09;转换为不可直接理解的格式&#xff08;密文&#xff09;&#xff0c;以及将密文还原为原始信息的过程。这一过程通常包括三个基本步骤&#xff1a;加密、传输和解密&#xff0c;其中加密…...

[数据集][目标检测]石油泄漏检测数据集VOC+YOLO格式6633张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6633 标注数量(xml文件个数)&#xff1a;6633 标注数量(txt文件个数)&#xff1a;6633 标注…...

【Oracle篇】全面理解优化器和SQL语句的解析步骤(含执行计划的详细分析和四种查看方式)(第二篇,总共七篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…...

都2024年了还不明白Redis持久化?RDB文件、AOF文件、AOF重写

都2024年了&#xff0c;不会还有人不知道redis的RDB和Aof吧&#xff1f;不知道没关系&#xff0c;看完这篇文章我相信你就会有个大概的了解和认识了 1. Redis持久化 1.1 持久化概念 Redis本身是一个基于内存的数据库&#xff0c;它提供了RDB持久化、AOF持久化两种方式&#…...

浅谈Unity协程的工作机制

一. 什么是协程 协程概述 在 Unity 中&#xff0c;协程&#xff08;Coroutine&#xff09;是一种非常常用的机制&#xff0c;用于非阻塞地处理需要跨越多个帧、等待某些条件或延迟一段时间才能完成的任务。Unity 的协程通过 C# 的 IEnumerator 和 yield return 实现&#xff0…...

数学建模_数据预处理流程(全)

数据预处理整体流程图 一般数据预处理流程 处理缺失值&#xff1a;填补或删除缺失值。处理异常值&#xff1a;检测并处理异常值。数据编码&#xff1a;将分类变量进行标签编码或独热编码。数据标准化/归一化&#xff1a;对数据进行标准化或归一化处理。连续变量离散化&#xff…...

深入解析Flink SQL:基本概念与高级应用

深入解析Flink SQL&#xff1a;基本概念与高级应用 目录 深入解析Flink SQL&#xff1a;基本概念与高级应用 引言 一、Flink SQL概述 1. Flink SQL的定义 2. Flink SQL与传统SQL的区别 二、Flink SQL的核心特性 1. 事件时间和处理时间 2. 窗口操作 3. 连接和聚合操作 …...

计算机的发展史和基本结构

好久不见&#xff0c;粉粉们&#xff0c;我是#Y清墨。今天来分享一下最近学习做的笔记。 计算机发展史和四代计算机概述 阶段 年代 电子元件 运算速度&#xff08;每秒/次&#xff09; 第一代 1946-1958 真空电子管 数千至数万 第二代 1958-1964 晶体管 几十万至百万…...

VSTO常见的异常

在开发和使用 VSTO&#xff08;Visual Studio Tools for Office&#xff09;插件时&#xff0c;常见的异常主要涉及到与 Microsoft Office 应用程序&#xff08;如 Excel、Word、Outlook 等&#xff09;的交互、环境配置和 COM 组件的使用。以下是一些常见的异常及其可能的原因…...

【H2O2|全栈】关于HTML(3)HTML基础(二)

HTML相关知识 目录 HTML相关知识 前言 准备工作 标签的具体分类&#xff08;二&#xff09; 本文中的标签在什么位置使用&#xff1f; 本期前置知识点 超文本 超文本引用和源属性 图片标签 锚链接 iframe 锚点 预告和回顾 后话 前言 本系列博客将分享HTML相关…...

前端AST

前端AST 1、什么是编译器2、什么是AST3、编译器的基本思路3.1 词法分析3.2 语法分析3.3 代码转换3.4 代码生成3.5 完整链路 4、一个简单的编译器的实现4.1 词法分析4.2 语法分析4.3 代码转换4.4 代码生成4.5 完整流程 1、什么是编译器 定义&#xff1a;编译器就是个将当前语言…...

基于EPS32C3电脑远程开机模块设计

基于EPS32C3电脑远程开机模块设计 前言 缘起&#xff0c;手头资料太多了&#xff0c;所以想组一台NAS放在家里存储数据。在咸鱼淘了一套J3160主板加机箱&#xff0c;加上几块硬盘组建NAS。 对于NAS&#xff0c;我的需求是不用的时候关机(节省功耗)&#xff0c;要用的时候开机…...

深度解析 Netty 性能卓越的背后原因

一、引言 在当今数字化时代&#xff0c;构建高性能、高可靠的网络应用成为了技术领域的关键需求。Netty 作为一款备受推崇的网络应用框架&#xff0c;以其出色的性能在众多框架中脱颖而出。深入探究 Netty 性能卓越的原因&#xff0c;不仅能够帮助开发者更好地理解和运用这一框…...

虚幻引擎(Unreal Engine)技术使得《黑神话悟空传》大火,现在重视C++的开始吃香了,JAVA,Go,Unity都不能和C++相媲美!

虚幻引擎&#xff08;Unreal Engine&#xff09;火了黑神话游戏。 往后&#xff0c;会有大批量的公司开始模仿这个赛道&#xff01; C 的虚拟引擎技术通常指的是使用 C 语言开发的游戏引擎&#xff0c;如虚幻引擎&#xff08;Unreal Engine&#xff09;等。以下是对 C 虚拟引…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...