网络通信应用层协议-序列化与反序列化

目录

1、序列化与反序列化概念

2、正、反序列化的目的

3、添加报头的目的 

4、实现正、反序列化思路

5、代码实现

6、添加报头、去除报头 

结语 


前言:

        在进行网络通信时,应用层协议是需要程序员手动定制的,序列化与反序列化是对协议进行字符串形式的转换。应用层协议表示发送端和接收端共同遵守的规则,依照这个规则,通信的双方才能够分析出传输数据的真正含义,只有理解了数据的真正含义,才能对数据进行处理,因此应用层协议在网络通信中非常重要。传输层协议为TPC\UDP,网络层协议为ipv4\ipv6,这些协议都是设置好的,而应用层协议需要程序员手动实现,传输应用层协议需要进行序列化与反序列化。 

1、序列化与反序列化概念

         序列化与反序列化是发送端和接收端对网络中传输数据的处理,是一种对传输数据的解释行为,通信双方制定好协议后,发送端需要将协议化的数据通过序列化传给接收端,而接收端拿到数据后需要对其进行反序列化以拿到协议的对应内容,具体示意图如下:

        如上图所示,序列化和反序列化实际上就是结构体->字符串,字符串->结构体的过程。

2、正、反序列化的目的

        反序列化的目的好理解,因为数据在传输前进行了正序列化,此时数据已经被“修饰”了,那么接收端必须采用同样的方式去掉“修饰”才能拿到有效数据,把这种行为叫做反序列化。那么为什么在传输数据前要将协议进行序列化呢?

        答:因为结构体类型在不同平台上的大小、存放形式不一样,因此不能直接将结构体传输给对方,并且结构体难以用字节流的形式在网络上传输。所以要进行序列化将其转换成字符串的形式传递。

3、添加报头的目的 

        上图中对协议内容进行添加报头,该行为的目的是为了接收方可以更好的解析序列化内容,还能够给在报头中进行数据加密,提供安全性。最主要的是若传输过程中出现数据丢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安权_code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值