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

news2024/11/24 12:43:46

网络搁哪?

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

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

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

网络的发展史(了解)

独立模式:

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

网络互联:

这个时期,开始进步了,有人觉得走来走去的也挺麻烦的,我们在附近的计算机组成一个联盟,将要共享数据都放在一台更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地址的计算机。

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

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

相关文章

【idea】设置文件模板

搜索 File and Code Templates 。 添加模板。 在任意文件目录下右键,new->找到添加的模板。 参考链接: IDEA创建模板文件_edit file templates-CSDN博客

科研绘图系列:R语言宏基因组堆积图(stacked barplot)

介绍 宏基因组堆积条形图是一种数据可视化工具,用于展示宏基因组数据中不同分类群(如微生物群落中的物种或菌株)的相对丰度。宏基因组学(Metagenomics)是一种研究环境样本中所有生物的遗传物质(DNA和RNA)的科学,不依赖于培养,可以直接从环境样本中提取DNA进行测序。 …

Windows server 2016 .net framwork 安装

解决方法: 1、windows server 2016默认是不安装.netframework3.5的,可以在添加删除程序中单独添加。但是有时候系统安装文件不在的时候,找不到安装程序就不能安装成功。 这时候单独下载dotnetfx35直接安装是安装不上的,需要用以下方法进行。 2、单独安装: 通过 NetFx3.c…

无人机之动力系统篇

无人机的动力系统是其飞行中最为核心的部分,它决定了无人机的飞行性能和稳定性。一个完整的无人机动力系统通常由多个关键组件组成,这些组件协同工作,为无人机提供动力。以下是对无人机动力系统的详细解析: 一、主要组成部分 电…

大模型训练框架LLaMAFactory覆盖预训练指令微调强化学习评估全流程

1. 项目背景 开源大模型如LLaMA,Qwen,Baichuan等主要都是使用通用数据进行训练而来,其对于不同下游的使用场景和垂直领域的效果有待进一步提升,衍生出了微调训练相关的需求,包含预训练(pt)&…

3174. 清除数字(Java)

3174. 清除数字(Java) 1.Java 的 StringBuilder 初用。 2. StringBuffer和StringBuilder方法类似,Buffer支持同步访问,线程安全,速度比较慢,所以Buffer用的少,Builder用的多。 class Solution {public String clearD…

C语言深度剖析--不定期更新的第二弹

好久不见,甚是想念。书接上回,继续前进! 关键字static-最名不副实的关键字 对extern声明的小小补充 当我要对一个函数进行声明的时候可不可以像如下情况: extern int v_gal100;对这个变量进行了赋值,这是不可以的&a…

相互作用先验下的 3D 分子生成扩散模型 - IPDiff 评测

IPDiff 是一个基于蛋白质-配体相互作用先验引导的扩散模型,首次把配体-靶标蛋白相互作用引入到扩散模型的扩散和采样过程中,用于蛋白质(口袋)特异性的三维分子生成。 本文将对 IPDiff 实际的分子生成能力进行评测。 一、背景介绍 …

动态规划的解题思想

1. 从斐波那契数列说起 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始, ,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0, F(2) 1 F(n) F&…

【C++】C++ STL探索:Vector使用与背后底层逻辑

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现 在string类文章中提及了STL容器间的接口是大差不差的,本篇将直…

虚幻5|不同骨骼受到不同伤害|小知识(2)

1.蓝图创建一个结构,B_BoneDamage 结构里添加一个浮点变量,表示伤害倍数 2.当我们创建了一个结构,就需要创建一个数据表格,数据表格可以选择对应的结构 不同骨骼不同倍数伤害,骨骼要对应骨骼网格体的名称 3.把我们br…

C#继承_里氏替换原则

知识点一:基本概念 知识点二:基本实现 #region 知识点二基本实现class GameObject{}class Player : GameObject{public void PlayerAtk(){Console.WriteLine("玩家攻击");}}class Monster : GameObject{public void PlayerAtk(){Console.Writ…

NLP从零开始------文本中阶处理之序列到序列模型(完整版)

1. 序列到序列模型简介 序列到序列( sequence to sequence, seq2seq) 是指输入和输出各为一个序列(如一句话) 的任务。本节将输入序列称作源序列,输出序列称作目标序列。序列到序列有非常多的重要应用, 其中最有名的是机器翻译( machine translation), 机…

消息中间件都有哪些

RabbitMQ:这可是一个开源的消息代理软件,也叫消息中间件。它支持多种消息传递协议,可以轻松地在分布式系统中进行可靠的消息传递。 Kafka:Apache Kafka是一个分布式流处理平台,它主要用于处理实时数据流。Kafka的设计初…

时下改变AI的6大NLP语言模型

本文将深入研究大语言模型领域的最新进展,改变AI的6大NLP语言模型,每个模型能够引入的增强功能、以及潜在功能应用与限制。 在快速发展的人工智能(AI)领域,自然语言处理(Natural Language Processing&#…

6.1均值滤波

目录 实验原理 示例代码 运行结果 注意事项 总结 实验代码 运行结果 实验原理 https://zhuanlan.zhihu.com/p/76188487 在OpenCV中,cv::blur函数用于对图像进行均值滤波(Mean Filter),这是一种线性滤波技术,主…

科技信贷业务怎么寻找客户?

在科技信贷业务领域,寻找客户的痛点主要集中在以下几个方面: 1.风险评估难题:科技型企业尤其是初创企业,往往缺乏足够的历史数据和抵押物,这使得金融机构在评估其信用风险时面临较大挑战。由于科技企业的研发周期长、…

视频监控系统布局策略:EasyCVR视频汇聚平台构建高效、全面的安全防线

随着科技的飞速发展,视频监控系统已成为现代社会安全防范的重要组成部分,广泛应用于公共场所、企业园区、住宅小区等各个领域。一个科学合理的视频监控系统布局与选型策略,不仅能够显著提升安全监控的效率和效果,还能在关键时刻提…

我用 GPT 学占星

最近对占星赶兴趣,但是看到星盘中好多名词,不懂是什么意思?所以直接问 gpt , 发现回答的真的很棒🎉 ! 假如我想知道各个状态的具体是根据什么数据来显示的? 分分钟解决了我的问题; 我…

OpenFeign请求拦截器,注入配置属性类(@ConfigurationProperties),添加配置文件(yml)中的token到请求头

一、需求 OpenFeign请求拦截器,注入配置属性类(ConfigurationProperties),添加配置文件(yml)中的token到请求头 在使用Spring Boot结合OpenFeign进行微服务间调用时,需要在发起HTTP请求时添加一…