udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是什么?腾讯qq 是用tcp还是udp?求教高手详解谢谢

2024-11-02 05:30:49
推荐回答(2个)
回答(1):

QQ应该是UDP吧,tcp是要通信前要建立好连接的,QQ可以离线传送文件

一对多就是“组播”的通信模式咯,源端将数据发送至一个组地址,只有加入该组的成员可以接收该数据。相比单播来说,使用组播方式传递信息,用户的增加不会显著增加网络的负载;不论接收者有多少,相同的组播数据流在每一条链路上最多仅有一份,这样就及时解决了网络中用户数量不确定的问题。另外,相比广播来说,组播数据流仅会流到有接收者的地方,不会造成网络资源的浪费。

关于UDP协议如何实现组播,去分析一下UDP报文格式,及封装IP头后的格式吧,源地址与目的地址应该在IP头里 

说一下数据链路层吧,单播情况的数据收发过程如下:

1.当上层要发送数据的时候,把数据提交给MAC子层。

2.MAC子层把上层提交来的数据放入缓存区。

3.然后加上目的MAC地址和自己的MAC地址(源MAC地址),计算出数据帧的长度,形成以太网帧。

4.以太网帧根据目的MAC地址发送到对端设备。

5.对端设备用帧的目的MAC地址,跟mAC地址表中的条目进行比较

   只要有一项匹配,则接收该以太网帧

   若无任何匹配的项目,则丢弃该以太网帧

以上描述的是单播情况。如果上层应用程序加入一个组播组,数据链路层根据应用程序加入的组播组形成一个组播MAC地址,并把该组播MAC地址加入MAC地址表。这样当有针对该组的数据帧的时候,MAC子层就接收该数据帧并向上层发送。

回答(2):

这个还真不知道情况他们的原理是怎么样的,我好像知道有一款ESFramework的通信框架支持这样的通信,你可以去研究一下。