넷필터 훅을 이용한 커널 프로그래밍 (문의)
글쓴이: jurlse / 작성시간: 월, 2004/07/26 - 9:50오전
넷필터 훅을 이용하여 커널 프로그래밍 중인데요..
훅 포인트는 IP_FORWARD 입니다..
모듈을 올린 기계가 일반 사용자가 아닌 AP나 라우터 등 이라고 할때
그 모듈의 동작은 TCP에서 특정 패킷을 저장하는 역할을 합니다. 그리고 ack가 오면 저장되어 있는 data일경우 ack를 routing하지 않고 저장된 패킷 중에 그에맞는 패킷을 전송하는 일을 합니다.
문제점이 발생하는데 ack 가 요청하는 데이타가 하나가 아니라 여러개일수 있다는 점입니다. 데이타를 저장하는 모듈이 ip layer라서 fragmentation처리가 안되어있기 때문에 하나의 ack가 요청하는 tcp의 seq가 여러개로 분할되어있다는 점입니다..
문의사항은 ack에 맞는 패킷이 세개로 분할되어 저장되고있는 경우 이 세개를 전부 다음함수인 ip_forward_finish로 전달하여 송신할수 있는 방법이 없을까요..??
Forums:
RE: 넷필터 훅을 이용한 커널 프로그래밍 (문의)
이 부분은 무슨 말씀이신지 이해가 안 됩니다. 좀 더 자세히 설명해 주십시오.
하시고자 하는 일이 fragmented packet 이 도착 하였을 때 이들을 조합하여 하나의 패킷으로 만든다음 ip_forward_finish function 을 호출하시고자 하는 것이라면, 훅 지점에서 net/ipv4/ip_fragment.c 의 ip_defrag function 을 이용할 수 있습니다.
snoop
질문자의 설명을 보충하자면..
snoop 동작방식을 말합니다.
A 에서 B 까지는 유선노드이며, B에서 C까지는 무선노드이죠
B는 AP 라고 생각하면 되겠습니다.
요지는, A 에서 C로 데이터 전송이 있을시 실제 B와C 사이의 무선노드에서
전송에러가 많이 발생함에도 불구하고 A에서부터 다시 전송한다는겁니다.
그래서 이 문제를 A에서 재전송을 하는 방식이 아니라 B에서 패킷을 저장하고
있다가 C에서 재전송 요구시 B에서 보관하던 기존의 데이터를 C에게
보내주는 방식이죠..
질문하신분이 현재 작업하는 모듈이 이 snoop 모듈입니다.
『 아픔은.. 아픔을 달래줄 약이 무엇인지 알면서도 쓰지 못할 때 비로소 그 아픔의 깊이를 알수가 있음이다. 』
『 for return...』
댓글 달기