互联网通信模型介绍

主流地将互联网络通信分成两种模型:OSI参考模型TCP/IP模型

OSI参考模型

OSI参考模型是一个概念模型,由国际标准化组织定义的。一共分成七层,这七层从下到上分别是:

1.物理层

物理层负责管理计算机通信设备之间的互通。它涉及到电压、线缆规范、数据传输速率、接口(这里的接口指的是硬件接口比如RJ45)等的定义。数据在这一层中以比特流的形式存在。

2.数据链路层

数据链路层的主要作用是提供对物理层的控制,检测并纠正可能出现的错误,并且进行流量控制。数据在这一层中以数据帧的形式存在。

在数据链路层工作的协议:以太网、Wi-Fi、PPPoE(早前电话拨号上网)等

3.网络层

网络层决定传输包的最佳路由,我们使用的路由器就是工作在这一层。至于如何选择路由,网络层通过路由选择协议来计算路由。数据在这一层中以数据包的形式存在。

4.传输层

传输层的功能就是为会话层提供无差错的传送链路,保证两台设备之间的信息传输。数据在这一层中以数据段的形式存在。

传输层的工作:

  1. 传输层从会话层接受数据,并传递给网络层,如果会话层的数据过大,会将其切成较小的段进行传输。

  2. 传输层负责创建端到端的通信连接,通过这一层,通信双方上的应用程序通过对方的地址信息直接进行对话,而不需要考虑网络层经过了多少个节点。

  3. 传输层既可以为每个会话层建立一个单独的连接,也可以根据连接的使用情况为多个会话层建立一个单独的连接即多路复用。

  4. 传输层更重要的作用是差错校验和重传。包在网络传输可能出现错误或者乱序丢失等情况,传输层必须能检测并更正这些错误。一个数据包在网络中传递的路径可能不一样导致到达的顺序改变。接收方的传输层需要识别出数据包的顺序,并在传递给上层之前将它们恢复成发送时候的顺序。不光需要排序,还需要验证是不是所有的包都被收到,如果出现丢失,则需要重传。

  5. 当发送速度超出网络或者接受者的处理能力的时候,传输层还需要负责执行流量控制。

5.会话层

会话层利用传输层提供的端到端服务,向表示层或者会话用户提供会话服务,说白了就是主机间的通信。会话也处理差错恢复。

如果传输在低层偶尔中断,会话层将努力重新建立连接。

6.表示层

表示层负责将应用层的信息表示成一种格式,让对端设备能识别,例如将图片表示png的形式;另外表示层还负责加密与压缩。

7.应用层

应用层直接面对用户或者应用程序,负责对软件提供接口使得程序使用网络服务,包括文件传输、文件管理、电子邮件等。

TCP/IP模型

真正在互联网使用的是TCP/IP模型,它可以看做是OSI参考模型的一个简化。这里穿插一个历史原因,在OSI参考模型提出来的时候,TCP/IP差不多已经是在市场处于主导地位。TCP/IP模型分为四层,分别是:

1. 网络接口层

将OSI的第一层和第二层进行合并。

2.网络层

网络层是TCP/IP体系中的关键部分,作用和OSI参考模型的网络层极其相似。

在网络层中工作的协议:ARP(用来进行IP地址和MAC地址映射,更精确地说它定义在TCP/IP的网络层)、IP协议、ICMP协议、RIP协议、OSPF协议等

这里对ICMP做个简单的介绍:ICMP用来报告IP数据包传输过程中发生的错误、失败等信息,提供网络诊断。为什么这个协议会存在?IP是尽力传输的网络协议,其传输是不可靠、无连接的,如果传输失败了,就需要有种机制进行报错,ICMP的设计就是基于这个问题。ICMP也不是可靠的,也会再传输过程中丢失。ICMP是基于IP运行的,IP数据包中会包含ICMP的数据段,另外ping和traceroute的实现就是基于ICMP的。

3.传输层

传输层的协议:TCP、UDP、DCCP等

4.应用层

TCP/IP模型中没有单独的会话层和表示层,会话层和表示层的功能便融合在TCP/IP模型的应用层中。

在应用层工作的协议:FTP、HTTP、DNS、TLS、DHCP等。

这里需要注意的是HTTPS,HTTPS称为(HTTP over TLS,HTTP over SSL或HTTP Secure)。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包,在RFC中并未对HTTPS定义一个新的报文格式,也可以说HTTPS并不是一种协议。