首页 > 编程知识 正文

udp是一种什么协议(UDP协议的详细解析)

时间:2023-05-03 21:44:36 阅读:122764 作者:4026

UDP数据报http://www.Sina.com/(http://www.Sina.com/)。

UDP是3358www.Sina.com/的协议,功能是向IP的数据报服务添加了最基本的服务。 是一、UDP的概述User Datagram Protocol,用户数据报协议和3358www.Sina.com/

UDP提供传输层服务,TCP中没有的复用:

UDP 分用,时间上为差错检测。 在空间上,TCP在终端系统中需要为不可靠状态,需要一定的开销。 此连接的读取包括发送和接收缓存、拥塞控制参数、序列号和确认号等参数。 由于UCP不会保持连接状态或跟踪这些参数,所以开销很小。 空间和时间都有优势。

举个例子:

如果DNS在TCP而不是UDP上运行,则DNS的速度会慢很多。

HTTP使用TCP而不是UDP是因为优势对于基于文本数据的网页很重要。

如果同一专用APP应用程序服务器支持UDP,则可以支持更多的活动客户端。

包头开销小**,TCP头20字节,UDP头8字节。

无连接根据实时APP应用,请访问不存在建立连接需要的时延

UDP 维护连接所有维护传输可靠性的工作都必须由用户在可靠性上完成。 没有TCP的确认机制、重发机制。 即使由于网络原因没有转发给对方,UDP也不会向APP应用层返回错误消息

UDP来自UDP没有拥塞控制,对从APP应用层传递的消息,在添加报头后直接从农村传递到IP层,不进行合并、不分割,保留这些消息的边界。 传递给IP层的UDP用户数据报在去除报头后,原样传递给上层APP应用程序。 消息是不可分割的,是UDP数据报处理的最小单位。

因此,UDP缺乏灵活性,无法控制读写数据的次数和数量。 例如,要发送100字节的消息,请调用sendto函数一次即可发送100字节。 对方也需要通过recvfrom函数一次接收100字节。 不能使用循环每次获取10字节,获取10次的做法。

这是因为,对于UDP 能容 忍一些数据的丢失,但是不能允许有较大的时延,例如DNS、SNMP等,如果对这些APP应用采用TCP,则在连接的创建、维护、拆卸上需要不少费用。 UDP也经常用于多媒体APP应用,如IP电话、实时视频会议和流媒体。 可靠的数据传输并不重要,TCP拥塞控制导致延迟大,不可接受

提供尽最大努力的交付

UDP数据报分为应用层面向报文,整个UDP数据报作为IP数据报的数据部分封装在IP数据报中。 UDP数据报的结构如图所示。

UDP的开头是8字节,由4个字段组成,每个字段为2字节。

1. 常用一次性传输比较少量数据的网络应用:发送方端口号在需要对方回复时选择,不需要时全部设为0。

2. 二、UDP的首部格式:在终点传递消息时需要目标端口号。

3. 首部:UDP的数据报的长度(包括报头和数据)其最小值为8 )仅报头)

4.http://www.Sina.com/:检测UDP数据报传输中是否存在错误,如有错误则丢弃。

此字段是可选的。 如果源主机不想计算校验和,请直接将此字段全部设置为0。

当传输层从IP层接收到UDP数据报时,其基于报头中的目的地端口,通过相应的端口将UDP数据报传递到APP应用进程。

如果接收方UDP发现接收到的消息中的目的地端口号不正确(不存在与端口号对应的APP应用进程0 ),则丢弃该消息,并从ICMP向对方发送"端口不可到达"的错误消息

计算校验和时,UDP检查必须在UDP数据报之前添加用户数据部分。 伪标头不是UDP的真正标头。 只要计算校验和,就会临时添加到UDP数据报之前,得到临时的UDP数据报。 校验和是基于此临时UDP数据报计算的。 虚拟头既不向下也不向上传递,源端口这样的校验和是目的端口

UDP校验和的计算方法与IP数据报开头校验和的计算方法类似。 它们都使用二进制反转运算求和后进行反转,但IP数据报校验和检查IP数据报和开头,而UDP校验和检查开头和数据部分。

发送方首先

全零放入校验和字段并且添加伪首部,然后把UDP数据报看成是由许多16位的子串连接起来,若UDP数据报的数据部分不是偶数个字节,则要在数据部分末尾增加一个全零字节(此字节不发送),接下来就按照二进制反码计算出这些16位字的和。将此和的二进制反码写入校验和字段。在接收方,把收到得UDP数据报加上伪首部(如果不为偶数个字节,还需要补上全零字节)后,按二进制反码计算出这些16位字的和。当无差错时其结果全为1,。否则就表明有差错出现,接收方应该丢弃这个UDP数据报。

注意:
1.校验时,若UDP数据报部分的长度不是偶数个字节,则需要填入一个全0字节,但是次字节和伪首部一样,是不发送的。
2.如果UDP校验和校验出UDP数据报是错误的,可以丢弃,也可以交付上层,但是要附上错误报告,告诉上层这是错误的数据报。
3.通过伪首部,不仅可以检查源端口号,目的端口号和UDP用户数据报的数据部分,还可以检查IP数据报的源IP地址和目的地址。
这种差错检验的检错能力不强,但是简单,速度快

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。