2012-06-27 23 views
5

저는 파이썬을 사용하여 디지털 라디오 용 시뮬레이터를 만들고 있습니다. 라디오는 RF를 통해 RS-232 포트와 이더넷 포트 중 하나를 릴레이하며 한 쌍의 라디오는 끊김없는 파이프를 만듭니다. 따라서 시뮬레이터는 쌍으로 사용되며, RF 링크를 시뮬레이트하는 파이프가있어 물리적 인 인터페이스, 가상 인터페이스 또는 터널을 사용하여 각 엔드에 연결할 수 있습니다.파이썬에서 네트워크 인터페이스 시뮬레이션?

RF 직렬 포트의 경우 PySerial 및 가상 직렬 포트를 사용하여 시뮬레이터를 가능한 한 다양하게 만듭니다. 시뮬레이터를 실제 직렬 포트, 네트워크 소켓 또는 다른 로컬 프로그램에 연결할 수 있습니다 . 서로 다른 OS마다 가상 직렬 포트를 만드는 데 사용 된 도구 외에도이 방식은 완전히 교차 플랫폼입니다.

가상 인터페이스를 통해 로컬 프로그램과 네트워크를 공유하고, 공유 네트워크 인터페이스를 통해 원격 프로그램을 사용하고, 로컬 프로그램을 사용하여 원격 프로그램을 사용하여 원격 프로그램과 네트워크로 연결할 수 있기를 바랍니다. 모의 실험 장치. 그러나 지금까지이 작업을 수행하는 간단한 방법을 찾지 못했습니다. 나는 SLIP/PPP, TAP/DUN, pcap/SOCK_RAW, 그리고 다른 가능성들을보고 있었고 명백하거나 일반적인 해결책이 없다.

키 어려움은 이더넷 프로토콜 자체의 수준에서 IP 수준 아래의 전체 이더넷 인터페이스와 관련이있는 것처럼 보입니다. 단 몇 개의 포트 인 경우 솔루션이 상대적으로 간단합니다. 아니면 무언가를 분명히 놓치고 있습니까?

RF 직렬 인터페이스 솔루션과 같이 다양한 방식으로 파이썬을 사용하여 RF 이더넷 인터페이스를 만들고 사용하려면 어떻게해야합니까?

+0

[Dummynet] (http://info.iet.unipi.it/~luigi/dummynet/) 및 [ns-3] (http://www.nsnam.org/wiki/index.php/Main_Page) 흥미로운 것처럼 보입니다. – BobC

+0

TAP (또는 TUN) 인터페이스를 추가하면 좋을 것 같습니다. – BobC

답변

3

많은 사람들이 게시 한 답변으로 상자 밖에서 생각하게되었습니다.

내 접근 방식은 정말 놀랍고 다양한 도구 인 Dummynet을 사용하는 것입니다. 불행히도 Dummynet Windows 및 Linux 포트는 잘 관리되지 않아 BSD를 실행할 예정입니다.

그러나 * BSD 이미지를 VM으로 실행할 수도 있기 때문에 가상 인터페이스 처리를 크게 단순화하므로 작업이 단순 해집니다.

크기가 걱정된다면 필자는 시뮬레이터 용으로 작은 맞춤 시스템을 만들기 위해 picoBSD 또는 nanoBSD를 사용할 수 있습니다.

관련 문제