udp使用(udp协议为什么协议)

健康新闻 2023-05-01 10:09健康生活www.xingbingw.cn

  udp使用(udp协议为什么协议),新营销网红网本栏目通过数据整理汇集了udp使用(udp协议为什么协议)相关信息,下面一起看看。

  每个程序员都应该知道TCP和UDP协议。UDP是一种用户数据消息协议,属于OSI模型中的传输层。它是一种无连接协议,也就是说,前一条消息和后一条消息在协议层没有连接,它提供的是简单而不可靠的传输服务。

  也就是说UDP不靠谱。如果想让数据可靠,需要在业务层做纠错和检错。例如TFTP。

  那么有的同学可能会问,既然不靠谱,为什么不直接用IP协议呢?为什么要大费周章地加一个协议UDP呢?

  其实很重要的一个原因就是IP协议中没有端口的概念。它只规定了两台主机之间的通信,没有解决不同主机上的应用程序之间的通信。如果一台主机上的多个应用需要通信,直接使用IP协议是无法区分数据属于哪个应用的。

  可以理解为端口是一个通信通道。,UDP在IP协议的基础上增加了一些功能,所以我们一下

   UDP无连接,无连接。所以收发的费用会少很多。

   UDP不保证数据的可靠传输,它只是尽可能做到最好。不需要维护复杂的连接关系。

   UDP是面向消息的。它被添加到应用层的数据报头中,并直接插入IP层。

   UDP没有拥塞控制

   UDP支持多播。

   UDP报头较小,表示传输了更多的数据内容。

  下图显示了UDP与上层和下层的关系。

   UDP的报头是什么?先看下图

  如图所示,UDP的报头由四部分组成

  每个16位的源端口和目的端口用来标记发送和接收应用程序进程。因为UDP不需要答案,所以源端口是可选的。如果没有使用源端口,它将被设置为零。当传输层从IP层接收到UDP数据报时,根据报头中的目的端口,它通过相应的端口传递UDP数据报,并将其传递给最终的目的应用程序。

  如果接收方UDP发现收到的消息中的目的端口号不正确,它将丢弃修改后的消息,Internet控制协议ICMP将向发送方发送“端口不可达”错误消息。ICMP Traceroute的应用是指发送的UDP用户数据报故意使用非法的UDP端口,结果ICMP返回“端口不可达”的错误信息,从而达到测试的目的。

  在目的地端口的后面是具有固定长度(以字节为单位)的消息长度字段,其用于指定包括数据部分的UDP数据报的长度。最小长度为8个字节。

  报头剩余的16位用来对报头和数据一起进行校验和,这是可选的,这个功能一般用在实际应用中。

   UDP和TCP校验和都包括它们的报头和数据,而IP报头校验和只包括IP报头。

  如何使用UDP套接字当我们进入传输层时,我们也可以调用操作系统中的API来构建套接字。Socket是操作系统提供的一个编程接口,用来表示一些网络通信。应用程序通过socket调用系统内核中的网络协议模块,这些内核模块将负责具体网络协议的实现。

  这样就可以让内核接收网络协议的细节,我们只需要提供要传输的内容。内核会帮助我们控制格式,进一步封装到底层。所以在实际应用中,我们不需要确切知道一个UDP包是如何形成的,只需要提供相关的信息(比如IP地址,比如端口号,比如要传输的信息)。在传输之前,操作系统内核会根据我们提供的相关信息,形成一个合格的UDP包(以及下层包和帧)。看下图。

   UDP使用场景需要的资源少,而且是在网络条件好的内网,或者是对丢包不敏感的应用。比如DHCP协议就是基于UDP的。一般获取IP地址都是内网请求,一次获取不到IP也没关系。比如基于UDP的RTP和TFTP,丢一帧数据问题不大。比如一些设备发现协议等等。

  不需要一对一的沟通和连接,而是一个可以广播的应用。DHCP是一种广播形式。VXLAN也需要多播,并且基于UDP协议。

  需要处理速度快,延时低,能容忍少量丢包,但要求即使网络拥塞也不退缩,勇往直前。

   QUIC是Google提出的基于UDP的改进通信协议。其目的是减少网络通信的延迟,提供更好的用户交互体验。

  结论UDP没有TCP复杂,但却是网络系统中不可或缺的协议。需要熟练掌握协议。

  用户数据报协议

  更多udp使用(udp协议为什么协议)相关信息请关注本文章,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有