2025年udp广播和组播区别(udp和udp组播)

udp广播和组播区别(udp和udp组播)nbsp 一 UDP UDP 是一个支持无连接的传输协议 全称是用户数据包协议 User Datagram Protocol UDP 协议无需像 TCP 一样要建立连接后才能发送封装的 IP 数据报 也是因此 UDP 相较于 TCP 效率更高一些 但是由于没有建立连接 UDP 只管发送数据 不管数据是否被接收 所以 UDP 传输数据是不安全的 容易丢包 通信流程 服务端 1

大家好,我是讯享网,很高兴认识大家。



 一、UDP

  UDP:是一个支持无连接的传输协议,全称是用户数据包协议(User Datagram Protocol)。UDP协议无需像TCP一样要建立连接后才能发送封装的IP数据报,也是因此UDP相较于TCP效率更高一些,但是由于没有建立连接,UDP只管发送数据,不管数据是否被接收,所以UDP传输数据是不安全的,容易丢包。

  通信流程:

  服务端

    1、创建通信用套接字:socket(AF_INET, SOCK_DGRAM, 0);   和TCP不同之处在于第二个参数改为SOCK_DGRAM。

    2、绑定套接字:bind(…);

    3、通信:接收数据,recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);。发送数据,sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, const socklen_t *addrlen);  第五个参数都是另一端的信息,src_addr是传出参数。

  客户端同服务端。

二、广播

  广播:在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播的使用范围仅在本地子网中,通过路由器控制广播的传输。广播地址:xxx.xxx.xxx.255。

  通信流程:

    1、创建并绑定套接字,同UDP。

    2、初始化客户端信息,主要是设置客户端ip为广播地址。

    3、开放服务器的广播权限:int flag = 1;   setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag));


讯享网

    4、给客户端(子网内的主机)发送数据。

  客户端同UDP,不能向服务器发送数据。

三、组播

  组播:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个接收者传输相同的数据,也只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。组播不同于广播的地方在于其不局限于局域网,而且其效率比广播更高。

  组播地址: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,本地管理组播地址, 仅在特定的本地范围内有效。

  通信流程:

    1、创建并绑定套接字,同UDP。

    2、初始化客户端地址信息,设置组播地址和客户端要绑定的端口。

    3、开放组播权限

    客户端,绑定端口要与服务端设置的相一致

    客户端加入到组播地址

 

小讯
上一篇 2025-04-19 13:42
下一篇 2025-04-28 09:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/193962.html