[网络]从零开始的计算机网络基础知识讲解

news2024/12/25 0:40:08

一、本次教程的目的

        本次教程我只会带大叫了解网络的基础知识,了解网络请求的基本原理,为后面文章中可能会用到网络知识做铺垫。本次我们只会接触到网络相关的应用层,并不涉及协议的具体实现和数据转发的规则。也就是说,这篇教程是面向纯网络小白的。即使你没有任何网络基础也可以看本篇教程。当然,本篇教程中涉及了一些很普遍的观点和我自己对网络的理解,本人不是专业的网络工程师,文章中有错误还请指正。

二、网络相关知识的学习感悟

        我从最开始接触网络相关的知识到现在已经四年了,说实话在这四年中我学习到的东西是非常有限的我了解到的也仅仅是非常表面的东西。我第一次接触网络相关的配置还是配置家里的路由器,当时确实很害怕配坏了,后面开始慢慢了解网络的通信协议,跟着一些UP主慢慢的搭建自己的网站,理解正向代理和反向代理,理解DNS这一类的网络术语。当然,直到现在,我仍然是一位网络小白,要学习的东西还很多,之前也提到了这篇文章我会结合目前普遍的观点并且结合了我自己的一些看法,当然,中间可能会有不准确的地方,毕竟我也只是一位网络小白。这篇文章会为我以后的文章做铺垫,在以后的文章中,我可能会经常引用这篇文章。

三、网络中的硬件设备

        我们首先为大家介绍网络中最常见的硬件设备,这些设备的存在构成了我们整个互联网。所以学习计算机网络的的基础是网络硬件设备。下面我会为大家介绍路由器,交换机,网关等网络基础设备。

1.路由器

路由器主要作为网络中非常重要的一个设备,它负责在不同网络之间转发数据包,并确保数据能够到达正确的目的地。

首先,路由器的核心功能是根据数据包的目标地址将数据从一个网络转发到另一个网络。它使用路由表来决定数据包的最佳路径。我们的数据包发出的第一步就是到路由器,经过路由器向外转发并找到通信的最优解。

其次,路由器也负责网络的连接,路由器通过数据的转发实现两台网络设备的连接。

然后,路由器也负责了网络地址转换,路由器能够将外部的公网地址转换为内部的私有地址。这项技术也被广泛用在我们公网IP不够时分配网络。在我们日常使用的网络中,都是经过上层设备经过网络地址转换以后得到的。

路由器在网络中也具有一定的防火墙功能,因为路由器在隔离了公网和内网,所以路由器在某些时候也能拦截网络中的危险数据和部分攻击。

路由器在日常生活中也负责了产生无线网络,我们日常中连接的wifi就是路由器产生的。

上面就是路由器的基础功能,后面的讲解中我们也会使用到路由器的某些概念。

2.交换机

        交换机在我们网络通信中也是非常重要的,在常见的网络配置中,我们的交换机有非常多的种类,下面我们只讲最普通的两种,分别是“两层交换机”和“三层交换机”。

下面我们来讲解一下两层交换机,这里又涉及到互联网通信中层的概念,这个我们后面会讲到,两层的交换机这里的层就对应了互联网通过信中的层。具体的来说两层交换机能处理的就是数据链路层的数据,也就是两台设备使用MAC通信的数据。当然,我们这里先不说网络的抽象概念,我们这里也只了解互联网的硬件。交换机一般拥有非常多的网口,这些网口我们可以接各种设备,交换机让这些设备在物理层面上连接在一起。当我们的其它网络设备的接口不够用时我们也会使用交换机来扩展网络接口。对于两层交换机而言,它只能处理两层的数据,所以我们一般使用在局域网中。如果要发送网络请求或者路由数据包我们还是需要借助路由器。

接下来是三层交换机,这里的三层对应的同样是互联网通信中的层。三层交换机能够处理IP层的数据,这也就意味着,我们日常中的大部分通信数据都能被三层交换机处理,三层交换机主要用于企业中设备之间的数据通信。交换机主要用于简单的路由数据包转发,和路由器不同,它不像路由器那样能够处理广域网的数据,当然这其中会涉及到这些设备的底层构造,我也没了解过,所以这里不过多讲解。

