分层的意义
-
当遇到一个复杂问题的时候,可以使用分层的思想把问题简单化,比如:你有半杯 82 年的可乐,想分享给你的朋友王富贵,但你们已经 10 年没有联系了,要完成这件事,你可能要考虑:
- 我用什么装可乐? 可能的方案:塑料瓶、玻璃瓶、煤气罐
- 怎么保证可乐始终处于低温? 可能的方案:保温杯、小冰箱、冰盒
- 如何保证可乐不被运输的人偷喝? 可能的方案:封条、在上面写「毒药」
- 如何获取王富贵的地址? 可能的方案:报案失踪、联系私人侦探、联系物流公司的朋友
- 如何运输? 可能的方案:自行车、汽车、火车、高铁、飞机、火箭
-
这就形成了一个分层结构
-
从常理出发,可以得出以下结论:
- 每层相对独立,只需解决自己的问题
- 每层无须考虑上层的交付,仅需把自己的结果交给下层即可
- 每层有多种方案可供选择,选择不同的方案不会对上下层造成影响
- 每一层会在上一层的基础上增加一些额外信息
五层网络模型
数据的封装和解封装
四层、五层、七层
面试题
说说网络的五层模型
参考答案:
- 从上到下分别为:应用层、传输层、网络层、数据链路层、物理层;在发送消息时,消息从上到下进行打包,每一层会在上一层基础上加包,而接受消息时,从下到上进行解包,最终得到原始信息;
- 其中:
- 应用层主要面向互联网中的应用场景,比如网页、邮件、文件中心等等,它的代表协议有 http、smtp、pop3、ftp、DNS 等等;
- 传输层主要面向传输过程,比如 TCP 协议是为了保证可靠的传输,而 UDP 协议则是一种无连接的广播,它们提供了不同的传输方式;
- 网络层主要解决如何定位目标以及如何寻找最优路径的问题,比如 IP 等等;
- 数据链路层的作用是将数据在一个子网(广播域)内有效传输,MAC 地址、交换机 都是属于该层的;
- 物理层是要解决二进制数据到信号之间的互转问题,集线器、双绞线、同轴电缆等都是属于该层的设备;
ES6+ Generator
上一篇