UDP 的报文结构和注意事项

 UDP 的报文结构和注意事项_第1张图片

目录

一. UDP的特点

二. UDP协议 

1. UDP协议端格式

2.UDP的报文结构 

3. 基于UDP的应用层协议

三. (高频面试题)

一. UDP的特点

  • 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接。
  • 不可靠:即使因为网络故障等原因无法将数据报发送给接收端,UDP协议层也不会给应用层返回任何错误信息。
  • 全双工:即可以接收数据报,也可以发送数据报
  • 面向数据报:应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并。

二. UDP协议 

1. UDP协议端格式

UDP 的报文结构和注意事项_第2张图片

  • 16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度;
  • 如果校验和出错,就会直接丢弃; 

2.UDP的报文结构 

  • UDP报文主体分为两个部分:UDP报头(占8个字节)+UDP数据/UDP载荷
  • UPD报头:源端口号+目的端口号+包长度+校验和
  1. 源端口号:占16位,也就是2个字节 
  2. 目的端口号:占16位,2个字节
  3. UDP报文长度=UDP报头(首部)+UDP载荷 ,2个字节能表示的数据范围是0~65535,也就是能够表示的报文长度是65536字节(Byte),转换成KB,65536/1024 = 64 KB 这就是一个UDP报文所能表示的最大长度.
  4. 校验和:数据在传输的时候,本质上是0/1bit流,通过光信号或者电信号来表示,如果在传输的时候收到干扰,就可能会出现比特翻转现象.这个时候就需要校验和校验数据是否出错.

3. 基于UDP的应用层协议

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

三. (高频面试题)

如果传输超过64KB的数据,该如何设计?

第一种方案(不推荐):通过代码的方式针对应用层数据报进行手动的分包,拆分成多个包通过多个UDP数据报进行传输。(此方法比较麻烦)
第二种方案(推荐):不用UDP,换成TCP(TCP没有这样的限制)

UDP 和TCP 的区别?

  • 连接机制不同:TCP 是面向连接的协议,需要在客户端和服务器之间建立一个稳定的连接,然后再进行数据传输;而 UDP 是无连接的协议,数据包可以直接发送给目标主机,不需要事先建立连接。
  • 数据传输方式不同:TCP 采用可靠的数据传输方式,即在传输过程中使用序号、确认号和重传机制等控制手段来保证数据的可靠传输;而 UDP 采用不可靠的数据传输方式,数据包可能会丢失或重复,不提供数据可靠性保障。
  • 数据传输效率不同:由于 TCP 需要进行连接、序号确认等额外的数据包传输,因此在数据传输效率方面相对于 UDP 要低一些。
  • 数据大小限制不同:UDP 对数据包的大小有限制,最大只能传输 64KB 的数据,而 TCP 的数据包大小没有限制。
  • 应用场景不同:TCP 适用于要求数据传输可靠性高的场景,如网页浏览、文件下载、电子邮件等;而 UDP 适用于实时性要求较高的场景,如视频会议、在线游戏等。

UDP 的报文结构和注意事项_第3张图片 

 

你可能感兴趣的:(网络编程,JavaEE,udp,网络协议,网络)