如何实现数据在网络中的通讯
Kagula
2011/9/7
介绍
数据在网络中通讯会面临两个问题[1]数据的完整性[2]数据的安全性
数据完整性,指的是发送出去是什么样(长度和比特)的数据,接收到的就是什么样的数据,即数据不会在传输途中失真。
数据安全性,指的是数据内容不会被第三方(人)理解(可读)。
针对这两个问题本文提出了一个解决思路,重点放在数据的完整性这个问题。
这里假设网络通讯是在TCP/IP协议之上进行的。
阅读前提:[1]TCP上面的数据通讯编程经验[2]了解基本加解密方面的知识
正文
对在线服务器上来说万分之一的数据通讯出错也可能造成灾难性的后果,所以我们先要保证数据的完整性。
Q1:如何保证数据的完整性
A1:如下图所示,把要传送的数据分成一个个等长的数据包(根据TCP协议的特点,数据包的长度被设为1024字节)再传送。
由于每个数据包内含有数据包特征码,所以可以有效检测数据的完整性。数据包特征码一般采用CRC64或MD5方式生成。若接收到的数据包不完整可以要求发送方重新传送。
图一 数据发送流程图
具体实现:
可以把1.1做为一个模块,1.2和1.3封装成数据通讯模块,1.1以异步方式调用数据通讯模块,完成数据发送任务后数据通讯模块以代理(或消息)的方式通知应