网络模型
计算机的网络模型定义了计算机数据的传输过程,当前有以下 2 种主流模型:
- 国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为 OSI 参考模型或七层模型;
- 工业生产中实际用到的 TCP/IP 四层模型。这两者者的关系就好比,车间里面一个贴在墙上很规范的流程图,一个是实际生产中因为成本/便捷/效率等因素最终采用的流程。
但是不管是七层模型还是四层模型,他们实现的目无非是为了解决两个问题:
- 数据转成电信号;
- 目标主机的寻址。
1. 数据转成电信号
数据转换成电信号还是比较简单的,将字符根据指定的编码转换成唯一的二进制编码,然后将二进制的 01 映射成高低电平就可以传输出去了。
2. 数据的封装
试想一下,如果你在电脑上使用聊天工具,跟对方说了一句 你好
,对方的电脑如果只收到了 你好
的电频信号,是不能直接解析出来信息的。电脑解析电平信号需要解决很多问题:
- 这个电信号我该用什么规则解析出正确的字符?
- 这信息是谁发给我的?
- 我的电脑现在运行着微信/ QQ /邮件服务等,它到底跟哪个应用交互的?
- 对方的地址是什么,我要怎么回复出去?
等等问题很多,所以信息的发送不止是简单的电信号转换,还要给我们的数据添加额外的很多标识,让对方机器清楚你是谁,哪里来的,跟我这台电脑的哪个程序交互等信息。网络模型就很详细的说明了里面具体要处理的事情,这里根据标准的 ISO 七层模型讲解。
3. ISO 七层模型
3.1 应用层
为终端应用提供的服务,如我们的浏览器交互时候需要用到的 HTTP 协议,邮件发送的 SMTP,文件传输的 FTP 等。
3.2 表示层
为数据提供压缩,解压缩,解释,加密等功能。
3.3 会话层
通过传输层,建立了数据的传输通道。不同应用有自己不同的会话标识,所以传输过来的数据根据会话标识能够知道跟电脑的哪个应用在通信的。
3.4 传输层
定义了数据传输的协议和端口,比如是选择可靠的 TCP 还是不可靠的 UDP。在它上层的会话层是不关心它选择什么协议的,只要传输层能够提供传输的服务就行。传输层对于会话层来说是透明的。
3.5 网络层
在网络环境中,每台设备都有一个标识叫做 IP。数据在互联网的传输中都需要告知自己和对应的 IP,所以在这一层中主要是将数据添加一些网络信息,这一层的数据叫做包。
3.6 数据链路层
除了 IP 地址外,每台设备也有唯一的一个 MAC 地址。因为 IP 是需要网络设备如路由器来解析的,局域网中不需要这种设备,一般是借助 MAC 地址寻址的。就像出门在外你有一个正式华丽名字,但是回到家里可能大家叫你另一个小名,黑妹
之类。这一层的数据叫做帧。
3.7 物理层
一些物理设备的标准,如网卡网线,传输速率定义,最终实现将我们的数据转成电信号传输。
4. 路由寻址
01 的电频信号在物理介质的传输远不止上面一条横线带过那么简单,想想如果你跟美国的网友进行通信,信号需要跨洋交互,中间经过的设备数量,通信距离有多夸张。
4.1 寻址主要设备
- 路由器:IP 寻址,实现跨网段通信;
- 交换机:MAC 寻址,起到汇聚机器的作用;
- DHCP 服务器:为局域网的机器动态分配 IP 地址。
- ……
4.2 寻址过程简介
- 本地电脑根据数据包检查目标 IP 是不是本地局域网的,是的话直接广播 MAC 寻址,不是的话传输给局域网的出口路由器;
- 出口路由根据路由表信息找查自己的下一台设备发送出去;
- 网络上的其他设备也同样检查自己的路由表信息,决定发送的下一跳是哪里,直到到达目标的路由;
- 目标路由接收,广播数据包的目标 MAC 地址;
- 目标主机收到广播包,拆开发现是自己的,于是数据顺着网络模型往上汇报。
5. 小结
计算机的七层网络模型,是整个计算机体系的核心,明确分配了各个层次的功能职责。无论是软件开发还是硬件工程师都要清楚的掌握,要能够聚焦自己的领域,又能俯视全局,做到心中有丘壑。
- 还没有人评论,欢迎说说您的想法!