3.网关

        网关在我们的网络中负责了不同网络或协议之间进行通信和转换。网关的作用是使不同类型的网络或系统能够互相理解和交互。在日常生活中,我们常常就把路由器当作我们的网关,我们于别的设备的通信和数据交互我们也都交给路由器来执行。对于网关大家在这里具有概念就行,可以理解为一个转发数据的节点。

四、网络模型

        目前,我们说得最多的网络模型指的是OSI七层和TCP/IP四层模型。OSI对我们的网络进行了更详细的分层,分别定义了会话层和表示层,这里的层越往下越接近硬件,越往上也越接近用户。

下面我会为大家重点介绍网络七层协议。

下面我们来看上面这样图,这张图非常形象的描述了网络的七层协议,我们现在来一一分析。

首先是最底层的物理层,它负责了数据传输的物理连接,我们的两个设备要通信它们必须要有物理上的连接。物理层就是将所有的用于通信的设备连接在一起,它定义了电气信号、光信号、机械连接和传输介质的标准。

下面是数据链路层,它负责将网络层传来的数据包封装成帧,处理错误检测和纠正,并控制数据流量。它确保在局域网内的可靠传输。同时它也能对数据进行检测和纠正,提高数据传输的稳定性。它同时也接管了数据流量,防止网络拥堵。

然后是网络层,它负责数据包的路由和转发,确保数据能够从源设备传输到目标设备。它处理逻辑地址(如IP地址),并管理网络中的路径选择。网络层也定义了如今我们最常用的IPV4与IPV6协议,这个我们在后面会讲到。

再然后就是我们的传输层,它负责端到端的数据传输,提供数据完整性和顺序控制。它处理数据流量控制和错误恢复,确保数据在两台设备之间的可靠传输。这也是目前我们使用最多的两种协议,一些上层协议也是基于这两种协议进行封装。

下面是会话层,它管理应用程序之间的会话,负责会话的建立、维护和终止。它提供了会话的同步和恢复功能。

然后是表示层表示层负责数据的格式化、加密和解密,使得数据可以被不同系统理解。它处理数据的语法和语义。我们的SSL和TLS就被定义在了这一层。

最后就是我们的应用层,它提供网络应用程序的接口和服务,直接与用户交互。它处理应用程序的数据和协议,支持各种应用服务。我们的HTTP和HTTPS也被定义在了这一层,这也是距离用户最近的一层。

简单的了解互联网基本模型以后,我们就可以进行进一步的学习了,下面我会带大家看看网络请求的基本原理。

五、网络请求的基本原理

        下面我们来看看网络请求的基本原理,当然这里也不会涉及到自己编写网络请求等操作,全程不会有任何程序操作,我们只会讲原理,并不会讲过程。下面我将从IP地址请求,以及DNS几个方面来为大家讲解。

1.IP地址

        目前我们使用得最多IP地址为IPV4和IPV6地址,使用的协议也是与之对应的IPV4协议与IPV6协议。在日常生活中IPV4地址已经在全球范围内普及,所以我们下面会重点讲IPV4地址。

IPV4地址是一个32位的地址,即四个字节,我们将这32位每八位一分组,分成四份,用十进制表示,这就是我们日常看到的最多的IPV4地址的表示方式。如图:

上图就是我的计算机被分配到的IP地址,这是一个内网地址,我们后面也会为大家讲解内网地址与公网地址的区别。在上图中我们可以看到,这段IP地址被分为了四段并且使用“.”号分割。由于我们位数的限制所以,每一段内就只能是“0~255”这个范围,也就是说,我们最大的IPV4地址为“255.255.255.255”最小的IPV4地址为“0.0.0.0”.下面我们要讲到IPV4地址的几个保留地址段。

127.0.0.0\8:作为本地环回地址,通常我们使用127.0.0.1,设备通过它和自己通信,我们日常在自己设备上搭建了网络服务我们就可以直接通过127.0.0.1来访问。

10.0.0.0/8:局域网A类私有地址,范围10.0.0.0~10.255.255.255,这是一个内网保留段,主要用在我们的局域网中,我们路由器给我们下发的内网地址就可能使10开头的,因为10.0.0.0/8段的网段非常宽,可以包含非常多的地址,所以一般也用在企业中。

172.16.0.0/12:局域网B类私有地址,范围172.16.0.0~172.31.255.255,与上面的A类地址类似,但它的网段下能够包含的设备就少了许多。

