当前位置: 首页 > 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 虚拟引…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#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…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...