2013-08-16 57 views
7

Próbuję pracować z protokołem komunikacyjnym (konkretnie S1AP) i próbuję zdefiniować komunikaty do przetestowania.Co to jest plik ASN i jak z niego korzystać?

Specyfikacja LTE 36.413 określa ten protokół, a także podaje definicję pliku ASN.1 na dole pliku pdf. Widziałem pliki ASN używane w dyrygent dla WireShark, i domyślam się, że mogę być w stanie użyć go do generowania wiadomości zgodnie ze specyfikacją.

Zastanawiam się, jak używać plików ASN.1. Badałem i znalazłem informacje o kompilatorach ASN.1 i innych związanych z tym informacjach, ale wszystkie informacje sprawiły, że byłem bardzo zdezorientowany, ponieważ nikt nie wyjaśnił wyraźnie, jak z niego korzystać. Czy ktoś mógłby mi pomóc zrozumieć, jak z niego korzystać?

Odpowiedz

8

Po wielu polowaniach dowiedziałem się, jakie są pliki ASN.1.

Te pliki ASN.1 zasadniczo zawierają opis protokołu i opis pakietu. Korzystając z tych plików ASN.1, możesz wygenerować pliki .c i .h, które będą używane w niektórych aplikacjach, z których chcesz korzystać. Jest to bardzo przydatne, ponieważ nie trzeba tworzyć własnej bazy danych wiadomości. Musisz tylko skompilować pliki ASN.1, a pliki C zostaną skompilowane do twojego użytku.

Teraz musisz się zastanawiać, w jaki sposób mogę to skompilować? Cóż, zazwyczaj potrzebujesz jakiegoś kompilatora ASN.1. Za niektóre trzeba zapłacić, ale udało mi się znaleźć wersję open source, która działa z Linuksem i Windows. Istnieje potencjał, że może działać również na MAC, ponieważ jest oparty na systemie UNIX, o ile masz niezbędne zależności. W każdym razie tutaj jest link do tej strony. Nie wyjaśniam, jak go używać, ponieważ myślę, że ta strona świetnie spisuje się podczas dokumentowania użycia. Mam nadzieję, że to pomaga komuś tak bardzo, jak mi pomogło.

Zapoznaj się z kompilator tutaj http://lionet.info/asn1c/blog/

Jeśli link nie działa, być może trzeba spróbować handlowy jeden taki jak OSS Nocklava ASN1.C kompilatora lub jeśli pieniądze są obawy, to może być Warto utworzyć własną bazę danych, pomimo czasu, który zajmie.

Wszystkiego najlepszego.

5
  1. ASN jest językiem opisu danych. Tak jak powiedziałeś, znaleziona definicja pliku ASN określa reprezentację danych twojej wiadomości, aby była zgodna z kodowaniem i dekodowaniem w ramach protokołu S1AP.

  2. Plik ASN musi zostać skompilowany. Dane wyjściowe kompilacji dadzą pewną specyfikację kodu i treść (w większości przypadków plik .h i .c), aby automatycznie serializować/deserializować dowolne dane komunikatu do modelu danych S1AP, niezależnie od platformy kodowanej i wysyłanej do.

  3. Aby szybko sprawdzić i dowiedzieć się, jak używać schematu ASN.1 można używać tej usługi: http://asn1-playground.oss.com/

  4. Również dla bardziej dogłębnie i zwięzłe wyjaśnienie, co sprawia ASN.1 potężny proszę przeczytać : https://www.thanassis.space/asn1.html. Autor ma również wspólny kompilator ASN.1 open source opracowany pod nadzorem Europejskiej Agencji Kosmicznej.

  5. Na marginesie, to może warto bada wykorzystaniem protokołu buforów, gdyż reprezentuje bardzo podobną technologię rozszerzonej z, prawdopodobnie, bardziej nowoczesnych funkcji, takich jak tyłu/do przodu zgodności opisu danych i refleksji: https://developers.google.com/protocol-buffers/docs/cpptutorial

+0

Cześć Olivier, dziękuję za Twój wkład. StackOverflow lubi być niezależną stroną. Przypisywanie źródeł jest znakomite, ale odpowiedzi na takie linki są niezadowolone. Czy możesz edytować swój wpis, aby uwzględnić odpowiednie szczegóły ze źródeł, które cytujesz? – AndyG

+0

Dzięki za edycję. To robi różnicę. – AndyG