JavaEE--UDP协议

1.UDP协议的特点

• 无连接:在计算机中,连接可以认为是要建立连接的双方,各自保存对方的信息,无连接就是通信双方不需要保存对方的信息

• 不可靠传输:传输数据时,可能出现丢包等其他情况,UDP不关心对方是否收到,只负责发送(效率比TCP快) (UDP的不可靠传输不是由其无连接导致的)

• 面向数据报:UDP数据报是UDP传输的基本单位,进行读写操作时,一次读写只能读写一个完整的UDP数据报

• 全双工:一条链路,能够进行双向通信

2.UDP报文格式

UDP长度:长度为2字节, 表示范围是0~65536,一个UDP数据报最长就是64KB(65536)

UDP校验和:数据在网络传输过程中,可能会出错,比特翻转就是一种典型的情况(电信号,光信号收到外界环境的干扰,二进制数据中的0传输时变为1,1传输时变为0),UDP校验和能够对传输的数据进行校验检查是否出错(校验和:数据引入冗余信息,通过冗余信息来验证原有的数据)

校验的过程:

1) 主机A把数据内容进行计算得到校验和

2) 主机A把数据内容和校验和一起发送给主机B

3) 主机B把按照与主机A相同的算法,针对数据内容再计算校验和并与主机A发送过来的校验和进行比较,如果不一致,就说明传输出了问题

  

在UDP中校验和使用CRC(循环冗余校验)的方式来完成,CRC是一个简单粗暴的计算校验和的方式,大致过程是设定一个2个字节的变量,把数据的每个字节都取出来,往这个变量上进行累加,如果结果溢出超过2个字节,溢出部分直接舍弃

除了CRC之外,还有一种常用的方法MD5,MD5有以下三个特点

• 定长:无论输入的内容是多长,得到的结果一定是固定长度

• 分散:输入的内容,即使改变一点点,最终结果差异都会很大

• 不可逆:通过原数据计算MD5,成本很低,而MD5还原成原数据,成本非常高,仅仅理论上可行

3.UDP的用途

应用于对于性能要求比较高,但是对于可靠性要求不高的场景,例如分布式系统中多个服务器之间的相互通信(多个机器在同一个机房里,网络结构简单)

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值