1、网络分层的优点和必要
我们的工程师为了更好的管理计算机通信,对计算机网络进行了分层设计;那为何要进行分层设计,以及分层设计的好处是什么呢?
- 由于网络涉及的知识领域太多,如果不加以分层,管理和网络研发上将复杂多变;
- 分层之后,每层负责相关的工作,我们的网络工程师不需要关注其他太多东西,能更好的关注自己的领域;比如,你做电路设计、光纤的研发的研发,你就去关注物理层的设计;如果你关注的是:信息如何更好的路由到目的主机,你就去关注路由器器的研发,路由器路由规则的制定;
- 结构上可分割开。各层都可以采用最合适的技术来实现。
- 易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。比如生产一辆车,你负责玻璃的制造,你负责发动机的研发等等;然后组装在一起就能形成一辆车,我生产发动机,不必考虑你的玻璃是怎么实现,这就是把复杂的问题简单化,哪个部位有问题就让负责对应部位的人去处理!
- 能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。
- 职责简单一些,能促进计算机更好的发展;
2、分层模型
-
模型分类
目前主流的有OSI 参考模型---- 7层模型、TCP/IP五层模型(也叫四层模型)。
-
网络协议的定义
什么是计算机协议(网络协议),网络协议是通信计算机双方必须共同遵从的一组约定。
就像我们造句,主谓宾要清楚;比如:“我来自北京”,如果主谓宾不讲顺序,没有规律,然后表达成“北京来自我”,这句话是什么玩意呢?所以在网络中消息从A传到B,两边必须有一个约定,A传输的信息按照什么格式来进行封装,B就得按照相同的方式来解析,不然A用一种格式封装,B用另一种方式进行解析,最后牛头不对马嘴,A、B不明白相互要表达什么意思,导致双方无法正常通信。
事实上,我们个人或者组织也可以制定自己的协议,然后进行通信;比如我们可以制定一套协议,叫信息传输协议A,规定如下图:
电脑A实现了信息传输协议A,电脑B“没实现”信息传输协议A,电脑B读取序号1的消息,不知道是什么意思,就像如果你没学过英文,你不知道每个单词是什么意思一样!
现在为了能让B也能理解A的意思,B就要实现信息传输协议A;现在C也定义并实现了一套信息传输协议C,C要给B发送信息,要想B理解C发送消息的意思,B就必须理解C发送消息的意思,如何理解?实现信息传输协议C;如果再来几个参与方,也定义了几套传输协议,那将会没完没了了。
针对以上情况,有没有解决办法呢?
答案是有,我们知道,现在国际上的主流语言是英语,我们可以采用一套大家都公认的语言(协议)来进行交流,比如西班牙人要跟我们中国人交流,我们都去学习英语,同理阿拉伯人要跟我们交流,也是去学习英语,这样英语就成为了通用的交流语言。
那在我们网络中,又是采用的哪些公有协议呢?比较核心的是TCP/IP协议簇。针对这些公有的协议,我们最好选择一个中间的组织来管理;不错,现实中这个组织就是国际标准化组织ISO;由它来管理定义这些协议,我们所有的软硬件生产厂商都用程序实现了ISO组织规定的协议,如此,所有的电脑都遵循这些协议,我们的信息就能在全世界进行传输,而不会出错,因为我们遵循了同一套协议!
-
OSI七层模型 VS TCP/IP五层模型
OSI七层模型 | TCP/IP五层模型 | 功能 | 协议 |
应用层 |
应用层 | 计算机,终端软件 | HTTP,FTP,TFTP,SMAP,SNMP,DNS |
表示层 | |||
会话层 | |||
传输层 | 传输层 | 定义传输数据的协议端口号,以及流控,一个端口一般对应一个应用 | TCP/UDP |
网络层 | 网络层 | 路由器,进行逻辑地址寻址,实现不同网络之间路径选择 | ICMP,ARP,RARP,IP,RIP等 |
数据链路层 | 数据链路层 | 交换机,mac地址进行选址 | 不做过多讨论 |
物理层 | 物理层 | 将电信号、光波、电磁波进行传输、相互转换、放大等 | 不做过多讨论 |