소켓 통신시 각 레이어별로 패킷을 확인해보고 싶은데...
글쓴이: gnoygnas / 작성시간: 금, 2006/01/20 - 5:11오후
늘 이곳에서 도움만 받는군요...^^
우선 목적부터 말씀드리면 클라이언트에서 보낸 데이타가 서버에서 받아 들이고 다시 클라이언트로 리턴시켜 통신이 제대로 되는지 확인하고 싶습니다.
단순히 서버/클라이언트 에코 프로그램을 짜서 결과값을 확인하면 되는데요, 문제는 어느 부분에서 문제가 생기는지 파악이 안되고 있습니다. 하나의 홈서버가 있고 그 홈서버에는 microC/OS가 올라가 있는데 쉽게 해결이 안되네요...문제가 어느부분에서 생기는지 파악조차 되질 않기에 맴맴~맴돌고 있습니다..ㅡ,.ㅡ;;
그래서 각 레이어별로 보낸 데이타가 제대로 아랫단으로 전송이 되는지 확인하고 싶습니다. 리턴시에는 그 반대로 제대로 패킷이 구성되어 올라오는지도요...
얼핏 듣기로 ioctl로 네트워크 인터페이스를 직접 제어해서 확인해 볼 수 있다고 하는데 관련된 정보도 찾기 힘드네요...샘플이라도 있으면 응용이라도 해보겠는데....
리눅스에서 우선 작업해보면서 분석하고 나중에 MicroC/OS에 적용해볼 생각입니다..
그럼....이런저런 조언 부탁드리겠습니다..
읽어주셔서 감사합니다.
Forums:
tcpdump(또는, ethereal 등)를 실행시켜서 패킷을(layer
tcpdump(또는, ethereal 등)를 실행시켜서 패킷을(layer 2 수준에서) 수집해서, 이를 레이어별로 조합해보고 함으로써, 이용하여 트래픽을 분석해 볼 수 있습니다.
보통 질문자님과 같은 경우에 디버깅시 용이합니다.
커널 모듈을 하나 짜서 소켓 버퍼내용을 차례대로 확인해 보면 확실하게 알
커널 모듈을 하나 짜서 소켓 버퍼내용을 차례대로 확인해 보면 확실하게 알 수 있겠네요...
그런데 윗분 말씀대로 TCPDUMP 로 하는게 훨씬 간단하겠네요...--;
net_send_packet()을 ioctl로 제어가 가능한가요?
우선 답변 감사드립니다..
ethereal로도 분석을 하고 있지만 직접 소스 수준에서 제어를 해보고 싶습니다..
제목처럼 ioctl()로 net_send_packet()이나 net_rx() 등의 하위 레벨 함수를 제어할 수 있는지 궁금하네요....
꼭 ioctl()이 아니어도 다른 방법이 있다면 상관 없을듯 합니다.
One must, In fact, Love your pursuit
My home is below...Well, just go own your gait!
libpcap 사용하세요.전에 기자들이 몇번 열심히 떠들었던 스니
libpcap 사용하세요.
전에 기자들이 몇번 열심히 떠들었던 스니퍼도 만들수 있습니다(코드 100줄 안됨). 단 쓰시는건 님책임이고요 ~ :lol: :lol: :lol: :evil: :evil: :evil:
Written By the Black Knight of Destruction
각각의 SYN, SYN+ACK, ACK 패킷을 구분해서 캡춰하고 싶은데...
답변 감사합니다...제가 방향을 잡는데 많은 도움이 되었습니다.
현재 아래 링크와 같이 윤상배님의 libpcap을 이용한 프로그래밍 강좌를 보면서 하나하나 나아가고 있는데요...
패킷 송수신을 위한 설정을 하는 단계인 SYN, SYN+ACK, ACK 단계시 마다 각각에 대한 패킷을 캡춰하고 싶은데 가능할까요?
문제가 생기는 부분을 하나하나 체크하면서 상위레벨로 올라갈 예정입니다...
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/libpcap%C0%BB_%C0%CC%BF%EB%C7%D1_%C7%C1%B7%CE%B1%D7%B7%A1%B9%D6
One must, In fact, Love your pursuit
My home is below...Well, just go own your gait!
댓글 달기