2017-04-04 3 views
1

나와 저의 친구가 프로젝트를 시작할 것입니다. 우리는 서버와 클라이언트 간의 기본적인 통신을 시뮬레이션하려고합니다. 구현할 의사 코드가 있습니다. 이 통신을 사용하여 우리는 다양한 방식으로 통신 실패를 탐지하려고합니다. 우리는 두 소프트웨어 모두에 새로운 제품이므로 우리가 사용해야하는 소프트웨어에 대한 조언을 구하고 싶습니다. 우리를 올바른 방향으로 이끌어 줄 수있는 어떤 찬성이라면 & 죄수는 좋을 것입니다.OMNET ++ 또는 NS3 중에서 선택

간단한 TCP/IP 프로토콜이 좋습니다. 파이썬, C#, 자바, C 또는 C++이 좋을 것입니다. 서버 또는 클라이언트 간의 통신에 결함이 있는지 여부를 감지하기 위해 간단한 알고리즘을 사용하기 때문에 구체적인 요구 사항은 없습니다.

+0

몇 가지 추가 정보는 두 시뮬레이터 중 하나를 지시하는 데 도움이됩니다. 클라이언트/서버의 프로토콜 스택 (아마도 TCP/IP) 시뮬레이션에 관심이 있습니까? 프로젝트 시나리오 적용을위한 특정 요구 사항은 무엇입니까? 프로그래밍 언어 또는 시스템 환경 설정? –

+0

@MichaelKirsche 님이 귀하의 질문에 답변하기 위해 텍스트를 추가했습니다. –

+0

https://www.google.de/search?q=comparison+of+network+simulators&gws_rd=cr,ssl&ei=3vXjWLrHEsihUd7lu-AN 이것은 좋은 출발점으로 도움이 될 것입니다. . 저는 OMNeT ++ 사용자입니다 (따라서 조금 편향되었을 수 있습니다). 그러나 그것은 훌륭한 사용자 매뉴얼과 좋은 입문서를 가지고 있습니다. 유용성이 주요 관심사라면, 그것을 위해 가십시오. – user4786271

답변

6

요약하면 OMNeT ++ 및 NS-3 모두 개별 이벤트 시뮬레이터는 정확한 요구에 따라 적절한 선택이 될 수 있습니다.

NS-3은 C++ 및 (선택 사항) Python을 사용하여 네트워크 프로토콜을 시뮬레이트하고 다른 응용 분야 중 Linux 커널에서 직접 가져온 실제 구현을 시뮬레이트하는 네트워크 시뮬레이터입니다. 강력한 점은 플랫 패킷의 정확한 표현, 좋은 에뮬레이션 및 소켓 지원, Wireshark와 같은 다른 도구와 좋은 커뮤니티 지원을 통한 분석을 가능하게하는 PCAP 출력입니다. 약점 (다른 것과 비교)은 아마 조상 ns-2에 대한 being enhanced compared 인 시각화이지만 흔적의 애니메이션은 더 많거나 적습니다. 지원되는 모델의 개요는 a look at this website입니다.

OMNeT ++에는 시뮬레이션 실행을위한 고유 한 IDE (Eclipse 기반) 및 GUI (요즘 QT 기반)가 함께 제공됩니다. 멋진 overview of the IDE is available online. OMNeT ++는 C++을 사용하여 프로토콜과 응용 프로그램의 소스 코드를 정의하고 자체 NED 언어를 사용하여 이러한 구현을 (하위) 모듈과 네트워크에 결합하여 차례로 시뮬레이션합니다. 시뮬레이터는 NS-3보다 심각하게 뛰어난 시각화를 지원합니다. NS-3과 마찬가지로 사전 정의 된 모델 라이브러리가 있습니다. 시뮬레이션 모델은 대개 큰 프레임 워크에서 그룹화되며, the INET framework이 귀하의 경우에 가장 적합한 모델이 될 것입니다. 여기에 a list of models included in INET이 있습니다. Stackoverflow 나 the OMNeT Google Group에서 볼 수 있듯이 커뮤니티 지원도 꽤 좋습니다.

귀하의 진술 ("클라이언트와 서버 간의 잘못된 통신 감지")에서 IP/TCP 계층이 아닌 응용 프로그램 계층의 통신 오류에 관심이 있다고 가정합니다. 두 시뮬레이터 모두 TCP/IP 모델을 제공하지만, 이더넷 또는 WLAN의 상세한 시뮬레이션에 관심이 있다면 OMNeT ++가 더 좋은 시작일 수 있습니다. VM에서 실행중인 기존의 사용자 지정 응용 프로그램을 사용하고 둘 사이의 통신을 에뮬레이션하려면 NS-3을 선택하는 것이 좋습니다. 하위 레이어를 제외하고 엔티티 간의 기본적인 메시지 교환을 구현하기 위해 OMNeT ++를 선호 할 수도 있습니다.