Multicast Hop 설정 문의

64 views
Skip to first unread message

Chan Seok Lee

unread,
Aug 3, 2010, 6:47:53 PM8/3/10
to Netty Korean User Group
안녕하세요...

문의드립니다. Netty에서 Hop 설정이 따로 있는건지요?
L3, L2 단을 거치면 종단에서 멀티캐스트 data를 받지 못하고 있습니다.

....

DatagramChannelFactory factory = new
OioDatagramChannelFactory(Executors.newCachedThreadPool());

ConnectionlessBootstrap bootStrap = new
ConnectionlessBootstrap(factory);
ChannelPipeline pipeLine = bootStrap.getPipeline();

pipeLine.addLast("stringEncoder", new
StringEncoder(CharsetUtil.UTF_8));
pipeLine.addLast("stringDecoder", new
StringDecoder(CharsetUtil.UTF_8));
pipeLine.addLast("handler", new CaptionMulticastHandler());

bootStrap.setOption("multicast", "true");
...

위에서 옵션이나 추가 설정으로 Hop 설정을 할 수 있나요?

아래는 제가 찾아본 방식인데요.

첫째,
DefaultDatagramChannelConfig defaultConfig = new
DefaultDatagramChannelConfig(new DatagramSocket(5001));
defaultConfig.setTimeToLive(6000); //API를 보게 되면 setTimeToLive(int ttl)
ttl 값은 무엇을 의미하나요? 6000이면 어떤 의미인가요?
이 방식이 Hop 설정에 맞다면 defaultConfig 값을 channel에 설정을 따로 하는 방식(?)이 있나요?

둘째,
bootStrap.setOption("timeToLive", "6000");
와 같이 옵션을 주었는데 방식이 맞는건가요?

감사합니다.

penny

unread,
Aug 4, 2010, 9:05:41 PM8/4/10
to Netty Korean User Group
> defaultConfig.setTimeToLive(6000); //API를 보게 되면 setTimeToLive(int ttl)
> ttl 값은 무엇을 의미하나요? 6000이면 어떤 의미인가요?


TTL이란 홉을 거치면서 줄어드는 값이라고 보시면 되요. 가령 TTL을 8로 설정했다면, 홉을 거치면서 하나씩 줄어들게 되지
요.
즉, 홉을 하나 거치면 TTL은 7이 되고, 그 다음에 또 홉을 거치면 TTL은 6이 되는 식이지요. 6000 이라면 6000개
의 홉을 지나도록 만드는거니, 이론 상, 거의 모든 사이트로 패킷을 보낸다는 의미나 마찬가지입니다. TTL 설정에 관련된 관례적
인 값들이 있는데, 잘은 기억이 안 나네요.
그러므로, 위에서처럼 6000 이라는 큰 값을 주실 필요는 없습니다. 32나 64 정도로만 줘도 될거예요.

bootStrap.setOption("timeToLive", "32");
bootStrap.setOption("timeToLive", "64");

이렇게만 해도 멀티캐스트를 위한 HOP이 설정됩니다.

제 경우, 두 번째 방식을 통해 멀티캐스트를 설정하여 사용하고 있습니다.

Chan Seok Lee

unread,
Aug 4, 2010, 10:25:29 PM8/4/10
to Netty Korean User Group
정말 감사 드립니다. 이런 설정이 있는지 처음 알았습니다...
Reply all
Reply to author
Forward
0 new messages