UDP的机制

由于UDP是无连接服务,所以传输的每个数据报都和其他所有传输的数据报无关。即使不同的数据报源于相同的源进程,并且都是传输到相同的目的进程,它们之间也没有任何关系。用户数据报没有编号,也没有连接建立或连接终止序列。因此,每个数据报可能都是通过不同的路由传输的,并且接收数据报的顺序可能与发送顺序不同。

UDP的一个明显的缺点就是使用UDP的高层进程不能只向UDP软件发送一个数据流,然后通过这个软件把数据分割成一序列相关的数据报。相反,每个数据流必须小到足以适合单用户数据报。因此,UDP只适合发送短信息的进程。

UDP还是一个极其简单和非常不可靠的协议。在传输数据报以前,UDP不提供数据编码序列或任何交换缓冲区容量的机制。因此,没有办法控制数据的流量,如果消息超过了目的设备的缓冲区空间,目的设备可能就会被传入的消息淹没。

除了校验和以外,UDP协议没有其他的错误控制机制。校验和将检测大多数传输错误,但是,没有任何过程来要求重新传送被损坏的数据报。因此,被损坏的数据报将在不通知发送端的情况下被丢弃,而发送端却不知道这个数据报将永远到达不了目的地。如果有一个使用UDP的进程需要流量和、或错误控制机制,就必须为它提供进程层协议。

UDP数据报结构:包括大小可变的数据部分和大小固定的报头。

UDP报头包括了源端口号、目标端口号、UDP长度和UDP校验和 。

①源端口号:定义了使用UDP传输发送数据包的应用程序和进程。在某些情况下使用临时端口号。端口号有3个范围:公用端口、临时端口和动态端口。大多数情况下,不管是在UDP还是在TCP上的应用程序或进程都使用一个端口号,因为UDP和TCP分配的端口号相同。但是,在极少数情况下,UDP和TCP端口号的服务对象不同,例如,UDP端口520分配给路由信息协议,而TCP端口520分配给扩展文件对称服务进程。

②目标端口号:用来说明使用UDP传输的目标应用程序和进程。

③UDP长度:表示包含报头和数据在内的整个用户数据报的长度,一字节为单位。此字段的最小值是8。

④UDP校验和:表示一个根据存储在IP报头、UDP报头和数据中的值计算出来的值。为了将结果补足16位,需要在末端添加零。UDP校验和域是可选的。如果使用校验和,整个数据报的内容都要进行校验和计算,包括UDP报头(除了UDP校验和域本身)、数据报有效载荷源于IP首部和伪首部。UDP伪首部并不在数据包中,仅用来计算UDP首部的校验和,并把UDP首部和IP首部联系起来。

UDP的特性可以归纳为如下几点:

①UDP是面向事务的协议,它用最少的传输服务为应用向其他程序发送报文提供了一个途径。

②UDP是无连接的、不可靠的传递机制。在发送数据报前,UDP在发送和接收两者之间不建立连接。

③数据分组的封装和解包都建立在UDP使用的协议端口上。每个UDP数据报都包括一个熟知的端口号。

④UDP让用户能直接访问Internet层的数据报服务。

⑤数据报协议使用Internet协议(IP)作为数据传输机制的底层协议。

⑥UDP报头和数据都以最初传输时相同的形式被传送到最终目的地。

⑦UDP不提供确认,也不对数据的到达顺序加以控制。因此UDP报文可能会丢失。

⑧不实现数据分组和传送和重复检测。

⑨当分组没有被传送时,UDP不能报告错误。然而,在传送UDP包时,有效数据被传输给由源和目标端口号标识的正确应用。

UDP的机制

时间: 2024-11-07 03:27:42

UDP的机制的相关文章

Java 中UDP原理机制及实现方式介绍(建议阅读者阅读前了解下Java的基础知识,一方便理解)

1.基本概念介绍: 首先得简单介绍下UDP. UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.它是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的 但是这种协议却是方便快捷的,因此很多通信工具和游戏仍然采用这种通信方式,虽然有时会出现数据丢帧

iOS- 移动端Socket UDP协议广播机制的实现

