• 传输层 用户数据报协议(UDP)


    UDP协议的特点


    用户数据报协议(UDP)只在IP的数据报服务之上增加了很少一点功能,就是复用和分用的功能以及差错检测的功能,这里所说的复用和分用,就是使用端口标识不同的应用层协议。

    • UDP协议将应用程序要传的内容原封不动的封装之后发走,不加编号和分段
    • UDP的主要特点是: UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。(计算机域名解析用的就是UDP协议,如果发的数据包失败了,解析没有成功就再发一遍,尝试多次,直到失败或者成功,虽然udp是不可靠的,但是它会尝试多次
    • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数),通信的两端不用保持连接,因此节省系统资源。
    • UDP是面向报文的,发送方的UDP对应用程序交下来的报文,添加首部后就向下交付给网络层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。(应用程序给我是什么样的就是什么样的,将整个报文发走)
    • UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。
    • UDP支持一对一、一对多、多对一和多对多的交互通信。 UDP的首部开销小,只有8字节,比TCP的20字节的首部要短。

    在udp发送的过程中发送失败在发送一遍是由应用程序来决定

     

    UDP面向应用层报文


    不同的应用都使用udp协议,通过加上不同的端口来区分不同的应用。 

     可以看到上面应用程序要发的内容就是我要传输的内容,不需要分段,加上upd首部和网络层首部就变成了数据包。

     

    UDP的首部格式


    (1)源端口。源端口号。在需要对方回信时选用。不需要时可用全0。

    (2)目的端口。目的端口号。在终点交付报文时必须要使用到。

    (3)长度。UDP用户数据报的长度(udp首部+udp数据包数据部分),其最小值是8(仅有首部)。

    (4)检验和。检测UDP用户数据报在传输中是否有错。有错就丢弃。

     

     

    UDP校验和计算


  • 相关阅读:
    Linux之操作文件命令
    org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
    Save POJO to MongoDB
    游戏安全组件运行时发生异常1-0-0
    关于 registerForActivityResult()的使用方法,不能说详细,只能说略懂得例子
    pgpool-II 4.3 中文手册 - 入门教程
    【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析
    Linux下安装开源杀毒软件ClamAV对服务器进行查杀
    数据仓库项目从来不是技术项目
    Pycharm/Dataspell中使用jupyter导入ros humble包
  • 原文地址:https://blog.csdn.net/qq_34556414/article/details/124824949