网络模型

1. 什么是网络模型?

  1. 网络模型是为了解决不同的设备之间如何进行通信的问题,而制定出来的规范。
  2. 网络模型的每一层都有其特定的含义和作用,相当于一个接口,而具体的实现是由一系列的协议所组成的,所以研究每一层网络模型如何进行运转通常是研究该层所使用的具体协议。

2. 什么是OSI七层模型和TCP/IP四层模型

  1. 传统网络模型主要分为OSI七层模型和TCP/IP四层模型,其主要实现差别不大,七层模型是更为具体更为详细但也更为繁琐的协议,四层模型则是七层模型的简化。
  2. 在实际应用上来说,七层模型由于太过繁琐仅停留在理论研究上,现代网络架构主要是使用更为简单的四层模型架构实现。也有部分传言是由于商业竞争,导致最终协议实现上以四层模型为主。

3. TCP/IP模型

3.1 概览

TCP/IP网络模型

3.2 说明

  • 如上所示,该图实际上是由五层架构所实现的,通常来说,TCP/IP协议上并不会将硬件层包含进来,但我们介绍的时候仍然会以五层架构的角度来介绍。
  • 研究该架构我们需要从最底层开始,通过研究每一层的作用来让我们理清每一层的具体作用。

3.3 硬件层:实现设备间的通信

  • 该层主要通过电缆或光纤等传输介质,通过传输以高低电位代表的01表示的二进制码,实现两台不同设备间的数据传输。

3.4 数据链路层:实现局域网内的通信

  • 该层主要依靠的硬件设备是网卡,每个网卡从生产的那一刻起便拥有一个48位的唯一mac地址
  • 该层的协议主要是以太网协议;
  • 在同一个局域网内传递数据,发送设备通过广播给同个局域网内的所有其他设备,发送一个携带目标设备的mac地址的数据包到其他所有机器,持有对应mac地址的设备将会接收该数据包
  • 通过这样的方式,来实现同个局域网内的不同设备的通信。

3.5 网络层:实现局域网间的通信/实现互联网内的通信

  • 该层主要依靠的硬件设备是网关,每个网关都会分配多个不同的IP地址,并且处于不同的网段,通过子网掩码来识别网段;
  • 该层的协议主要是ip协议
  • 在不同局域网间的设备需要通信的时候,发送设备需要为数据包携带上目标设备的ip地址
  • 第一步发送的时候,发送设备以广播的方式发送数据包到同个局域网内的网关上,再利用网关进行ip寻址;
  • 网关通过本地的路由控制表,为ip地址选择最合适最接近目标网段的另一个网关进行转发;
  • 当数据包通过层层转发进入同一网段之后,再通过广播的方式传输到目标设备;
  • 通过这样的方式,来实现不同局域网内,同一互联网下的不同设备的通信。

3.6 传输层:实现为不同的进程提供不同的通信

  • 该层主要依靠的是ip地址上的一个标识端口,每个设备的一个ip地址上都有多个端口;
  • 该层的协议主要是tcp协议
  • 通过上面的三层架构已经能实现一个互联网内设备间的通信问题了,接下来解决的是进程间如何通信的问题;
  • 为了避免多个进程对同一批数据进行处理导致的混乱,传输层引入端口的概念,将数据以端口的方式区分成不同的数据,每个进程仅需要关心指定端口的数据即可
  • 通过这样的方式,实现了不同进程间的通信

3.7 应用层:解析传输了什么数据

  • 应用层便是TCP/IP协议与OSI协议的主要区别,TCP/IP协议的应用层对应OSI协议的会话层->表示层->应用层
  • 该层的协议多种多样,典型的协议是http协议
  • 通过上面的四层协议,进程可以接收到数据包了,但是数据包该怎么传输,多少个字节有效,一次性发送完还是多次接收等问题都无法解决
  • 所以需要以http协议等应用层协议进行规范,解决粘包拆包等问题,从接收的数据中解析出实际有用的数据
  • 通过这样的方式,最终获取所需要的数据。

你可能感兴趣的:(网络模型)