Ⅰ. 서론오늘날 자동차의 대중화로 인하여 차량이 급격하게 증가하였고, 이에 따른 도로의 신설 및 확장에만 의존해오던 기존의 틀을 벗어나 지능형 교통 시스템ITS(Intelligent Transport Systems) 기술을 이용하여 도로교통 정보를 보다 효율적이고 체계적으로 이용자에게 실시간으로 제공할 수 있게 되었다.텔레매틱스는 통신(Telecommunication)과 정보과학(Informatics)의 합성어로 무선망을 통한 음성 및 데이터통신과 인공위성을 이용한 위치정보시스템(GPS)을 기반으로 차량과 정보를 주고 받음으로써 새로운 부가 서비스를 제공하는 기술을 의미한다. 이러한 텔레매틱스 서비스는 이동통신산업과 자동차산업은 물론 시스템 통합(SI), 콘텐츠 및 단말기 산업과 보험, 중고차, 부품, 렌트카, 차량정비 등 다양한 Off-Line 산업에도 지대한 파급효과가 예상된다[1].기존의 대규모 교통정보시스템은 비콘송출기를 이동차량에 탑재하고 도로 곳곳에 설치된 비콘수신기가 신호를 포착하여 전용망을 통하여 중앙서버로 전송하는 방식으로써 대규모 투자가 필요한 방식이다.본 논문에서는 저비용으로 노선버스와 같이 일정경로를 순환하는 차량에 적용하여 인터넷, PDA전화, 휴대전화를 통하여 차량의 도착예정시간을 조회할 수 있는 시스템의 구현에 관하여 기술한다. 본 논문은 Ⅱ장에서 TCP와 UDP의 서버 / 클라이언트 모델에 대해 설명하고, Ⅲ장에서 버스 정보 시스템의 구성에 대해 설명한다.그리고 Ⅳ장에서는 구현결과를 기술하며, Ⅴ장에서 결론을 맺는다.Ⅱ. TCP / IP인터넷을 통해 통신을 수행하는 개체는 크게 종단 시스템과 라우터로 나눌 수 있다. 종단시스템은(end-system)은 최종 사용자(end-user)를 위한 애플리케이션을 수행하는 주체가 되며, 인터넷에 연결된 PC, 워크스테이션, PDA, 휴대폰 등이 여기에 속한다. 라우터는 종단시스템이 속한 네트워크와 다른 네트워크를 연결함으로써 서로 다른 네트워크에 속한 종단 시스템끼리 상호 데이터를 교환할 수 후,이 변수의 주소값을 여기에 대입한다.? namelen소켓 주소 구조체 변수의 길이(바이트 단위)를 대입한다.(나) listen() 함수소켓과 결합된 TCP 포트 상태를 LISTENING으로 바꾸는 역할을 한다.이는 클라이언트 접속을 받아들일 수 있는 상태가 됨을 의미한다.int listen(SOCKET s,int backlog); 성공 : 0 , 실패 :SOCKET_ERROR? s클라이언트는 접속을 수용할 목적으로 만든 소켓으로, bind() 함수에 의해지역 IP 주소와 지역 포트 번호가 설정된 상태다.? backlog서버가 당장 처리하지 않더라도 접속 가능한 클라이언트의 개수다. 클라이언트의 접속 정보는 연결큐에 저장되며, backlog는 이 연결 큐의 길이를 나타낸다고 볼 수 있다.(다) accept() 함수서버에 접속한 클라이언트와 통신할 수 있도록 새로운 소켓을 생성하여 리턴하는 역할을 한다. 또한 접속한 클라이언트의 IP주소와 포트 번호(서버입장에서는 원격 IP 주소와 원격 포트 번호, 클라이언트 입장에서는 지역 IP주소와 지역 포트 번호)를 알려 준다.SOCKET accept(SOCKET s,struct sockaddr* addr,int * addrlen); 성공 : 새로운 소켓, 실패 : INVALID_SOCKET? s클라이언트는 접속을 수용할 목적으로 만든 소켓이다.? addr소켓 주소 구조체 변수를 정의한 후, 이 변수의 주소값을 여기에 대입한다.accept() 함수는 addr이 가리키는 메모리 영역을 클라이언트의 IP 주소와포트 번호로 채워 넣는다.? addrlen정수형 변수를 addr이 가리키는 메모리 영역의 크기로 초기화한 후, 이변수의 주소값을 여기에 대입한다. accept() 함수가 리턴하면, 정수형 변수는 addrlen은 함수가 초기화한 메모리 크기값(바이트 단위)을 가진다.(2) 클라이언트 함수(가) connect() 함수클라이언트가 서버에 접속하여 TCP 프로토콜 수준의 연결이 이루어지도록int connect(SOCKET s,것이다.int sendto(SOCKET s,const char* buf,int len,int flags,const struct sockaddr* to,int tolen); 성공 : 보낸 바이트 수 , 실패 :SOCKET_ERROR? s통신을 위한 소켓이다.? buf보낼 데이터를 담고 있는 버퍼의 주소이다.? len보낼 데이터 크기(바이트 단위)이다.? flagssendto() 함수의 동작을 바꾸는 옵션이다. 대부분 0을 사용한다.? to목적지 주소를 담고 있는 소켓 주소 구조체 변수의 주소값을 대입한다.UDP의 경우, 목적지 IP 주소로 브로드캐스트(broadcast)나 멀티캐스트(multicast) 주소를 사용할 수도 있다.? tolen소켓 주소 구조체의 크기(바이트 단위)이다.(나) recvfrom() 함수수신 버퍼에 도착한 데이터를 애플리케이션 버퍼로 복사하는 역할을 한다.recv() 함수와 다른 점은, 한 번에 하나의 UDP 데이터만 읽을 수 있다는점이다. 즉 버퍼를 크게 잡는다고 많은 데이터를 한꺼번에 읽을 수 있는것은 아니다.int recvfrom(SOCKET s,char* buf,int len,int flags,struct sockaddr* from,int* fromlen); 성공 : 받은 바이트 수 , 실패 :SOCKET_ERROR? s통신을 위한 소켓이다. 이 소켓은 반드시 지역 주소(IP 주소, 포트번호)가결정되어 있어야 한다.? buf받은 데이터를 저장할 버퍼의 주소이다.? len버퍼의 크기(바이트 단위)다. 읽어야 할 데이터가 이 값보다 크면 버퍼크기만큼만 복사하고 나머지는 버린다.? flagsrecv() 함수의 동작을 바꾸는 옵션이다. 대부분 0을 사용한다.? from소켓 주소 구조체 변수의 주소값을 대입하면, 이 변수에 송신자 주소(IP주소, 포트 번호)가 저장된다.? fromlen정수형 변수를 from이 가리키는 메모리 영역의 크기로 초기화한 후, 이 변수의 주소값을 여기에 대입한다. recvfrom() 함수가 리턴하면, fromle / 탑재장치 동작절차탑재장치에서 위치서버로 관리자가 원하는 시간(초)을 설정해서 데이터를 전 송하면, 데이터는 누적되어 데이터베이스에 저장된다. 이 데이터들을 이용하여 순환버스의 현재위치와 도착예정시간 등을 계산하게 되는데, 데이터가 한 번 유실되었다 하더라도 과거의 데이터들을 이용하여 재계산하므로 위치정보를 제공하는데 많은 영향을 미치지 않는다. 또한 사용자에게 실시간으로 서비스 를 제공해야 하기 때문에 빠른 데이터 전송이 필수이다. 이러한 이유로 본 시 스템에서는 UDP를 이용한 통신방식을 채택하였다. 는 UDP를 이 용한 위치서버의 모니터링 화면이다. 위치서버의 화면2. 지도 매핑위치서버의 관리자와 웹/모바일 서버의 이용자는 실제지도가 아닌 간이지도에서 순환버스의 현재위치를 확인할 수 있다. 실제지도는 순환버스의 위치를 한눈에 명확하게 파악하기 어렵다. 또한, 순환버스의 경로를 중심으로 정확한 위치만 표시하면 되므로 간이지도를 사용하여 많은 작업을 요하지 않게 하였다.지도매핑을 위해서 먼저 동명정보대학교 순환버스의 노선이 포함되어 있는 실제지도의 각 모서리를 의 좌측과 같이 표시한다. 네 개 지점의 GPS 좌표 값은 각각 정확히 1분 차이를 보였으며. 위도와 경도를 정확하게 표현하기 위해 지도를 1초 간격으로 세분화한다. 그리고 의 좌측과 같이 순환버스의 노선 경로를 따라 29개의 대표 구역을 나누고, 수집된 좌표데이터가 해당 구역 내에 있게 되면 의 우측에서 보는 것과 같이 간이 지도에 매핑하게 된다. 지도 매핑Ⅴ. 결론 및 향후 과제본 논문에서 구현한 GPS와 이동통신망을 이용한 순환버스 도착시간 안내 시스템을 동명정보대학교 순환버스에 적용하여 모의 실험을 하였다. 그 결과 GPS 수신기로부터 들어오는 위치정보가 이동통신망과 인터넷을 통해 위치서버로 전송되어, 수집?분석?가공 절차를 거쳐 사용자 단말기로 성공적으로 서비스되는 것을 확인하였다.와 는 웹과 사용자 단말기로 웹/모바일 서버를 이용하여 서비스를 제공하는 화면의 내용이다. 웹에서 보기 PDA///////////////////////////////////////////////////////////////////// CUDPView diagnostics#ifdef _DEBUGvoid CUDPView::AssertValid() const{CRecordView::AssertValid();}void CUDPView::Dump(CDumpContext& dc) const{CRecordView::Dump(dc);}CUDPDoc* CUDPView::GetDocument() // non-debug version is inline{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CUDPDoc)));return (CUDPDoc*)m_pDocument;}#endif //_DEBUG/////////////////////////////////////////////////////////////////////////////// CUDPView database supportCRecordset* CUDPView::OnGetRecordset(){return m_pSet;}/////////////////////////////////////////////////////////////////////////////// CUDPView message handlers//void CUDPView::OnReceive(char str[])void CUDPView::OnReceive(){char str[256];// 클라이언트에서 받은 데이터 임시 저장int str_len = 0, num = 0;;CString recv_address;UINT recv_address_port;// 버퍼 초기화ZeroMemory(str, sizeof(str));// 클라이언트 연결 상태 확인num = pUDPSocket->ReceiveFrom(str, 256, recv_address, recv_address_port);// 제대로 받았는지 검사if(num DB_Counter > 30)Tem다.
Ⅰ. 서론1.홈네트워크 연구목적PC(Personal Computer) 보급의 확산과 가정내 네트워크 및 인터넷 사용이 증가하면서 그동안 조용하던 홈네트워크 시장이 새로이 떠오르고 있다. 뿐만 아니라 통신기술의 발전과 고성능 기계장치 등의 개발로 인해 홈네트워크의 실현은 우리들 눈 앞에 다가와 있다. 오래전부터 우리들에게 친숙했던 영화나 소설 등에서 보여주었던 꿈과 같은 세상을 이룩하게 도와줄 홈네트워크는 낯설지만 전혀 낯설지 않은 현실을 반영한다. 영화의 한 장면처럼 침대에 누워 출입문을 통해 누가 들어오는지도 알 수가 있고 직접 리모콘을 누르지 않아도 대화형식으로 정보기기 등을 조작할 수도 있고, 쇼핑은 물론 다양한 정보를 쉽게 얻을 수 있는 시대가 오고 있다는 것이다. 지금도 홈네트워크를 통한 사이버 아파트나 사이버 주택 등의 구축을 통해 결코 머나먼 남의 얘기가 아닌 우리의 현실도 다가왔다는 것을 알 수 있다. 홈네트워크라고 하여 단순히 컴퓨터들끼리의 연결망을 말하는 것은 아니다. 점점 더 그 개념이 확장되어 가는 홈네트워크가 우리에게 시사하는 바를 알아야 할 필요가 있다. 밝은 미래를 위한 홈네트워크 기술의 개발뿐만 아니라 그에 대한 문제점과 해결책에 대해서도 심각하게 생각해 보아야 할 것이다. 홈네트워크의 시작에서부터 개념 및 특성, 구현기술 등을 통해 앞으로 홈네트워크 시장의 현재와 미래를 전망해 보자.2.홈네트워크 등장배경'유비쿼터스 사회’ ‘디지털컨버전스’ 라는 용어가 일반화되었다. 유비쿼터스 사회가 디지털컨버전스를 통해 이루어는 사회라 할 때, 그 구현은 가정에서부터 시작된다고 할 수 있다. 오늘날 가정을 중심으로 한 컨버전스 기술, 가정 내 다양한 서비스를 제공하는 홈 디지털 서비스를 실현하고자 홈네트워크가 등장하였다. 홈네트워크 환경은 인구?사회학적 변화, 소비트렌드의 변화, IT기술환경의 변화를 중심으로 이루어졌으며 그 확장을 가속화하는 방향으로 전개될 것이다.첫째, 노령화사회로의 진입, 여성의 사회참여 확대, 주5일제 근무로 인한 쇼핑?면화되고 있기 때문이다.결과적으로, 홈네트워크 서비스 격차는 서비스구축 주택의 소유에 따른 정보서비스의 질의 격차가 벌어지기 때문에, 소득수준에 따른 계급성에 대한 문제가 제기될 수 있다.(3)속보성홈네트워크를 통하여 뉴스 및 기사를 가정 내 신속하게 전달할 수 있다. 가정이라는 공간 특성에서 볼 수 있듯이, 사람은 집에 들어오면 TV를 습관적으로 키게 된다. 이에 따라 정보에 대한 습득 및 노출이 24시간 실시간으로 기존매체보다 높다. 다양한 매체의 다양한 뉴스에 대한 종합적 제공, 실시간으로 제공되는 정보 및 서비스를 통해, 이용자가 편리한 장소에서 얻고자 하는 정보를 전달받을 수 있다는데 다른 미디어보다 강점을 가지고 있다.또한 과거에는 신속한 전달과 보도를 통기존의 방송 뉴스를 시청하고자 정해진 시간 안에 TV앞에 앉아 있어야 했다. 그러나 이제는 어느 순간, 어디에서나 접속만 한다면, 다양한 뉴스와 콘텐츠에 대한 서비스를 받아 볼 수 있는 것이다. 기존의 인터넷 매체를 통해서는 정보의 신속성만이 강조되었으나, 홈네트워크를 통한 속보성은 이용자의 니즈에 따른 정보를 가장 빠르게 전달할 수 있다는데 그 차별성이 있다.결과적으로 TV포털에서 제공하는 서비스, 각종 콘텐츠의 효용성을 고려할 때, 산업, 문화 전반의 영향력에 홈네트워크, TV포털이 중요한 키워드로 자리 잡게 될 것이다.(4)확산성홈네트워크는 기존의 미디어 매체가 가지는 정보의 확산성을 증가시킨다. TV, PC, 모바일 등의 홈네트워크 단말을 매개로 하여 기성 매체의 뉴스를 포함한 정보를 새로운 정보 소비 방식을 재매개함으로써 새로운 저널리즘을 현실화시킬 것이다. 기존의 미디어 매체에 비해 정보의 확산 정도가 빠르며, 수용자와 다양한 매체의 다양한 기사가 언제든지 접할 수 있는 장을 마련한다는 특성을 지닌다.최근 인터넷 게시판을 통한 의견제시, 네티즌의 여론제기가 활발히 이루어지기 때문에 리플공화국 리플저널리즘 이라는 말이 제기된다. 네티즌들이 각종 안티사이트를 만들어 막강한 여론세력으로 부상했준으로 보았을 때, 초고속통신망은 점차적으로 일반화되고, 가입자의 포화현상이 나타남에 따라 앞으로는 통신망의 속도와 가격단가가 국가통신망의 발전을 좌우하고 홈네트워크산업에도 큰 영향을 미칠 것으로 전망된다. 이러한 초고속통신망의 변화와 발전은 홈네트워크 시장의 발전초기단계에 있어서도 가장 중요한 발전 동기요소가 되고 있다. 보다 빠른 접속 인프라의 발달로 홈네트워크산업의 시장규모와 성숙도는 가속을 받을 것이다.나. 댁내인프라홈네트워크산업에 있어서 댁내인프라는 가정 내의 통신, 방송, 가전, 정보기기 등을 유무선 네트워크로 상호 연결하여, 가정의 안팎에서 언제 어디서나 원하는 단말로 원하는 정보를 주고받을 수 있는 역할을 한다. HomePNA, PLC, Ethernet, IEEE1394, Wireless LAN, WPAN, Wireless1394, 광홈네트워크 등을 들 수 있다. 댁내 각 기기별로, 적용되는 댁내인프라의 차이는 있지만 점차적으로 무선 LAN으로 가는 추세로 전문가들은 평가하고 있다.다음은 댁내인프라 기술을 비교한 표이다. 댁내 인프라 비교종류표준전송속도최대전송거리유선HomePNAHomePNA 2.01-2/10Mbps150mUSBUSB 1.112Mbps30mEthernetIEEE 802.310/100Mbps, 1Gbps100m(UTP)전력선-1-2Mbps100mIEEE1394IEEE1394100-400Mbps72m무선BluetoothBluetooth 1.0720kbps10mHome RFSWAP 1.21-2Mbps50mIrDAIrDA 1.3최대 4Mbps1m무선 LANIEEE 802.115.5-11AMbps50m출처: KETI, 홈네트워크 기술동향 및 산업전망 2004댁내인프라의 경우, 건설업체 혹은 홈네트워크 전문SI업체 등에 의 해 주로 설치되고 있다. 신규아파트 등의 경우 건설, 시공업체, 홈네 트워크 전문SI업체에 주도 하에 댁내 인프라가 구축되고 있으며 기 축 주택의 경우 아직까지 큰 성장을 보이고 있지는 않지만 점차적으 로 전문업체 등에 할을 강조하고 있다.삼성의 차세대 홈서버인 MagicGate는 방송 수신, 멀티미디어, 홈네트워크, Mobile SVR, 인터넷, 기타 유무선 정합의 네트워킹 기능을 종합적으로 제공하고 있다. 또한 IT 선도기업인 MS, IBM, SONY 등은 향후 IT 비전인 유비쿼터스 환경구현을 위한 차세대 기술 개발에 집중 투자하고 있으며 MS는 운영체제, 미들웨어 등 홈네트워크의 핵심 소프트웨어 분야에 초점을 두고 있다. 삼성과 MS 합작의 홈미디어는 가정 내 다양한 홈 엔터테인먼트를 중심으로 홈서버의 역할을 유도해 왔으며, 최근 MS는 HP, 삼성, Dell 등과 함께 PC를 기반으로 한 Windows Media Connect(WMC)로 UPnP/DLNA의 지원을 받아 PC의다양한 멀티미디어 콘텐츠를 인터넷에 공유하고 또한 Media Center Extender Technology(MCX) 기술로 정보가전 기기들과의 네트워크 연동을 추구하고 있다.② 홈게이트웨이)홈게이트웨이는 원격지로부터 가정에서 소비되는 에너지의 사용량을 측정하기 위해 원격 검침 기능을 제공하는 텔리메트리 게이트웨이로부터 시작하여, 홈네트워크 뿐만 아니라 가입자 망과의 기본적인 연결기능을 제공하고 인터넷 공유, NAT(Network Address Translation)나 방화벽과 같은 보안 및 프로토콜 변환 기능 등을 포함한 상호운용성에 초점을 맞추는 광대역 액세스 게이트웨이 그리고 음성 트래픽의 전달, 보안서비스, 프로토콜 변환기능, Home PBX(Private Branch Exchange) 기능 및 스트리밍 비디오 전송 기능 등 음성 및 데이터 네트워크를 하나로 통합하고자 하는 음성?데이터 게이트웨이로 발전하고 있다.궁극적으로 액세스 망으로부터 대역폭과 Qos 보장 뿐 아니라 홈네트워크에 접속된 이종의 기기 간에 지능적인 프로토콜 변환 및 동적인 우선 순위 지정, 또한 원격으로 콘텐츠를 전송하고 홈게이트웨이를 관리, 진단 및 업그레이드하는 기능을 가지는 음성, 영상 및 데이터의 통합 서비스를 매우 수신강도가 강한 속성을 가지는 대역 확산기술의 이용 등이 있다. 무선LAN은 특정 구내에서의 활용에 유용하며, 가정 내에서는 전체 네트워크를 수용할 수 있는 구조로 설치되기에는 주파수 간섭이나 전달 영역 한계의 모호성, 보안 및 데이터 노출에 의한 불안정성 등의 문제점이 있어, 아직까지는 일부 영역에서만 사용하는 것이 안정적이다. 현재 무선 LAN과 이동통신망의 단점을 극복하기 위해 공중 무선 LAN과 이동통신 간의 보다 쉬운 로밍을 3G 이동통신 네트워크 표준화 그룹과 무선LAN 관련 연구그룹이 활발히 연구를 진행하고 있다.⑤UWB(Ultra Wide Band)UWB는 중심주파수 대비 대역폭이 20% 이상이거나 500MHz 이상의 주파수 대역폭을 차지하는 통신방식을 의미하며, 장점으로는 저전력화, 저가격화가 가능하고, 장애물 투과 특성이 우수하지만, 타 통신에 간섭을 줄 수 있는 단점으로 지적되고 있고, UWB는 블루투스에 비해 아직 상용화된 제품은 적지만 가까운 미래 홈네트워킹 분야에서 널리 사용될 것으로 기대를 모으고 있다. UWB를 적용할 경우 집안에서 디지털카메라 이미지, 대용량 동영상 등 대용량 정보를 정보기기간에 빠르게 이동시킬 수 있다.⑥무선 IEEE1394IEEE1394의 단점인 거리의 한계(4.5m)를 극복하기 위한 대한으로 연구되기 시작했으며, 5~60GHz의 주파수를 사용하여 30~100Mbps의 속도를 지원할 수 있으며 현재 미국, 유럽, 일본 등에서 연구가 진행 중이다.⑦ZigBee저 전력선 통신기술에 대한 한계를 극복하고 가전기기와 센서들을 연결시키기 위해 저속 무선 홈네트워크로, ZigBee기술은 저가, 저전력의 빠른 데이터 전송 기술을 특징으로, 저전력소모, 시스템 구성의 저비용, 많은 네트워크 노드 수용, 단순한 프로토콜 구조 등을 특징으로 무선 센서 및 제어 분야에서 주도가 되고 있다. ZigBee의 표준을 정의하기 위하여 세계의 유수 기업인 Philips, Motorola, Honeywell, Mistbishi, In.
디렉토리 트리의 개괄Table of Contents배경루트 파일시스템/etc 디렉토리/dev 디렉토리/usr 파일시스템/var 파일시스템/proc 파일시스템" Two days later, there was Pooh, sitting on his branch, dangling his legs, and there, beside him, were four pots of honey..." (A.A. Milne)" 이틀 후에, 푸우가 나타났는데, 그는 나뭇가지 위에 앉아, 다리를 흔들고 있었다, 그리고 거기, 그 옆에는, 네통의 꿀단지가 있었다... " (A.A. Milne의 아기곰 푸우 중에서)디렉토리는 마치 나뭇가지와도 같은 계층구조를 이루고 있는데, 이를 가리켜 트리(tree) 구조라고 한다. 이번 장에서는 표준 리눅스 디렉토리 트리 구조의 주요 부분을 FSSTND 파일시스템 표준에 근거하여 살펴 볼 것이다. 또한 여기서는 여러가지 목적에 알맞게 디렉토리 구조를 분할하는 일반적인 방법에 대해 개괄적으로 알아 볼 것이며 이렇게 디렉토리를 특별히 분할하는 취지에 관해서 설명할 것이다. 그리고 디렉토리 분할 방법의 몇가지 다른 대안에 대해서도 알아보기로 하겠다.배경여기서 다룰 내용은 대체로 리눅스 파일시스템 표준안(Linux filesystem standard, FSSTND, version 1.2 - 참고문헌을 볼 것)에 기반하고 있다. 이 표준안은 리눅스에서 파일시스템을 어떻게 조직할 것인가에 대한 표준을 제정하기 위해 만들어진 문서로서, 이런 표준에 따라 각 파일들의 위치가 일관되게 유지된다면 리눅스용 프로그램의 작성,포팅이 쉬워지고 또한 리눅스 머신을 관리하기도 쉬워지는 등 많은 잇점을 지니게 된다. 사실 이런 표준안이 어떤 강제력을 지니고 있는 것은 아니지만 거의 대부분의 리눅스 배포판에서 이를 따르고 있으며, 특별한 이유없이 이 표준을 어기는 것은 별로 바람직한 일이 못된다. FSSTND는 전통적인 유닉스 방식과 최신 경향을 함께 반영하려 노력하고 있으며, 이를시스템을 수리하고 손상된 부분을 백업으로부터 복구하는데 필요한 도구들을 갖추고 있다.? /usr 파일시스템에는 시스템이 정상적으로 가동되는 데에 필요한 모든 명령들과 라이브러리들 그리고 매뉴얼 페이지들이 위치한다. /usr 파일시스템에 있는 파일들은 어떤 머신에 한정된 것이어서는 안되며, 보통 실행 도중에 그 내용이 고쳐질 필요가 없는 것들이어야 한다. 이렇게 하면 네트워크 상에서 파일들을 공유하는 것이 가능해지는데, 이를 통해 디스크 공간을 절약하여 비용절감의 효과를 누릴 수 있고(/usr 파일시스템은 보통 수백메가바이트 이상의 공간을 차지한다) 시스템 관리도 쉽게 할 수 있다(응용프로그램을 업데이트하기 위해선 공유되고 있는 /usr 파일시스템만 업데이트하면 된다. 즉 머신 하나하나에 손댈 필요가 없다). /usr 파일시스템은 로컬 디스크에 있는 경우라 하더라도 언제나 읽기 전용으로 마운트하는 것이 좋은데, 이것은 시스템이 크래쉬된 경우에 파일시스템이 손상되는 것을 방지하기 위한 것이다.? /var 파일시스템은 스풀(spool) 디렉토리들, 로그 파일들, 포맷된 매뉴얼 페이지들, 그리고 각종 임시파일들 같은, 계속 변화하는 파일들을 위한 공간이다. 전통적으로는 이런 파일들을 /usr 아래에 넣어 두는 것이 관례였는데, 이렇게 되면 /usr를 읽기 전용으로 마운트할 수 없기 때문에 별로 바람직한 일이 못된다.? /home 파일시스템은 각 사용자들의 홈 디렉토리를 갖고 있으므로, 이곳은 아주 중요한 데이터들이 있는 곳이라고 할 수 있겠다. 이렇게 /home을 독립적인 파일시스템으로 만들어 두는 이유는 백업을 쉽게 하기 위해서이다; 즉, /home 이외의 부분들은 거의 변동이 없기 때문에 백업을 그렇게 자주 받아둘 필요는 없다. 그러나 홈 디렉토리들은 무척 중요하므로 따로 백업을 자주 받아두어야 한다. /home 파일시스템이 비대해지면 이것을 다시 /home/students 또는 /home/staff 같이 하위 파일시스템으로 세분화하는 것이 좋겠다.위에서 각 부분로 부팅하는 방법)을 쓰지 않는 이상 부팅은 불가능해진다. 이런 일은 꼭 피해야만 될 일이다.루트 디렉토리( / 디렉토리 )에는 /vmlinuz라고 불리는 부트 이미지 파일만 넣어두는 것이 일반적이지만, 부트 이미지마저도 /boot라는 디렉토리 안에 넣어두고 루트 디렉토리에는 파일을 두지 않는 경우도 많다. 그 밖의 다른 파일들은 모두 루트 파일시스템의 하위 디렉토리 안에 존재한다./bin이 곳에는 부팅할 때 필요한 명령어들이 들어 있다. 또한 부팅 후에는 일반 사용자들도 이 곳의 명령들을 사용할 수 있다. bin은 명령어들의 '저장고'라는 뜻이다./sbin이 곳은 /bin 디렉토리와 비슷하지만, 주로 시스템 관리를 위한 명령들이 보관된다. 일반 사용자들은 제한적으로만 이 곳의 명령들을 사용할 수 있다./etc여기는 각 머신의 고유한 설정 파일들이 위치하는 곳이다./root루트 사용자의 홈 디렉토리이다./lib공유 라이브러리가 있는 곳이다. 이 곳의 라이브러리들은 루트 파일시스템에 있는 프로그램들이 사용한다./lib/modules로딩 가능한 커널 모듈들이 위치하는 곳이다. 특별한 경우, 장애를 복구하기 위해 시스템을 부팅할 때도 커널 모듈들이 필요하다(예로서, 네트워크 드라이버와 파일시스템 드라이버가 있다)./dev장치 파일들이 있는 곳이다. 장치 파일은 일반적인 파일과는 다른 특수 파일로서, 마치 파일을 읽고 쓰듯이 하드웨어를 다룰 수 있게 해준다./tmp임시 파일들을 위한 공간이다. 부팅이 이루어지고 난 뒤에 실행되는 프로그램들은 /tmp가 아닌 /var/tmp를 사용해야 하는데, 보통 /var/tmp는 좀 더 여유공간이 많은 디스크 상에 위치하는 경우가 많기 때문이다./bootLILO 같은 부트스트랩 로더가 사용하는 공간으로, 커널 이미지들이 이곳에 위치하게 된다. 부트스트랩 로더는 부트 이미지의 위치를 파악하여 부팅을 시작시켜 주는 프로그램으로서, 부트 이미지라는 것은 결국 부팅에 사용되는 커널 이미지이다. 부트 이미지는 보통 루트 디렉토리에 넣어 두거r /etc/rc?.d시스템 시작시나 실행 레벨이 바뀔 때 실행되는 스크립트들이다. 혹은 그런 스크립트를 모아둔 디렉토리일 수도 있다. 더 자세한 내용은 init를 다룬 부분을 참고하기 바란다./etc/passwd이것은 사용자들의 데이터베이스 파일로서 이곳에는 사용자들의 username, 실제 이름, 홈 디렉토리의 위치, 암호화된 패스워드, 기타 정보들이 수록된다. 이 파일의 형식에 대해 자세한 내용은 passwd 매뉴얼 페이지를 참고하기 바란다./etc/fdprm플로피 디스크 파라미터 테이블이다. 이 파일은 비슷비슷한 플로피 디스크들 사이의 차이점에 대한 정보를 담고 있다. 더 자세한 내용은 setfdprm 매뉴얼 페이지를 참고하기 바란다./etc/fstab이 곳에는 시스템 시작시 mount -a 명령(/etc/rc 같은 곳에 설정되어 있다)에 의해 자동으로 마운트될 파일시스템들이 나열되어 있다. 리눅스의 경우에는 swapon -a 명령에 의해 사용되는 스왑 영역에 대한 정보도 수록되어 있다. 더 자세한 정보는 the section called 마운트하기와 마운트 풀기 in Chapter 4와 mount 매뉴얼 페이지를 참고하기 바란다./etc/group/etc/passwd와 비슷하지만, 사용자들의 정보가 아닌 각 그룹들의 정보가 기재된다. 더 자세한 정보는 group 매뉴얼 페이지를 참고하기 바란다./etc/inittabinit의 설정파일이다./etc/issuegetty는 로그인 프롬프트가 뜨기 전에 이 파일의 내용을 화면에 뿌려준다. 이곳에는 시스템의 간단한 정보나 환영메시지를 적는 것이 보통이지만, 무엇을 적는냐하는 것은 전적으로 시스템 관리자 맘이다./etc/magicfile 명령의 설정 파일이다. 이곳에는 다양한 파일 형식들에 대한 정보가 포함되어 있는데, file 명령은 이것을 기반으로 파일의 정체를 추측해 낸다. magic과 file의 매뉴얼 페이지를 보면 더 많은 정보를 얻을 수 있다./etc/motdMessage Of The Day, 즉 '오나열된 쉘들만 지정할 수 있다. 또한 FTP서비스를 제공하는 ftpd 서버 프로세스는 사용자의 쉘이 /etc/shells에 나열된 것과 일치하는 지를 확인하고, 만약 일치하지 않는다면 로그인을 거부한다./etc/termcap여러가지 터미널들의 특성을 데이터베이스로 만들어 둔 것이다. 이 곳에는 다양한 종류의 터미널들이 각각 어떤 "이스케이프 시퀀스(escape sequence)"를 통해 제어될 수 있는지 기재되어 있다. 프로그램들은 현재 터미널의 종류가 어떤 것인지를 확인하고 /etc/termcap에서 해당 터미널에 알맞는 이스케이프 시퀀스를 찾아서 사용하게 된다. 따라서 각각의 프로그램이 터미널들의 특성에 대해 일일이 알고 있을 필요가 없으면서도, 대부분의 터미널에서 잘 동작하게 된다. 더 자세한 내용은 termcap, curs_termcap, terminfo 매뉴얼 페이지를 참고하기 바란다./dev 디렉토리/dev 디렉토리는 모든 하드웨어 장치에 대한 장치 파일들을 가지고 있다. 장치 파일들의 이름은 특별한 명명법을 가지고 있다; 이 명명법은 Linux device list 문서에 설명되어 있다. (장치 파일들은 설치시에 생성되며, 설치 후에는 /dev/MAKEDEV 스크립트에 의해 생성될 수 있다.) /dev/MAKEDEV.local은 시스템 관리자가 작성하는 스크립트로서 특정한 로컬 장치 파일들을 생성하거나 링크를 만드는 데 쓰인다(즉 표준 MAKEDEV 파일에 그 내용이 없는 몇몇 비 표준적인 장치 드라이버들을 위한 스크립트이다)./usr 파일시스템/usr 파일시스템은 쉽게 커지는데, 모든 프로그램들이 이 곳에 설치되기 때문이다. 보통 /usr 디렉토리에는 배포판에서 제공하는 파일들이 들어 있으며, 그 밖에 따로 설치되는 프로그램들과 내부적 용도의 프로그램들은 /usr/local에 들어가는 것이 일반적이다. 이렇게 하면, 배포판을 업그레이드 하거나 아예 새로운 배포판으로 바꾼다고 해도 전체 프로그램을 다시 설치할 필요가 없게 된다. /usr의 몇몇 하스템
I. 서론정보화 사회, 인터넷 등의 용어는 이제 뉴스에서도 부담 없이 흘러나오는 일상어가 되어 있다. 그리고, 이제 정보화의 문제점인 네트워크 또는 컴퓨터에 대한 보안도 대중 사이에서도 종종 문제화 되고 있다. 네트워크를 통한 정보의 획득이 쉬워진 것만큼, 보안도 이제는 일반적으로 많이 알려지고 모두들 보안이 중요할 것이라는 것을 머릿속에서 상상은 하고 있다. 그리고, 국내에서도 보안 전문 업체들도 생겨나고 있고 웬만한 기업들은 보안에 상당히 신경들을 쓰고 있다. 이런 상화에서 평소에 보안에 관심이 많았던 터라 학사 논문 주제로 네트워크 보안을 선정하게 되었다.이미 발표된 논문이나 기사들도 상당히 많이 있고, 본인이 쓰고 있는 이 글도 그런 산에다가 손으로 흙을 집어 던지는 정도, 아니 그보다 더 미약한 역할 정도가 될 수도 있다. 그래도 여러 근거 있는 자료들을 토대로 열심히 준비한 것이라, 네트워크 보안이라는 분야에 익숙하지 못한 사람들에게 조금이나마 보탬이 되리라 믿는다.컴퓨터가 네트워크에 연결되어 있다면 어떤 컴퓨터라도 한번쯤 보안을 고려해 보아야 한다. 심지어는 전화선으로 인터넷에 연결한다고 할지라도 생각을 해 봐야 한다. 네트워크 보안은 정보의 보안과도 직결되기 때문이다. 당신이 전화를 할 때 누군가 도청을 한다고 생각해 보라. 당신은 당장에 전화선 보안을 위해 도청방지 장치를 설치한다던 지 아니면 다른 무언가를 하려 할 것이다. 네트워크 보안도 마찬가지이다. 단지 도청하는 사람뿐만 아니라, 당신의 전화기를 못쓰게 만들려고 하는 사람도 있어 더욱 문제인 것이다.이 글에서는 유닉스(리눅스 포함) 시스템 위주로 다루도록 하겠다. 유닉스라는 시스템은 다중 사용자를 기본으로 생각하고 만들어졌고, 그 만큼 여러 명에게 노출되어 있으므로 네트워크 보안에 대한 문제를 오래 전부터 안고 있었다. 그리고, 요즘엔 많은 PC – 마이크로 소프트사의 윈도우나 IBM 의 OS/2, Apple 사의 맥킨토시 등 – 들이 네트워크에 연결되면서 개인 정보 보안에 대한 인식도 )를 보면 로그인 하려고 하고, 프로그램은 정상적인 로그인 순서로 사용자가 평범한 방법으로 로그인 하고 있다고 생각하게 한다. 하지만 트로이 목마를 가진 그 프로그램은 로그인 ID와 패스워드를 받으면 이 정보를 공격자 소유의 파일에 복사하거나 메일로 공격자에게 전송한다. 그리고 “login incorrect”라는 오류 메시지를 보낸다. 사용자는 자신이 잘못 쳐서 로그인 fail 되었다고 생각하고 로그인 ID와 패스워드를 다시 친다. 그 동안 트로이 목마를 가진 프로그램은 빠져 나오고 실제 login 프로그램에게 제어권을 넘겨준다. 다음에 사용자는 성공적으로 로그인 하게 되고 자신의 로그인 ID와 패스워드 정보가 유출되었다는 사실을 전혀 의심하지 않는다.윈도우 계열에서의 트로이 목마는 보통 위에서 설명한 것처럼 흥미 있는 프로그램인 것처럼 가장하여 피해자가 코드를 실행 하게 되면, 피해자 컴퓨터는 사용자 몰래 통신 포트를 열리게 하여 서버로써 실행 하게 된다. 공격자는 피해자의 IP 주소를 이메일 등으로 받아서 자신이 클라이언트가 되어 피해자 컴퓨터를 몰래 원격 제어 하는 것이 가능하게 만든다. 대표적인 윈도우 트로이 프로그램은 백오리피스가 있다.바. DoS (Denial of Service)DoS(Denial of Service)도 사용자들에게 피해를 준다는 점에서 크래킹의 한 종류라고 할 수 있지만, 요즘 인터넷으로 배포되는 공격 프로그램을 이용하면 전문 지식이 없어도 공격이 가능하기 때문에 그 방법이 비교적 간단하지만 그 피해 범위와 정도는 매우 광범위하다. DoS의 주요 공격 대상은 시각적인 서비스를 하는 웹서버나 라우터, 네트워크 같은 기반 시설이다.DoS는 한 사용자가 시스템의 리소스를 독점하거나 모두 사용, 또는 파괴함으로써 다른 사용자들이 이 시스템의 서비스를 올바르게 사용할 수 없도록 만드는 것을 말한다. 이런 의미에서 시스템의 정상적인 수행에 문제를 일으키는 모든 행위를 DoS라 할 수 있다.그런데 이런 공격이 일어나는 방법은 매우 다양하다. 동작하기 위해서 방화벽은 그 작업에 최적인 하드웨어와 소프트웨어를 갖고 있어야 한다.3. 방화벽 유형방화벽 시스템은 OSI 참조 모델과 관련하여 방화벽 시스템이 동작하는 프로토콜 계층에 따라 분류 될 수 있다. 계층 3인 네트워크 계층과 계층 4인 트랜스포트 계층에서 패킷필터링 기능을 수행하는 스크리닝 라우터와 응용 계층에서 패킷필터링 기능과 인증 기능 등을 수행하는 응용 계층의 게이트웨이로 분류할 수 있다. 일반적으로 스크리닝 라우터를 설계할 경우 명확하게 내부 네트워크로의 진입이 방지되지 않은 트래픽은 네트워크로의 진입을 허용 하는 패러다임을 사용하고, 게이트웨이 혹은 proxy 서버의 경우 내부 네트워크로의 진입을 명확하게 허용하지 않은 트래픽은 내부 네트워크로의 진입을 방지하는 패러다임에 입각하여 설계한다.가. 스크리닝 라우터 (Screening Router)스크리닝 라우터는 OSI 참조 모델의 계층 3과 계층 4에서 동작되기 때문에 계층 3과 4에서 동작하는 프로토콜인 IP(Internet Protocol), TCP (Transmission Control Protocol) 혹은 UDP(User Datagram Protocol)의 헤더에 포함된 내용을 분석해서 동작한다. 스크리닝 라우터란 네트워크에서 사용하는 통신 프로토콜의 형태, 근원지 주소와 목적지 주소, 통신 프로토콜의 제어 필드 그리고 통신 시 사용하는 포트 번호를 분석해서 내부 네트워크에서 외부 네트워크로 나가는 패킷 트래픽을 허가 및 거절하거나 혹은 외부 네트워크에서 내부 네트워크로 진입하는 패킷 트래픽의 진입 허가 및 거절을 행하는 라우터를 말한다. 이러한 진입 허가 혹은 거절 결정은 패킷필터 규칙에 따른 라우팅 테이블에 의해 결정된다. 일반 패킷과 특수한 프로토콜에 입각한 포트로 전송되는 패킷을 구별하는 능력 때문에 패킷 필터 라우터라고도 한다.다음 그림은 스크리닝 라우터(패킷 필터 라우터)의 위치 및 기능을 보여 준다.그림 7. 스크리닝 라우터i) 패킷 필터의 동작스크리닝 라우터로 연 첨가되고 보호가 필요한 새로운 응용 이 생기면 이를 위해 새로운 특수 목적용 코드를 생성해야 한다.응용 레벨 게이트웨이를 사용하기 위해서 사용자는 응용 게이트웨이 장치에 로그인하거나 서비스를 이용할 수 있는 특수한 클라이언트 응용 서비스를 실현해야 한다. 각각 응용에 따라 다르게 사용하는 특수한 게이트웨이는 제각기 내부에 관리 도구와 명령 언어를 가지고 있다.응용 게이트웨이는 실제 서버의 관점에서 볼 때 클라이언트처럼 동작하며, 클라이언트 관점에서 볼 때는 실제 서버처럼 동작한다. 응용 게이트웨이의 실현 예는 TELNET 게이트웨이, FTP 게이트웨이, Sendmail, NNTP News Forwarder 등이 있다.그림 13. Application(Proxy) Gateway· 장점- 응용 서비스마다 각각 다른 응용 게이트웨이를 구현하므로 보다 안전 하게 보호할 수 있다.- 응용 사용에 따른 기록 및 감시 추적을 유지 관리 가능하다.- 융통성이 좋다.- 정보보호 서비스를 응용 게이트웨이에 구현 가능하다.· 단점- 응용 서비스마다 제각기 다른 응용 게이트웨이가 필요하다.- 사용되는 응용 서비스가 증가할수록 구축 비용이 증가한다.IV. Bastion Host 구현설계상 Bastion Host는 그 존재가 인터넷에 알려져 있기 때문에, 상당히 노출될 수밖에 없다. 이러한 이유로 인해 방화벽 설계자나 관리자들은 Bastion Host의 보안을 유지하는 데 집중해야 한다. 우리들은 Bastion Host의 초기 구축 과정이나 계속 유지하는 과정에서 호스트의 보안에 각별히 신경을 써야 할 것이다. 왜냐하면, Bastion Host는 가장 많이 노출된 호스트이고, 또한 보안상 가장 안전해야 하는 호스트이기 때문이다. 이 장에서는 리눅스 시스템을 이용한 Bastion Host를 구현해 보기로 한다.1. 전반적인 구성도그림 14. 사설망 방화벽 개념도우리가 구현할 Bastion Host 기반의 방화벽 네트워크는 위의 그림과 같다.즉, 리눅스 플랫폼으로 Bastion Host한다.(-jump)-y : 접속 요청 패킷인 SYN패킷을 허용하지 않는다.(--syn)-f : 두 번째 이후의 조각에 대해서 규칙을 명시한다.(--fragment)■사용예127.0.0.1 IP 주소로부터 오는 모든 ICMP 패킷을 무시하는 경우사용되는 프로토콜은 ICMP이고 발신 주소는 127.0.0.1 이어야 한다. 그리고 패킷필터의 목표는 드롭(DROP)이다. 테스트하는 프로그램은 ping이며 ping은 단순히 ICMP type 8로 반응요구를 보내며 이에 협조하는 대상 호스트는 ICMP 타입 0(echo reply)를 보내어 응답하도록 돼 있다. 이제 iptables의 패킷필터를 통해 로컬호스트가 ping 명령에 반응하지 않도록 하겠다. 이는 과다한 ping에 의한 DoS(Denial Of Service)공격을 방어 하는 설정 방법이 되기도 한다.# ping -c 1 127.0.0.1PING 127.0.0.1 (127.0.0.1): 56 data bytes64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms--- 127.0.0.1 ping statistics ---1 packets transmitted, 1 packets received, 0% packet lossround-trip min/avg/max = 0.2/0.2/0.2 ms# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP; `INPUT' 체인에 127.0.0.1로부터 오고(`-s 127.0.0.1') ICMP(`-p ICMP') 패킷에 대해 DROP로 점프하라는 (`-j DROP') 규칙을 추가(-A).# ping -c 1 127.0.0.1PING 127.0.0.1 (127.0.0.1): 56 data bytes--- 127.0.0.1 ping statistics ---1 packets transmitted, 0 packets received, 100% packet loss■설정된 iptables 규칙의 삭제지금 E 6
NS-2 for Sensor Networks (Routing for USN)2006. 8. 1목 차센서 네트워크 개념 및 응용I센서 네트워크 라우팅 프로토콜IINS-2를 사용한 라우팅 프로토콜 시뮬레이션III시뮬레이션 결과 분석IVNS-2 라우팅 프로토콜 실습V센서 네트워크 개념 및 응용Ubiquitous Sensor Network 기술개요USN의 정의USN은 인간의 생활공간, 생활기기, 기계 등 모든 사물에 컴퓨팅 기능과 네트워크 기능을 부여하여, 환경과 상황의 자동인지를 통해 인간에게 최적의 기능을 제공함으로써 인간 생활의 편리성과 안전성을 고도화한다.USN환경 : 공해감시 (자연)재해관리병원환자 관리홈 네트워크교통 : 텔레매틱스 ITS시스템 교통요금물류/유통 : SCM, 재고관리 쇼핑센터 : 자동계산대동물관리Ubiquitous Sensor Network 기술개요노드들이 조밀하게 분포 (실패확률이 높음) . 브로드캐스트 방식의 통신 기반 제한된 전력, 연산 능력, 메모리. 인접한 노드들이 유사한 데이터를 보유 : 데이터들을 모아서 전송.센서 네트워크의 특징무선 센서노드들로 이루어진 네트워크 기존 통신 인프라가 없는 무선 센서 네트워크 정보 수집을 위해 센서 노드들 간의 MANET 능력이 필요센서 네트워크의 정의Ubiquitous Sensor Network 기술개요근거리에서 주변환경을 감지하는 기술 대상에 대한 정보를 인지하고 이것을 물리적으로 떨어진 곳으로 전송하기 이해 신호로 변환하는 소자 유비쿼터스 무선 통신 기반을 구성하는 가장 기초적인 단위센서의 정의일반적으로 전기신호로써 취급모든 정보 및 에너지 변환센서란?센서물리적화학적생물학적출력 정보검출 대상Ubiquitous Sensor Network 기술개요물리센서 : 광, 전기, 자기, 열, 초음파, 역학에 관련된 물리량 계측 화학센서 : 온도, 가스, 유기화합물, 냄새, 맛 등의 화학 성분의 양을 계측 생물학센서 : 효소, 단백질, 항체, DNA, 미생물, 분자 등을 계측센서의 분류여러 가지 제품에 센서 ● ● Begin u : 0; do u = H - v := H-u if i-u = 0 and j-v = 0 - add sensor (i-u, j-v) to set P [ ] i-u 0 and j-v = 0 - add sensor (0, j-v) to set P [ ] i-u = 0 and j-v 0 - add sensor (i-u, 0) to set P [ ] i-u 0 and j-v 0 - skip if; u := u+1 od remove sensor (I, j) from set P endLGR (Logical Grid Routing)Spanning Tree Construction(0, 2)(1, 3)(2, 2)(3, 3)(1, 2)(0, 3)(0, 4)(1, 4)(2, 4)(2, 3)(3, 2)(3, 4)(4, 3)(4, 2)(4, 4)Hop size 2Connected (i, j)Parent NodeConnected NodeNon-Connected Node(4, 1)(0, 1)(3, 1)(1, 1)(2, 1)(0, 0)(1, 0)(2, 0)Base station(3, 0)(4, 0)Connected (0,0) 메시지를 받은 Sensor : (0,1), (1,0), (2,0), (0,2), (1,1)LGR (Logical Grid Routing)Spanning Tree Construction(0, 0)(1, 0)(2, 0)(4, 1)(0, 1)(0, 2)(1, 3)(2, 2)(3, 3)Base station(3, 1)(1, 1)(2, 1)(1, 2)(0, 3)(0, 4)(1, 4)(2, 4)(2, 3)(3, 0)(3, 2)(3, 4)(4, 0)(4, 3)(4, 2)(4, 4)Hop size 2Connected (i, j)Parent NodeConnected NodeNon-Connected NodeBase station (0,0)을 Parent로 가지는 Sensor : (0,1), (1,0), (2,0), (0,2), (1,1)LGR (Logical GriProtocolRoute Advertisement(A, 1, A-550) (B, 0, B-102) (C, 1, C-588)(A, 1, A-550) (B, 0, B-102) (C, 1, C-588)CBAB increases Seq.Nr from 100 - 102 B broadcasts routing information to Neighbors A, C including destination sequence numbersB-1001BBA-5500AAC-5882BCSeqMetricNextDest.B-1020BBA-5501AAC-5881CCSeqMetricNextDest.B-1001BBA-5502BAC-5880CCSeq.MetricNextDest.DSDV Routing ProtocolRoute AdvertisementCBAB-1021BBA-5500AAC-5882BCSeqMetricNextDest.B-1020BBA-5501AAC-5881CCSeqMetricNextDest.B-1021BBA-5502BAC-5880CCSeq.MetricNextDest.DSDV Routing ProtocolDSDV Routing Table(D, 0, D-000)CBADB-1041BBA-5500AAC-5902BCSeq.MetricNextDest.B-1040BBA-5501AAC-5901CCSeq.MetricNextDest.C-5900CCB-1041BBA-5502BASeq.MetricNextDest.1. D broadcast for first time Send Sequence number D-000DSDV Routing ProtocolDSDV Routing TableCBADB-1041BBA-5500AAC-5902BCSeq.MetricNextDest.B-1040BBA-5501AAC-5901CCSeq.MetricNextDest.D-0001DDC-5900CCB-1041BBA-5502BASeq.MetricNextDest.2. Insert entry for D with sequence number D-00_(-1) { ● ● ● sendpktbytes = 0; bind( sendPktBytes_ , sendpktbytes); } UdpAgent::UdpAgent(packet_t type) : Agent(type) { ● ● ● sendpktbytes = 0; bind( sendPktBytes_ , sendpktbytes); } ● ● ●Udp.ccLGR 시뮬레이션 코드작성● ● ● void UdpAgent::sendmsg(int nbytes, AppData* data, const char* flags) { sendpktbytes += nbytes; ● ● ●LGR 시뮬레이션 코드작성class LossMonitor : public Agent { ● ● ● double avg_pkt_delay; double total_pkt_delay; }; ● ● ●Loss-monitor.hLossMonitor::LossMonitor() : Agent(PT_NTYPE) { ● ● ● total_pkt_delay = 0.0; avg_pkt_delay = 0.0; bind(“pktDelay_ , avg_pkt_delay); } void LossMonitor::recv(Packet* pkt, Handler*) { ● ● ● const double SAMPLERATE = 8000.0; total_pkt_delay = total_pkt_delay + (Scheduler::instance().clock() – (hdr_cmn::access(pkt)- timestamp()/SAMPLERATE)); avg_pkt_delay = total_pkt_delay / npkts_; ● ● ●Loss-monitor.ccLGR 시뮬레이션 코드작성● ● ● Struct LGR_Position { int x; int y; }; class LGR_Agent : public Agent { ● ● ● int maxx_; int maxy_; int hopsize_; LGR_Position parent_pos; bo 시뮬레이션 코드작성# Define options # ================================================= set val(chan) Channel/WirelessChannel ;# Channel Type set val(prop) Propagation/TwoRayGround ;# radio-propagation model set val(netif) Phy/WirelessPhy/802_15_4 set val(mac) Mac/802_15_4 set val(ifq) Queue/DropTail/PriQueue ;# interface queue type set val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna model set val(ifqlen) 50 ;# max packet in ifq set val(rp) LGR ;# routing protocol set val(maxx) 7 ;# maximun x position set val(maxy) 7 ;# maximun y position # distance between mobilenode to mobilenode set val(distance) 5 # number of mobilenodes (maxx * maxy) set val(nn) 49 set val(interval) 0.30 # traffic gerneration interval(sec) set val(pktsize) 20 set val(x) 50 set val(y) 50 set val(traffic) cbr ● ● ●Lgr_demo.tclLGR 시뮬레이션 코드작성● ● ● set appTime 2.0 ;# in seconds set trafficStopTime 17 ;# in seconds set stopTime 30 ;# in seconds # Initialize Global Variables set ns_ [new Simulator] set how}