计算机网络总结笔记——大框架

计算机网络

计算机网络——就是实现计算机之间的通信的。
如果自己设计计算机网络,我们怎么设计呢?
最简单的——用一根线,把两台设备连接起来。
一台电脑通过发1010高低电平就能表示这个数据信号,另一台电脑就接收到了信号。
在这里插入图片描述
当有多台电脑时,它要实现两两之间都能通信,需要两两之间都要拉一条线,
这样的话线太多了。。。。
在这里插入图片描述
因此,我们提出:
转发——有一个中介帮忙转发,即从1发送到4时,能不能通过3,1发送到3,3再转发到4.
标识——在一个网络中,我们要表明自己的身份,

HUB集线器(物理层)

物理层——特别早期的一种设计方式,通过电信号传输数据
改进版:
通过转发思想:(提出一个设备,这个设备专门用来转发)
HUB(哈be)集线器就是做消息的转发,中介。
在这里插入图片描述
它做转发的方式非常暴力(群发):即当他接收到1的数据时,他会同时转发给2,3,4,5

这种方式设计起来非常简单,设计成本也很低,线材也很简单,只需要简单的双绞线就可以了。
在这里插入图片描述
问题是:1只想发送到4,但是2,3,5也接收到了信息。怎么解决呢?——带标识来解决。

解决:4在接收到这个数据包以后,发送带有4的标识,即发现这个数据包是发给我的,我才会用这个数据包。
而2,3,5发现这个数据包是4标识,即不是发送给我的,那就直接把这个数据包丢弃掉了。

又出现了问题:1,2两个同时发送数据,HUB集线器只是负责接受,没法进行分辨,所以它在转发的时候,就会将这两个信号杂糅起来,然后发给3,4,5设备。这就有可能导致4接受到的消息是1,2两个消息混合起来的,那任何一个消息他都解析不出来,就导致1,2发送的数据包都无法用了。

CSMA/CD

针对以上问题,提出了一种协议:CSMA/CD
协议功能:(防止冲突)我在发送前,进行载波侦听,通过载波侦听,我先检测一下这个链路上有没有其他人正在发送数据,如果没有呢,我再进行数据的发送

最初计算机网络的一种网络组织形式。
在这里插入图片描述
缺点:
1.进行数据的广播(群发)会导致带宽利用率较低。
2.在链路上同时只能有一个设备发送数据,导致链路的利用率很低,如果网络规模不断扩大,如100000台设备,每一瞬间只能有一台设备发送数据,就会导致大多数人可能一天都轮不到我发送数据。
在这里插入图片描述
————————————————————————
因此我们提出了第二种设备—交换机。

SW 交换机 、mac/ip地址(数据链路层/mac层)

mac叫做物理地址,然后他却位于数据链路层
数据链路层有时候也叫做mac层

后来我们更关系数据层面的,就放到了数据链路层。
每一台设备呢都需要有一个标识,标识其实就是mac地址,

交换机和集线器的作用非常类似,它也是有一个中心的作用,它也可以实现数据的转发。

与HUB的区别:
1.HUB没有记录每台设备的标识,他只是将接收到的数据广播群发出去,然后设备自己判断这个消息是不是属于它的——工作效率很低

交换机中是可以记录这个地址的,主要是记录这个地址和这个端口的一个映射关系。地位为mac地址(物理地址)。mac地址是每个网络设备在出厂的时候就已经写死了。
在这里插入图片描述

SW是如何记录地址和端口的呢?
他其实是在这个交换机中维系了一张表
在这里插入图片描述
如果设备1想要跟设备3通信的话,设备1将数据发送到交换机,SW会到它自己维系的地址端口表中发现mac3对应的是3号口,所以他就会将设备1发送来的消息发送到mac3,消息就会从3号口发出来,最终设备3就接收到这个消息了。

好处——SW下,我不再需要将这个数据进行广播,

2.
SW是全双工的,HUB集线器大多数用的都是双绞线,双绞线它在工作的时候只能有一台设备进行发送的。但是SW使用的是网线,网线里面是有八根线的,正常情况下至少有四根线是在工作的,这种方式下可以实现数据的全双工。也就是设备1在发送的时候也可以进行数据的接收。在这个链路上的数据也不会产生冲突,1发送数据的时候2也可以发送数据

