TCP/IP卷一:56---UDP之(UDP-Lite协议)

一、UDP-Lite概述

  • 有些应用程序可以容忍在发送和接收的数据里引人的比特差错。通常,为了避免建立连接的开销或者为了使用广播或组播地址,这类应用程序会选择使用UDP
  • 但是UDP使用的校验和要么覆盖整个负载,要么就一点也没有(比如,发送方不计算校验和。一个称为UDP-Lite或UDPLite的协议通过修改传统的UDP协议,提供了部分校验和来 决这个问题
  • UDP校验和参阅文章:https://blog.csdn.net/qq_41453285/article/details/103984794

二、UDP-Lite原理

  • 这些校验和只覆盖每个UDP数据报里的一部分负载
  • UDP-Lite有它自己的IPv4协议和IPv6下一个头部字段值(136),因此它实际上算是一种独立的传输协议。UDPLite用一个校验和覆盖范围字段取代了(冗余的)长度字段来修改UDP头部(见下图)

图示

  • 校验和覆盖范围字段是被校验和覆盖的字节数(从UDP-Lite头部的第1个字节开始)。除了特殊的值0以外,最小值是8,因为UDP-Lite头部自身总是要求被校验和覆盖的。值0表示整个负载都被校验和覆盖,这就和传统UDP一样了
  • 这里存在一个关于IPv6超长数据报的问题,因为用于存放校验和覆盖范围字段的空间有限。对于这类数据报,被覆盖数最多可以是64kB或整个数据报(即校验和覆盖范围字段的值为0)

三、套接字选项

  • 使用一些特殊的套接字API选项为应用程序指明使用UDP-Lite(IPPROTO_UDPLITE)和要求的校验和覆盖范围的数量(使用setsockopt的SOL_UDPLITE、 UDPLITE_SEND_CSCOV和UDPLITE RECV_CSCOV选项)
  • setsockopt系统调用参阅文章:https://blog.csdn.net/qq_41453285/article/details/89532613
发布了1318 篇原创文章 · 获赞 846 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/103991315
今日推荐