192.168.0.0/16:局域网C类私有地址,范围192.168.0.0~192.168.255.255,与上面的A类地址类似,但是它网段下能包含的设备就更少了,我们的路由器常常会分配给我们192.168网段的地址。例如192.168.1.1就是一个C类地址,我们地址的前段一样也就表示设备在一个网段中,只有在一个网段中的设备才能互相通信。

255.255.255.255:这是一个本地广播的地址,用于将数据包发送到同一子网中的所有主机,但这些数据包只会在内网中发送,并不会经过路由器。

除了上面提到的一些地址以外,还有很多保底地址段,这些地址段在某些地方发挥着重要作用。当然除了保留地址除外的都是公网地址了。

2.公网地址与内网地址

        我们刚刚提到的,诸如192.168.1.1就是一个内网地址,这个如果内网的设备没有部署任何服务,或者内网没有分配这个IP地址的话我们是不能访问这个设备的。在公网地址中,我们通过路由器帮我们转发数据,下面,我们来看一个简单的模型:

这里有一个非常简单的模型,我们的两台计算机都连接到路由器上,它们都被分配了IP地址,我们可以看到两台计算机都处于一个网段中,它们都在192.168.55的网段下,也就意味着它们可以互相通信,我们可以直接使用一台机器去Ping另一台机器:

我们发现我们可以ping通这台机器,并且TTL是128,这里的TTL是指网络中的越点数,每经过一个越点TTL就会减1,因为我们这里是在内网中进行通信,并没有越点,所以这里的TTL不会减少。

下面我们ping一下别的IP地址,比如,我们去ping一下百度服务器:

这里得到的ip并不是百度真实的IP。而是百度加速服务器的IP。

我们在这里可以看到这里的TTL已经变了变成了48,也就是说我们的数据包经过了80次跳转,跳转到了百度的服务器,当然,也有ping不通的情况,在ping不通时可能是对方服务器关闭了ping,你可以考虑换一个网站来ping。

在上面的模型中,我们挂载在路由器下的设备被我们称为内网设备,有公网IP的设备,比如百度的服务器被我们称为公网设备。当我们向一个IP地址发起请求时,我们的路由器会处理我们的请求,它会查看自己的路由表中有没有要访问的这个地址,如果没有路由器就会把数据发出去由上级的路由来处理,上级的路由拿到数据以后,如果发现自己的路由表中没有这个设备同样的将数据包发送到更上层的路由,直到在某一时刻,数据包跳转到到某个路由服务器中,这个服务器的路由表下有你想访问的地址,至此,这台服务器就会将你的数据包交给对应的服务器。相关的服务器在接收到你的数据包以后,会返回响应的数据,响应的数据会按原路返回到你的计算机中,至此,一次基本的网络请求就完成了。当然,这只是一种简单的描述方法,在实际的网络环境中,网络数据包的请求要复杂得多。

3.DNS服务器

        在日常我们访问网站的时候,大部分时候我们使用的都是一个网站的域名,很少会使用ip地址直接去访问某个网站。比如我们的“baidu.com”这就是一个域名,这也是为了方便人们记忆而诞生的。那么,我们的IP地址是怎么对应到域名的呢?下面我们来详细讲讲。

当我们在浏览器中请求一个域名时,我们的计算机为了找到它的IP地址,首先会在本地的缓存中寻找,有没有域名对应IP地址的记录,当本地缓存没找到这个域名对应的IP地址时,计算机就会去找自己的hosts文件,这个文件也可以用于描述域名对应的IP地址,我们也可以直接修改这个文件从而让域名指向不同的IP地址,当然,这个只在本地生效。如果计算机在DNS缓存和hosts文件中都没有找到对应的IP地址那么计算机就会请求DNS服务器,在DNS服务器中保存了所有的域名解析记录。当我们请求DNS服务器时,它就会返回一个域名对应的地址。

下面我为大家演示一下,如何让通过修改hosts来让域名对应IP地址。

我们现在去到hosts文件的路径:“C:\Windows\System32\drivers\etc”

我们打开hosts,并且在hosts下面添加一条域名对应IP地址规则:

我们现在去ping这个域名:

在我们Ping这个域名的时候我们就能发现,我们的域名直接对应到了我们刚才对应的IP地址。

