总结UDP协议各类知识点

前言

本篇博客博主将详细地介绍UDP有关知识点,坐好板凳发车啦~

一.UDP特点

1.无连接

UDP传输的过程类似于发短信,知道对端的IP和端口号就直接进行传输,不需要建立连接;

2.不可靠传输

没有任何的安全机制,发送端发送数据报以后,如果因为网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息;

3.面向数据报

应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并

4.缓存区

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

UDP的socket既能读,又能写,这个概念叫全双工。

5.大小受限

UDP协议首部有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是64k(包含UDP首部)。

二.UDP格式

UDP最长是16个字节,对应无符号整形范围是0-65535,也就是0-64Kb左右

检验和

把内容中的每个字节做累加操作,在累加的过程中溢出就溢出了,最后得到一个值,把这个值记录到校验和这个位置,CRC循环冗余校验,接收方也是接收到的数据内容按同样的算法做累加,最后把计算得到的数据与校验和位的值作比较,相同则认为数据是正确的。

三.UDP套接字

针对网络编程,操作系统提供了用于网络编程的技术,称为Socket套接字,是系统提供的专门用来实现网络编程的一套API应用程序在应用层,操作系统工作在传输层,Socket套接字就是传输层对应用层提供的API支持。

3.1类和方法

1)DatagramSocket API

DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。

Socket的本质也是文件,狭义上的文件是指硬盘上的文件,广义上的文件是计算机上的各种硬盘设备

Socket对应到网卡这个硬件设备,操作系统把网卡也当做一个文件来管理

通过网卡发数据就是写文件,通过网卡接收数据就是读文件。

2)DatagramPacket API

DatagramPacket是UDP Socket发送和接收的数据报

1.DatagramPacket构造方法

构造UDP发送的数据报时,需要传入SocketAddress,该对象可以使用InetSocketAddress来创建。

3)InetSocketAddress API

尾语

这篇博客到这里就结束啦,希望可以给大家带来帮助~

相关推荐
女神下凡4 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
爱和冰阔落9 小时前
【Linux网络】TCP 半包粘包怎么解决?从长度报头、JSON 拆包到网络计算器完整实战
linux·运维·网络·tcp/ip
say_fall10 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
我不会插花弄玉1 天前
6.传输层协议UDP【由浅入深-网络】
网络·网络协议·udp
火云代理1 天前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
xbzb1 天前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
火云代理1 天前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
如夏倾城1 天前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http