网络原理-传输层-UDP报文结构

本文介绍UDP报文

有很多友友搞不清楚UDP报文的详细结构还有TCP的详细结构,所以专门分开来讲

以免弄混.

首先我们先看一下整个UDP结构,让大家有一个全方面的认识

下面我们来详细解释UDP报

16位源端口号(本机):就是2字节大小,16个二进制位.

16位目的端口号(目的机):也是2字节大小,16个二进制位.

16位UDP长度:只是用2字节,16个二进制位记录整个数据报(UDP⾸部+UDP数据)的最⼤⻓度.并不是整个报文大小2字节.但是记录了16位,所以UDP大小就是2的16次方/1024=64kb; 1 kb == 1024字节.

16位UDP校验和:用2字节,16个二进制位来校验,如果校验和出错,就会直接丢弃;

UDP的特点

UDP传输的过程类似于寄信.

• ⽆连接:知道对端的IP和端⼝号就直接进⾏传输,不需要建⽴连接;

• 不可靠:没有确认机制,没有重传机制;如果因为⽹络故障该段⽆法发到对⽅,UDP协议层也不会给应

⽤层返回任何错误信息;

• ⾯向数据报:不能够灵活的控制读写数据的次数和数量;

⾯向数据报

应⽤层交给UDP多⻓的报⽂,UDP原样发送,既不会拆分,也不会合并;

⽤UDP传输100个字节的数据:

• 如果发送端调⽤⼀次sendto,发送100个字节,那么接收端也必须调⽤对应的⼀次recvfrom,接收100

个字节;⽽不能循环调⽤10次recvfrom,?每次接收10个字节;

UDP使⽤注意事项

我们注意到,UDP协议⾸部中有⼀个16位的最⼤⻓度.也就是说⼀个UDP能传输的数据最⼤⻓度是

64K(包含UDP⾸部).

然⽽64K在当今的互联⽹环境下,是⼀个⾮常⼩的数字.

如果我们需要传输的数据超过64K,就需要在应⽤层⼿动的分包,多次发送,并在接收端⼿动拼装;

相关推荐
CPETW3 分钟前
USB TO I2C_(Excel)_Scan ---- 1000KHz总线速率测试_A
c语言·开发语言·网络·科技·单片机
K成长日志29 分钟前
BLE不可连接状态--广播态
物联网·网络协议·蓝牙·低功耗·iot·ble
杨云龙UP41 分钟前
Oracle 19c RMAN历史备份清理失败:CONTROL_FILE_RECORD_KEEP_TIME 问题排查与整改实战
linux·运维·网络·数据库·oracle·rac
pt10431 小时前
网络自动化Python课程:Netconf与Restconf及Cisco自动化配置实验
网络·python·自动化
神仙别闹1 小时前
基于C++ WinPcap 的网络抓包软件
网络·c++·php
LabVIEW开发2 小时前
使用 LabVIEW 获取文件的创建日期:从内置函数到 Windows API 封装
网络·windows·labview·labview知识·labview功能·labview程序
DevOpenClub2 小时前
全球区域与 IP 定位工作台案例方案
大数据·网络·网络协议·tcp/ip
wuyk5552 小时前
从零吃透 Modbus 通信|第 6 章:线圈功能码 05/0F 实现 & Modbus‑TCP 基础入门
c语言·网络·网络协议·tcp/ip
NJCloud2 小时前
Docker 私有仓库部署:Registry、加密传输与认证鉴权
运维·网络·docker·云原生·容器
CC城子3 小时前
Bootloader + OTA -Ymodem 协议
网络·ymoden