ioctl() 과 system() 수행시간 비교
글쓴이: deux9745 / 작성시간: 목, 2003/07/31 - 11:09오전
ioctl()을 이용해서 라우팅 테이블을 수정하는 것과 system()함수를 이용해 라
우팅 테이블을 수정하는 것을 비교했을 때 어떠 함수를 쓰는 것이 더 빠르게 라
우팅 테이블을 수정할 수 있을까요?
사람들에 말에 의하면 ioctl이 확실히 빠르다고 하지만
제가 두개 모두 테스트 해봤는데 둘다 차이가 없는거 같습니다.
제 경우는 패킷을 포워딩하고 있는 라우터의 라우팅 테이블을 수정했을때
라우팅 테이블에 즉시 적용되어 패킷을 수정된 경로로 전송하려고 하는데
위 두함수 모두 테스트 해본결과 즉시 수정되지 않는군요.
즉시 수정되어야 프로젝트를 진행할 수 있는데 고수님들 답변 부탁드립니다.
Forums:
잘 알지는 못하는데.. 그냥 생각이 나는게 있어 적어봅니다.ioc
잘 알지는 못하는데.. 그냥 생각이 나는게 있어 적어봅니다.
ioctl이든, system을 사용하든 시간 차이는 아주 크게 나지 않을듯
싶은데요... 다만, 제가 우려되는건 system()이란 놈이 사람이 console에
다가 손으로 직접입력 하는거랑 같은 원리 일테고 콘솔에서 라우팅테이블
수정하는 만큼의 시간은 당연히 소비될거라고 생각이 된다는거죠. ( 프로그램
내부에서 system("~~~") 처리 시간 = 사람 이 command를 입력해놓고 엔터 탁
치고 결과 반영되기 않을까?? 하는생각. )
즉, 지금 문제는 ioctl,system은 라우팅 테이블 수정을 위한 동작을 충분히
빨리 수행할 거고 이 두 function이 소비하는 시간은 전체 시간의 일부일
거고, 소비되는 시간의 대부분은 라우팅 테이블이 수정되고 적용되는
내부의 동작에서 시간소비가 되지 않나 하는겁니다.
** Inside Of Inside By Forman
그렇다면..
빠르게 라우팅 테이블을 수정할 수있는 방법이 없을까요?
ioctl을 사용하면 빠르꺼라고 생각했는데 생각한대로 그렇지 않은 결과가 나오니까
당황스럽네요.
빠르게 라우팅 테이블을 수정해야 하는데 안그러면 패킷이 일시적으로 엉뚱한곳으로 흐러가 버리게 되는 문제가 있어서요.
해결책이 없나요?
라우팅 테이블은 실행하는 즉시 바뀔지 모르지만..실제 네트워크의
라우팅 테이블은 실행하는 즉시 바뀔지 모르지만..
실제 네트워크의 패킷들은 네트워크 환경의 영향을 크게 받지 않을까요?
제 생각은, system을 쓰든 ioctl을 쓰든 약간의 차이밖에 없을거고,
실제 라우팅 테이블 변화가 적용되는 시간은 네트워크 환경이 영향을 미칠거 같습니다.
댓글 달기