网络基础
一、恭喜你走进网络世界
当我们打开电脑、智能手机或其他数字设备时,我们似乎是在进入一个全新的世界——这就是网络世界,一个由无数的电子信号和信息包围的虚拟领域。😊 这个数字化的领域不仅是我们日常生活中的一部分,更是连接着全球各地的人们,企业和组织的纽带。
在网络世界中,信息以电子的形式在光纤和电缆中穿梭,瞬间飞越千里。无论是通过电子邮件、社交媒体还是即时通讯工具,我们可以在眨眼间与世界各地的朋友、家人和同事保持联系。🌐 这个数字交流的网络使得沟通的界限变得模糊,使得信息传递的速度和效率前所未有。
那么什么是网络呢?在计算机科学和信息技术领域,网络是指通过通信链路连接在一起的多个计算机系统之间共享数据和资源的集合体系。网络可以基于不同的技术和协议,但其基本目标是实现信息的传输和共享。
1、网络类型
网络可以按照规模和范围划分为不同类型:
1️⃣ 局域网(LAN): 局域网是一组位于相对较小地理范围内的计算机和网络设备的集合,通常在同一建筑物或校园内。LAN通过高速连接实现快速数据传输,常用于共享文件、打印机和其他资源。
2️⃣ 广域网(WAN): 广域网跨越较大的地理范围,连接不同地点的局域网。互联网就是一个全球性的广域网,通过光缆、卫星和其他通信设备实现全球范围内的数据传输。
3️⃣ 互联网: 互联网是全球最大的网络,将数十亿台设备连接在一起,为人们提供了广泛的信息和服务。它是一个开放的网络,通过一系列的协议和标准来实现不同系统之间的通信。
4️⃣ 无线局域网(WLAN): WLAN是一种使用无线通信技术连接设备的网络,允许移动设备在无需物理连接的情况下访问网络。Wi-Fi技术是 WLAN 中最常见的实现方式。
2、网络带给我们的便利
比如现在,你正在看着南汐的博客获取你想知道的知识一样,这就是而网络带给我们的便利,当然,不止于此,我们其实时时刻刻都处在网络的便利之中,我们甚至已经习惯性的认为网络就是我们的生活,这就是网络的重要性所在,一种极其便利的生活方式。
可以简单的说一下网络带给我们的便利,①全球信息获取、②即时沟通、③在线购物和电子支付、④远程办公和学习、⑤娱乐媒体和虚拟社交、⑥智能家居和物联网……
二、基本网络设备
网络的运行是一个复杂而协调的过程,其中设备通过网络协议进行通信,数据被划分成数据包并在路由器和交换机之间传输,最终到达目标设备。当然,这只是一个笼统的描述,因为我深知,当我站在这个网络世界面前,我有多么矮小……
接下来我会从基本的网络设备开始,讲述一些我所知道的网络的基本知识,小白适宜,大神勿进🤣🤣🤣 。
1、交换机
如果是在我们的家里,我们可能很少会用到交换机,因为我们的设备不多,并不需要这种方式,因为我们常见的家用路由器一般都提供有3-4个LAN口,供我们接入设备使用,即便端口不同,我们也提供了WIFI信号这种链接方式,当然如果觉得信号覆盖范围有限,我们也有无线AP作为解决方式,这已经可以满足任何家庭对于网络的需求了。但如果是一个小型组织或者公司甚至大型企业,那我们就必须使用交换机来实现网络内多台主机之间的通讯了。
1️⃣ 局域网交换机(LAN Switch): 这是最常见的交换机类型,用于连接同一局域网内的设备。它能够根据设备的MAC地址(物理地址)学习和过滤数据帧,以便在局域网内实现高效的数据交换。
2️⃣ 层 2 交换机: 也被称为二层交换机,主要工作在数据链路层(第二层)上,根据MAC地址进行帧转发。这类交换机通常用于构建局域网,并能够提供更高的网络性能和更低的延迟。
3️⃣ 层 3 交换机: 也被称为三层交换机,不仅可以在数据链路层上工作,还能够理解网络层(第三层)的IP地址。层 3 交换机通常具有路由功能,能够在不同的子网之间进行路由,提高网络的可扩展性和灵活性。
4️⃣ 核心交换机(Core Switch): 在大型企业网络或数据中心中,核心交换机起着关键的作用,连接多个分布式的局域网,承担大量的数据传输任务。这类交换机通常具有高吞吐量和可靠性。
5️⃣ 汇聚交换机(Aggregation Switch): 用于汇聚多个较低层次的交换机,将数据汇聚到核心交换机或路由器中。汇聚交换机有助于简化网络结构,并提供更高的网络带宽。
6️⃣ 工业交换机: 针对工业环境设计的交换机,具有耐用性、抗干扰能力和广温范围等特点,适用于工厂自动化和其他工业控制系统。
7️⃣ 光纤交换机: 这类交换机使用光纤连接,通常用于需要高带宽和远距离传输的场景,如数据中心互联或广域网连接。
交换机的工作原理:
在交换机下当我们的PC1想要与PC3建立通讯时,他就会构建一个数据包发送给交换机,交换机的内部存放着一张ARP缓存表,里面存放的是物理端口对应的PC主机MAC地址,初始的交换机里面是没有任何表数据的,当他收到PC1的数据报文(包含源MAC地址和目标MAC地址)时,就会开始进行学习,记录端口数据,端口:1------MAC地址:00-0c-29-97-9f-ef,然后寻找自己ARP缓存表里是否有目标MAC地址00-0c-29-30-81-db的端口号,如果没有目的MAC地址的表数据,那么他就会转发这个数据报文到局域网所有的PC主机,等待目的MAC地址的确认,这一行为我们称之为数据广播,PC3收到广播并确认是自己后,会向交换机发送数据包含源MAC地址和目标MAC地址),交换机再把这一个数据包转发给PC1,由此,PC1和PC3便实现了通讯。这时候交换机经过学习,ARP缓存表便更新成为了两条数据:端口:1------MAC地址:00-0c-29-97-9f-ef;端口:3------MAC地址:00-0c-29-30-81-db。以后PC1和PC3再次通信数据就不会进行广播了,而可以直接传输到对应的端口,同理PC2和PC4要实现通讯,也需要经过广播,因为ARP表里没有他们的MAC地址数据。
mac称为物理地址,每个计算机网卡上自诞生就有的一个标识,生产厂商定义,来确认身份信息。mac地址使用16进制标识,全球唯一,不能进行修改。
利用普通交换机的漏洞实现ARP缓存欺骗:
python里面有一个scapy库,专业用于网络数据包的创建、发送、捕获和分析,它可以轻松地构建和修改各种网络协议的数据包。我们以此可以直接构建一个ARP数据包,向某个局域网IP地址持续发送数据包,让对方的计算机误以为我们的地址是路由地址,那么对方的主机想要通信就必须向我们发送数据,我们可以选择置之不理,那他就无法再进行任何通信,我们也可以帮其转发数据,神不知鬼不觉中监测该主机的所有通信数据。(下图是对192.168.17.27的主机进行ARP欺骗,南汐是在对方空闲时间内做的测试,没有影响到他人的正常使用哦~)
数据链路层的问题,对于普通人而言很难排查,后面我们会有讲怎么去排查这种问题,当然最好的方式是使用好的交换机对局域网进行管理。
2、路由器
路由器帮助实现不同局域网之间主机通讯,可以隔离广播风暴(交换机可以辅助管理局域网,不能隔离广播域,路由器不同的接口连接不同广播域)
路由器最重要的功能就是做路由,什么是路由?顾名思义,路即是路径(网络上数据进行通信的路径),由即是由来(数据报文从哪里来到哪里去)。路由器相当于我们日常生活中的路标,当我们身处一个陌生的城市,走在一条陌生的路上,我们会通过路标来确认我们目的地的方向,然后按照路标的指引到达我们想去的目的地。与交换机一样,路由器内也存放着一张数据表,这个表叫做路由表,路由表的数据从哪里来呢?主要有两种方式,静态路由和动态路由。
在我讲静态路由和动态路由之前,有朋友或许会有疑问,我们想到达一个地方,导航会有多种路径,那么网络是否也一样呢?不是的,虽然我们把从一个地点到另一个地点的可能方式称为路径,但是在网络上的通讯我们的数据默认只有一条通信线路,那就是到达目的地最短的路径,因为路由器作为3层设备,会使用OSPF(开放最短路径优先)协议、BGP(边界网关)协议和IS-IS(中间系统到中间系统)协议。
2.1 静态路由
静态路由(Static routing),一种路由的方式,路由项由手动配置,而非动态决定。静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。优点是由管理员手工配置,配置灵活,节省链路开销。缺点是缺乏灵活性,拓扑变更时需要管理员去每台路由上更改设置。配置方式略……
2.2 动态路由
动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。配置方式略……
练习路由配置我们需要下载一个思科或者华为的模拟器进行,具体的配置方式南汐现在实在没心力写了,有需要以后可以给大家补上,也可以发邮件咨询我。
三、网络层次结构OSI
1、网络拓扑结构
网络拓扑(Network Topology)结构是指用传输介质互连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。如果两个网络的连接结构相同我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会有不同。
基本网络层次划分标准如下:
核心层:主要部署路由器设备,用于连接外网线路,还要具备冗余能力; 汇聚层:主要部署三层交换设备,用于相应安全访问控制 进行链路汇聚; 接入层:主要部署二层交换设备,用于终端设备接入;
网络拓扑形态,大致分为以下六种:总线型、环形、星形、树形、网状、组合型。
2、OSI网络七层模型
OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
我们需要重点关注的是应用层的几个协议:
1 | FTP 21 明文协议,文件传输协议,基于TCP |
关于网络层次模型,网络中有各种简化的说法,虽然名字叫法不同,但他们遵从的协议是一样的,最权威的当然是OSI七层模型,比如我比较习惯的说五层,即应用层、传输层、网络层、数据链路层和物理层,因为我觉得表示层和会话层的区分其实并不明显。下面我们以七层的概念借一位大神的图,一起看一下。
关于OSI七层模型的详细介绍,可以看一下CSDN这位博主的博客👉 OSI七层模型及各层功能概述
3、数据包的封装和解封装
数据进行封装的过程是由上至下的;
解封装—拆包的过程是从下至上的;
四、DNS访问流程[简]
关于DNS的访问流程我给大家画了一个简单的图,对于具体的细节我们暂时先不讲,因为涉及到TCP的三次握手和数据的传递,网络上的东西用起来很简单,但其实背后的原理非常复杂,这也正是计算网络的魅力之一。我们知道计算机之间的通信是通过IP地址进行的,当我们在本地通过电脑浏览器访问www.baidu.com
的时候,浏览器会首先查看浏览器的缓存,如果浏览器缓存里面存在百度的IP映射,那我们就可以直接获取百度的IP地址不需要DNS解析,如果没有,计算机会查找本地host文件看本地是否存在百度的IP映射关系,有则同样的则直接访问IP地址,如果这个时候还是没有,计算机会查看电脑本地是否设置的有固定的DNS服务器,有则直接去我们配置的DNS服务器解析域名,没有则会访问本地DNS服务器,一般有网络运营商提供,如果本地的DNS服务器仍然解析不到我们的域名,这个时候,我们会直接去根域名服务器进行匹配,根域名服务器下面有很多的顶级域名服务器,我们访问的百度是.com顶级域名,那跟域名服务器就会返回我们.com顶级域名服务器的IP地址,我们再次访问.com顶级域名服务器,.com顶级域名服务器匹配到我们访问的权威域名是baidu,则给我们返回权威域名服务器,这个权威域名服务器存放着百度域名绑定的A记录,这个A记录就是一个IP映射,这时候我们通过权威域名服务器就解析到了百度的IP地址,计算机知道了百度服务器的IP地址后,就可以直接访问百度了。当在我们解析到了百度的IP地址后会先在本地的DNS服务器备份一份,然后浏览器缓存也会备份一份,这样我们下次再访问百度的时候就会提高了访问效率。
哪里有天才,我是把别人喝咖啡的工夫都用在工作上的。
——鲁迅