[[프로그래밍_NOTE]]/Window Programing

NIC , NDIS , Daemon(system daemon) , inetd , HOP(Hop Count)

갑빠돌격기 2008. 8. 11. 16:02
NIC ( Network Interface Card )                                                            
     NIC는 네트워크상에서 다른 컴퓨터 시스템에 데이터를 보내거나 받을 때 사용하기 위한
     하드웨어를 말한다. 이런 종류의 하드웨어는 모뎀이나 랜카드 등이 해당되는데 ,
     각각의 NIC는 자신에게 주어진 유일한 식별번호를 가지고 있다.
     이 식별 번호는 네트워크에서 아주 중요하게 쓰인다.

NDIS ( Network Driver Interface Specification )                                        
     NDIS는 Microsoft 사와 3Com  사가 개발한 것으로 네트워크 장치의 드라이버를 연결하는
     일종의 인터페이스이다. 이 인터페이스를 통하여 프로그래머는 상대 시스템의 장치의
     종류에 상관없이 NDIS만을 호출하여 프로그래밍을 할 수 있도록 한다.

DAEMON (System Daemon)                                                                
     데몬은 일종의 백그라운드 작업을 의미하는 용어이다.
     네트워크에서의 데몬은 대부분이 서버인데, 서버는 보통 사용자의 접근을 계속해서
     기다려야 하기 때문에 백그라운드 프로세싱이 필요하다. 예를 들어 여러분이 아파치
     웹서버를 실행했거나 윈도우즈 2000서버 패밀리를 시스템에 사용할 경우를 생각해 보자.
     웹서버는 항상 작업중이어야 하고 , 그 작업의 상태는 여러분의 눈에 보일 필요가 없다.
     특히 윈도우즈 서버 패밀리는 각종 데몬들이 시스템 윈도우즈 부팅과 동시에 실행되는데
     telnet , ftp , http 등의 잘 알려진 서버들이 모두 데몬이다. 물론 데몬에는 서버만 존재하는
     것은 아니다.

inetd                                                                                              
     데몬은 항상 서버에서 실행된다. 데몬이 실행되면 시스템의 자원을 소비 하는데,
     만은 수의 데몬이 동시에 실행되면 상당한 자원이 낭비된다.
     만일 여러분이 윈도우즈 서버 패밀리나 리눅스를 실행해본 적이 있다면 , 수많은 데몬들이
     OS시작과 더불어 실행되고 있는 것을 본 적이 있을 것이다.
     그러나 이러한 데몬들이 모두 외부의 접근을 받아주고 있는 경우는 드물어서 시스템자원을
     낭비하는 경우가 많다. 데본들은 항상 어떤 서비스를 준비하고 있어야 하기 때문이다.
     즉, 서버는 클라이언트의 접근이 언제 이루어질지 모르므로 항시 대기하고 있어야만 한다.
     하지만 언제 접근할지도, 어느 정ㄷ도의 접근할지도 모른다. 심한 경우 하루에 단 한번
     접근할 수도 있다.
     inetd는 이런 데몬들이 시스템 자원들을 쓸데없이 낭비하지 않도록 교통 정리를 하는
     것으로 , inetd역시 데몬의 일종이다. inetd는 클라이언트의 접근이 있으면 그때서야
     필요한 데몬을 실행시킨다. 즉 , 시스템의 자원을 효율적으로 관리해 주는 데몬이다.
     그러나 반드시 inetd 가 효율적으로 만들어 주지는 않는다. 예를 들어 우리가 웹서버를
     운영할 경우 항상 램에 상주해 있는 효율적이다. 왜냐하면 우리는 우리는 웹사이트에
     사용자가 접근할 것을 예상하기 때문이다. 하지만 해당 시스템에 FTP서버를 같이 사용하는
     경우를 생각해 보면 FTP서버의 경우 일정 기간을 제외하고는 아주 사용빈도가 낮을 것이라
     예상되는 경우 inetd에 등록을 해놓는 것이 좋다. 하지만 웹서버 데몬은 등록하지 않는 것이
     좋을 것이다.

HOP ( Hop Count )                                                                            
     홉(hop)은 하나의 링크를 의미한다. 링크란 네트워크 내에서 경유하게 되는 하나의
     단계를 의마한다. 예를 들어 송신측을 출발한 패킷은 몇 번의 라우터를 거쳐 수신측에
     이르는데, 여기에서 각 라우터를 링크라고 생각하면 된다. 따라서 hop을 많이 거칠수록
     목적지를 찾는 데 오래 걸린다는 의미가 되기도 한다.
     홉 카우트는 패킷이 목적지까지 도착하는데 경유하는 링크의 수를 의미한다.
     홉 카운트는 패킷의 헤더에 기록되는데 라우터는 보통 이 홉카운트를 체크해서 비정상적
     으로 높은 패킷은 삭제를 해서 더 이상 네트워크 상에서 돌아다니지 못하게 막는다.
     이는 네트워크의 리소스가 목적지를 잃은 비정상적인 패킷들로 부하가 걸리는 것을 막아
     네트워크의 자원을 관리하려는 것이다. 특히 스트림 패킷(보통 TCP) 의 경우에는 보통
     목적지까지의 경유가 유지되지만 데이터그램 패킷(보통 UDP)의 경유에는 길을 잃은
     패킷이 많으므로 홉 카운트의 관리는 필수적이다.