OSI七层膜型与TCP/IP四层膜型

Apr 2, 2017


​  OSI指的是Open System Interconnection,也就是开放系统互连膜型。这个模型的建立目的是为了兼容不同类型的网络,建立统一规范以实现不同网络的链接。七层从下到上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。物理层仅仅提供物理硬件的链接,而链路层会在物理的链接上实现可靠传递,并将物理层和网络层连接起来,链路层可以进行数据的帧封装和查错,有SDLC、HDLC、PPP、STP、帧中继等链路层协议。网络层进行网络地址到物理地址的翻译、网络的选路等,典型代表就是IP协议。传输层是进行流控的一层,TCP协议就是传输层的协议,此外还有SPX等协议。会话层提供点对点之间通信连接的建立、维持和数据交换。表示层将应用数据进行加密解密等格式化操作,应用层就是应用实体了,提供各种服务,比如电子邮件和文件传输。

TCP/IP协议族对OSI膜型做了简化,如下图所示:

图片

TCP/IP协议族各层与OSI的对应关系是这样的:

应用层:包括了OSI膜型的应用层、表示层和会话层,属于这一层的协议有很多,按应用可分类为

远程登录:Telnet、SSH等。负责应用程序的实现细节。

电子邮件:SMTP、POP

网络管理:SNMP

文件传输:FTP

WWW:HTTP、DNS、HTML(HTML是OSI表示层的协议)

传输层:直接对应OSI膜型的传输层,提供端到端的通信,比如TCP和UDP协议。这些协议通过一些诸如分组确认、超时重传等机制来确保可靠传输,因为网络层是不确保服务可靠的。

网络层:直接对应OSI膜型的网络层,作用同样是处理选路等活动。IP、ARP、RARP、ICMP等协议就是属于网络层的。

链路层(网络接口层):对应OSI膜型的链路层和物理层,就是负责处理硬件连接的。

  上面提到这么多不同层的协议,他们之间也是有关系了,高层协议都是建立在低层协议的基础上,下面这个图能说明他们的关系:

图片

  TCP和UDP都使用IP协议作为网络层协议,也就是它们的数据都会在各个端系统之间通过IP层进行传输。不同的是,UDP是不可靠的,不保证数据包能到达目的地。简单文件传送协议TFTP、引导程序协议BOOTP是建立于UDP上的。ICMP可以看作IP协议的附属协议,用于交换错误报文等信息。但有一些应用程序如Ping会直接访问ICMP协议。IGMP是Internet组管理协议,用于处理UDP数据报的多播。地址解析协议ARP和逆地址解析协议RARP是转换IP层地址和硬件地址的。例如ARP协议就是将IP地址转为MAC地址。

  应用程序的数据从上往下逐个通过每一层,每一层在收到数据后都要增加一些自己的信息,这就是封装的过程。以TCP为例,TCP在对用户数据进行封装后生成TCP报文段,IP层再对这个报文段进行封装形成IP数据报,最后通过以太网传输的以太网帧长度在46-1500字节之间。同样的,在收到一个以太网帧后,数据从下往上逐个通过每一层,每一层都提取之前封装的属于自己的报文相关信息,以确定再往上层要传给谁,这个过程叫做分用。下面两个图很好地说明了封装和分用是怎么进行的。

图片

图片