面向网络的可靠组播(NORM)

Nack Oriented Reliable Multicast (NORM)

本文关键字:NORM 网络      更新时间:2023-10-16

我有一个关于"面向网络的可靠多播" (NORM)的问题。有时接收端出现以下分段错误:

2011/08/16 11:38:55 - signals.cpp:73: Segmentation Fault!
2011/08/16 11:38:55 - signals.cpp:74: PID = 467
2011/08/16 11:38:55 - signals.cpp:75: info.si_signo = 11
2011/08/16 11:38:55 - signals.cpp:76: info.si_errno = 0
2011/08/16 11:38:55 - signals.cpp:78: info.si_code  = 1 [SEGV_MAPERR]
2011/08/16 11:38:55 - signals.cpp:83: info.si_addr  = 0x1f51
2011/08/16 11:38:55 - signals.cpp:159: reg[00] = 0xe7b6c70816994fb2
2011/08/16 11:38:55 - signals.cpp:159: reg[01] = 0xb6c70868e94f1391
2011/08/16 11:38:55 - signals.cpp:159: reg[02] = 0x0000003fa5be8121
2011/08/16 11:38:55 - signals.cpp:159: reg[03] = 0x0000000000000000
2011/08/16 11:38:55 - signals.cpp:159: reg[04] = 0x00000000102c1e10
2011/08/16 11:38:55 - signals.cpp:159: reg[05] = 0x0000000000000170
2011/08/16 11:38:55 - signals.cpp:159: reg[06] = 0x000000001020ae20
2011/08/16 11:38:55 - signals.cpp:159: reg[07] = 0x0000000000000002
2011/08/16 11:38:55 - signals.cpp:159: reg[08] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[09] = 0x0000000044367b8c
2011/08/16 11:38:55 - signals.cpp:159: reg[10] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:159: reg[11] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[12] = 0x00000000000000ea
2011/08/16 11:38:55 - signals.cpp:159: reg[13] = 0x00000000102c1e80
2011/08/16 11:38:55 - signals.cpp:159: reg[14] = 0x00000000000001ea
2011/08/16 11:38:55 - signals.cpp:159: reg[15] = 0x0000000044367b40
2011/08/16 11:38:55 - signals.cpp:159: reg[16] = 0x0000003ce5a53f52
2011/08/16 11:38:55 - signals.cpp:159: reg[17] = 0x0000000000010202
2011/08/16 11:38:55 - signals.cpp:159: reg[18] = 0x0000000000000033
2011/08/16 11:38:55 - signals.cpp:159: reg[19] = 0x0000000000000004
2011/08/16 11:38:55 - signals.cpp:159: reg[20] = 0x000000000000000e
2011/08/16 11:38:55 - signals.cpp:159: reg[21] = 0x0000000000006a07
2011/08/16 11:38:55 - signals.cpp:159: reg[22] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:93: Stack trace:
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720eb10]
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSegmentPool::Get()+0x1a
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormStreamObject::WriteSegment(NormBlockId, unsigned short, char const*)+0x590
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormObject::HandleObjectMessage(NormObjectMsg const&, NormMsg::Type, NormBlockId, unsigned short)+0xf79
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSenderNode::HandleObjectMessage(NormObjectMsg const&)+0xfb1
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::ReceiverHandleObjectMessage(timeval const&, NormObjectMsg const&, bool)+0x2b4
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::HandleReceiveMessage(NormMsg&, bool, bool)+0xfd
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::RxSocketRecvHandler(ProtoSocket&, ProtoSocket::Event)+0x87
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::LISTENER_TYPE<NormSession>::on_event(ProtoSocket&, ProtoSocket::Event)+0x33
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::OnNotify(ProtoSocket::Flag)+0x1c8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:ispatch()+0xb2
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher::Run(bool)+0x1a8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:oThreadStart(void*)+0x94
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720673d]
2011/08/16 11:38:55 - signals.cpp:143:   /lib64/libc.so.6 : clone()+0x6d
2011/08/16 11:38:55 - signals.cpp:154: End of stack trace.
(END)

库配置为流模式工作。已安装的版本有:规范-静态- 1.4 - b4 - 0规范- 1.4 - b4 - 0protolib - 2.1 - b1 - 0protolib -静态- 2.1 - b1 - 0

你能分享一些关于这个图书馆的信息吗?它在生产环境中可靠吗?它有任何替代实现吗?

plante Broadcast提供了NORM的另一种实现,但它不是新的。

http://planete-bcast.inrialpes.fr/rubrique.php3?id_rubrique=4

我建议尝试一个受支持的主动可靠的多播协议,以100%的偏差呈现:

http://en.wikipedia.org/wiki/Pragmatic_General_Multicast

我的协议实现:

http://code.google.com/p/openpgm/