以上就是DNS的基本原理了。

六、什么是正向代理和反向代理

这是在我们网路通信中经常会听到的词,那么什么是正向代理,什么是反向代理呢?下面我们来详细说说:

1.正向代理:

        在我们日常生活中正向代理使用的是非常多的。正向代理服务器一般存在于用户和目标服务器之间。当我们将一个服务器配置为我们的正向代理服务器以后,计算机的网络请求就会被打包发送到正向代理服务器,这个被打包的数据包中包含了我们想访问的网站等信息,正向代理服务器接收到数据包以后会将我们,将我们数据包进行解包,并且自己访问我们想访问的地址,在接收到服务器响应以后,正向代理服务器将服务打包发回我们,至此就已经完成了一次正向代理请求。正向代理服务能够解除我们的一些访问限制,也能帮我们隐藏自身真实的IP地址。

2.反向代理:

        反向代理比起正向代理可能会使用得少一些,正向代理代理的是我们的客户端,处理了我们客户端的请求,反向代理服务器代理的是服务端,它决定了请求发往哪一台服务器。例如我们有一台服务器具有公网IP,它的下面挂载了许多设备都不具有公网IP,这台反向代理服务器就可以决定将自己的访问流量转发到哪一台没有公网IP的服务器上。最为典型的就是我们的FRP服务。

七、结语

        上面的网络知识是非常浅显的,我并不是计算机专业或者专门的网络工程师,我对网络的见解也仅仅是停留在以上。这篇CSDN也只是对我以往学习的网络知识的总结,如果有错误的地方还请大佬指出。当然,如果你想更深入的了解网络相关的知识,可以去观看更多的视频或者文章,这些知识需要自己慢慢理解。在我以后的文章中可能会经常引用这篇文章。谢谢大家!

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

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

相关文章

短信群发在销售中起到了什么作用

短信群发可以精确定位每个地域,每个交易人群的数据信息,接下来我们为大家详细讲解下短信群发在产品销售中起到的作用。 ‌品牌形象口碑提升‌:通过短信群发,企业能够提供目的性的人性化服务,从而提高在客户心目中的品牌…

编程新纪元:AI如何成为你的编程伙伴

随着人工智能技术的不断进步,我们正步入一个编程的新纪元。在这个时代,AI不仅仅是一个工具,更是程序员的伙伴。它通过提供智能辅助、自动化编码和增强开发效率,正在改变我们编写和理解代码的方式。本文将探讨AI如何成为程序员的得…

怎么将几个pdf合成为一个?把几个PDF合并成为一个的8种方法

怎么将几个pdf合成为一个?将多个PDF文件合并成一个整体可以显著提高信息整合的效率,并简化文件的管理与传递。例如,将不同章节的电子书合成一本完整的书籍,或者将多个部门的报告整合成一个统一的文档,可以使处理流程变…

浙江: 策马扬鞭自奋蹄 头雁领航新征程

建德市心手相牵社会工作服务中心当选杭州市社会组织总会理事单位、王江平同志当选为理事 作者:李望 牧凡 金秋九月,杭州市社会组织领域迎来了一场盛会。2024年9月10日,杭州市社会组织总会第四届一次会员大会在杭州之江饭店胜利召开,会议汇聚了浙江省及杭州市民政系统的重要领导…

基于监测成果的黄金坪水电站高边坡支护方案-峟思

在黄金坪水电站引水隧洞及泄洪洞进口工程边坡的变形监测过程中,积累了大量宝贵的数据。本文基于这些监测成果,对边坡的变形深度进行了深入分析,并据此提出了支护方案的优化建议。 一、监测成果概览 截至2012年2月,多点位移计和外部…

如何在Windows系统上使用谷歌浏览器进行远程工作

