对TCP/IP协议的一些看法(12):UDP协议

UDP协议相比于TCP来说,也是不可靠的传输协议。那么什么场合下采用UDP协议呢:

1.高效可靠的环境下

2.由于UDP开销小(1)不用三次握手2)传输过程中不用确认3)不用四次握手),故适合在轻权的环境下通信,例如TFTP、SNMP、DNS和DHCP协议

3.对实时性要求高,例如打电话,你可以听不清几个字,但想必你受不了重复听到很多字吧

4.多播信息或大多是为简短信息的情况下

5.应用场景中心重性能胜于重完整性和安全性

UDP数据包的格式封装包括首部和数据部分,其中首部的字段如下:

源端口号 目标端口号 总长度 校验和

其中端口号表示该数据包到达最终发送到哪一个应用程序,或者是由哪个应用程序传下来交付给下一层的,总长度指的是整个UDP数据包的长度,而不是UDP首部的长度,UDP首部长度一般为8个字节。校验和对于UDP协议来说是一个可选选项,一般不用填写。

总的来说,UDP协议具有以下特点:

1.无连接,即传输数据之前不用建立连接

2.尽最大可能交付,即不保证可靠传输

3.面向报文传输,传输的是UDP数据包

4.没有拥塞控制

5.支持一对一、一对多、多对一和多对多传输

6.UDP首部开销小,只有8个字节

7.基于UDP的应用层协议包括SNMP,TFTP,DNS和DHCP等

时间: 2024-10-11 23:18:07

对TCP/IP协议的一些看法(12):UDP协议的相关文章

TCP/IP详解学习笔记(6)-UDP协议

1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. 2.UDP协议头 2.1.UDP端口号 由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包.端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序.端口号理论上可以有2^16这么多.因为它的长度是16个bit

TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

转自:http://blog.csdn.net/goodboy1881/article/details/670761 ———————————————————————————————————————————————————————— 1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将

TCP/IP模型各个层次的功能和协议

层次名称 功    能 协    议 应用层 (Application Layer) 负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层 FTP(文件传输协议) HTTP(超文本传输协议) DNS(域名服务器协议) SMTP(简单邮件传输协议) NFS(网络文件系统协议) 传输层 (Transport Layer) 负责提供可靠的传输服务,对应OSI参考模型的第四层 TCP(控制传输协议) UDP(用户数据报协议) 网际层 (Inter-network Layer) 负责网络间的寻址.

TCP/IP学习20180709-数据链路层-arp协议

arp协议:address resolution protocol地址解析协议数据链路层,每个数据包都有MAC地址.主机是怎样根据对方主机的ip地址知道对方主机的mac地址呢?通过arp协议.主机里有ip-arp对应表.拿到ip就查对应表.查到了就用mac地址.查不到就向网络发arp协议广播包.收到这个广播包的所有主机都查自己的ip地址.如果该主机发现自己的ip地址符合,就把包含自己mac地址的arp包发给广播主机.广播主机拿到arp包后更新ip-arp对应表.然后用arp地址发送数据包. 原文

TCP/IP 网络编程 (抄书笔记 2) -- UDP

TCP/IP 网络编程 (抄书笔记 2) – UDP TCP/IP 网络编程 (抄书笔记 2) – UDP Table of Contents server client connect 来源: <TCP/IP 网络编程> 抄书: TCP 协议若要向 10 个客户端提供服务, 除了需要 listen 套接字外, 还需要 10 个服务器端套接字 (accept), 但是在 UDP 中, 不管是服务器端还是客户端都只需要 1 个套接字 udp 的 client 不需要 bind, 调用 sendt

(1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层: 应用层.表示层.会话层.传输层.网络层.数据链路层.物理层. 在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去; 在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来: 1.2 常用的协议(熟悉) http协议 - 超文

TCP/IP网络编程、三次握手协议及socket编程

1.概念 2.三次握手协议

TCP/IP 原理 -- ICMP:因特网控制报文协议

ICMP:它传递差错报文以及其他需要注意的信息. ICMP是封装在IP数据报内部被传递的. ICMP报文格式: 1.ICMP报文类型由类型和代码字段共同决定.类型共有15中,通过代码字段又可对其进行细分.详细报文类型说明如图: 图 -ICMP报文类型

《TCP/IP详解,卷1:协议》学习记录

在“第20章—TCP的成块数据流—20.6慢启动—一个例子”中,中文版有如下翻译“此时尽管可发送多达3个报文段,可是在下一个ACK收到之前,只发送了2个报文段”,英文版原文为“Two more segments are sent (not three) because the ACK for segment 4 is still outstanding.”

【Java TCP/IP Socket】构建和解析自定义协议消息(含代码)

在传输消息时,用Java内置的方法和工具确实很用,如:对象序列化,RMI远程调用等.但有时候,针对要传输的特定类型的数据,实现自己的方法可能更简单.容易或有效.下面给出一个实现了自定义构建和解析协议消息的Demo(书上例子). 该例子是一个简单的投票协议.这里,一个客户端向服务器发送一个请求消息,消息中包含了一个候选人的ID,范围在0~1000.程序支持两种请求:一种是查询请求,即向服务器询问候选人当前获得的投票总数,服务器发回一个响应消息,包含了原来的候选人ID和该候选人当前获得的选票总数:另