패킷 송수신 관련해서 질문드립니다.

ksa9382의 이미지

안녕하세요. 부스트 asio 라이브러리 이용하여 서버 프로그램 작성중에 막히는 부분이 있어 질문 올립니다.

우선, 세 개 노트북들을 공유기에 각각 이더넷으로 연결해서 MavLink 메시지를 중계하는 기능을 만들고 있습니다.

A의 주소는 192.168.137.16 이며, UDP 10000번 포트를 통해 17바이트의 데이터(MavLink 패킷)를 같은 랜 내의 192.168.137.3:10000(UDP) 주소로 보냅니다.

B의 주소는 192.168.137.3 이며, 10000번 포트(UDP)와 12001번 포트(UDP)를 열어두고 있습니다.
A로부터 받은 데이터를 C로 중계합니다.

C의 주소는 192.168.137.33 이며, B로부터 A의 데이터를 중계받아 처리합니다.

문제는 B가 A로부터 데이터를 정상적으로 받은 후에, C로 송신할 때 입니다.

A->B는 패킷이 정상적으로 UDP 프로토콜로 처리가 되지만, B->C는 프로토콜 인식이 ISO 또는 LLC로 되어버립니다.

원인을 아직까지 모르겠어서 여러 개발자 선배님들께 질문 올립니다.

부족한 질문 읽어주셔서 감사합니다.

File attachments: 
첨부파일 크기
Image icon 중계 문제점.PNG799.13 KB
ymir의 이미지

https://github.com/boundary/wireshark/blob/master/epan/dissectors/packet-llc.c
https://tools.ietf.org/html/rfc2353#section-2.1

12001/udp 가 LLC 포트라서 llc dissector 가 동작했나 보네요.
byte dump 로 봐서 문제 없으면 그냥 무시해도 될 것 같고..
뭔가 정확히 보고 싶으면 해당 패킷에서 decode as 로..
적당한 dissector 를 고르시면 될 것 같습니다.

아니면 일단 포트 번호를 12000 ~ 12004 가 아닌 걸로 바꿔서 다시 떠 보시고..
정상적으로 보이면 일단 그 상태에서 디버깅 하다가..
나중에 다 끝나면 포트 번호만 바꾸셔도 되지 않을까 생각되네요.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

ksa9382의 이미지

감사합니다! 답변 주신대로 와이어샤크에서 LLC로 인식하는 포트 외의 다른 번호로 변경하니까 정상적으로 UDP 패킷으로 인식하네요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.