精华内容
下载资源
问答
  • UDP:用户数据报协议 是什么

    千次阅读 2018-04-12 22:19:24
    用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口...

    用户数据报协议英语:User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。


    在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。


    UDP首部字段由4个部分组成,其中两个是可选的。各16bit的来源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8byte。首部剩下地16bit是用来对首部和数据部分一起做校验和(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。


    由于缺乏可靠性且属于非连接导向协议,UDP应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体(流技术)、即时多媒体游戏和IP电话(VoIP)一定就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(TCP协议)来代替UDP。


    由于缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。

    典型网络上的众多使用UDP协议的关键应用一定程度上是相似的。这些应用包括域名系统(DNS)、简单网络管理协议(SNMP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音流服务等等。


    UDP的分组结构

    UDP报头
    偏移字节0123
    字节 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
    00来源连接端口目的连接端口
    432报文长度校验和


    UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位)。在IPv4中,“来源连接端口”和“校验和”是可选字段(以粉色背景标出)。在IPv6中,只有来源连接端口是可选字段。


    报文长度
    该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535字节(包括8字节的报头,和65527字节的数据)。实际上通过IPv4协议传输时,由于IPv4的头部信息要占用20字节,因此数据长度不可能超过65507字节(65,535 − 8字节UDP报头 − 20字节IP头部)。
    在IPv6的jumbogram中,是有可能传输超过65535字节的UDP数据包的。依据RFC 2675,如果这种情况发生,报文长度应被填写为0。
    校验和

    校验和字段可以用于发现头部信息和数据中的传输错误。该字段在IPv4中是可选的,在IPv6中则是强制的。如果不使用校验和,该字段应被填充为全0。


    UDP校验和计算


    IPv4伪头部

    当UDP运行在IPv4之上时,为了能够计算校验和,需要在UDP数据包前添加一个“伪头部”。伪头部包括了IPv4头部中的一些信息,但它并不是发送IP数据包时使用的IP数据包的头部,而只是一个用来计算校验和而已。

    0 – 78 – 1516 – 2324 – 31
    0来源地址
    32目的地址
    64全零协议名UDP报文长度
    96来源连接端口目的连接端口
    128报文长度检验和
    160+ 
    数据
     


    IPv6伪头部

    0 – 78 – 1516 – 2324 – 31
    0来源地址
    32
    64
    96
    128目的地址
    160
    192
    224
    256UDP报文长
    288全零下一个指针位置
    320来源连接端口目的连接端口
    352报文长校验和
    384+ 
    数据
     


    转自**百科。

    展开全文
  • 用户数据报协议UDP

    千次阅读 2018-05-04 14:53:51
    用户数据报协议(User Datagram Protocol,缩写为 UDP),又称用户数据报文协议,是一个简单的面向数据报的运输协议。 在 TCP/IP 模型中,UDP 为网络层以上和应用层以下提供了一个简单的接口。UDP 只提供数据的不...

    一、UDP协议概述

    这里写图片描述
    用户数据报协议(User Datagram Protocol,缩写为 UDP),又称用户数据报文协议,是一个简单的面向数据报的运输协议。

    在 TCP/IP 模型中,UDP 为网络层以上和应用层以下提供了一个简单的接口。UDP 只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以 UDP 有时候也被认为是不可靠的数据报协议)。UDP 在 IP 数据报的头部仅仅加入了复用和数据校验(字段)。

    由于缺乏可靠性且属于非连接导向协议,UDP 应用一般允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数 UDP 应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。如果某个应用需要很高的可靠性,那么可以用传输控制协议(TCP 协议)来代替 UDP。

    域名系统(DNS)、简单网络管理协议(SNMP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音流服务等应用采用的就是 UDP 协议。

    二、UDP协议的特点

    1、UDP 是无连接的。即发送数据之前不需要建立连接(发送数据结束时也没有连接需要释放),因此减少了开销和发送数据之前的时延。

    2、UDP 使用尽最大努力交付。因此不保证可靠交付,主机不需要维持复杂的连接状态表。

    3、UDP 是面向报文的。发送方的 UDP 对应用程序交付下来的报文,在添加首部后就向下交付给 IP 层。应用层交给 UDP 多长的报文,UDP 就照样发送多长的报文。接受方的 UDP 对 IP 层交上来的 UDP 数据报,再去除首部后就原封不动的交付给上层的应用进程。因此,UDP 一次交付一个完整的报文。

    4、UDP 没有拥塞控制。因此网络出现的拥塞不会使源主机的发送速率降低。很多实时应用(IP 电话。实时视频等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许有太大的时延。UDP 的特点正好满足这些要求。

    5、UDP 支持一对一、一对多、多对一、多对多的交互通信。

    6、UDP 的头部信息开销很小,只有 8 个字节,比 TCP 的 20 个字节要小很多。

    三、UDP首部格式

    用户数据报有两个字段:数据字段和首部字段。首部字段只有 8 个字节,并由 4 个字段组成,每个字段的长度都是 2 个字节。

    (1)源端口。即源端口号,在对方回应时使用,不需要时可用 0 表示。

    (2)目的端口。即目的端口号,在终点交付报文时使用。

    (3)长度。UDP 数据报的长度,最小值为 8 (只有首部)。

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

    会发现在 UDP 首部之前有一个伪首部,这个伪首部用于计算检验和,在下面会提到。

    四、UDP端口分用

    当运输层从 IP 层接收到 UDP 用户数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,向上交付给最后的终点(应用进程)。下面是 UDP 基于端口分用的示意图。

    如果接收方 UDP 发现收到的报文中的目的端口号不正确(不存在该端口对应的应用进程),就会丢弃该报文,并由网际控制报文协议 ICMP 发送“端口不可达”差错报文给发送方。

    五、UDP检验和

    在 UDP 的首部信息中有 2 个字节的检验和,检验和用于检测 UDP 数据报在传输过程中是否发生错误。

    当 UDP 运行在 IPv4 之上时,为了能够计算校验和,需要在 UDP 数据包前添加一个“伪头部”。伪头部包括了 IPv4 头部中的一些信息,但它并不是发送 IP 数据包时使用的 IP 数据包的头部,而只是一个用来计算校验和而已。因此伪头部既不向下传送也不向上提交。可以在上面的图中查看伪首部各个字段的内容。

    在发送方,首先把全 0 放入检验和字段,再把 UDP 首部及 UDP 用户数据报看成是由多个16 位连接起来的字串。若 UDP 用户数据报的数据部分不是偶数个字节,则填充一个全 0 的字节(此字节不发送)。然后按二进制反码计算 16 位字的和,将此和的二进制反码写入检验和字段后,发送 UDP 用户数据报。

    在接收方,计算所收到的数据报的检验和,将其与检验和字段相比较,如果相同则检验没有出错(但是不保证没有错误),若检验和不相同则说明检验出错,接受方就丢弃这个数据报。

    六、总结

    • UDP 是运输层协议,用于提供不可靠的数据传递。
    • UDP 的主要特点:无连接、尽最大努力交付、面向报文、无拥塞控制、支持一对一……的交互通信、首部开销小。
    • UDP 的首部由源端口、目的端口、长度和检验和组成,每个字段占两个字节。
    • 检验和用于检测 UDP 数据报在传输过程中是否发生错误。
    • 基于 UDP 协议的应用主要有:域名系统(DNS)、简单网络管理协议(SNMP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音流服务等。
    展开全文
  • 用户数据报协议UDP总结

    千次阅读 2017-11-09 12:14:03
    用户数据报协议UDP小结阅读目录: 一、 UDP首部格式 二、 UDP主要特点 三、 UDP校验和计算 四、 UDP编程实现

    用户数据报协议UDP小结


    阅读目录:

    一、 UDP首部格式

    二、 UDP主要特点

    三、 UDP校验和计算

    四、 UDP编程实现


    简介:UDP是User Datagram Protocal的缩写,即用户数据报协议,其只在IP的数据报服务上增加了很少一点的功能,即端口(复用和分用)以及差错检验功能。虽然UDP数据报提供不可靠的交付,但是UDP在减小开销及时延等方面有其特殊优点


    一、UDP首部格式:

    用户数据报UDP有两个字段:数据字段首部字段。首部字段只有8个字节,由四个字段组成,每个字段的长度都是两个字节。各字段意义如下:

    (1)源端口:源端口号,在需要对方回信时选用,不需要时可用全0
    (2)目的端口:目的端口号,这在终点交付报文时必须要用到
    (3)长度: UDP用户数据报的长度,其最小值为8(此时仅有首部)
    (4)检验和:检测UDP用户数据报在传输中是否有错,有错就丢弃

    图1、UDP的首部格式

    图1、UDP的首部格式

    当运输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交最后的终点——应用进程。图2是UDP基于端口分用的示意图。

    这里写图片描述

    图2、UDP基于端口分用

    如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用进程),就丢弃该报文,并由网际控制报文协议ICMP发送“端口不可达”差错报文给发送方。


    二、UDP的主要特点:

    1、UDP 是无连接的,即发送数据之前不需要建立连接,发送数据之后也没有连接可释放,因此减小了开销和发送数据之前的时延。

    2、UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表

    3、UDP是面向报文的,发送方UDP对应用程序交下来的报文,在添加首部后直接向下交付IP层。UDP对应用层交下来的报文(˅),既不合并,也不拆分,而是保留这些报文的边界。也就是说,应用层交付给UDP的报文,UDP就照样发送,即一次发送一个报文。在接收方的UDP(ʌ),对IP层交上来的UDP用户数据报,在去除首部后就原封不动的交付上层的应用进程。也就是说,UDP一次交付一个完整的报文。

    应用程序必须选择合适大小的报文,若报文太长,UDP将其交给IP层后,IP层在传送时可能要进行分片,这回降低IP层的效率,反之,若报文太短,UDP将其交给IP层后,会使IP数据报的首部相对长度太大,这也降低了IP层的效率。

    这里写图片描述

    图3、UDP是面向报文的

    (4)、UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送效率降低,这对某些实时应用是很重要的,很多实时应用(IP电话、视频会议)要求源主机以恒定速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但不允许数据有太大的时延。

    当很多源主机同时都向网络中发送高速率的实时视频流时,网络就可能发生拥塞,导致大家都无法正常接收,因此,不适用拥塞控制的UDP有可能引起网络严重拥塞。

    (5)、UDP支持一对一、一对多、多对一和多对多的交互通信

    (6)、UDP首部开销小,只有8个字节,比TCP的20个字节首部要短。


    三、 UDP校验和计算:

    UDP用户数据报首部中校验和的计算方法有一些特殊,在计算校验和时,临时在UDP用户数据报前增加12个字节的伪首部。

    所谓伪首部,是因为这种为首不并不是UDP用户数据报真正的首部,只是在计算校验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报,检验和就是按照这个临时的UDP用户数据报计算的,伪首部既不向上递交也不向下传送,仅仅为了计算校验和。图4给出了伪首部各字段的内容。

    这里写图片描述

    图4、伪首部字段内容

    UDP的检验和是把首部和数据部分一起都检验

    3.1、计算过程及示例:

    发送方:
    1、 将全零放入检验和字段
    2、 将伪首部以及UDP用户数据报看成由许多16位的字串接起来。
    3、 若UDP用户数据报数据部分不是偶数个字节,则要填入一个全零字节(此字节不发送)
    4、 最后按照二进制反码计算出这些16位字的和,将此和的二进制反码写入校验和字段,发送这样的UDP用户数据报。

    接收方:
    1、 将收到的UDP用户数据报连同伪首部(以及可能的填充全零字节)一起,按照二进制反码求这些16位字的和,并将这个和与检验和相加。
    2、 若其结果为全1,则无差错,接收该UDP用户数据报。
    3、 若结果不全为1,则出现差错,丢弃这个UDP用户数据报。(或递交给应用层,但附加差错警告)

    3.2、简单理解计算过程:
    发送阶段:除校验和之外的其他字段的16位2进制反码校验和为m,由于校验和字段值为0,则 0 + m = m,而~m被存放在校验和字段中
    接收阶段:除校验和之外的其他字段的16位2进制反码校验和,如果正确则仍然为m,而校验和字段,如果正确则为~m,那么m + ~m = 0xffff,计算结果对
    (m为图5中红色框部分,~m为绿色框部分)

    这里写图片描述

    图5、计算校验和的示例

    3.3、UDP校验和说明:

    (1)、UDP检验和覆盖UDP首部和UDP数据。其检验和是可选的,基本计算方法是16 bit字的二进制反码和,
    (2)、UDP数据报的长度可以为奇数字节,但检验和算法是把若干个16
    bit字相加。解决方法是必要时在最后增加填充字节0,这只是为了检验和的计算,可能增加的填充字节不被传送。
    (3)、计算校验和时,在UDP数据报前加12字节的伪首部,伪首部包含IP首部一些字段,目的是让UDP两次检查数据是否已经正确到达目的地。
    (4)、UDP数据报的长度在检验和计算过程中出现两次(伪首部及UDP首部均包含UDP数据报长度)
    (5)、如果检验和的计算结果为0,则存入的值为全1(65535),这在二进制反码计算中是等效的。如果传送的检验和为0,说明发送端没有计算检验和。
    (6)、UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动。
    (7)、UDP检验和(事实上,TCP/IP协议簇中所有的检验和)是简单的16 bit和。它们检测不出交换两个16 bit的差错。


    四、 UDP编程实现:

    待补充

    展开全文
  • UDP用户数据报协议

    千次阅读 2015-09-26 17:00:41
    UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP数据报封装成一份IP数据报的格式如图11-1所示。 说明: (1)UDP不提供可靠性:...

    1、引言

    UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP数据报封装成一份IP数据报的格式如图11-1所示。

    说明:

    (1)UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。

    (2)应用程序必须关心IP数据报的长度。如果它超过网络的MTU,就要对IP数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做(路径MTU与网络MTU的概念可以参考:《TCP/IP详解卷1:协议》第2章 链路层-读书笔记)。

     

    2、UDP首部

    UDP首部的各字段如图11-2所示。

    说明:

    (1)端口号表示发送进程和接收进程。TCP端口号与UDP端口号是相互独立的。如果TCP和UDP同时提供某种知名服务,两个协议通常选择相同的端口号,只是为了方便,而不是协议本身的要求。

    (2)UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节(发送一份0字节的UDP数据报是可以的)。这个UDP长度是有冗余的。

    (3)UDP数据报长度是全长减去IP首部的长度。

     

    3、UDP检验和

    UDP检验和覆盖UDP首部和UDP数据。而IP首部的检验和,只覆盖IP的首部,并不覆盖IP数据报中的任何数据。UDP和TCP在首部中都有覆盖它们首部和数据的检验和。UDP的检验和是可选的,而TCP的检验和是必需的。UDP检验和的基本计算方法IP首部检验和计算方法相似(16 bit字的二进制反码和),但它们之间存在不同的地方:

    (1)UDP数据报的长度可以为奇数字节,但检验和算法是把若干个16 bit字相加。解决方法是必要时在最后增加填充字节0,这只是为了检验和的计算,可能增加的填充字节不被传送。

    (2)UDP数据报和TCP段都包含一个12字节长的伪首部,它是为了计算检验和而设置的。伪首部包含IP首部一些字段,目的是让UDP两次检查数据是否已经正确到达目的地。UDP数据报中的伪首部格式如图11-3所示。

    说明:

    (1)UDP数据报的长度在检验和计算过程中出现两次。

    (2)如果检验和的计算结果为0,则存入的值为全1(65535),这在二进制反码计算中是等效的。如果传送的检验和为0,说明发送端没有计算检验和。

    (3)如果发送端没有计算检验和而接收端检测到检验和有差错,UDP数据报就要被丢弃。不产生任何差错报文(当IP层检测到IP首部检验和有差错时也这样做)。

    (4)UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动。

    (5)尽管UDP检验和是可选的,但是它们应该总是在用。

    (6)UDP检验和(事实上,TCP/IP协议簇中所有的检验和)是简单的16 bit和。它们检测不出交换两个16 bit的差错。

     

    4、IP分片

    物理、网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU。IP把MTU与数据报长度进行比较,如果需要则进行分片。

    说明:

    (1)分片可以发生在原始发送端主机上,也可以发生在中间路由器上。

    (2)把一份IP数据报分片以后,只有到达目的地才进行重新组装。重新组装由目的端的IP层来完成,目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的。

    注意:其他网络协议可能要求在下一站就进行进行重新组装,而不是在最终的目的地。

    (3)已经分片过的数据报有可能会再次进行分片(可能不止一次)。

    IP首部中包含的数据为分片和重新组装提供了足够的信息。

    IP分片过程:

    (1)对于发送端发送的每份IP数据报,标识字段都包含一个唯一值,该值在数据报分片时被复制到每个片中。

    (2)标志字段用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。

    (3)片偏移字段指的是该片偏移原始数据报开始处的位置。

    说明:

    (1)当数据报被分片后,每个片的总长度值要改为该片的长度值。

    (2)标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。相反把数据报丢弃并发送一个ICMP差错报文给起始端。

    (3)当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。当数据报的这些片到达目的端时有可能会失序,但在IP首部中有足够的信息让接收端能正确组装这些数据报片。

    (4)在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其余部分)必须是8字节的整数倍。

    (5)任何运输层首部只出现在第1片数据中。

     

    5、ICMP不可达差错(需要分片)

    发生ICMP不可达差错的另一种情况是(前面讲过端口不一致也会导致ICMP不可达差错),当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。

    如果某个程序需要判断到达目的端的路途中最小MTU是多少(路径MTU发现机制),那么这个差错就可以被该程序使用。报文格式如图11-9所示:

     

    6、最大UDP数据报长度

    理论上,IP数据报的最大长度是65535字节(IP首部16比特总长度字段)。去除20字节的IP首部和8字节的UDP首部,UDP数据报中用户数据的最大长度为65507字节。但实际大多数实现所提供的长度比这个最大值小。

    (1)应用程序可能会受到其程序接口的限制

    socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。这个长度与应用程序可以读写的最大UDP数据报的长度直接相关,现在的大部分系统都默认提供可读写大于8192字节的UDP数据报。

    (2)限制来自于TCP/IP的内核实现。

    可能存在一些实现特性(或差错),使IP数据报长度小于65535字节。

    数据报截断:

    IP能够发送或接收特定长度的数据报并不意味着接收应用程序可以读取该长度的数据。UDP编程接口允许应用程序指定每次返回的最大字节数。如果接收到的数据报长度大于应用程序所能处理的长度,发生的情况取决于编程接口和实现。例如:Berkeley版socket API对数据报进行截断,并丢弃任何多余的数据。

     

    7、ICMP源站抑制差错

    当一个系统(路由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错。

    注意:“可能”产生这个差错。即使一个系统已经没有缓存并丢弃数据报,也不要求它一定要发送源站抑制报文。

     

    8、UDP服务器的设计

    对于服务器来说,它启动后处于休眠状态,等待客户请求的到来。对于UDP来说,当客户数据报到达时,服务器苏醒过来,数据报中可能包含来自客户的某种形式的请求消息。

    (1)客户IP地址及端口号

    IP首部包含源端和目的端IP地址,UDP首部包含了源端和目的端的UDP端口号。当一个应用程序接收到UDP数据报时,操作系统必须告诉它是谁发送了这份消息,即源IP地址和端口号。这个特性允许一个交互UDP服务器对多个客户进行处理。给每个发送请求的客户发回应答。

    (2)目的IP地址

    一些应用程序需要知道数据报是发送给谁的,即目的IP地址。这要求操作系统从接收到的UDP数据报中将目的IP地址交给应用程序。

    (3)UDP输入队列

    大多数UDP服务器是交互服务器。这意味着,单个服务器进程对单个UDP端口上(服务器上的名知端口)的所有客户请求进行处理。

    通常程序所使用的每个UDP端口都与一个有限大小的输入队列相联系。来自不同客户的差不多同时到达的请求将由UDP自动排队。接收到的UDP数据报以其接收顺序交给应用程序

    排队溢出造成内核中的UDP模块丢弃数据报的可能性是存在的。

    1)应用程序并不知道其输入队列何时溢出。只是由UDP对超出数据报进行丢弃处理。

    2)没有发回任何信息告诉客户其数据报被丢弃。

     

    (4)限制本地IP地址

    大多数UDP服务器在创建UDP端点时都使其本地IP地址具有通配符(wildcard)的特点。表明进入的UDP数据报如果其目的地为服务器端口,那么在任何本地接口均可接收到它。

    另一方面当服务器创建端点时,它可以把其中一个主机本地IP地址包括广播地址指定为端点的本地IP地址。只有当目的IP地址与指定的地址相匹配时,进入的UDP数据报才能被送到这个端点。

    (5)限制远端IP地址

    大多数系统都允许UDP端点对远端地址进行限制,即端点将只能接收特定IP地址和端口号的UDP数据报。

    (6)每个端口有多个接收者

    大多数系统在某一时刻只允许一个程序端点与某个本地IP地址及UDP端口号相关联。当目的地为该IP地址及端口号的UDP数据报到达主机时,就复制一份传给该端点。

    然而,在一个支持多播的系统上,多个端点可以使用同一个IP地址和UDP端口号。

    当UDP数据报到达的目的IP地址为广播地址或多播地址,而且在目的IP地址和端口号处有多个端点时,就向每个端点传送一份数据报的复制。如果UDP数据报到达的是一个单播地址,那么只向其中一个端点传送一份数据报的复制。选择哪个端点传送数据取决于各个不同的系统实现

     

    小结:

    (1)UDP是一个简单协议,它向用户进程提供的服务位于IP层之上,包括端口号和可选的检验和。ICMP不可达差错,是新的路径MTU发现功能中的一部分。

    (2)对于UDP和ARP之间的接口,大多数的ARP实现在等待ARP应答时只保留最近传送给目的端的数据报。

    (3)当系统接收IP数据报的速率超过这些数据报被处理的速率时,系统可能发送ICMP源站抑制差错报文。使用UDP时很容易产生这样的ICMP差错。

    展开全文
  • 一、用户数据报协议(UDP)简介 UDP是一种保留消息边界的简单的面向数据报的传输层协议 UDP特性 它不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制 不提供差错纠正:它把应用程序传给IP层的数据发送...
  • 用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能:复用、分用、差错检测。 (1)
  • UDP UDP(User Datagram Protocol) 用户数据报协议 用户数据报协议(UDP)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,IETF RFC 768是...
  • (2) UDP:user datagram protocol,用户数据报协议 传输层实现的是主机内进程之间的通信,通信时传递的数据单位叫做协议数据单元。TCP传输时称为TCP报文,UDP协议传输时称为UDP用户数据报。 UDP:无连接的传输...
  • TCP/IP详解 (11) UDP:用户数据报协议

    千次阅读 2004-10-14 14:39:00
    11 UDP:用户数据报协议11.1 引言UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与...
  • 1.用户数据报协议(User Datagram Protocol)简称UDP协议,它是在IP的数据报服务上增加了端口和简单的差错检测来实现进程到进程之间的数据传输。 2.UDP协议有如下几个特点: a.无连接。UDP是无连接的协议,数据传输...
  • UDP协议功能

    千次阅读 2019-05-24 15:11:53
    为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,设计用户数据报协议UDP。 1、使用UDP协议包括:TFTP、SNMP、NFS、DNS UDP使用底层的互联网协议来...
  • ip数据报格式;ip数据报分片

    万次阅读 多人点赞 2018-05-28 10:33:29
    IPv4数据报格式:上图表示的数据,最高位在左边,记为0位;最低位在右边,记为31位。在网络中传输数据时,先传输0~7位,其次是8~15位,然后传输16~23位,最后传输24~31位。由于TCP/IP协议头部中所有的二进制数在网络...
  • 虽然ICMP、IGMP、TCP、UDP的数据都需要IP协议来封装成数据报,但是从功能上划分,ICMP、IGMP与IP同属于网络层,TCP和UDP属于传输层。 参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》
  • IP数据报格式详解

    万次阅读 多人点赞 2017-07-05 16:22:04
    IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括...
  • IP数据报 格式参数详解

    千次阅读 2018-09-10 10:58:04
    IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括...
  • 五层网络协议,各层功能,各层协议

    万次阅读 多人点赞 2018-05-11 11:21:01
    一、OSI七层模型OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。三、五层...
  • IP数据报的首部

    万次阅读 多人点赞 2016-02-17 21:42:50
    注:IP数据报的格式,能够说明IP协议都具有什么功能。 1. IP数据报首部——固定部分 1.1 版本 占4位,指IP协议的版本。 通信双方使用的IP协议的版本必须一致。 IP协议版本号为4(即IPv4),IP协议版本号为6(即...
  • 以太网数据协议分析

    万次阅读 2015-10-17 17:58:53
    通过本次总结,更直观的学习了数据报和帧格式和入户正确快速利用搜索的其他主机的MAC地址和IP地址(121.42.123.186),将数据填入帧格式中。在实验中遇到不懂的问题及时细读实验要求和实验内容原理或者直接问同学,增强...
  • 2.1.5 数据报与虚电路

    千次阅读 2016-08-19 23:15:19
     当作为通信子网用户的端系统要发送一个报文时,在端系统中实现的高层协议先把报文拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)。中间结点存储分组一段很短的时间...
  • TCP/IP协议栈与数据报封装(一)

    千次阅读 2014-09-08 09:16:00
    一、ISO/OSI参考模型 物理层(Physical Layer):...虽然ICMP、IGMP、TCP、UDP的数据都需要IP协议来封装成数据报,但是从功能上划分,ICMP、IGMP与IP同属于网络层,TCP和UDP属于传输层。
  • ip数据报格式详解

    千次阅读 2018-12-19 11:57:34
    IP数据报 一、 固定部分 (1)版本 占4位 (2)首部长度 占4位 (3)区分服务 占8位  (4)总长度 占16位 (5)标识(identification) 占16位 (6)标志(flag) 占3位 (7)片偏移 占13位 (8)生存时间 占8位 (9)...
  • IP 数据报首部TCP/IP 协议定义了一个在因特网上传输的包,称为 IP 数据报 (IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的...
  • 网络层 TCP/IP体系中网络层十分重要,本篇文章主要介绍IP(Internet Protocol)协议。  网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫作“点对点通信”。  网络层的下一层——...
  • IP数据报格式

    千次阅读 2011-06-29 17:12:00
    IPv4数据包头格式TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据...
  • TCP/IP协议栈常用协议功能

    千次阅读 2020-02-11 16:24:47
    TCP/IP协议栈常用协议功能
  • IP数据报首部格式

    千次阅读 2019-05-07 21:35:08
    1.IP数据报首部的固定部分中的各字段 (1)版本占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于以后要使用的IPv6(即版本6的IP协议),我们将在后面的4.6节...
  • UDP协议数据的传输分析

    万次阅读 2012-04-22 01:10:11
    我项目中文件传输的部分,我做的是一个基于UDP协议的一个局域网通信软件,里面有一个文件传输的模块 ,起初的时候我也完成了文件传输的功能,以为这就可以了,其实我在做的时候忽略了很多细节部分,比如数据应该如何传输...
  • 五层协议体系结构的各层功能

    万次阅读 多人点赞 2016-01-26 22:37:44
    五层协议体系结构的各层功能 1 第五层——应用层(application layer) 应用层(application layer):是体系结构中的最高。直接为用户的应用进程提供服务。 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,545
精华内容 45,418
关键字:

属于用户数据报协议功能的是