SW的地址端口表

映射表不是路由表——因为他还没有到路由层,他只是交换机。
表是如何建立起来的?
在这里插入图片描述

在这里插入图片描述
交换机接了3台设备。
一开始呢,交换机是没有表的(空表)
怎么建立这个映射关系呢?
1.A要向B发送数据,A发送这个数据上来以后他会首先查这张表,发现这张表中没有任何数据,同时A发送上来以后,确定了macA:1,将此信息记录到这张表中。
2.他的目的地址是B,让他去找B的时候呢,他发现找不到,表中没有B端口的信息,找不到的时候就往每个端口分别进行发送.
4号端口是B,B做出了回应,那这个时候他就会将macB记录到这个表中,
在这里插入图片描述
经过一段时间的记录以后,这个交换机就拥有了所有的mac地址和对应端口的映射关系。

交换机所在的这一层——数据链路层
数据链路层的数据
在这里插入图片描述
数据链路层的头记录了源地址和目的地址(mac地址)

SW的特点

可以进行桥接
有两台交换机,可以通过它们上面的两个端口进行桥接。桥接起来会产生一个现象:
在这里插入图片描述
A向C发送消息的时候,在路由表中没有找到,那它就会全部的广播发送(群发),当广播到最后一个口,5号口的时候它就进到另一个交换机里面了,另一个交换机里面,记录了C对应4号口,
在这里插入图片描述
就找到了C,最终把这个数据发送到了另一边的C,4号口上。发送完成以后,他会在A这个数据发送过来的时候记录下来,
在这里插入图片描述
同理,当B往这边发送消息的时候,也会把B记录下来,
在这里插入图片描述
多个mac地址(多个不同的同学,同学是不同的名字,身份证号)是可以对应着同一个端口(同一个学校)

SW缺点:

一般家庭条件下的SW可以存储几千的映射关系,这个几千个的存储量是比较小的,如果我们想要在全球范围内建立目前的这个计算机网络,几千个端口肯定是不够的,需要几十亿个。
而没有记录这个映射表信息的话,他就会一直广播(群发),导致消息洪范,效率是很低的。

使用SW交换机和mac地址相结合的这种方式,可以在一个比较小的局域网络内达到一个高效的传输

比如说我们几千个设备组成的一个局域网,这个网络呢,可能是整个校园网,一个工作室,一个家庭的网络。网络内部的这个SW效率还是很高的。
在这里插入图片描述


当网络规模扩大时,比如多个网络要合成一个大网络,比如清华的校园网和北大的校园网,把这两个合成一个大网络,可以用一个交换机,把这两个大网合成一个网络,—————合成的这个大网络存在问题是,这个交换机中的这个表可能记录不过来,最多只能存储几千个端口,没有记录的话,我就要进行不断的广播(群发),广播的效率很低,
————————————————————————在跨网络的时候,我们提出了一种新的方案,定一个新的设备,通过这个新的设备的连接不同的网络,这个新设备,就是路由器(网关)
路由器(网关)是跨在两个网络之间的一个连接点
在这里插入图片描述

路由器(网络层)

有了路由器,我们在不同网络之间的设备,如网络1中的设备1和网络2中的设备2进行通信时,就是通过路由器进行转发,从网络一转发到网络二。
如果是同一网络下的设备1和3通信,那就不需要经过路由器直接在网络内部进行转发。网络内部用交换机通信效率很高,所以同一网络的1和3直接走交换机
在这里插入图片描述

IP地址

IP地址的作用:一个是用来标识这个网络的,二是标识设备的。

之前讲过设备用mac地址来标识。
ip地址是在哪个网络下的设备的标识。

IP地址:一个是标识网络2,一个是标识网络2下的我的设备
在这里插入图片描述
我自己的设备ip是192.168.0.102
我自己的路由表是默认路由器192.168.0.1
我自己的设备会把数据包发送到路由器上,发送到这个路由器上之后呢,路由器也有自己的一张路由表,路由表中记录了192.168.1.51这个ip地址,通过这个地址路由器能进行发送数据,即0.102——传到0.1——经过1.51发送到网络一,
因为1.51和1.254都是在网络一,所以很容易的就找到了1.254
在这里插入图片描述

