这篇文章将介绍计算机网络中的一些基础概念,以及生活中我们所常见的一些设备(交换机、路由器等)的作用。
互联网,即广域网、局域网及单机按照一定的通讯协议组成的国际计算机网络。互联网是指将两台计算机或者是两台以上的计算机终端、客户端、服务端通过计算机信息技术的手段互相联系起来的结果。互联网又按照范围可划分为 局域网(LAN, Local Area Network)、城域网(MAN, Metropolitan)、广域网(WAN, Wide Area Network)。
你以为的网络连接图是这样?
实际上的网络连接图是这样的:
整个网络的连接,中间是穿插了很多的设备,例如常见的就是路由器、交换机等等。
协议(Protocol)的概念,在生活中很常见,比如找工作签的劳务合同、租房合同等等一系列的,都可以称之为协议。对应到计算机网络中,协议的作用也是一样的,都是为了约束。在不同的场景下,使用不同的协议。
百度百科定义:网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。
在面试中,可能最需要熟练掌握的是HTTP、HTTPS、TCP、UDP、IP、NET、DNS等协议。
客户端和服务器的概念!
客户端:指的是需要服务的一端,例如手机、电脑等。
服务器:指的是能提供服务的一端,例如云服务器。
客户端向服务器发送数据,称为请求;服务器向客户端发送数据,称为响应。
为了更好地促进互联网络的研究和发展,国际标准化组织(ISO, International Standardination Organization) 在1985年制定了网络互联模型:OSI参考模型 (Open System Interconnect Reference Model,开放系统互连参考模型),具体的有如下7层结构。
如上图,除了OSI参考模型的7层结构以外,还有TCP/IP协议簇的4层结构和教科书上常见的5层结构。
OSI参考模型,是建立在理论基础之上,在实际应用时并没有分的那么细致,后续在设计时,还是采用了TCP/IP协议中的四层结构。
网络传输中,数据的封装过程:
每一层拥有的网络协议和数据传输单位:
两台计算机之间想要进行通信,那么需要联网,那么如何在众多计算机之中标识其中的一台计算机?这就涉及到了IP地址的概念。如果这想要与其他计算机进行通信,就得先知道其他计算机的IP地址。但是只知道IP地址还不够,因为发送出去的数据,是发送给其他计算机的网卡上,所以还需要网卡地址,也就是所说的MAC地址。
但是在生活中,我们似乎并不需要知道MAC地址,也能够进行通信。原因在于,有ARP(Address Resolution Protocol) 地址解析协议,在我们第一次访问一台陌生的IP地址时,首先会通过广播发送一个ARP包,这个包里面包含了目的IP地址,在服务器那边收到ARP包时,发现ARP包的目的地址和本机一样,就会通过广播返回本机的MAC地址。
以下是用思科模拟器,模拟的通信过程:
切记,ARP协议是通过广播进行转发的,广播地址是全1,网络地址是全0。
两台计算机之间,可以直接使用双绞线(网线)进行通信,当然这里需要使用交叉线,而不是直通线。(相同设备之间用交叉线,不同设备之间用直通线)。
为了解决上述同轴电缆出现的某些问题,后来有了集线器,解决的问题是某一台计算机连接到集线器的线路断了,并不会影响到整个网络。
但是还是会存在一个问题,比如:假设一台集线器同时连接上百台计算机,此时计算机1和计算机2需要通信,按照上文所述,第一次和陌生的计算机进行通信,需要获取到另外一台计算机的MAC地址,如下图:
如上图,可以很清晰地看到,初衷是想让计算机4和计算机3通信,结果这两将整个网络的带宽都占用了,这不合理吧。仔细一看,除了这两台计算机以外,其他的计算机收到的数据包都会有一个红色的x,原因就在于网卡发现这个包不是给本机的,就抛弃了,也就是说这个包对于本机来说,没啥用,还占用带宽。
结论:集线器并不具备其他功能,唯一的功能就是使整个网络变为了星型拓扑结构,它并不具备缓存MAC地址的功能。并且它会将每次收到的数据包转发到全部的计算机上(除源主机)。
网桥的出现,是为了弥补上述集线器的不足之处,上文提到集线器并不具备缓存MAC地址的功能,那么网桥它来了。
上图,会发现网桥只有两个RJ-45的接口,也就是说,它的用法如下:
可以看出,网桥摆放在两个集线器之间,具体的作用如下两个动图所示:
任务:1、先让计算机1与计算机4通信;2、再让计算机2与计算机4通信;
经过上面这次通信之后,网桥就会记录计算机1和计算机4的MAC地址。并且你会发现这次通信,计算机1发出的ARP包,会被转发到网桥右边的集线器。
假设网桥内部记录的数据表如下:
左侧区域:计算机1的MAC地址:xxxxxx; 计算机4的MAC地址:xxxxxxx;
右侧区域:无。
再来看计算机2与计算机4通信的过程:
可以清晰地看到,在上次计算机1和计算机4通信之后,这两台计算机的MAC地址被存储在网桥中。此时计算机2再与计算机4通信,到数据来到网桥处,网桥会发现这个数据的目的地址,并不在网桥的右侧区域,所以并不会往右侧区域转发数据。
结论:
如上图,就能隔绝左右两侧的区域,在左右两侧区域内,能够使其同时通信。举例:左侧区域 计算机1和计算机2通信时,右侧 区域的PC8和PC7也能够同时通信。
交换机分为两种:二层交换机、三层交换机。此处只介绍二层交换机。三层交换机更高级一点,有路由功能。
二层交换机相当于集线器+网桥的一个综合版本。
由上图可清晰地看到,当计算机1和计算机2第一次通信时,此时并不知道计算机2的MAC地址,所以会先通过广播发送ARP包,询问计算机2的MAC地址,这个结果会被交换机记录。所以才有了后续发送ICMP包(上图紫色的包)的时候,交换机不会往所有的计算机发送,而是只发送给目的地址的计算机。
交换机的特点:
以上讲的网线直连、集线器、网桥、交换机,都是用于在同一个网段的网络进行通信的。那如果要在不同的网段之间进行通信,那么就需要路由器,接下来我们看路由器。
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。
上述我们讲得网线直连、集线器、网桥、交换机都是应用在同一个网段,他们之间能够进行广播,而路由器其中有两个功能是:1、在不同网段之间进行转发数据;2、隔绝广播域。
如上图所示,路由器的两侧是不同网段的局域网。如果左侧局域网的计算机想跟右侧局域网的计算机通信,就必须得经过路由器转发才行。
上图中提到了网关,简单点来说,网关就类似于保安叔叔。
如下图,这几年疫情原因,有些地方都封了,就形成了一块块的封锁区域,那不同的区域内想要交流,但是人们又不能离开封锁区域,此时就规定,只能让保安叔叔(网关)来传递数据,让保安叔叔跟外界交流,封锁区域内的人们想要与外界交流,只能让保安叔叔(网关)进行中转。
知道了路由器在网络中扮演了什么样的角色,现在可以来看看,两个不同网段之间的计算机是如何进行通信的。
如上图所示,PC0和PC3进行通信时,PC0会发现我要跟另外一个网段的计算机进行通信,那我只需要将数据交给**路由器(网关)**即可,让路由器将数据转发出去。所以首先,PC0还是需要先知道网关的MAC地址,所以会先通过广播发送ARP包,获取网关地址,后续才是将数据发给网关。如下图
在PC0将数据发给路由器之后,路由器去寻找下一个中转点。而右侧网关向外发送数据前,会发现没有PC3的MAC地址,所以首先还是会先发送ARP包,获取PC3的MAC地址之后,才转发其他数据。
如下图,就是各个设备之间都记录对应的MAC地址后,传输过程:
好啦,以上全部就是这篇文章的所有内容,我们下期再见吧!!!!