• 常见网络协议


    TCP/IP协议

    TCP/IP是一个协议族,包含众多的协议。例如HTTP、MQTT、FTP等都是其家族中的协议。

    HTTP协议

    1)同步通信
    2)单向通信,由客户端向服务端发送数据或请求,无法被动接受服务端的数据。
    HTTP协议是Hyper Text Transaction Protocol(超文本传输协议)的缩写,HTTP的应用最为广泛。HTTP协议工作于<客户端-服务端>架构之上,浏览器作为HTTP客户端通过URL向HTTP服务器即WEB服务器发送所有请求。

    FTP协议

    FTP(File Transfer Protocol)是文件传输协议的简称。FTP是工作在应用层的网络协议。FTP使得主机间可以共享文件,用于在两台设备之间传输的客户端程序,客户端连接到FTP服务端程序,客户端发送指令给FTP服务端程序,服务端执行对应指令。

    网络协议的分成模型

    TCP/IP协议是一个庞大的协议家族,它包括ARP、IP、ICMP、UDP、TCP、DNS、DHCP、HTTP、FTP、MQTT等待。按照功能这些协议可以划分到不同的层次。
    请添加图片描述
    物理层(PHY)规定了传输信号所需要的物理电平、介质特征;
    链路层(MAC)规定了数据帧能被网卡接受的条件,发送方在即将发送的数据帧中加入接受方网卡的MAC地址,当接收方的网卡监听到属于自己的MAC地址后,才会去接受并处理数据。
    每个网络设备都应该有自己的网络地址,网络层规定了主机的网络地址该如何定义,以及如何在网络地址和MAC地址之间进行映射,即ARP协议。网络层实现了数据包在主机之间的传递,而一台主机内部可能运行着多个网络程序,传输层可以区别数据包是属于哪一个应用程序的。 数据包在传输过程中会出现丢包、乱序和重复的现象,网络层并没有提供对这些错误的机制,而传输层可以解决这些问题。

    协议层报文间的封装与拆封

    需要发送的应用数据 调用应用层首部 下发给传输层,传输层的TCP协议加上TCP协议首部下发给网络层,网络层加IP协议首部发送给链路层,链路层将数据打乱重新排列,加入以太网首部和校验数据。
    请添加图片描述

    总结

    在学习这类软件协议的过程中要转变思路,软件协议并不类似与我们常见的通信协议(IIC、SPI等)。虽然都是协议,但是却有所不同。软件协议大多是数据的整理和校验,然后在不同的层加入对应层的数据包,之后再由最下层的硬件发送。这其中必须经历AD\DA的转化,但是嵌入式中用的这类通信协议是由引脚通过电平的反转来实现协议。所以总的来说还是由区别,需要仔细对比。

    参考

    《[野火]LwIP应用开发实战指南—基于野火 STM32 全系列(M4-M7)开发板》

  • 相关阅读:
    迈向数字化发展新阶段,某商业银行数据存储创新方案及实践经验
    09 【Attributes继承 provide与inject】
    我发现 Linux 文档写错了
    RML2016调制识别
    C语言 do while循环练习 上
    适合linux的软件
    数据湖:流计算处理框架Flink概述
    图像降噪相关论文-从传统方法到深度学习
    Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
    es常用命令
  • 原文地址:https://blog.csdn.net/qq_43460106/article/details/127546095