udp协议

简介

UDP是User Datagram Protocol的简称。中文名为,用户数据包协议。和tcp协议一样,工作在OSI网络模型的第四层(传输层)。但是,和tcp不一样,它提供的是不可靠的网络传输。它不负责对数据包分组,组装和对数据包排序。也就是说,当数据包发出后,是无法知道数据包是否安全完整到达。

特点

1、无连接:即在发送数据之前是不需要建立连接的。也就是说,即便服务端没有监听端口,客户端一样可以使用udp协议向指定端口发数据。不管你在不在,也不给你事先打招呼,反正我就是发数据。是不是很霸道。
2、不可靠:只是尽最大努力把数据包送达。但是是否真的送达了,你永远不知道。
3、包头小:udp的首部开销只有8字节。tcp的包头要20字节。
4、不排序:由于udp协议的包头只有8字节,没有包含排序信息(如TCP所采用的序号)。而且报文不一定按顺序到达的,所以接收端无从排起。
5、面向报文:发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
6、无流量控制:它不管目前的网络状况,不管是不是已经非常拥堵了,就是一个劲的发包。
7、多种交互通信支持:支持一对一,一对多,多对多,多对一的交互通信。

应用场景

UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音串流服务等等。如,我们聊天的QQ就是使用udp协议。

时间: 2024-11-02 13:30:03

udp协议的相关文章

udp java-JAVA UDP协议下怎么样才能突破局域网内的双向通信啊?求高人务必指导下。。。。

问题描述 JAVA UDP协议下怎么样才能突破局域网内的双向通信啊?求高人务必指导下.... 本人是个接触JAVA2个月的菜鸟,最近在研究UDP广域网的通信,实现的过程也就是常说的双向通信:客户端(局域网内)先发数据给远方的服务器(服务器是公网IP,映射了个端口),服务器能收到,但是服务器不能回发数据给客户端...对于这方面的问题,在网上找了很多资料,全是局域网内的,网上说什么UDP打洞啊,穿透啊等等的,说实话有点晕,直到有一天在网上一个论坛看到同样类似的帖子,主人说根本就不需要什么UDP打洞这

实例-UDP协议为何是11教材说17

问题描述 UDP协议为何是11教材说17 根据前面所介绍的方法,下面给出一个具体的实例进行分析:7E21 45 00 001D 47F3 0000 80 11 B0F6 0A4A30E0 D350336C 03E8 03F2 0009 55 1B61 A5DE 7E 7E21为PPP包头,4表示旧版本号5表示首部长度,00表示服务类型,001D表示包的All长度47F3表示16位的标识,0000表示3位的标志+13位的片偏移,80表示TTL,11表示协议(11表示UDP协议,TCP为06),B0

网络协议基础知识 SMTP协议和UDP协议

SMTP协议的命令和应答 从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响.双方如此反复多次,直至邮件处理完毕.SMTP协议共包含10个SMTP命令,列表如下:

网络协议基础知识:SMTP协议和UDP协议

SMTP协议的命令和应答 从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响.双方如此反复多次,直至邮件处理完毕.SMTP协议共包含10个SMTP命令,列表如下:

用C#开发UDP协议聊天程序

本节将通过一个实例来讲解,如何利用UDP协议开发多点聊天室程序.首先应在不同的计算机中运行聊天室服务程序,然后打开相应的客户发送端窗体,在客户发送端窗体的文本框中输入与之聊天的计算机IP,然后在"发送聊天信息"文本框中输入聊天信息,单击[发送]即可以将信息发送到目标计算机中. 服务器端实现的具体步骤如下: (1)在VS2005工程中添加一个窗体. (2)首先在代码设计器窗口中引入using System.Net.Sockets和using System.Net命名空间. (3)程序主要

基于IP/UDP协议的sock编程

在VC知识库我学到了很多知识,很短的时间我就掌握了vc,主要是在贵站下了很多源代码回来分析,学习.看了你处有人将net send封装进行消息群发的源代码,有看见网上某某公司消息群发软件要花钱才能购买,于是有感自己编写一个消息群发小程序. 特点: vc源代码,基于IP/UDP协议的sock编程,按messager 服务的通信协议填写UDP数 据包,可在没有net send命令的win98 win95下实现消息发送,代码里含有messager 的通 信协议.并支持文本内容,ASCII文本图象发送.做

Java基于socket服务实现UDP协议的方法

  本文实例讲述了Java基于socket服务实现UDP协议的方法.分享给大家供大家参考.具体如下: 示例1: 接收类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package com.socket.demo; import java.io.IOException; import java.net.DatagramPacket; import java.net

udp-需要一个java基于UDP协议的文件传输程序

问题描述 需要一个java基于UDP协议的文件传输程序 文件是一个实验数据的文件,是txt个格式的,需要将它传输到指定的IP上 解决方案 server package com.way.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundEx

求助大神!!!!windows下的udp协议封装,实现网络通信

问题描述 求助大神!!!!windows下的udp协议封装,实现网络通信 在Qt平台上写的一个程序,是基于udp协议的网络通信,通过在一台电脑上打开两个命令窗口可以实现通信,为什么在两台电脑上就不行了?两台电脑连在同一个路由器下,已经关了防火墙!纠结了2天的问题了,求大神解决!!!!! 解决方案 先ping下看看通不通,本机的防火墙和路由的防火墙是否都关了.路由的防火墙是否禁用了广播.端口号,ip是否正确.程序先在本地双开能运行么?

【求助】关于UDP协议分析

问题描述 求UDP协议的详细分析,wireshark抓获数据包中对应每一句的分析. 解决方案 解决方案二:你可以看<WinSock网络编程经络>第4章UDP,前面是对UDP的详细介绍,最后有对UDP实际数据每一个字节的解释.这里有一些Winsock源码:http://download.csdn.net/detail/geoff08zhang/4571358解决方案三:看<tcpip协议卷>-------第23章UDP:用户数据报协议解决方案四:用抓包工具看看