对于许多专业人士而言,远程工作已成为常态,而选择一个合适的浏览器并配置好相关设置是提升线上工作效率的关键。本文重点介绍如何在Windows系统上通过谷歌浏览器实现高效远程工作,希望对你有所帮助。(本文由https://chrome.polamu…

blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办

blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办 首先请调整好模型确保左右前后对其相应的xyz轴 之后CtrlA应用变换 确保这些都归0且模型和xyz轴对应 如果在Blender中模型的中点(对称轴)不小心被移动了…

【机器鱼设计学习1】——电子控制单元

总结自B站UP主“RC扫地僧” 一、电池 电池容量: ① 5000mAh用5000mA(5A)放电,1h放完电 ② 锂聚合物电池的标准电势电压为1S3.7V(相应的2S7.4V,3S11.1V) ③ 若用单片电芯组成的一组电池&#xf…

云电脑玩《黑神话:悟空》游戏到底咋样?说说心里话…

前言 最近《黑神话:悟空》游戏真的很火很火,小白在刷抖音的时候,十个中有七八个是直接在直播玩这款国产3A大作。 小白也是特别迷恋这个游戏的,以至于玩到公众号都忘记更新。 今天咱们就来聊聊:手边没有适合的电脑设…

彻底解决win10出现锁屏异常,需按下Ctrl + Alt + Del解锁

1 锁屏时间修改 此环节容易被忽视,在网络上寻找解决方案时也并未找到相关内容。这可能导致在修改完其他设置后,电脑静止不动数分钟后会突然闪烁,随后重新跳转至需要验证登录的界面。 # 2 Mouse Border相关设定关闭 经过仔细对比分析发现&am…

自掘坟墓?开源正在卷爆程序员!

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer。 已帮助数百位同学拿到了中大厂 offer Hello,大家好,我是 Sunday。 今天这篇文章其实我想了好久,因为这并不是一个 和光同尘 的话题,它…

ML20_贝叶斯模型平均BMA详解

1. BMA贝叶斯模型平均 “贝叶斯模型平均”(Bayesian Model Averaging, BMA)是一种统计方法,用于处理模型不确定性的问题。在传统的统计建模过程中,研究者通常会选择一个最佳模型来进行推断或预测,而这个最佳模型通常是…

[001-03-007].第26节:分布式锁迭代3->优化基于setnx命令实现分布式锁

我的博客大纲 我的后端学习大纲 1、死锁问题: setnx刚刚获取到锁,当前服务器宕机,导致del释放锁无法执行,进而导致锁无法锁无法释放(死锁) 2、解决办法: 解决:给锁设置过期时间&…

2024年度建筑工程中级、副高职称水平能力测试合格人员公示啦

目前副高水测考过有1016名人员 中级水测考过人员有75人 为什么省直副高和中级相差人员那么多?想知道原因嘛?评论区聊一下

一文为你详解期权波动率是什么?

今天期权懂带你了解一文为你详解期权波动率是什么?采用合适的期权组合来对冲或利用波动率变化带来的机会。不同策略适用于不同的市场条件和投资目标。 期权波动率 假如我们为地震灾害去买一份保险,你认为什么样地震的保险费会更贵呢,是深圳…

Java工具插件

一、springboot集成mqtt订阅 阿里云MQTT使用教程_复杂的世界311的博客-CSDN博客_阿里云mqtt 阿里云创建MQTT服务 先找到产品与服务,然后选择物联网平台,找到公共实例,创建一个产品。 创建产品 然后在左侧下拉栏找到设备管理,在设备管理下拉栏找到设备,然后添加设备。添加…

Java 多维数组

1.多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 2. 二维数组 3.以上二维数组a可以看成两行五列的数组。 数组名.length获取的是一共有多少行;数组名[i].length获取的是第i1行有多少列…

如何从零开始备考高项(信息系统项目管理师),并且可以一次性通过考试?

这个我有经验! 信息系统项目管理师作为软考高级科目,难度不小,需一次性通过三个科目,所以零基础的朋友一定要提前复习,建议大家复习时间不少于4个月时间。 不知道该如何备考的,可以看看我下方的建议&…

大模型备案,全程配合包过拿到备案号

本文详解备案流程,旨在帮助企业和开发者顺利完成备案,确保AI技术健康有序发展。 一、政策要求做大模型备案 大模型备案是中国国家互联网信息办公室为加强生成式人工智能服务的管理,确保用户权益得到充分保护,以及保障国家安全和…

SQL语句开发规范

最近写 SQL 比较多,但是 SQL 语句写得非常不规范,在编辑器中经常被 Typo 提示,因此,我重新回顾并总结了一下阿里有关于 SQL 的开发手册,以下是一些总结心得: General SQL 代码中的关键字,保留字…