计算机网络五层模型

1.物理层
一台计算机与另一台计算机要进行通讯,第一件要做的事就是要把这台计算机和其他的计算机连起来,这样才能把数据传输过去,例如光纤、电缆等,然后才能通信。
2.数据链路层
物理层只是单纯负责把计算机连接起来,并且在计算机之间传输0,1这样的电信号。但是如果这些0,1组合的传送毫无规则的话,计算机是不能解读的,

因此需要制定一套规则来进行0,1的传送。于是就有了以太网协议
以太网协议
以太网协议规定,一组电信号构成一个数据包,我们把这个数据包称之为帧,每一个帧由标头(Head)和数据(Data)两部分组成

帧的大小一般为64~1518个字节。如果需要传输的数据很大的话,就分成多个帧来传送。那标头和数据这两部分存放的是什么呢?标头部分主要是一些说明数据,例如发送者、接收者等信息;而数据部分则是这个数据包具体的、想传给接收者的内容。
我们上面说过一个帧的长度是64~1518个字节,也就是说帧的长度是不固定的,这里需要注意的是,标头部分的字节长度是固定的。如果不是固定的,每个帧都是单独发的,那计算机怎么知道标头是几个字节,数据是几个字节。所以标头部分的字节是固定的18个字节。把一台计算机的数据通过物理层和数据链路层发送给另外一台计算机,究竟是谁发给谁,两台计算机之间如何区分,它们需要唯一的标识,于是MAC地址出现了。
MAC地址
连入网络的每一个计算机都有网卡接口,每一个网卡都会有一个唯一的地址,这个地址叫做MAC地址。计算机之间的数据传送就是通过MAC地址来唯一寻找、传送的。

MAC地址由48个二进制位构成,在网卡生产时就被唯一标识了。
广播与ARP协议
(1)广播

如图,假如计算机A知道了计算机B的MAC地址,然后计算机A想要给计算机B传送数据。虽然计算机A知道了计算机 B的MAC地址,可它要怎么给它传送数据呢?计算机A不仅连着计算机B,还连着其他的。虽然计算机A知道计算机B的MAC地址,可是计算机A却不知道计算机B是分布在哪条路线上,为了解决这个问题,广播出现了。
在同一子网中,计算机A要向计算机B发送一个数据包,这个数据包会包含接收者的MAC地址。当发送时,计算机A是通过广播的方式发送的,这时同一子网中的其他计算机也会收到这个数据包,它们会把数据包的MAC地址取出来和自身的MAC地址进行对比,如果两者相同,则接受这个数据包,否则就丢弃。这种发送方式称为广播,就像我们平时在广场通过广播的形式呼叫某个人一样,如果这个名字是你,你就理会一下,如果不是你,你就当作听不见。
(2)ARP协议
那计算机A是如何知道计算机B的MAC地址呢?就是ARP协议,通过它我们可以知道子网中其他计算机的MAC地址。
3.网络层
实际我们所处的网络,是由无数个子网络构成的,广播的时候也只有同一个子网里面的计算机能够收到。
那么如何区分哪些MAC地址是属于同一个子网的呢?为了解决这个问题,于是就有了IP协议。
(1)IP协议
IP协议,它所定义的地址称之为IP地址。 IP协议有两种版本,一种是IPv4,另一种是IPv6。目前大多数用的还是IPv4。
这个IP地址由32位的二进制数组成,我们一般把它分成4段的十进制表示,地址范围为
0.0.0.0~255.255.255.255
每一台想要联网的计算机都会有一个IP地址。这个IP地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。并且网络部分和主机部分所占用的二进制位数是不固定的。
假如两台计算机的网络部分是一摸一样的,我们就说这两台计算机是处于同一个子网中,例如
192.168.43.1和192.168.43.2,假如这两个IP地址的网络部分为24位,主机部分位8位,那他们的网络部分都为192.168.43,所以他们处于同一子网中。
那么问题来了,你怎么知道网络部分占几位,主机部分占几位呢?也就是说单单从两台计算机的IP地址是无法判断他们是否处在同一个子网中的。这就引申出另外一个关键词——子网掩码。子网掩码和IP地址一样也是32位二进制数,不过它的网络部分规定全部位1,主机部分规定全部为0,假如上面那两个IP地址的网络部分为24位,主机部分为8位,那他们的子网掩码都为11111111.11111111.11111111.00000000,即255.255.255.0。

有了子网掩码,相当于我们知道了网络部分是几位,主机部分是几位,我们只需要把IP地址与它的子网掩码做与(&)运算,然后把各自的结果进行比较就行了,如果比较的结果相同,则代表是同一个子网。
(2)ARP协议
有了两台计算机的IP地址与子网掩码,我们就可以判断它们是否处于同一个子网中了。假如它们处于同一个子网中,计算机A要给计算机B发送数据,我们可以通过ARP协议来得到计算机B的MAC地址。ARP协议也是通过广播的形式给同一个子网中的每台电脑发送一个数据包(这个数据包会包含接收方的IP地址)。对方收到这个数据包之后,会取出IP地址与自身的对比,如果相同,则把自己的MAC地址回复给对方,否则就会丢弃,这样计算机A就能知道计算机B的MAC地址了。

知道了MAC地址之后,发送数据是通过广播的形式发送,询问对方的MAC地址也是通过广播的形式来发送,那其他计算机怎么知道你是要传送数据还是要询问MAC地址呢?其实在询问MAC地址的数据包中,在对方的MAC地址这一栏中,填的是一个特殊的MAC地址,其他计算机看到这个特殊的MAC地址之后,就能知道广播想干嘛了。
假如两台计算机的IP不是处于同一个子网之中,这个时候,我们就会把数据包发送给网关,然后让网关让我们进行转发传送。
(3)DNS服务器
如何知道对方计算机的IP地址呢?当然是计算机的操作者进行输入的。当我们想要访问某个网站的时候,可以输入IP来访问,但大多数人是输入一个网址域名 ,当我们输入这个域名时,会有一个叫做DNS服务器的家伙来帮我们解析这个域名,然后返回这个域名对应的IP给我们的。
因此,网络层的功能就是让我们在茫茫人海中,能够找到另一台计算机在哪里,是否属于同一个子网等。
4.传输层
通过物理层、数据链路层以及网络层的互相帮助,我们已经把数据成功从计算机A传送到计算机B,可是B里面有各种各样的应用程序,计算机该如何知道这些数据是给谁的呢?端口Port出现了,我们在从A传数据给B的时候还得指定一个端口,以供特定的应用程序来接受处理。
也就是说,传输层的功能就是建立端口到端口的通信,相比网络层的功能是建立主机到主机的通信。
也就是说只有有了IP和端口,我们才能进行准确的通信,传输层最常见的两大协议是TCP协议和UDP协议,他俩的最大区别就是,TCP提供可靠的传输,而UDP提供的是不可靠传输。
5.应用层
应用层这一层最接近用户了。虽然我们收到了传输层传来的数据,可是这些传过来的数据五花八门,有html格式的,有mp4格式的,也看不懂。因此我们需要指定这些数据的格式规则,收到后才好解读渲染。例如我们最常见的 Http 数据包中,就会指定该数据包是 什么格式的文件了。
文章详细介绍了计算机网络的五层模型,包括物理层的连接设备,数据链路层的以太网协议和MAC地址,网络层的IP协议、子网掩码和ARP协议,传输层的TCP与UDP协议,以及应用层的端口通信和数据格式规范。
5396

被折叠的 条评论
为什么被折叠?



