第20章 广播
1.概述
UDP和原始套接字支持广播
广播的用处:
(1)客户端确定服务器位于本子网内时,使用广播探测服务器
(2)服务器广播发送信息给本子网内客户端,以减少网络上分组。
常见使用广播的程序:
DHCP,ARP,RIP
2.广播地址
广播地址有两种:
(1)子网定向广播地址:{子网,-1},192.168.43.255
(2)受限广播地址:{-1, -1},255.255.255.255
3.从UDP数据报的传递理解广播
主机A发送UDP单播给主机B
通过sendto 赋予 源端口,目的端口,源IP,目的IP,以太帧类型为IPv4分组。
又通过路由表,直到下一条IP,从而获得源MAC和目的MAC。
帧被发出。
中间主机的网络接口看到该帧的目的MAC和自己不同,忽略该帧,次计算不使用主机CPU。
B主机网络接口对比该帧目的MAC和自己MAC相同,校验成功后,向上传。
由于帧的类型是IPv4,所以被存入IP的输入队列。
IP协议对比该帧的目的IP和自己相同,校验成功后,向上传,查看IP协议字段,发现是UDP协议,数据报被送到UDP层。
UDP对比目的端口,通过,将数据放到对应套接字输入缓冲。
主机A发送UDP广播
报文获得源端口,目的端口,源IP,目的IP(广播地址),类型为IPv4。
ARP将目的Ip映射为ff:ff:ff:ff:ff:ff:ff的目的MAC地址。
帧被发出。
所有主机网络接口收到该帧后,都会上传。
IP层也会上传。
UDP会对比端口。
4. 编程
广播需要设置 SO_BROADCAST 套接字选项。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?