两分钟了解数据封装和解封

啥是数据封装?
数据封装:数据包在网络中传输时,为了更高效、准确的到达目的地,需要对其进行拆分和打包,比如在所发数据包上附加本地以及目标地址、加纠错字节、以及加密处理等。这些操作就是数据封装。

啥是协议?
协议:就是一种约定,这个约定(规则)是通信双方针对如何处理数据包事先协商好的。

啥是数据解封?
数据解封:是数据封装的逆过程,就是将发送方发过来的信息经过拆解协议包进而获得业务数据的过程。

举个栗子理解下:
    数据的封装和解封过程其实与我们平时邮寄物品类似,数据包本身好比物品,而数据封装就像是填写各种邮寄信息一样,协议就是规定你怎么填写信息的。数据解封就是你核验快递信息、拆快递取出物品的过程呗。

下面来看看所谓的比特流、数据帧、数据包、数据段在封装和解封过程中是怎么运作的?
物理层=》比特流;
数据链路层=》数据帧;
网络层=》数据包;
传输层=》数据段。

一图降十会,话不多说,直接上图:

数据封装过程

在这里插入图片描述


数据解封过程

在这里插入图片描述


OK,这样大家都明白了吧!

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电台协议(Radio Protocol)是指在无线电通信中,用于规定通信双方之间的数据传输格式和通信方式的协议。下面是一个简单的电台协议的数据封装和解的C++源码示例: ```c++ #include <iostream> #include <string> #include <cstring> using namespace std; // 定义电台协议数据结构体 struct RadioProtocol { char header[4]; // 数据头 char data[256]; // 数据内容 char checksum; // 校验和 }; // 根据数据内容计算校验和 char calculateChecksum(const char *data) { int sum = 0; for (int i = 0; i < strlen(data); i++) { sum += (int) data[i]; } return (char) (sum % 256); } // 封装数据为电台协议格式 RadioProtocol packData(const char *data) { RadioProtocol protocol; strcpy(protocol.header, "HEAD"); strcpy(protocol.data, data); protocol.checksum = calculateChecksum(protocol.data); return protocol; } // 解电台协议数据 string unpackData(const RadioProtocol &protocol) { if (strcmp(protocol.header, "HEAD") != 0) { return ""; } if (protocol.checksum != calculateChecksum(protocol.data)) { return ""; } return string(protocol.data); } int main() { // 封装数据 RadioProtocol protocol = packData("Hello, world!"); // 解数据 string data = unpackData(protocol); if (data.empty()) { cout << "Invalid data." << endl; } else { cout << "Data: " << data << endl; } return 0; } ``` 在这个示例中,我们定义了一个`RadioProtocol`结构体来表示电台协议数据,包含了数据头、数据内容和校验和三个字段。`calculateChecksum`函数用于根据数据内容计算校验和,`packData`函数用于将原始数据封装为电台协议格式,`unpackData`函数用于将电台协议数据为原始数据。在`main`函数中,我们演示了如何使用这些函数进行数据封装和解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值