柚子快报邀请码778899分享:java-ee UDP!!!

http://yzkb.51969.com/

UDP!!!

一 : 传输层的协议:二 : UDP2.1 UDP长度2.2 UDP校验和2.2.1 : 为什么会出现传输出错的情况??2.2.3: 对数据进行校验的方式CRCmd5

三 : UDP的适用场景

一 : 传输层的协议:

传输层的协议有UDP,TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工

二 : UDP

对于UDP协议来说,应用层数据到达UDP之后,就会给应用层数据报前面拼接上UDP报头 UDP数据报 = UDP报头 + UDP载荷

2.1 UDP长度

UDP 长度描述了整个UDP数据报(报头+载荷),占多少个字节 . 通过UDP长度,就可以知道载荷一共是多少字节. UDP长度占两个字节,能表示的范围是0-65535,也就是最多是64KB, 因此,在使用UDP开发程序,就会有很大的制约,要确保传输的单个数据报,不能超过64KB 但UDP有限制,为什么发明UDP的大佬,不对UDP做出升级呢? 最初UDP诞生于上个世纪70年代,当时设计成2个字节64KB,是比较充裕的. 但升级报头,不是技术上的难题,更多的上政治上的难题. 比如 : 单个主机升级,是没有意义的,需要通信双方同时升级,否则可能会解析错误. 由于UDP是系统内核实现的,假如全世界都是用同一个操作系统,升级的成本相对来说会小一点.但市面上存在各种各样的操作系统,如果某个操作系统升级了,其他系统没有升级,意味着这个升级的系统和其他系统不能兼容了 ,站在普通用户的角度,就是这个升级的系统不好,不能和别的系统UDP通信,可能这个升级的操作系统就会因此失去一些市场份额.

2.2 UDP校验和

数据在网络传输过程中,是可能会"出错"的. 比如:发送方发送的数据是 : 010101 接收方收到的数据是 : 011101

2.2.1 : 为什么会出现传输出错的情况??

因为这些二进制数据,在传输的过程中是通过电信号/光信号/电磁波进行传输的. 就有可能受到外界环境的干扰. 比如:电信号表示 0 , 1 ,低电平表示 0, 高电平表示1 ,此时传输的过程中,遇到一一个变化的磁场,此时就可能把本来的低电平变成高电平/高电平变成低电平

2.2.3: 对数据进行校验的方式

在UDP中,校验和只能做到发现是否有错,而不能纠错. 校验和就是拿着数据/数据的一部分 进行一系列计算,得到结果.如果数据部分发生改变,此时得到的结果就会不一样 A : 发送方 根据发送的内容得到一个校验和. B:接收方

校验和出错/数据内容出错,最终B这边感受到的都是算出来的校验和2 和收到的校验和不一致,B只要发现两个校验和对不上,就会把这个数据丢弃掉

CRC

CRC是一个简单粗暴的计算校验和的方式,循环冗余校验 设定2个字节的变量,把数据的每个字节取出来,往这边变量上累加,如果结果溢出,超过2个字节,溢出部分就会舍弃

md5

md5 的特点: (1) 定长 : 无论输入的内容是多长,得到的结果,一定是固定长度的; (2)分散 : 输入的内容只要改变一点点,最终结果差异都会很大.(比特翻转,往往只是变化了一点点) 因为分散特性,非常适合做字符串 hash 算法 (3)不可逆 : 通过原数据,计算 md5 ,成本很低,但通过 md5 ,还原成原来的数据,成本很高,仅仅理论上可行) 用于加密的领域 使用 md5 的场景,就没想着要解密.

三 : UDP的适用场景

UDP现在最主要的用途,就是应用于性能要求比较高(传输快),但对于可靠性要求不高的场景. 比如 : 分布式系统中,多个服务器之间的网络通信(多个机器在同一个机房里,网络结构简单,带宽充裕,也不太容易出现丢包的情况)

柚子快报邀请码778899分享:java-ee UDP!!!

http://yzkb.51969.com/

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。