2013년 6월 20일 목요일

간단하게 만드는 네트워크 에뮬레이터

글쓴이: EzDoum 글쓴날: 2012년 11월 07일 오전 04:55

네트워크 서비스 개발을 해놓고 필드 환경 시험을 해야할 때 다양한 네트워크 상태를 가정하고 테스트를 해봐야 하는데, 네트워크 시뮬레이터 장비로 테스트 하기에는 장비가 너무 비싸서 어렵다.

지난번 tcp 재전송 관련 대학 자료에서 보니까 Netem (traffic control - linux kernel 기능)을 사용해서 packet delay, packet loss, packet duplication, corruption, re-ordering, traffic limit등을 에뮬레이션 할 수 있겠다.

PC or 모바일 - 개발보드(netem) - 개발보드(제품) 으로 망을 구성하면 별도로 비용을 들이지 않고도 테스트 베드 구축 가능함. 개발보드(netem)가 DVR이니까, HDD에 pcap dump도 가능함.

# Netrm
http://www.linuxfoundation.org/print/5212

# TCP Probe (TCP 특정 포트 측정)
http://www.linuxfoundation.org/print/5242
-> Kprobe를 사용해 tcp_recv 함수에서 hook을 등록해서 Congestion windows와 tcp seq num을 추출해서 trace를 남기는 방법임.
-> 즉, Kprobe를 사용하는 예제 쯤 되겠습니다.
http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/net/ipv4/tcp_probe.c

# getsockopt(TCP_INFO)
http://linuxgazette.tuwien.ac.at/136/pfeiffer.html
-> tcpprobe는 Kernel 레벨인데 이것은 User level에서 getsockopt로 빼내는 방법임.
Rene Pfeiffer가 쓴 다른 글
http://linuxgazette.tuwien.ac.at/authors/pfeiffer.html

# TC 사용법
http://tcn.hypert.net/tcmanual.pdf
http://www.ezdoum.com/stories.php?story=12/09/23/6714721

# Evaluation of TCP retransmission delays
http://home.ifi.uio.no/paalh/students/EspenSoegaardPaaby.pdf
http://www.ezdoum.com/stories.php?story=12/11/06/1194910

  • 첨부 파일: netem_guide.pdf netem_guide.pdf (352 KiB(360,349 Bytes))

  • - 출처: http://www.ezdoum.com/stories.php?story=12/11/07/1721190