我是靠谱客的博主 称心可乐,最近开发中收集的这篇文章主要介绍【计算机网络】UDP协议1. UDP协议头部格式2. UDP协议的特点3. 基于UDP的应用层协议 4. UDP协议与TCP协议对比5. 经典面试题 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1. UDP协议头部格式

2. UDP协议的特点

2.1 无连接 

2.2 不可靠

2.3 面向数据报 

2.4 有接收缓冲区,没有发送缓冲区 

2.5 大小受限 

3. 基于UDP的应用层协议 

4. UDP协议与TCP协议对比

5. 经典面试题 


1. UDP协议头部格式

 

  • 源端口号:表示数据从哪里发送
  • 目的端口号:表示数据要发送到哪里区
  • 16位UDP长度:表示整个数据报(UDP首部+UDP数据)的最大长度
  • 16位UDP校验和:检测数据是否被破坏,如果UDP报文校验和检测出错,就会直接丢弃 

2. UDP协议的特点

2.1 无连接 

知道目的主机的IP地址和端口号就可以直接传输数据,不需要像TCP协议那样,通过三次握手建立连接后才可以进行数据的收发

2.2 不可靠

UDP协议没有任何的可靠机制来保证数据的可靠传输,发送端发送数据后,如果因为网络故障等原因无法发送到对方,UDP协议也不会给应用层返回任何错误信息,不像TCP协议那样,通过确然应答机制,超时重传机制,连接管理机制,流量控制和拥塞控制来保证数据的可靠传输 

2.3 面向数据报 

发送端一次发送的数据,接收端也必须一次接收,应用层交给UDP的报文,UDP原样发送,既不会拆分也不会合并

如使用UDP协议传输100字节的数据:如果发送端一次发送100个字节,接收端就必须一次接收100个字节,而不能循环接收,如循环接收10次,一次接收10个字节 

2.4 有接收缓冲区,没有发送缓冲区 

UDP协议只有接收缓冲区,没有发送缓冲区

  • 对于发送来说,发送端直接将数据交给系统内核,发送端不关心接收端是否接收到数据,再其发送数据后就不管了,所以不用发送缓冲区来记录数据编号(重传时才有用) 
  • 对于接收来说,接收端可以接收到多个数据报,接收端处理数据的速度可能比接收数据的速度慢,此时就需要接收缓冲区来临时保存数据,待处理完该数据,就从缓冲区删掉,另外当接收缓冲区满了,此时接收到的数据就会直接丢弃

2.5 大小受限 

UDP协议首部有一个16位UDP长度,代表UDP一次能传输数据的最大长度为64k(包含UDP首部) 

3. 基于UDP的应用层协议 

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议 

4. UDP协议与TCP协议对比

特点对比

  • UDP:无连接,不可靠,面向数据报,有接收缓冲区,没有发送缓冲区,大小受限
  • TCP:有连接,可靠,面向字节流,有发送缓冲区和接收缓冲区,大小不受限

使用场景对比

讲过上述特点对比,可以看出TCP协议最大的特点是可靠,也就是保证数据能让对方接收到,而UDP协议最大的特点是传输效率高,速度快

  • TCP协议使用场景:用于文件传输,重要状态更新等场景
  • UDP协议使用场景:用于语音传输,视频传输等场景,我们日常中发现视频和语音电话中,往往会有卡顿,但是不影响我们使用

5. 经典面试题 

基于传输层UDP协议,如何实现可靠传输?

答:UDP协议是传输层的协议,是不可靠的,无连接的,也就是说传输层我们不能改变,也不能扩展,所以只能在应用层进行扩展,而实现方式可以参考TCP协议是如何保证数据进行可靠传输的,如添加确认应答,超时重传,连接管理等机制确保数据可以被接收,从而实现数据的可靠传输

最后

以上就是称心可乐为你收集整理的【计算机网络】UDP协议1. UDP协议头部格式2. UDP协议的特点3. 基于UDP的应用层协议 4. UDP协议与TCP协议对比5. 经典面试题 的全部内容,希望文章能够帮你解决【计算机网络】UDP协议1. UDP协议头部格式2. UDP协议的特点3. 基于UDP的应用层协议 4. UDP协议与TCP协议对比5. 经典面试题 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部