【网络编程】UDP协议

协议格式

特点

1.无连接(Connectionless)

  • 特点:在发送数据之前,双方不需要像 TCP 那样先建立连接(三次握手)。

  • 结果:节省了建立连接的开销,速度快。

2. 不可靠(Unreliable)

  • 特点:UDP 不保证数据报能送达对方。它"尽力而为"地发送,不具备重传机制。

  • 后果

    • 数据可能丢失

    • 数据可能乱序到达(先发的包后到,后发的包先到)。

    • 数据可能重复

3. 面向报文(Message-Oriented)

  • 特点 :UDP 是一个报文 一个报文地发送和接收,保留了消息的边界。

  • 区别 :TCP 是"面向字节流"的,你发两次数据,接收方可能一次就把它们合在一起读了出来。但 UDP 不会,你发一个 100 字节的数据包,接收方必须用一次 recvfrom 读 100 字节;如果你发一个 200 字节的包,但你只提供一个 100 字节的缓冲区去读,余下的 100 字节会被直接丢弃。

常见问题

1.为什么我们写socket时,port是16位的?

答:因为内核中udp协议规定!

2.a.报头和有效载荷如何分离?b.有效载荷分用问题。

答:UDP报文的报头长度是固定的,为16位。16位目的端口号可以解决分用问题。

3.UDP存在粘包问题吗?

答:不存在。因为它是以数据报格式传输数据的。

4.怎么理解UDP协议报头?

答:它是一个协议结构体struct udphdr。

5.如何理解封装过程?

答:本质就是对结构体变量进行拷贝。

6.如何理解报文?

操作系统使用结构体struct sk_buff来管理报文信息。报文贯穿协议栈,封包和解包的核心就是移动指针。

7.当收到一个报文,我们如何做到用文件原理,读数据到应用层?见下图

相关推荐
yyuuuzz1 小时前
aws亚马逊云上部署常见问题梳理
运维·服务器·网络·数据库·云计算·aws
江南十四行1 小时前
Python多线程与多进程实战——避开GIL,榨干CPU
开发语言·网络·python
优化Henry1 小时前
5G站点光链路降级告警排查与处理——AAS光端口隐性故障定位
运维·网络·5g·信息与通信
techdashen1 小时前
4 个字节拿到 root 权限:Linux 内核漏洞“Copy Fail“与 Cloudflare 的应急处置全记录
linux·网络·安全
wanhengidc1 小时前
算力服务器的优势都有哪些?
大数据·运维·服务器·网络·人工智能·安全·智能手机
其实防守也摸鱼2 小时前
ctfshow--Crypto(crypto1-14)解题步骤
java·开发语言·网络·安全·密码学·ctf·ctfshow
合兴软件@2 小时前
合兴软件重磅推出高性能HSM固件 国密算法赋能汽车信息安全新防线
网络·算法·网络安全·汽车·信息与通信
上海云盾-小余2 小时前
七层与四层防护区别:WAF 与高防 IP 选型实战攻略
网络协议·tcp/ip·系统安全
上海合宙LuatOS2 小时前
合宙TCP/UDP web测试工具简介
前端·物联网·tcp/ip·udp·luatos