• 5-2传输层-UDP协议


    一.UDP数据报

    1.UDP实现了传输协议能够做的最少工作,在IP的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测

    2.UDP优点
    (1)UDP无须建立连接:不会有建立连接的时延
    (2)无连接状态:UDP不维护连接状态,应用服务器使用UDP时,一般都能支持更多的活动客户机
    (3)分组首部开销小
    (4)UDP无拥塞控制,适合很多实时应用
    (5)UDP首部开销小(8B),而TCP为20B
    (6)IP数据报只能找到目的主机而无法找到目的进程,UDP提供端口功能及复用和分用功能,可以将数据报投递给对应的进程。因此,UDP数据报比IP数据报多提供了端口功能

    3.特点
    (1)UDP常用于一次性传输较少数据的网络应用,如DNS、SNMP等
    (2)UDP提供尽最大努力的交付,即不保证可靠交付:所有维护传输可靠性的工作需要用户在应用层来完成
    (3)UDP是面向报文的:报文是UDP数据报处理的最小单位

    在这里插入图片描述

    4.UDP的首部格式
    (1)源端口:源端口号。在需要对方回信时选用(可有可无),不需要时可用全0
    (2)目的端口:这在终点交付报文时必须使用到。UDP协议实现分用所依据的头部字段是目的端口
    (3)长度:UDP数据报的长度(包括首部8B和数据)(不含伪首部),其最小值是8(仅有首部)
    (4)校验和
    ①检测UDP数据报在传输中是否有错,有错就丢弃。
    ②该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0

    在这里插入图片描述

    5.收到数据报
    (1)根据首部中的目的端口,把UDP数据报通过相应的端口上交给应用进程
    (2)如果接收方UDP发现收到的报文中的目的端口号不正确,丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方

    二.UDP校验

    伪首部只有在计算检验和时才出现,不向下传送也不向上递交。其中的0表示固定字段,17表示协议字段。通过伪首部,不仅可以检查源端口号、目的端口号和UDP用户数据报的数据部分,还可以检查IP数据报的源IP地址和目的地址。

    在这里插入图片描述

    伪首部包括源IP地址和目的IP地址,因此伪首部包括IP分组报头的一部分

    在这里插入图片描述
    【在发送端】
    1.填上伪首部
    2.全0填充检验和字段
    在这里插入图片描述
    3.全0填充数据部分(使之成为4B的整数倍)

    在这里插入图片描述
    4.伪首部+首部+数据部分采用二进制反码求和(此时首部中校验和字段为全0)
    因此:UDP校验和对伪首部、UDP报文头以及应用层数据进行校验

    5.把和求反码填入检验和字段(即二进制反码运算求和再取反
    如果校验和的计算结果恰好为0,那么将校验和字段置为全1
    在这里插入图片描述
    6.去掉伪首部,发送

    【在接收端】
    1.填上伪首部
    2.伪首部+首部+数据部分采用二进制反码求和(此时首部中的校验和字段为刚刚计算出的值,并非全0)
    3.结果全为1则无差错,如果UDP校验和校验出UDP数据报是错误的,那么可以丢弃,也可以交付给上层(应用层),但是需要附上错误报告

    三.优缺点

    1.简单、处理速度快
    2.检错能力并不强

    四.应用

    UDP的特点是开销小,时间性能好且易于实现。

    1.在客户/服务器模式中,它们之间的请求都很短,使用UDP不仅编码简单,而且只需要很少的消息
    2.远程调用使用UDP的理由和客户/服务器模式的一样
    3.对于实时多媒体应用,需要保证数据及时传送,而比例不大的错误是可以容忍的,所以使用UDP也是合适的,而且使用UDP协议可以实现多播,给多个客户端服务

  • 相关阅读:
    如何用Python绘制深小卫推文中的病例图
    软件测试---产品需求文档测试
    Math对象:JavaScript中的数学工具
    AI智慧安防智能监控平台如何做到健身房智能视频监控?
    如何挑选无氧铜网线?
    Windows安装CMake详细教程(附学习资料)
    线程池简单介绍
    Unity中的动画系统
    Prometheus 四种metric类型
    微信小程序开源云开发的博客【点赞、收藏、评论、海报、签到、积分、后台管理等】
  • 原文地址:https://blog.csdn.net/weixin_45825865/article/details/126456543