UDP协议基础
来源:互联网 发布:天祥网络 编辑:程序博客网 时间:2024/06/06 04:39
转载:http://book.51cto.com/art/201203/322539.htm(疯狂Java讲义---李刚)
第17章 网络编程
17.4 基于UDP协议的网络编程
UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发送、接收数据报的对象。Java提供了DatagramSocket对象作为基于UDP协议的Socket,使用DatagramPacket代表DatagramSocket发送、接收的数据报。
17.4.1 UDP协议基础
UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络连接。UDP协议从问世至今已经被使用了很多年,虽然UDP协议目前应用不如TCP协议广泛,但UDP协议依然是一个非常实用和可行的网络传输层协议。尤其是在一些实时性很强的应用场景中,比如网络游戏、视频会议等,UDP协议的快速更具有独特的魅力。
UDP协议是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。至于对方是否可以接收到这些数据内容,UDP协议无法控制,因此说UDP协议是一种不可靠的协议。UDP协议适用于一次只传送少量数据、对可靠性要求不高的应用环境。
与前面介绍的TCP协议一样,UDP协议直接位于IP协议之上。实际上,IP协议属于OSI参考模型的网络层协议,而UDP协议和TCP协议都属于传输层协议。
因为UDP协议是面向非连接的协议,没有建立连接的过程,因此它的通信效率很高;但也正因为如此,它的可靠性不如TCP协议。
UDP协议的主要作用是完成网络数据流和数据报之间的转换--在信息的发送端,UDP协议将网络数据流封装成数据报,然后将数据报发送出去;在信息的接收端,UDP协议将数据报转换成实际数据内容。
可以认为UDP协议的Socket类似于码头,数据报则类似于集装箱;码头的作用就是负责发送、接收集装箱,而DatagramSocket的作用则是发送、接收数据报。因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器端的概念。
UDP协议和TCP协议简单对比如下。
TCP协议:可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。
UDP协议:不可靠,差错控制开销较小,传输大小限制在64KB以下,不需要建立连接。
- TCP/UDP 协议基础
- UDP协议基础
- udp协议基础
- TCP、UDP协议,java网络通信基础
- python基础-socket初识、udp通信、udp数据报协议
- UDP协议
- UDP协议
- UDP协议
- UDP协议
- UDP 协议
- UDP协议
- UDP协议
- udp 协议
- UDP协议
- UDP协议
- UDP 协议
- UDP协议
- UDP协议
- maven profile介绍
- 实用字符处理函数库:cctype(ctype.h)
- centos7编译安装php
- Codeforces 213E
- wifi基本知识
- UDP协议基础
- 类型转换
- UVA540 Team Queue(模拟:队列)
- framebuffer
- The request was denied by service delegate (SBMainWorkspace) for reason: Security ("Entitlement "com
- OkHttp3 (四)——Cookie与拦截器
- Android 5.1 Settings源码简要分析
- Jmeter使用流程及简单分析监控
- static静态变量