udp学习笔记

udp协议学习笔记

理论

udp相比ip层多做了什么?

  • 复用和分用

传输层提供的是端到端的传输协议, 属于进程到进程的通信. 复用则是指应用层所有的进程都可以通过传输层送到IP层. 分用则是指从传输层收到IP数据报以后, 要正确地交付给对应的进程.

  • 差错检测功能

对udp首部和数据部分进行校验, 处理数据丢失, 篡改的情况, 检错能力不强, 但是高效, 处理速度快.

如何理解udp的特点

  • 无连接

发送方发送数据前是不用建立连接的, 减小了放松的时延. 当然也没有连接需要释放.发送方直接发送, 接受方也不用确认. 所以说, 发送方是不知道对方收没收到.

  • 进最大努力交付

不保证可靠交付, 你收没收到和我没关系, 数据错了也不要怪我.

  • 面向报文

传输层收到应用层的报文以后, 不合并也不拆分, 加上udp首部以后直接交给IP层了. 所以应用层需要选择合适的报文大小, 如果报文大了, udp是不会处理的, 分片的任务要交给IP层来做, 这样也会降低IP层的效率

udp格式学习

使用udp传输过程中, 是如何保证数据不被篡改的

udp里面有一个校验和字段, 用来做差错检测的. 如果别人问你传输过程如何保证消息可靠, 这是一个思考的角度

算法流程

-添加源IP和目的IP, 构成伪首部. 伪首部只是用来计算, 是虚拟出来的,真实不存在.

计算校验和

  • 初始检验和置为0

  • 把所有位化为16位的字

  • 所有16位的字相加, 高于16位的部分加到最低位上

  • 得到的结果取反就是校验和

校验

  • 把所有位化为16位的字
  • 所有16位的字相加, 高于16位的部分加到最低位上
  • 如果结果全是1, 则没有差错出现, 否则出现差错.

java实战与抓包分析

posted @ 2021-05-30 15:49  FizzPu  阅读(91)  评论(0编辑  收藏  举报