udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是啥?腾讯qq 是用tcp还是udp?求教高手详解谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是啥?腾讯qq 是用tcp还是udp?求教高手详解谢谢相关的知识,希望对你有一定的参考价值。
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子层就接收该数据帧并向上层发送。
参考技术A 这个还真不知道情况他们的原理是怎么样的,我好像知道有一款ESFramework的通信框架支持这样的通信,你可以去研究一下。以上是关于udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是啥?腾讯qq 是用tcp还是udp?求教高手详解谢谢的主要内容,如果未能解决你的问题,请参考以下文章