简述通信协议栈和计算机网络的OSI模型

本文最后更新于:2021年12月16日 下午

简述通信协议栈和计算机网络的OSI模型

  • 前段时间买了套无人机的通信控制模块,某宝上写的是开源,结果到手来了个只开源应用层(配套的应用软件)。我们需要的是网络层开源支持(与无人机直接通信的模块固件源码),只有拿到这部分代码才能把无人机载荷采集到的有用信息有效发挥,比如直接根据传感器信息控制无人机的自主飞行亦或是将载荷信息通过该通信链路传输到地面站,甚至可以是无人机结点间的信息交互,总之这份“价值超过500W源码”是不肯开源的。
  • 被人怼就要吸取教训,今天就来学习总结下什么是通信协议栈,什么是计算机网络的OSI模型
  • 通信协议栈:

    • 简单来说就是一种网络通信协议的堆叠,网络协议就是通信双方约定好的通信规则。
    • 协议栈的应运而生:数据在网络中的传输(寻址、抗干扰、加密、数据分割、压缩等)是极其复杂的。使用单一协议无法保障数据高速准确的传输,单一协议会导致协议冗余、复杂、难以优化,因此通过各层协议各司其职,互相配合使得通信效率更加高效。
    • 通俗的打个比方:老板要下发一个工作通知到张三,(假设该协议栈只有两层:聊天层和纠错层)聊天层采用“通知内容转换协议” 把 “明天不上班” 这条消息转换为二进制的计算机信息:“01”,“01” 这条消息被传输到纠错层后采用 “信息无误就是1协议” 为 “01” 增加标志 “1或0”表示这条信息是否因受到网络传输干扰产生误差。那么张三有效收到“明天不上班”这条通知的二进制计算机信息就是“101”,这就是一个简单协议栈的基本原理。
    • 比较常见的 TCP/IP 协议栈:
      • TCP/IP 协议栈有四层结构:应用层、传输层、网络层、链路层。
        深入浅出 TCP/IP 协议栈 - 一像素 - 博客园 (cnblogs.com)
      • 链路层:将特定意义的数据(“明天上班”)加帧头、加帧尾构成一个数据包(数据帧),以广播的形式通过物理介质发送给接收方。以太网协议规定一组电信号就是一个数据包,一个数据包叫做一帧。帧头包含了目标MAC地址、源MAC地址和类型(大小为46-1500字节),以太网规协议又规定通信双方的网络设备必须安装有独一无二标识的网络适配器(这个标识就是网卡地址、数据包的发送地址和接收地址、也是帧头的MAC地址),帧尾提供校验数据是否损坏的校验序列; 协议数据单元在应用层、表示层和会话层被称做数据(Data),在传输层被称做分段(Segment),在网络层被称做包(Packet),在数据链路层被称做帧(Frame),在物理层被称做比特(Bit)。
      • 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发;
      • 传输层:定义端口,确认主机上应用程序的身份,并将数据包交给对应的应用程序;
      • 应用层:定义数据格式,并按照对应的格式解读数据。
  • 计算机网络的OSI模型

    • 怎么来的OSI模型:说是有一群叫做国际标准化组织的人(ISO),试图为全世界互联的各种计算机制定一套网络标准框架。框架和模型:框架是处理流程,模型是描述问题的工具。OSI(开放式系统互联通信参考模型)就是这个框架下的一种模型。 计算机网络 OSI网络模型 - 知乎 (zhihu.com)
    • 简述七层OSI模型:物理层—>二进制比特流与光电信号的互相转换;数据链路层—>互连的网络设备之间的帧识别与帧传输;网络层—>同一子网的寻址,不同子网的路由转发;传输层—>建立端对端的通信,确保通信的稳定;会话层—>建立和断开通信连接,同步会话等;表示层—>数据的转换(格式,加密和压缩),数据传输的承上启下;应用层—>为用户使用的应用程序提供网络服务,建立数据传输连接。
      (3条消息) 网络通讯基础(一)OSI七层模型和TCP/IP四层(五层)模型_mxxrgxg的博客-CSDN博客
  • 七层OSI 与 四层TCP/IP 模型的对比

    TCP/IP的四层模型与OSI七层模型的有什么不同?