패킷 송수신 관련해서 질문드립니다.
글쓴이: ksa9382 / 작성시간: 월, 2020/07/06 - 7:09오후
안녕하세요. 부스트 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:
첨부 | 파일 크기 |
---|---|
![]() | 799.13 KB |
Forums:
음 ..
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 』
포트 변경 후 정상인식
감사합니다! 답변 주신대로 와이어샤크에서 LLC로 인식하는 포트 외의 다른 번호로 변경하니까 정상적으로 UDP 패킷으로 인식하네요.
댓글 달기