即——————路由器的工作主要原理就是它既有网络一的IP,又有网络二的IP(路由器黑道白道都能混得开,黑道白道不能直接进行交流的,但通过路由器这个中间人,就能实现黑白两道的交流)

路由器经过一些完善的算法会自动建立出路由表,也就是说路由器也是有路由表的。

————————————————————
网络内部是怎么传输的呢?
192.168.1.52——到192.168.1.254这个过程是怎么传输的?这个包是怎么传过来的?
(错误理解:因为都是在同一网络下,一找到就找到了,1.52直接就能找到1.254,如果成立的话,那我们为什么还要交换机建立mac地址和端口的映射表呢?)
在这里插入图片描述

理解

实际上网络的传输,走的全是mac地址。先查到设备的mac,

我们引入路由器的初衷——为了跨网络时进行数据的转发。IP,是一个抽象的IP,IP地址是不能直接用作通信的,因为IP地址是一个抽象地址。我们只能使用mac地址进行直接通信,因为mac地址是一个真实的地址。

所以1.52——1.254的过程:
第一步:1.52先去查1.254的mac地址,也就是根据IP地址192.168.1.254去查mac地址,通过ARP协议达到了mac地址,
第二步:在mac层(数据链路层)进行传输

————————————————————————
整体过程(192.168.0.102—到192.168.1.254)
第一步:0.102——0.1
在这里插入图片描述
第二步:0.1——1.52
虽然是本机,都是在路由器上,也是网卡的传输。
IP地址的源目地址不变
在这里插入图片描述
第三步:1.52——1.254

在这里插入图片描述
在整个过程中,IP地址的源目地址是不变的,只有MAC地址不断切换

ARP协议(获取mac地址)

Address Resolution Protocol”
ARP协议就是在这个网络中去广播(群发)询问谁的IP地址是192.168.1.254,1.254收到这条消息,就会回复告诉他我的IP地址就是1.254,然后我的mac地址对应的是mac1

然后把这个消息告诉给1.52

1.52就知道了1.254的mac地址。

传输层

传输层封了TCP UDP协议
TCP是为了保证数据的可靠性,实现一个可靠的传输。

TCP的可靠性,指的是它接收到的数据一定能不丢不乱不错地转发到目的主机(接收到的信息一字不差的发送出去),但是它接收到的数据的准确性,就不是TCP协议能保证的了。如果应用程序把数据传到TCP的过程中出错,TCP是不知道的。

如果把TCP比作货车司机,那它可以保证自己运送的货物拿到的时候是啥样,送到的时候就是啥样。如果寄件人一开始就把错误的包裹给了司机,司机是不知情的,所以这种错误并不能指望司机去解决。TCP只负责传输层层面的可靠性。

应用层

HTTP就是特点的应用场景下的一些协议。

问题?

在这里插入图片描述

路由器:
1.有几张网卡?——一个网卡
2.路由器有多少个IP?——wan口固定IP,lan网口可以分配不同的IP
3.手机,电脑去连接这个路由器的时候,我们似乎并没有给我们的电脑去指定的IP,那这个IP是怎么获得的?——通过DHCP协议自动分配IP
DHCP,Dynamic Host Configuration Protocol
动态主机配置协议,计算机网络应用层协议
4.NAT协议——网络地址转换协议

MAC/IP区别

MAC地址和IP地址的作用,定位不同。用寄快递来类比网络通信,MAC地址相当于你家地址,IP地址相当于你家所在城市名或邮编。

mac地址和ip地址
mac地址相当于你的身份(外卖信息中填的名字和电话号码一般是跟随你的,不管你在哪填的都一样),而IP地址就相当于你填写的地址,你在哪填哪,家庭地址,公司地址,学校地址等
所以每台设备IP是可变的,mac是不变的(像名字一样可以拥有多个,如果一台设备有多张网卡

实际通信用的都是mac地址,那为何还要IP地址,直接全球用唯一的mac不行吗?
————交换机记录的表是mac端口映射,这个表有俩问题,第一是确切的mac地址和端口的映射,无法抽象成范围映射。第二表大小肯定是有限。这俩原因就直接导致了不能直接用mac

ip做了什么,就能改进了呢?——ip有了网络的抽象,使很多ip表示为一个网络。

猜你喜欢

转载自blog.csdn.net/weixin_45942265/article/details/118363342