重温计算机网络分层
计算机网络协议的分层,简单来说是分为以下五层
| 应用层 |
| 传输层 |
| 网络层 |
| 链路层 |
| 物理层 |
我们自下而上的逐一介绍一下
物理层
顾名思义,就是实体层啦,具体到我们经常在街上大马路随处可见的光缆,网线,点对点的连接两台机器,这一层就是物理层,光缆里通过传输0/1的信号来传递信息。
链路层
那怎么解读这些0/1的二进制信号呢?
那就来到我们的链路层,就像寄信一样,你寄一封信给某个朋友,需要用一个信封,信封外层写上对方的邮编地址,信封内层就是放信件的内容啦。
链路层就是类似的定义了一种以太网帧的格式,分为header头部和data数据部分,头部就用来放传输的地址(MAC地址),data里面就放需要传递的数据部分内容啦。
这里的知识点有MAC地址(每张网卡都有自己独一无二的mac地址),还有ARP寻址协议。
网络层
通过MAC地址去发送信息给其他计算机,只能做到在同一局域网内传递消息,如果是跨网段,又怎么找到对方的mac地址呢?
这里又定义了ip地址的概念,ip地址是一个32位二进制数字,我们习惯用4段划分的方式来写,如192.168.0.0,分为网络位和主机位,但是单单一个ip地址,我们怎么知道哪些是网络位,哪些是主机位呢,所以我们还需要配合使用一个-子网掩码,子网掩码同样是32为的二进制数字,两个ip地址,通过ip地址&子网掩码的方式,看得出来的网段是否一致的,来判断是否同一局域网下的机器。
这里的知识点又有:域名是如何解析到ip地址?
传输层:
在网络层,我们已经能实现从A计算机传递信息到B计算机啦,但是计算机上有这么多程序进程,大家都在同一台主机上,拥有着同一个ip地址,怎么知道这条是不是给我自己的呢?
所以传输层的功能,就是建立端口到端口的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。有了它,就可以进行网络应用程序开发了。
传输层就可以分为多种传输协议:典型的如TCP、UDP、ICMP
应用层:
既然传输层我们已经可以具体到 程序-程序之间的交流了,剩下了就到了最后的环节啦,层层剥壳传递过来的数据信息,要如何去解读呢?
这块主流的协议呢,就是HTTP、