네트워크 대역폭 측정

pastime의 이미지

사설 네트워크 상에서 동영상 스트리밍을 하는 상황입니다.
홈네트워크 환경 하의 셋탑박스에서 PC나 PDA 등으로 서비스하는 식이어서
많은 클라이언트가 몰릴 것 같지는 않지만
일단은 대역폭 측정 및 제어 관련 API가 필요한 실정입니다.

서버에서 현재 네트워크의 가용 대역폭을 분석하여
적절히 스트리밍 상태를 제어하려고 하는데
현재 네트워크 대역폭을 어떤 식으로 분석/파악해야 할지 감이 잘 안 잡히네요..
(검색해봐도 마땅한 자료를 찾기가 힘들더군요..)

제가 이쪽에 별 지식이 없어서 그런지는 몰라도
로컬 머신의 전송량이 아닌
(다른 서비스들이 사용하고 있는 양을 제외한) 네트워크 자체의 가용량을
(거의) 실시간으로 알아볼 수 있는 좋은 방법이 떠오르질 않습니다.

질문이 좀 모호하게 되어버렸는지 모르겠지만 (^^;)
조언 부탁드립니다.

bleu의 이미지

대역폭이라면 로컬 세크먼트쪽에서 외부로 나가는 엣징
포인트에서 측정 하시는게 맞을거고

거기서 할당된 대역폭을 기준으로 하시면 될듯 싶습니다.

.....|.....
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장비 이며, 밉은 장비에 따라 달라 질수도 있지만
기본 밉은 달라질 경우가 극히 드뭅니다.)

pastime의 이미지

자세한 답변 감사드립니다.

그런데 장비를 이용한 환경에서 거창한 서비스를 하는 상황은 아니고
임베디드 쪽에서 홈 네트워크 식으로 간단하게 서비스하는 입장이라.. ;;
암튼 SNMP는 이용할수 없는 형편입니다..

셋탑박스에서 PC나 PDA 등으로 스트리밍을 하는 상황인데요
간단하게 대역폭을 측정할 수 있는 방법이 없을까해서
질문을 드렸습니다..

제 상황을 자세히 말씀드리지 않아서
이렇게 수고끼쳐드린것 같네요

bleu의 이미지

-_-;;;;; 원하시던 것과는 먼 나라 이야기를 했던거 같네요..ㅋ..

snmp 에이전트를 심으시면 원하시는것과 비슷한게 나오긴 하겠지만..

배보다 배꼽이 더 커지는 상황이라서 추천하고 싶진 않구요..

쉽게 하시려면 if 정보를 가져 올수 있는 system call 이 있느걸로
알고 있습니다.

아니면 dev 정보에 있을겁니다.

거기에 device가 10/100/1000 인지 IF가 물린 라인 스피드가 나오고
거기에 현재 current pps/bps를 적용 하시면 되지 않을까요?

-_-정확히 원하시는걸 제가 알고 답변 드리는건지 좀 애매 모호 하네요..
(아...자신 없어진다..)

ps. promiscuous mode(철자가 맞는지..) 로 설정 해두시면
in packet에 대한 카운트를 하는걸로 알고 있습니다.
(수집에 한해서인지는 정확히 모르겠는데..동일 세그먼트 상의 패킷을 stack
에서 카운팅을 하는걸로 아는데...정확한지는....)
nic 설정 할때 promiscuous 로 설정해 보시고 테스트 해보시는 것도
괜찮으실거 같습니다.

pastime의 이미지

아.. promiscuous mode가 있었군요!!
그렇게되면 네트워크 상에 돌아다니는 모든 패킷을 받아볼 수가 있겠군요..

그럼 pro.. 모드로 설정하고 in packet을 카운트한 것을
(물론 서버의 out packet도 포함해서) 현재 네트워크의 사용량이라고 보고
나머지를 가용 대역폭으로 보면 되겠네요..
(참, 라인 스피드는 in + out 다 합친 양을 말하는 것이겠죠?)

암튼 감사합니다.
이제야 어느 정도 길이 보이는 것 같습니다..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.