问题标签 [unicast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
927 浏览

udp - 设置为接收多播数据包的 IPv6 UDP 套接字是否也能够接收单播数据包?

我有一个小客户端程序,它在 IPv6 多播组(例如 ff12::blah:blah%en0)上侦听服务器发出的多播数据包。它运作良好。

服务器有时还想向我的客户端发送一个单播数据包(因为如果该数据包仅与一个客户端相关,那么用它来打扰多播组的所有其他成员是没有意义的)。所以我的服务器只是对我的客户端的 IP 地址和客户端的 IPv6 多播套接字正在侦听的端口执行 sendto()。

如果我的客户端在 MacOS/X 下运行,这可以正常工作;单播数据包由接收多播数据包的同一个套接字接收。在 Windows 下,OTOH,客户端永远不会收到单播数据包(即使它确实收到了多播数据包而没有任何问题)。

我的问题是,是否期望多播侦听器 IPv6 UDP 套接字也应该能够在同一端口上接收单播数据包(在这种情况下,我可能做错了什么,或者 Windows 配置错误)?或者这是在 MacOS/X 下“恰好可以工作”但不能保证的东西,所以它在 Windows 下对我不起作用的事实只是意味着我有错误的期望?

0 投票
1 回答
154 浏览

publish-subscribe - 多播可以与 OMG DDS 标准中的可靠消息传递一起使用,还是需要单播?

我目前正在尝试弄清楚DDS我编写的应用程序。

我的作者和读者目前具有可靠性,因此如果读者错过了一条消息,作者将重新发布该消息。我还使用默认的多播,而不是使用单播来发现发布者和订阅者。

根据多播协议,我只使用端口7000并且7001需要打开。但是,当我使用wireshark 进行分析时,我看到端口70107011(单播)端口也是打开的。

经过一番挖掘,我发现了这个链接,似乎要为读者和作者使用可靠性,你需要启用单播,这就是为什么单播端口也打开并被使用的原因。

是否必须真正启用单播才能可靠地传递消息,如果需要,为什么需要这样做,以及为什么多播不能执行此功能?

0 投票
1 回答
727 浏览

udp - 如何在standalone-ha.xml 中将 Jgroups UDP 设置为单播而不是默认多播

Jgroups 默认使用“IP 多播”向所有成员发送消息(UDP)并用于发现初始成员。但是,如果无法使用多播,则可以将 UDP 配置为发送多条单播消息而不是一条多播消息。要配置UDP 使用多个单播消息来发送组消息而不是使用 IP 多播,必须将 ip_mcast 属性设置为 false。” (根据 jboss 文档https://developer.jboss.org/

我的问题是如何在 Wildfly 中将“ip_mcast”值传递给 false?下面是standalone-ha.xml 中的示例jgroups 子系统。在 xsd 中,我看不到传递此值的方法。请帮忙!!

0 投票
1 回答
239 浏览

testing - Bluez 5 Set L2CAP 扩展功能掩码

我正在尝试设置我的 L2CAP 扩展功能掩码以启用单播无连接数据,以完成蓝牙签名认证。我似乎找不到任何地方可以做到这一点。我试图通过的特定蓝牙 PTS 测试如下:

TC_CLS_UCD_BV_01_C:验证 IUT 在 L2CAP 扩展功能掩码中设置了 UCD 位,以指示支持接收单播无连接数据...

有人知道怎么做这个吗?

谢谢

0 投票
1 回答
552 浏览

network-programming - UDP单播比广播更可靠?

我们有一个当前支持单播和广播的网络引擎——到目前为止我们一直在使用单播,但我正在探索广播功能以减少网络流量。

我的测试似乎表明单播广播更可靠——这不是我期望看到的(我没有强大的网络背景)。

例如,在一个简单的测试场景中,数据包通过千兆以太网 LAN 从主机发送到客户端 - 我可以每秒单播 15,000 个 1000 字节数据包而不会丢失数据包。如果我切换到广播,我只能管理大约 1200 个 1000 字节的数据包,然后遇到 +/- 20% 的数据包丢失。

这是预期的吗?在阅读有关单播和广播之间差异的信息时,我无法找到这个特定问题的明确答案。

如果这确实是预期的行为,那么在这方面(“可靠性”)多播会更类似于单播而不是广播吗?

测试详情

我开发了一个应用程序,它允许操纵各种设置(发送速率、数据包大小、每次“迭代”发送的数据包数量等)。我在本地运行了这个应用程序的几个实例,然后在网络上的其他 PC 上运行了更多实例(我只在我的 PC 和另一台 PC 上运行了一个实例)。

每个数据包都包含发送它的应用程序实例的名称、一个整数 ID(每次应用程序发送数据包时递增)和一个有效负载(通常为 0、500、1000 或 1400 字节大)。

当收到一个数据包时,会检查 ID 字段并确定它是否是预期的 ID(我跟踪我希望从每个应用程序实例接收的下一个 ID)。晚于预期的 ID 表明数据包已丢失或无序到达,早于预期的 ID 表明数据包已无序到达。

发送速率可以修改,默认我使用 20ms 延迟。每次发送的数据包数量也可以修改 - 例如,我可以指定我想每 20 毫秒发送 50 个数据包(每个数据包都有一个唯一的 ID)。

0 投票
2 回答
68 浏览

c# - 通过约定配置的事件不会导致订阅

我的应用程序正在尝试从端点接收事件。
如果我显式订阅<>(),我会在发布端点看到订阅。如果我尝试通过配置约定来获得相同的结果,它会失败。

我错过了什么?

我的配置如下所示:

最相关的文档和示例代码似乎没有提到我应该做的任何其他事情https://docs.particular.net/nservicebus/messaging/conventions?version=core_5

0 投票
1 回答
222 浏览

java - MulticastSocket 确定收到的消息是否为单播

我的服务器目前能够发送和接收多播数据包。我正在添加接收和发送单播数据包的能力。所以我创建了“DatagramSocket uniRecv”和“DatagramSocket uniSend”来模仿多播的完成方式。问题是当我收到一个数据包时,我需要一种方法来判断它是多播还是单播。我认为“multiRecv.receive(packet)”只适用于多播数据包,但显然它也适用于单播数据包。有没有办法在执行 .receive(packet) 之前或之后判断它是哪种数据包?

我需要知道,因为当我发出回复时,必须使用与收到回复相同的方法来完成。因此,如果我收到单播,我需要发送单播,如果我收到多播,我需要发送多播。

另一方面,MulticastSocket 也可以发送单播消息吗?

编辑:虽然接受的帖子是真实的,但我能够找到解决方法。通过强制服务器将数据包发送给我,使用不同的端口进行单播和多播,我能够通过使用 packet.getPort() 找出它是哪一个。

0 投票
1 回答
84 浏览

tcp - JBoss 节点未加入 tcp 独立集群

我正在尝试设置一个独立的 TCP 集群。我看不到两个节点加入集群。

流程截图如下:

jboss 21682 11484 0 07:56 pts/0 00:00:00 /bin/sh /data/jboss/jboss-eap-6.4/bin/standalone.sh -c Standalone-full-ha.xml -b 10.21.141.109 jboss 21789 21682 1 07:56 pts/0 00:00:38 /usr/lib/jvm/java-1.8.0/bin/java -D[独立] -server -XX:+UseCompressedOops -verbose:gc -Xloggc:/ data/jboss/jboss-eap-6.4/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading - Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.modules.policy-permissions=true - Dorg.jboss.boot.log.file=/data/jboss/jboss-eap-6.4/standalone/log/server.log -Dlogging.configuration=file:/data/jboss/jboss-eap-6.4/standalone/configuration/记录。属性 -jar /data/jboss/jboss-eap-6.4/jboss-modules.jar -mp /data/jboss/jboss-eap-6.4/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone - Djboss.home.dir=/data/jboss/jboss-eap-6.4 -Djboss.server.base.dir=/data/jboss/jboss-eap-6.4/standalone -c Standalone-full-ha.xml -b 10.21。 141.109

jboss 28082 25185 0 07:56 pts/0 00:00:00 /bin/sh /data/jboss/jboss-eap-6.4/bin/standalone.sh -c Standalone-full-ha.xml -b 10.21.142.37 jboss 28173 28082 0 07:56 pts/0 00:00:27 java -D[Standalone] -server -XX:+UseCompressedOops -verbose:gc -Xloggc:/data/jboss/jboss-eap-6.4/standalone/log/gc .log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack =true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.modules.policy-permissions=true -Dorg.jboss.boot.log.file=/data/jboss/ jboss-eap-6.4/standalone/log/server.log -Dlogging.configuration=file:/data/jboss/jboss-eap-6.4/standalone/configuration/logging.properties -jar /data/jboss/jboss-eap-6.4 /jboss 模块。jar -mp /data/jboss/jboss-eap-6.4/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone -Djboss.home.dir=/data/jboss/jboss-eap-6.4 -Djboss .server.base.dir=/data/jboss/jboss-eap-6.4/standalone -c Standalone-full-ha.xml -b 10.21.142.37

server.log 条目:

07:56:57,757 INFO [stdout] (ServerService 线程池 -- 67) --------------------------------- ---------------------------------- 07:56:57,757 INFO [stdout] (ServerService 线程池 -- 67 ) GMS: address=pkumarips045001/web, cluster=web, 物理地址=10.21.141.109:7600 07:56:57,758 INFO [stdout] (ServerService Thread Pool -- 67) ------------ -------------------------------------------------- ----- 07:56:57,757 INFO [stdout] (ServerService 线程池 -- 67) 07:56:57,757 INFO [stdout] (ServerService 线程池 -- 67) ----------- -------------------------------------------------- ------ 07:56:57,757 INFO [stdout] (ServerService 线程池 -- 67) GMS: address=pkumarips045001/web, cluster=web, 物理地址=10.21.141.109:7600 07:56:57,758 INFO [stdout] (ServerService 线程池 -- 67) ------------------------------------------------- ------------------------------ 07:57:00,776 信息 [org.infinispan.remoting.transport.jgroups.JGroupsTransport] ( ServerService 线程池 -- 67)ISPN000094:收到新的集群视图:[pkumarips045001/web|0] [pkumarips045001/web]

请求您的帮助。

谢谢你。

0 投票
2 回答
74 浏览

gnuradio - GNURadio 中的单播消息

我有一台 USRP B210 和 E312,它们之间传输的所有消息都是通过广播消息。

有没有办法在 GNURadio 中传输单播消息(点对点)?

如果是的话,你能帮我举个例子吗?

0 投票
1 回答
95 浏览

sockets - 如何通过广播将IP数据包发送到直接连接的Peer?

让我们两台机器直接连接在点对点链路上:

A如何仅通过广播向B发送IP数据包?

如果 A 用Dest mac = ff:ff:ff:ff:ff:ffanddest ip : 192.168.4.255制作数据包,这会使数据包发往 B 吗?如果是,有人可以解释这是如何工作的吗?