简单理解TCP/IP协议栈

 

协议定义的是一系列的通信标准, 通信双方需要共同按照这一标准进行正常的数据收发;信的双方需要共同按照这一个标准进行正常的数据收发;(两人,说共同的语言,不然不能交流,一个听不懂外语的和说外语的交流)

协议栈是协议的具体实现形式, 通俗的理解就是用代码实现的函数库, 以便于开发人员调用。

协议栈是通常是一个层级结构。协议栈是网络中各层协议的总和,其形象的反映了 一个网络中文件传输过程;由上层协议到底层协议,再由底层协议到上层协议。

 

某个协议的实现代码称为协议栈

BLE协议栈主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中。

 

 

 

 

 

 

以太网五层模型

 

“以太网首部”包含数据帧的一些说明项,比如发送者、接收者、数据类型等等;“数据”部分则是数据的具体内容;“以太网尾部”则是 CRC 校验码。“以太网首部”的长度固定为 14 字节。“数据”的长度,最短为 46 字节,最长为 1500 字节。“以太网尾部”的长度固定位 4 字节。因此,整个“帧”最短为 64 字节,最长为 1518 字节。如果数据很长,就必须分割成多个帧进行发送

 

 

TCP 协议可以为各种各样的程序传递数据,比如发 Email 用的SMTP(简单邮件管理)协议、网上冲浪用到的 HTTP(超文本传输)协议、下载资料用到的 FTP(文件传送)协议等等,这些应用程序协议就构成了“应用层”
 

 

应用这种软件 TCP/IP 协议栈方式实现的比较成熟方案有 ENC28J60,CS8900A,DM9000,当然也有像 STM32F107 这类(内部自带 MAC)+PHY 等方案。
由于软件协议栈操作需要主控 MCU 不断地响应中断,这在很大程度上占用了MCU 的运算/时钟资源。经过测试发现,单线程操作的情况下,MCU 的运行速度和数据的处理速度仅能满足需要,但随着线程增多,MCU 的工作效率直线下降,会严重影响通信质量。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章