네트워크 대역폭 측정
글쓴이: pastime / 작성시간: 월, 2007/01/15 - 2:50오후
사설 네트워크 상에서 동영상 스트리밍을 하는 상황입니다.
홈네트워크 환경 하의 셋탑박스에서 PC나 PDA 등으로 서비스하는 식이어서
많은 클라이언트가 몰릴 것 같지는 않지만
일단은 대역폭 측정 및 제어 관련 API가 필요한 실정입니다.
서버에서 현재 네트워크의 가용 대역폭을 분석하여
적절히 스트리밍 상태를 제어하려고 하는데
현재 네트워크 대역폭을 어떤 식으로 분석/파악해야 할지 감이 잘 안 잡히네요..
(검색해봐도 마땅한 자료를 찾기가 힘들더군요..)
제가 이쪽에 별 지식이 없어서 그런지는 몰라도
로컬 머신의 전송량이 아닌
(다른 서비스들이 사용하고 있는 양을 제외한) 네트워크 자체의 가용량을
(거의) 실시간으로 알아볼 수 있는 좋은 방법이 떠오르질 않습니다.
질문이 좀 모호하게 되어버렸는지 모르겠지만 (^^;)
조언 부탁드립니다.
Forums:
대역폭이라면 로컬
대역폭이라면 로컬 세크먼트쪽에서 외부로 나가는 엣징
포인트에서 측정 하시는게 맞을거고
거기서 할당된 대역폭을 기준으로 하시면 될듯 싶습니다.
.....|.....
a---b---c
.....|.....
Edge point(b)는 일반적으로 L4 나 라우터가 될거고 a(Local Segment)쪽으로
인가된 대역폭을 기준으로 측정 하시면 될듯 합니다.
대역폭에 대한 정보는 SNMP MIB 정보를 활용하시면 될듯 하고
snmp에 대한 구현이 구찮으시다면 장비 설정을 직접 확인 하셔서
참고 하시면 될듯 합니다.
추천하는 방법은 snmp쪽 라이브러리 참고 하셔서 해당 mib정보 몇개는
숙지 하시고 그걸 기준으로 가용성 측정을 하시면 될듯 합니다.
가용성 측정에 대한 방법은 몇가지가 있긴 하지만
간단하게 하시려면
3com 장비 기준
1.3.6.1.2.1.31(IF-MIB (if.mib))
에서 참고 하시면 interface 별로 in/out octet을 알아 볼수 있습니다
이 값들을 적절히 사용하시면 될듯 합니다.
더 자세한 필요 하신 부분은 MIB쪽 레퍼런스를 좀 보시고 필요한
적절한 mib을 구하시면 될듯 합니다.
그리고 인터페이스별 대역폭 설정은 셋업쪽에 있지 않을까 싶습니다.
(외우는걸 별로 좋아 하지 않아서리....)
참고 하시고 더 자세한 부분은 ...-_-다른분께...미룹니다 흐흐..
ps. http://www.mibdepot.com/cgi-bin/vendor_index.cgi?r=3com
위에 링크로 가셔서 필요 밉을 참고 하시면 될듯 합니다.
IF밉이라서 장비가 지원 한다면 좀더 자세한 IP쪽이나 그 위쪽도 참고
가능하실겁니다.
(예로든 경우는 3COM장비 이며, 밉은 장비에 따라 달라 질수도 있지만
기본 밉은 달라질 경우가 극히 드뭅니다.)
감사합니다..
자세한 답변 감사드립니다.
그런데 장비를 이용한 환경에서 거창한 서비스를 하는 상황은 아니고
임베디드 쪽에서 홈 네트워크 식으로 간단하게 서비스하는 입장이라.. ;;
암튼 SNMP는 이용할수 없는 형편입니다..
셋탑박스에서 PC나 PDA 등으로 스트리밍을 하는 상황인데요
간단하게 대역폭을 측정할 수 있는 방법이 없을까해서
질문을 드렸습니다..
제 상황을 자세히 말씀드리지 않아서
이렇게 수고끼쳐드린것 같네요
-_-;;;;; 원하시던
-_-;;;;; 원하시던 것과는 먼 나라 이야기를 했던거 같네요..ㅋ..
snmp 에이전트를 심으시면 원하시는것과 비슷한게 나오긴 하겠지만..
배보다 배꼽이 더 커지는 상황이라서 추천하고 싶진 않구요..
쉽게 하시려면 if 정보를 가져 올수 있는 system call 이 있느걸로
알고 있습니다.
아니면 dev 정보에 있을겁니다.
거기에 device가 10/100/1000 인지 IF가 물린 라인 스피드가 나오고
거기에 현재 current pps/bps를 적용 하시면 되지 않을까요?
-_-정확히 원하시는걸 제가 알고 답변 드리는건지 좀 애매 모호 하네요..
(아...자신 없어진다..)
ps. promiscuous mode(철자가 맞는지..) 로 설정 해두시면
in packet에 대한 카운트를 하는걸로 알고 있습니다.
(수집에 한해서인지는 정확히 모르겠는데..동일 세그먼트 상의 패킷을 stack
에서 카운팅을 하는걸로 아는데...정확한지는....)
nic 설정 할때 promiscuous 로 설정해 보시고 테스트 해보시는 것도
괜찮으실거 같습니다.
감사합니다.. ^^
아.. promiscuous mode가 있었군요!!
그렇게되면 네트워크 상에 돌아다니는 모든 패킷을 받아볼 수가 있겠군요..
그럼 pro.. 모드로 설정하고 in packet을 카운트한 것을
(물론 서버의 out packet도 포함해서) 현재 네트워크의 사용량이라고 보고
나머지를 가용 대역폭으로 보면 되겠네요..
(참, 라인 스피드는 in + out 다 합친 양을 말하는 것이겠죠?)
암튼 감사합니다.
이제야 어느 정도 길이 보이는 것 같습니다..
댓글 달기