博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络数据传输需要注意的两个问题
阅读量:5878 次
发布时间:2019-06-19

本文共 970 字,大约阅读时间需要 3 分钟。

作者:朱金灿

来源:

 

网络数据传输需要注意两个问题:一是大小端机器的问题;二是数据校验问题。

 

所谓大小端问题是指数据发送端和数据接收端有可能是不同的cpu存储模式(大端模式或小端模式),比如当大端机器给小端机器发送机器,如果小端机器考虑和发送端的不同就直接处理,那么小端处理的数据将是混乱。如何解决这个问题呢?一种思路是在发送数据时发送端先检查发送端是大端还是小端,然后将存储模式作为发送数据的一部分告诉数据接收端,数据接收端也获取自身的存储模式,如果它和数据发送端机器的存储模式是一样的,那就不用特殊处理,如果不一样,则要先进行大小端数据的转换。

 

第二个问题是数据校验问题。计算机网络体系结构(architecture)划分为以下七层:

物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人。

数据链路层: 决定访问网络介质的方式在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人

网络层: 使用权数据路由经过大型网络相当于邮局中的排序工人

传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员

会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书

表示层: 协商数据交换格式相当公司中简报老板、替老板写信的助理

应用层: 用户的应用程序和网络之间的接口老板

 

那么问题来了,在应用层中如何保证传输数据的准确性和完整性呢?比如要传输一个大文件,往往要分多次传输,最后肯定要保证接收端收到文件的完整性,又比如网银转账,需要保证转账金额在服务端和客户端的一致。因为应用层不能保证硬件,也不能保证网络服务,比如不能保证硬件是否做了手脚,也不能保证数据被中途截获并做了篡改。要解决问题就需要在要传输的数据加入一个校验码,这个校验码是用于保证数据接收的准确性的。它是如何保证的呢?就是数据发送端和数据接收端产生的校验码的方式只有双方才知晓,比如方式可以是要传输的数据再加一段常量字符串产生的一个md5码,数据发送端产生这个md5码,客户端收到数据后再产生这个md5码,只有这两个md5码一致才表示接收到的数据是完整准确的。

 

参考文献:

 

1.

转载于:https://www.cnblogs.com/lanzhi/p/6469790.html

你可能感兴趣的文章
数学 SCU 4436 Easy Math
查看>>
Django form组件
查看>>
1006 等差数列
查看>>
oracle删除表数据的两种的方式
查看>>
Eval函数知识总结
查看>>
30.angularJS第一个实例
查看>>
学习进度条
查看>>
[HNOI2008]Cards
查看>>
hibernate总结
查看>>
js----深拷贝,浅拷贝
查看>>
仿网易漂亮的TAB选项卡(标签)
查看>>
[转] pytorch指定GPU
查看>>
第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法
查看>>
网络环境场景以及模拟工具netem
查看>>
图片预览
查看>>
js用定时器实现进度条
查看>>
memcache cas 乐观锁
查看>>
Java数据结构漫谈-Stack
查看>>
推荐《人月神话》32周年中文纪念版
查看>>
【教程】如何定制自己的信息源
查看>>