?个人主页:初晴~
在现在这个高度智能化的时代,网络几乎已经成为了空气一般无处不在。移动支付、网上购物、网络游戏、视频网站都离不开网络。你能想象如果没有网络的生活将会变成什么样吗?
然而如此对于如此重要的网络,你又了解多少呢?接下来就让博主来拨云见日,带你重新认识一下这个熟悉又陌生的老朋友——网络吧?。
一、计算机网络的简单构成
1、传输层硬件设备
(1)路由器
路由器(Router)是一种用于连接不同网络并转发数据包的网络设备。它的主要功能是在互联网协议(IP)网络之间路由数据包,从而使得不同网络上的设备能够相互通信。路由器工作在网络层(OSI模型的第三层,后面会具体介绍),可以根据IP地址和路由表来决定数据的最佳路径。
简单来说,路由器就像是一个快递站,负责收发“快递”,生活中我们是通过各个快递站来连接起了各个用户,形成“物流网”,而路由器就是网络世界的“快递站”,通过接收转发“数据包”来连接起了网络中的各个设备,形成了“互联网”:
但是,通过观察家里的路由器会发现,路由器上的口数量是有限的,如果要插入的接口过多,又该如何处理呢?
(2)交换机
交换机(Switch)是一种网络设备,用于在一个局域网(LAN)内连接多个设备,并促进它们之间的通信。交换机工作在数据链路层(OSI模型的第二层)。
我们在学校机房里可能就会发现下面这种设备,这就是交换机:
我们可以发现,这交换机上就有着大量的接口,可以接入非常多的设备,可以用来扩展路由器路由器的接入数
2、IP地址与端口号
(1)IP地址
IP地址是用来唯一标识网络上的设备的地址。
就好比在寄快递时,需要在快递包裹上贴上收件人地址和寄件人地址,快递员才能进行准确的配送一样。ip地址就描述了一台主机在互联网上所处的位置,从而让网络通信知道传输的目的地,使得数据包可以从一个设备发送到另一个设备。
ip地址是一个32位的二进制数,为了方便查看,通常采用“点分十进制”进行表示:
注意:
ip协议主要有IPv4协议和IPv6协议,不过目前全球普及的仍然是IPv4协议,故我们这里讨论的主要就是32的IPv4
(2)端口号
端口号则是传输层的概念,用于区分一台设备上的不同服务或应用程序,可以标识主机中发送数据、接收数据的进程。
就好比我们在寄快递时,不仅需要收件人地址(ip地址),还要具体到收件人的姓名(端口号),快递才能准确地送到收件人手中。
端口号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数据。
注意:
事实上0~1023这些端口都是已经有一些特殊含义的,我们自己代码中使用的端口一般是剩下的
3、网络范围区分
(1)局域网(LAN)
局域网是指在一个相对较小的地理区域内(如办公室、学校、家庭等)建立的网络系统。
比如前面提到的多个设备连接到同一个路由器上,就可以看作是处于同一个局域网中。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况下,是⽆法通信的。
(2)广域网(WAN)
广域网则是指跨越较大地理区域的网络,可以覆盖城市、国家甚至是全球范围。
通过路由器,将多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。⼴域⽹内部的局域⽹都属于其⼦⽹。局域网与广域网的区别
覆盖范围:LAN覆盖一个小的地理区域,而WAN则覆盖广泛的地理区域。所有权:LAN通常由单一实体拥有和管理,而WAN则涉及多个组织。成本:LAN的成本相对较低,因为只需要较少的设备;而WAN的成本较高,需要更多的基础设施和维护费用。性能:LAN通常提供更高的数据传输速率和更低的延迟,而WAN可能因地理距离的原因导致较高的延迟和较低的带宽。安全性:LAN的安全性更容易管理和维护,而WAN需要额外的安全措施来保护数据的传输。二、网络协议
1、初始协议
有了IP地址和端⼝号,可以定位到⽹络中唯⼀的⼀个进程,但还存在⼀个问题,⽹络通信是基于⼆进制0/1数据来传输,如何告诉对⽅发送的数据是什么样的呢? ⽹络通信传输的数据类型可能有多种:图⽚,视频,⽂本等。同⼀个类型的数据,格式可能也不同,如发送⼀个⽂本字符串“你好!”:如何标识发送的数据是⽂本类型,及⽂本的编码格式呢? 基于⽹络数据传输,需要使⽤协议来规定双⽅的数据格式。 所谓协议就可以看作是一种公开的约定/规则,用来规范双方交流的一种工具。就好比博主是湖北人,博主的室友是浙江人,如果我讲湖北话,他讲浙江话,我们彼此之间都会听不懂对方在讲什么,也就无法正常交流了。因此为了沟通,我们就约定了都使用普通话来进行交流,这就可以称之为是一种“协议”。
网络通讯中就会有各种各样的网络协议,数据发送方与接收方都要严格遵循同一套协议,才能将数据正确地传输并解读
2、协议分层
完成一整个网络通信的过程是非常复杂的,如果想要只通过一套协议,就约定好网络通信中的所有细节,将会导致这个协议会相当的庞大与复杂,并且维护起来也非常麻烦。
这时候我们就可以把这一个大的协议拆分成多个小的协议,让每个协议专注于解决某一问题,在层层向上整合,最终实现大的功能。
类似的,我们在打电话时,也会定义不同层次的协议:
每个协议各司其职,且互不干扰,并且可以更好的拓展与维护,比如如果想要通过英语来交流,只需将“语言层”的汉语协议转换为“英语协议”即可,非常方便。
优势总结:
1、通过模块化与标准化,使得整个网络系统的设计和实现变得更加容易。每一层可以专注于自己的功能而不必关心其他层的细节。
2、提高灵活性和可维护性,可以独立地改进或更换某一层的技术而不影响其他层。当网络出现问题时,可以通过逐层排查的方式来定位问题所在的具体层次,从而简化故障诊断过程。
3、每一层向上层提供了一定程度的抽象,使得上层可以不关心底层的实现细节,只需要关注接口定义即可。
4、分层模型明确规定了各层之间的接口规范,这使得不同供应商的产品只要遵循相同的标准就可以协同工作。
三、网络模型
1、OSI七层模型
OSI:即Open System Interconnection,开放系统互连 OSI 七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。 OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传 输;不过由于OSI七层模型既复杂也不实用,并没有被落地实现过,目前应用最广泛的还是TCP/IP 五层模型。
2、TCP/IP五层模型
主要有程序员自行定义的“应用层”,及操作系统/硬件设备已经实现好了的“传输层”、“网络层”、“数据链路层”、“物理层”。
各个协议的功能:
应⽤层:有开发人员自行定义,主要关注数据用来做什么,具体的功能传输层:负责两台主机之间的数据传输。主要关注数据传输的起点与终点。但并不关注数据传输的中间过程⽹络层:负责地址管理和路由选择。主要关注于传输时的路径规划数据链路层:负责设备之间的数据帧的传送和识别。关注数据在相邻两个节点间传输的具体过程物理层:负责光/电信号的传递⽅式。一般指硬件设备,如网络驱动等……这些协议的具体细节博主会在后续的文章中再进行相信的解读。
常见网络设备所处分层:
主机:它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层; 路由器:它实现了从⽹络层到物理层,也即是TCP/IP五层模型的下三层; 交换机:它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层; 集线器:它只实现了物理层……
注意我们这⾥说的是传统意义上的交换机和路由器,也称为⼆层交换机(⼯作在TCP/IP五层模型的下两层)、三层路由器(⼯作在TCP/IP五层模型的下三层)。 随着现在⽹络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以上说的⽹络设备都是传统意义上的交换机和路由器
网络分层的对应:
数据通过TCP/IP协议传输流程如下:
封装与分用:
这就好比你在网上买了一件衣服,商家不可能直接把衣服揉成一团直接交给快递小哥就给你送过来了。在发货时商家肯定要把衣服用快递包裹包装一下,并且快递员还要在包裹上贴上具体的信息,如收件人地址、姓名、电话等等,接着才能正确地将包裹送到目的地。
网络通信中也不会把数据直接发送出去,而是要先进行层层封装与分用才行。
下图为数据封装的过程具体的封装细节也会在博主后续的文章中再进行详细研究,这里就先做一下简单了解即可。
那么本篇文章就到此为止了,如果觉得这篇文章对你有帮助的话,可以点一下关注和点赞来支持作者哦。作者还是一个萌新,如果有什么讲的不对的地方欢迎在评论区指出,希望能够和你们一起进步✊