TCP只支持单播寻址
UDP和原始IP还支持其它寻址类型。
IPv6中增加了任播方式。
广播(broadcastign):
用途1: 在本地子网定位一个服务器主机,这种操作成为资源发现。
用途2: 在多个客户主机和单个服务器主机通信的局域网环境种尽量减少分组流通, 如:
a) ARP : ARP在本地子网上广播一个请求:“IP地址为a.b.c.d的系统亮明身份,告诉我你的硬件地址”,ARP使用链路层广播,而不是IP层广播。ARP并不是一个用户应用,而是IPv4的基本组成部分之一。
b) DHCP : DHCP客户主机想广播地址(通常为255.255.255.255)发送自己的请求。
c) NTP 网络时间协议: 服务器可以为本地子网上的客户主机每个N秒广播一次当前时间,免得每个客户主机各自轮询,从而减少网络分组流量。
d) 路由器守护进程 routed : 它在一个局域网上广播自己的路由表,这就无须事先为每个路由器配置其邻居路由器的IP地址。
使用广播时,需使用SO_BROADCAST套接字选项:
int broadcast=1;
setcockopt(sfd, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(int));