1.前言 什么是UDP协议广播机制? 举一个例, 例如在一群人群中,一个人要找张三,于是你向人群里大喊一声(广播):"谁是张三" 如果它是张三,它就会回应你,在网络中也是一样的. UDP广播机制的应用场景: 若干个客户端,在局域网内(不知道IP的情况下) 需要在很多设备里需找特有的设备,比如服务器,抑或是某个打印机,传真机等. 假设我现在准备将服务器装在永不断电的iPad上. 若干个客户端iPhone 一激活,就要来向所有设备广播,谁是服务器,是服务器的话,请把IP地址告诉我.然后我就

iOS 利用Socket UDP协议广播机制的实现

1.前言 什么是UDP协议广播机制? 举一个例, 例如在一群人群中,一个人要找张三,于是你向人群里大喊一声(广播):"谁是张三" 如果它是张三,它就会回应你,在网络中也是一样的. UDP广播机制的应用场景: 若干个客户端,在局域网内(不知道IP的情况下) 需要在很多设备里需找特有的设备,比如服务器,抑或是某个打印机,传真机等. 假设我现在准备将服务器装在永不断电的iPad上. 若干个客户端iPhone 一激活,就要来向所有设备广播,谁是服务器,是服务器的话,请把IP地址告诉我.然后我就

Linux的UDP基础编程

UDP通信机制 相比较于TCP通信,UDP通信是面向无连接的通信,所以没有TCP中的监听和连接等涉及面向连接的过程,UDP的主要通信过程如下图所示: 相比较TCP通信,UDP相对而言比较简单,虽然UDP是无连接的通信,但是依然有服务器和客户端之分,且通信的时候直接指定对方地址即可,无视对方是否能收到你发送的消息.且UDP通信不再使用read/write发送消息和读取消息了,因为没有连接,所以需要指定地址,而read和write没有能够提供地址的功能,所以需要使用其他方法替代.这里使用了sendt

利用Tsunami UDP将大数据迁移至云中

当你的数据规模达到PB级别的时候,想要移动这样大规模数据时就会变的费时费力,这也是企业在利用AWS规模化和弹性优势处理分析任务时面临的最大挑战之一.本文主要介绍了加速文件传输协议,谈到如何利用Tsunami DUP实现将大规模数据迁移到云中,其中利用UDP处理数据传输,TCP负责连接控制. 值得一提的是,与SCP.FTP或者HTTP等纯粹基于TCP的协议不同,这些混合型UDP/TCP协议处理数据的吞吐量更加出色,它可以充分利用当前的可用带宽的情况下,不易受到网络延迟的影响,这些特性使其成为远距离

三、初识TCP/UDP(传输层)

一.初识TCP/UDP(传输层) 引言:TCP(Transmission Control Protocol),又叫传输控制协议,UDP(User Datagram Protocol),又叫用户数据报协议.两者都是是传输层协议,但他们的通信机制与应用场景不同. 1.TCP与UDP区别 特点 TCP UDP 传输方式 字节流 数据报 连接性 面向连接 面向非连接 可靠性 可靠 不可靠 传输效率 慢 快 面向字节流(TCP) 面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),TC

Java多线程-新特性-线程池

Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要. 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程.目前有关这方面的资料和书籍都少之又少,大部分介绍线程方面书籍还停留在java5之前的知识层面上. 在Java5之

XMPP协议的原理介绍

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探測.它在促进server之间的准即时操作.这个协议可能终于同意因特网用户向因特网上的其它不论什么人发送即时消息,即使其操作系统和浏览器不同. XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议.XMPP眼下被IETF国际标准组织完毕了标准化工作.标准化的核心结果分为两部分: 在IETF 中,把IM协议划分为四种协议,即即时信息和出席协议(Instant Messaging

android openfire 和 xmpp

关于xmpp协议可以参考:http://www.jabbercn.org 什么是OpenFire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议. 您可以使用它轻易的构建高效率的即时通信服务器.Openfire安装和使用都非常简单,并利用Web进行管理.单台服务器可支持上万并发用户. 由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务. XMPP(Jabber)协议 1. 介绍 XMPP是一种基于XML的协议,