因特网的体系结构

OSI参考模型

afd212d4-bf8a-4696-926d-f7722d2bae91

ISO在1977年成立专门的机构,用于研究如何让不同计算机之间互相通信,该机构提出了开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称OSI,是一种用于在未来实现“互联”的标准的开放框架,旨在实现“任何设备只要实现了OSI,就能够和世界各地的其他OSI设备进行通信”。这个标准提出后得到世界各国的支持,并在90年代作为了ISO国际标准。

这里不剖析这7层的具体涵义,只需知道它们间的关系类似于软件工程中的“面向对象设计”,其中的每层都是对更低1层进行“包装”的。当有两个应用层的程序需要互相通讯的时候,数据会层层“解封”成为物理层的电学信号,在传递到另一端后,又层层“封装”成为应用程序数据。终端往往其需要完整的7层(刷微博),而对于核心部分的分组交换机,通常只需要3层(路由器需要3层,2层交换机需要2层)。

OSI是个“战未来”的标准,并没有给出具体的落地场景与落地方案。OSI的提出者自己都不知道未来真正落地“互联”的方案是什么样的,更不会知道今天实现“互联”的是基于TCP/IP协议簇的因特网。而TCP/IP因特网并没有去遵循OSI模型,也就是说OSI虽然作为“互联”的国际标准,但是实际通行于国际的“互联”解决方案没有遵守OSI。OSI是官方国际标准,TCP/IP是事实国际标准。

既然OSI模型和因特网的实际分层是不一样的,那这里为什么还要提OSI呢?因为OSI在对于复杂过程的分层处理方法是值得学习的,很多非OSI模型也参考了这种方法。

 

TCP/IP模型

a3c0fa3f-eec1-4c37-9471-e55a5d006181

TCP/IP模型则与OSI相反,其TCP/IP本身是若干个实体协议,它并没有提出模型,TCP/IP模型是后期参照OSI模型,对TCP/IP协议簇的划分。也就是说它是“先落地后模型”的,它的每一层都有相关的协议或技术实体。这种划分既可帮助学习理解TCP/IP,又可以指导开发者和硬件工程师进行相关的设计。TCP/IP模型其实也没有完全抛弃OSI模型,二者的最大区别是TCP/IP模型不区分“应用层、表示层、会话层”的,只有“应用层”,且有时将“链路层、物理层”合为“网络接口层”,TCP/IP模型是个4-5层模型。

然后就可以通过定义每层来定义整个因特网体系,通常会按这两点来定义每个层。第一点是不同的两个端的同一层之间的通信方法,比如A和B正在通信,从应用层到应用层的视角来看是怎么回事。第二点是每个层次是如何利用更低层的服务“封装”该层的服务,原则上每个层应该仅“封装”相邻的更低层服务,不应该“跨层封装”。但从目前的实际情况来看,有时应用层的服务会跨层直接调用网络层的服务。

下面给出5层TCP/IP模型中,每层的功能和组成:

1) 应用层:常见协议为HTTP/DNS/SMTP。应用层协议的定义是两端的系统进程基于操作系统提供的下一层网络服务进行的通信的规则,通常把应用层协议中的数据单元称为报文;

2) 运输层(传输层):常见协议为TCP/UDP。即为上述应用层提供通用服务的层次;

3) 网络层(网际层):使用IP协议。其工作分为两大部分,一是把运输层的数据单元转化为分组,二是即时的为每个分组都选择一个合适的传输路径(路由);

4) 链路层(数据链路层):其主要工作是为网络层的分组加入控制信息,把分组组装成帧。控制信息的主要作用是供对方在“信息流”中甄别每个帧的开头结尾,以及判断帧的内容是否正确;

5) 物理层:物理层的作用是确保发送方发送0接收方就能接受到0,发送1就能接收到1。具体的物理设备一般不认为其属于物理层;

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部