计算机科学简称CS,computer science,既然是一门科学,那它就是有例可循,非常严谨的。写过代码的人更知道,有时候一个分号,一个逗号,甚至一个空格都会影响程序的正常运行。
可是OSI七层模型却过时了,错误了,失效了。当我刚听到别人跟我说这句话的时候,我简直不能理解,计算机科学是我们自己从下到上慢慢建立起来的科学,怎么可能会出现错误呢?
OSI和TCP/IP都是对网络通信各个协议以功能划分出来的抽象模型。
OSI是国际标准化组织制定的网络模型,来克服使用众多私有网络模型所带来的困难和低效性,分为一下七层:
-应用层
-表示层
-会话层
-传输层
-网络层
-链路层
-物理层
众所周知,TCP/IP是现代互联网的基础,所以我在这也不多介绍OSI七层模型,具体七层模型的衰落过程可以看这儿:
OSI七层模型忽悠了多少人?
继续上文,tcp/ip相信大家都听说过,面试的时候估计也不少被问到,我对整个tcp/ip模型的认知一直很模糊,直到最近狂学一阵,算是吃透了。
1.什么是TCP/IP?
TCP/IP是一座人为定义的协议塔,下面一层是上面一层的基础,这些协议覆盖了现在网络的方方面面,让程序间通信成为可能。所有程序间通信都能从这个塔上找到对应的协议。
2.四层结构
-应用层(负责传送各种最终形态的数据)
-传输层(负责传送文本数据)
-网络层(分配地址和传送二进制数据)
-连接层(建立电路连接,是整个网络的物理基础)
下面是我的个人理解,把抽象的模型具象成一个小小的例子:
小明给小白寄一封信,连接层就是马路(以太网等),网络就是寻找始发点和终点(IP),传输层就是运货车(TCP),应用层就是信(HTTP等)
当然现在理解并不是那么深刻,而且现在有很多协议是跨层的
3.这么做的好处是什么?
上层不管下层的是方式,下层不管上层的实现方式,都能完成网络通信的任务。
还是拿上面的例子来说,小明和小白不管信是怎么递过去的,只需要寄到就行:可能不是走的高速,可能是乡下小路,运货车可能不是卡车,可能是保时捷,也可能是捷安特,司机怎么知道的目的地怎么走?可能是GPS定位,可能是有个老司机在旁边指导,亦或是走一会儿就问路。信是怎么写的?可能是中文,也可能是英文,或者是Python。
他们不管别人,只管自己,只要你能完成任务就行了,黑猫白猫,我都不知道你什么猫,我只管吃老鼠~我是猫奴,我不管你吃了啥,吃饱了就行~
这个模型用来解释和约束网络协议,也有利用后来者简单的理解网络的构架,方便后来协议明白自己的定位,也方便协议之间的联合。
4.漏洞
我不是说四层模型的漏洞,而是网络通信的漏洞。
小明给小白寄信的时候,如果快递站是假冒的咋办?这就是大名鼎鼎的中间人攻击。
如果快递站是假冒的,它能对小明和小白造成的伤害简直不可想象,你的所有一切都爆漏在这个假快递站(甚至真快递站)(如果你在淘宝上买了个充气娃娃,想想看,快递员A给你拆开先用了一次。。。)
这时候,各种加密协议出现了:
SSL
网友评论