网络原理之 UDP 协议

目录

[1. UDP 协议报文格式](#1. UDP 协议报文格式)

[2. UDP 的特点](#2. UDP 的特点)

[(1) 无连接](#(1) 无连接)

[(2) 不可靠](#(2) 不可靠)

[(3) 面向数据报](#(3) 面向数据报)

[(4) 全双工](#(4) 全双工)

[3. 基于 UDP 的应用层协议](#3. 基于 UDP 的应用层协议)


前文是:UDP 的使用

首先了解一下基础知识:

1. UDP 协议报文格式

传输层最重要的协议有两个,一个是 TCP,一个是 UDP。

端口号,大家应该都知道吧,就是用来绑定进程的,这样就能够区分主机上不同的应用程序了,比如 3306 是 mysql 的端口号,8080 是 tomcat 的端口号。端口号就是固定占 2 个字节。

1 - 1023 这个范围的端口号称为知名端口号,是用来给知名的服务器,预留一个 "位置" (比如 22: ssh, 80: http, 443: https )

1024 - 65535 就是普通的端口号,知名端口号和普通端口号没什么区别,就是我们写程序的时候尽量不要绑定知名端口号,来确保我们的端口号和别人的端口号不会重复。

相比于 crc 算法,md5 算法就更好。

md5:有一系列的公式,来完成 md5 的计算。
md5 的特点:
1. 定长

无论数据多长,计算得到的 md5 ,都是固定长度(校验和本身就不应该很长,太长的话会加大网络传输的带宽)。
2. 分散

给定两个原始数据,哪怕绝大部分内容都一样,只要其中一个字节不同,得到的 md5 值差异都会很大。(非常适合作为 hash 函数)
3. 不可逆

给你一个原始数据,要计算出 md5,非常容易,给你一个 md5,让你还原出原始数据,计算了非常庞大,超过了现有计算机的算力极限,理论上是不可能的。

2. UDP 的特点

(1) 无连接

UDP 自身是不会存储对端的信息(ip 和端口)的,要在发送数据的时候,显式指定要传输给谁。

(2) 不可靠

UDP 将数据传输后就不管了,不会管数据有没有成功送到对端。

(3) 面向数据报

UDP 传输数据是以数据报为单位的,这个从 UDP 协议的报文格式上也能看出来。

(4) 全双工

一个信道,允许双向通信。

通过一个 socket 对象,既能 send ,又能 receive。

3. 基于UDP的应用层协议

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议
  • 还包括程序员自身写 UDP 程序时定义的应用层协议

相比于 UDP 来说,TCP 是更具有优势的,所以一般都是优先考虑使用 TCP。

相关推荐
努力努力再努力wz18 分钟前
【C++ 高阶系列】C++ 高性能网络编程:当 Reactor 遇见协程:从 epoll 回调到异步 MySQL,彻底打通任务挂起与恢复
网络·c++·mysql
loulanyue_24 分钟前
当AI学会自主攻击与渗透破壁:Agent行为链失控与Mythos级攻防颠覆下的安全范式重构——读CNCC2026第六届网络生态治理论坛实录
网络·人工智能·安全
2401_868534781 小时前
英语演讲:麻省理工校长2024年毕业典礼演讲
服务器·网络
码完就睡1 小时前
Linux——以太网协议
运维·服务器·网络·1024程序员节
CV爱数码2 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
星恒讯工业路由器2 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换
李&@杰2 小时前
交换机PoE供电不足导致AP反复重启故障处理
网络·华为
香蕉大香蕉(06敬畏市场)2 小时前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
jaysee-sjc2 小时前
【苍穹外卖】Day10:定时任务与 WebSocket 实时提醒实战
java·开发语言·javascript·数据库·vue.js·websocket·网络协议
钱工的门窗技术笔记3 小时前
铝木复合门窗中木材的角色分类与界面可分解性:结构判定、失效路径与维护设计
网络·物联网·数据分析