目前有三種通訊方式:單播(unicast)、廣播(broadcast)、組播(multicast)
單播解決了點對點通訊的需求;
廣播是點對多點的通訊,其存在兩個缺點:
1)只能在同一網段內實現廣播;
2)不能指定目的主機,所有網段內的主機都將收到廣播報文,存在頻寬浪費。
組播組可以是永久的也可以是臨時的。組播組位址中,有一部分由官方分配的,稱為永久組播組。永久組播組保持不變的是它的ip位址,組中的成員構成可以發生變化。永久組播組中成員的數量都可以是任意的,甚至可以為零。那些沒有保留下來供永久組播組使用的ip組播位址,可以被臨時組播組利用。
224.0.0.0~224.0.0.255 為預留的組播位址(永久組位址),位址224.0.0.0保留不做分配,其它位址供路由協議使用;
224.0.1.0~224.0.1.255 是公用組播位址,可以用於internet;欲使用需申請。
224.0.2.0~238.255.255.255 為使用者可用的組播位址(臨時組位址),全網範圍內有效;臨時的
239.0.0.0~239.255.255.255 為本地管理組播位址,僅在特定的本地範圍內有效。
hann@ubuntu:~/hann/test/multicast$ ip ad
1: lo: mtu 65536 qdisc noqueue state unknown group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:
mtu 1500 qdisc pfifo_fast state up group default qlen 1000
link/ether 00:0c:29:d6:fc:b2 brd ff:ff:ff:ff:ff:ff
inet 192.168.52.128/24 brd 192.168.52.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fdf0:1124:445f::2e2/128 scope global
valid_lft forever preferred_lft forever
inet6 fdf0:1124:445f:0:184:5851:1ba7:4686/64 scope global deprecated noprefixroute dynamic
valid_lft 2802sec preferred_lft 0sec
inet6 fe80::3a9a:36ee:25cb:bd22/64 scope link
valid_lft forever preferred_lft forever
struct ip_mreqn ;
#include
#include
#include
#include
#include if.h>
#define server_port
8000
#define client_port
9000
#define maxline
1500
#define group
"239.0.0.2"
int main
(void
)close
(sockfd)
;return0;
}
#include
#include
#include
#include
#include if.h>
#define server_port
8000
#define client_port
9000
#define group
"239.0.0.2"
int main
(int argc, char *ar**)
close
(confd)
;return0;
}
src =
$(wildcard *
.c)targets =
$(patsubst %
.c,%,$
(src))cc
= arm-hisiv500-linux-gcc
cflags
=-wall -g
all:
$(targets)
$(targets):%
:%.c $(cc
) $<
-o $@ $
(cflags).
phony
:clean all
clean:
-rm -rf $
(targets)
linux下實現組播(socket)
組播提供了在網路中進行一對多的傳送的機制,組播可以是在乙個網段內,也可以是跨網段的,不過跨網段需要交換機 路由器等網路裝置支援組播。hosts可以在任何時間加入或者離開組播組,對於組播組的成員沒有所處位置的限制,也沒有數量的限制,d類網際網路位址是用於組播的 224.0.0.0 239.255.25...
linux下c 實現udp組播模式
組播 傳送的資訊,小組內所有成員都能同時接受到。組播發送端跟接收端的具體流程為 傳送方 a.建立socket socket fd socket af inet,sock dgram,0 if socket fd 0 b.設定傳送的群組的位址 set up the destination addres...
Zigbee組播的實現
typedef struct aps group t 2.對aps group t結構體賦值,示例如下 by default,all devices start out in group 1 void osal memcpy void dst,const void generic src,unsig...