• 전문가 요청 쿠폰 이벤트
*재*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 35
검색어 입력폼
  • [변전소]IEC61850 기반 변전소 자동화 설계 평가A+최고예요
    1IT화 변전소 설계1.1서론1.1.1 개요변전소는 전력 계통의 주요 구성 요소들이 연결되는 장소이다. 그만큼 전력 유통에 필요한 설비들이 많이 모여 있고 따라서 계통 운영에 필요한 정보들이 많이 존재하는 곳이다1.1.2 현재의 변전소오래전 부터 SCADA시스템의 도입과 디지털 보호, 제어장치들이 등장하여 많은 부분이 자동화, 무인화 되어 있다.정기적인 순회점검사기 이외에는 자동화로 운전되고 있는 것이다. 현재의 자동화는 주로 기존 기능을 디지털화 하면서 통신기술을 이용하여 원격 감시, 제어 및 정보 취득을 한 것이다1.1.3 연구 배경현재의 좀더 많은 요구사항을 충족시키기 위해 다양하고 자세한 데이터 및 정보들이 변전소 현장에서 채집되고 가공되어 이용되며 원격에 있는 중앙 감시 장치인 EMS나 SCADA가 공급될 수 있어야 한다.각 변전소 마다 가치 있는 정보들을 취득하고 가공하여 이용하는 시스템 즉 정보기술 기능이 뛰어난 시스템이 요구된다. 그 동안 국내에서는 변전소 디지털화를 위한 R&D 활동과 시범 사업 등이 있었으나 실용화를 이루지 못하였다. 최근 변전소 내 정보통신을 위한 국제 규격 IEC61850이 제정되었고 마침 정부에서도 전력 시스템 IT화를 통하여 전력 산업 분야에 발전을 모색하는 시점이어서 변전소 IT화는 매우 좋은 기회를 맞이하고 있다1.2지금까지의 국내 변전소 IT화1.2.1 종합 보호 제어 시스템(IDPACS) 개발 Project1.2.1.1개요Integrated Digital Protection and Control System로서 재래식 아날로그 시스템을 디지털화하는 국내 최초의 변전소 IT화 과제이다. 1989.4부터 한전 전력 연구원에서 시작되었다.1.2.1.2내용보호 및 제어 장치를 디지털화하는 것과 변전소 내 정보 통신 기술로 10Mbps 토큰버스를 이용한 IEEE 802.3 통신 표준을 이용하였고, 1단계에서는 시제품을 제작하여 한전의 실계통 변전소에 병렬로 연결하여 약 1년 동안 시운전하고, 2단계로는 실제 적용을 목적으로 중전 기업체와 컨소시엄 형태로 정부 지원금을 이용하여 과제를 추진하였으며 이때에는 여러 가지 센서들을 적용하였다1.2.1.3문제점IMF사태로 인하여 중전기 업체의 기술 개발 조직이 해산되면서 결국 실용화 결실을 보지 못하고 중단되었다.
    공학/기술| 2005.11.15| 100페이지| 4,000원| 조회(3,172)
    미리보기
  • [화일 처리]B+ Tree 자료 구조 분석 문서
    개요- B+ 트리B+트리는 B-트리의 순차 접근의 취약점을 보완한 트리로서 리프 노드를 찾기 위하여 경로를 제공하는 인덱스 부분과 트리의 내부 노드를 포함하여 모든 노드를 순차적으로 리프 노드에 열거해 놓은 순차 부분으로 구성 된다.인덱스 부분은 리프 노드에 접근하기 위한 경로로만 사용하기 때문에 인덱스 부분에 속하는 노드의 키 값이 리프 노드의 순자 부분에 다시 나타난다.순차 부분의 리프 노드는 순자적으로 연결 된다.따라서 B+트리는 파일의 한 노드에 해당하는 레코드를 직접 및 순차적으로 접근하는 인덱스 파일 구성에 널리 사용된다.- 프로그램 개요 ( B+ 트리 )이 프로그램은 디스크 기반 B+-트리에 레코드를 삽입, 삭제, 검색하는 기능을 수행한다. 하나의 레코드는 integer 키값 하나와 12개의 character로 구성된 레코드 값으로 구성되어 있다. 디스크 입/출력은 디스크 페이지 크기의 블록 단위로 수행되며 이때 페이지의 크기는 4096byte로 가정한다. B+-트리 노드 하나는 디스크 페이지 하나에 해당한다. B+-트리 노드의 할당, 반납은 별도의 디스크 페이지 관리 프로그램을 이용하여 디스크 페이지를 할당, 반납함으로써 이루어 진다.헤더 파일 (B+ 트리)BTree.hB+-트리 연산을 정의한 파일BTreePage.hB+-트리 페이지 구조와 읽기,쓰기 연산을 정의한 파일소스 파일 (B+ 트리)BTree.c초기화 함수와 스택 연산을 구현한 파일initBTree 함수- B+ 트리를 초기화closeBTree 함수- B+트리 헤더를 디스크에 저장하고 파일을 닫는다push 함수- 스택에 pageNo와 index를 pushpop 함수- 스택의 top을 poppeek 함수- 스택의 top을 반환함BTreePage.cB+-트리 페이지 관리를 구현한 파일initBTreeHeader 함수- BTree 헤더를 초기화initBTreePage 함수- BTreePage를 초기화readBTreePage 함수- PageNo번째 페이지를 page에 읽어 들임whiteBTree음반환값- 스택의 topcalling function- 없음called function- BOOL insertRecord( BTreeRecord* newRecord )(BtreeIncert.c)알고리즘5. STACK *peek()함수명peek번호1파일명BTree.c작성자작성일05.05.18함수 분석기능 설명- 스택의 top을 반환함입력 인자- 없음반환값- 스택의 topcalling function- 없음called function- BOOL retrieveRecord( Key key, BTreeRecord* record)(BtreeRetrieve.c)알고리즘6. void initBTreeHeader(int root, int firstSequence)함수명initBTreeHeader번호1파일명BTreePage.c작성자작성일05.05.18함수 분석기능 설명- BTree 헤더를 초기화하는 함수입력 인자- root : root 페이지 번호- firstSequence : 첫번째 페이지 번호반환값- 없음calling function- 없음called function- void initBTree( char* name, int pageSize, BOOL newStart )(BTree.c)- void loadBTreeHeaderPage() (BTreePage.c)알고리즘7. void initBTreePage(BtreePagePtr page, int pageNo, BOOL leaf)함수명initBTreePage번호1파일명BTreePage.c작성자작성일05.05.18함수 분석기능 설명- BTreePage를 초기화하는 함수입력 인자- page : 페이지를 가리키는 포인터- pageNo : 페이지 번호- leaf : leaf 노드반환값- 없음calling function- 없음called function- void initBTree( char* name, int pageSize, BOOL newStart )(BTree.c)- BOOL insertRecord( BTreeRecord* 를 가지키고 있는 BTree 포인터- newRecord : 새로운 record를 가리키고 있는 BTreeRecord포인터- index : index 값반환값- TRUEcalling function- void copyRecord( BTreeRecord* sourceRecord, BTreeRecord* targetRecord ) (BTreePage.c)called function- BOOL insertRecord( BTreeRecord* newRecord ) (BTreeInsert.c)- Key splitLeaf( BTreePagePtr page, BTreeRecord* newRecord, int index ) (BTreeInsert.c)알고리즘14. BOOL removeRecord(BtreePagePtr page, int index)함수명removeRecord번호1파일명BTreePage.c작성자작성일05.05.18함수 분석기능 설명- 페이지의 index번째 레코드를 삭제입력 인자- page : 페이지를 가지키고 있는 BTree 포인터- index : index 값반환값- TRUEcalling function- void copyRecord( BTreeRecord* sourceRecord, BTreeRecord* targetRecord ) (BTreePage.c)called function- BOOL deleteRecord( Key key ) (BTreeDelete.c)알고리즘15. BOOL removeKey(BtreePagePtr page, int index)함수명removeKey번호1파일명BTreePage.c작성자작성일05.05.18함수 분석기능 설명- 페이지의 index번째 키, index+1번째 자식 페이지 번호를 삭제입력 인자- page : 페이지를 가지키고 있는 BTree 포인터- index : index 값반환값- TRUEcalling function- 없음called function- BOOL deleteRecord( Key key ) (BTreeDen(int argc, char**argv) (BTreeMain.c)알고리즘23. Key splitNode(BtreePagePtr page, Key newKey, int rightPage, int index)함수명splitNode번호1파일명BTreeInsert.c작성자작성일05.05.18함수 분석기능 설명- 리프가 아닌 노드를 분할입력 인자- page : 분할될 노드를 가지고 있는 페이지- newKey : 새로운 key 값- rightPage : 오른쪽 페이지 인덱스 값- index : index반환값- 분할된 후 새로운 key 값이 반화calling function- void initBTreePage( BTreePagePtr page, int pageNo, BOOL leaf ) (BTreePage.c)- void copyNode( BTreePagePtr sourcePage, BTreePagePtr targetPage, int from, int count ) (BTreePage.c)- BOOL addKey( BTreePagePtr page, Key key, int rightPage, int index ) (BTreePage.c)- int newBTreePage() (BTreePage.c)- BOOL writeBTreePage( int pageNo, BTreePagePtr page )(BTreePage.c)called function- BOOL insertRecord( BTreeRecord* newRecord ) (BTreeInsert.c)알고리즘24. Key splitLeaf(BtreePagePtr page, BTreeRecord *newRecord, int index)함수명splitLeaf번호1파일명BTreeInsert.c작성자작성일05.05.18함수 분석기능 설명- 리프 노드를 분할입력 인자- page : 분할될 리프 노드를 가지고 있는 페이지- newRecord : 새로운 record 값- index : index반환값- 분할된 후 새로운 key 값이 반화 TRUEcalling function- void copyKey( Key* sourceKey, Key* targetKey ) (BTreePage.c)- BOOL writeBTreePage( int pageNo, BTreePagePtr page )(BTreePage.c)called function- BOOL deleteRecord( Key key ) (BTreeDelete.c)알고리즘30. int selectSibling(BtreePagePtr sibling, BtreePagePtr parent, STACK *stack)함수명selectSibling번호1파일명BTreeDelete.c작성자작성일05.05.18함수 분석기능 설명- 재분배에 참여하는 형제 노드를 선택한다입력 인자- child : 자식노드의 페이지를 가리키는 페이지 번호- sibling : 형제 노드의 페이지를 가리키는 페이지 번호- stack : stack반환값- 재분배에 참여하는 형제 노드의 페이지 번호를 returncalling function- BOOL readBTreePage( int pageNo, BTreePagePtr page )(BTreePage.c)called function- BOOL deleteRecord( Key key ) (BTreeDelete.c)알고리즘31. BOOL retrieveRecord(Key key, BTreeRecord *record)함수명retrieveRecord번호1파일명BTreeRetrieve.c작성자작성일05.05.18함수 분석 eq oac(○,1) 기능 설명- 인덱스 셋으로부터 레코드 검색 eq oac(○,2) 입력 인자- key : 찾고 싶은 key값- record : 검색하고자 하는 레코드를 가리키는 포인터 eq oac(○,3) 반환값- 검색하는 레코드를 찾으면 TRUE, 아니면 FALSE 반환 eq oac(○,4) calling function- BOOL findRecord( Key key, BTreePagePtr page ) (BTre17
    공학/기술| 2005.11.16| 68페이지| 3,000원| 조회(1,345)
    미리보기
  • [데이타 통신]WinPcap 에 있는 pcap.h, packet32.h, packet.h 함수 분석 && Switch, Bridge, Hub, Repeater 에 대한 조사 평가B괜찮아요
    WinPcap 에 있는 pcap.h, packet32.h, packet.h 함수 분석pcap.h 함수 분석void pcap_close(pcap_t* p)p와 할당되지 않은 데이터에 연계된 파일을 닫는 함수int pcap_datalink(pcap_t* p)어댑터의 link layer 값을 반환하는 함수pcap_datalink() 여러 타입의 link layer 값을 반환한다.DLT_NULL BSD loopback encapsulationDLT_EN10MB Ethernet (10Mb, 100Mb, 1000Mb, and up)DLT_IEEE802 IEEE 802.5 Token RingDLT_ARCNET ARCNET SLIPDLT_PPP PPPDLT_FDDI FDDIDLT_ATM_RFC1483 RFC 1483 LLC/SNAP-encapsulated ATMDLT_RAW raw IPDLT_PPP_SERIAL PPP in HDLC-like framingDLT_PPP_ETHER PPPoEDLT_C_HDLC Cisco PPP with HDLC framingDLT_IEEE802_11 IEEE 802.11 wireless LANDLT_LOOP OpenBSD loopback encapsulationDLT_LINUX_SLL Linux "cooked" capture encapsulationDLT_LTALK Apple LocalTalkint pcap_datalink_name_to_val(const char* name)int pcap_dispatch(pcap_t* p, int cnt, pcap_handler callback, u_char* user)pocket의 그룹을 수집한다. cnt pocket 받았을때 , 또는 시간이 초과 되어서 pcap_open_live()가 만기 설정되었을 때 return 된다.Void pcap_fakecallback(u_char* userData, const sruct_pkthdr* h, const u_char* pkt)FILE* pcap_file(pcap_tnicode dotted-quad를 변환한다.Parameters:cp 주소값을 저장하는 string 타입Return :32-bit 변환된 주소값주소값이 가능한지 check 하지 않는다.LPPACKET PacketAllocatePacket(void)a_PACKET structur 에 공간을 할당한다Return :성공하면 return value는 a_PACKET에서의 포인터이다. 다시말하면 return value는 NULL이다.반환된 structure는 드라이브에서 packet을 받는PacketReceivePacket() 함수를 거쳐간다.VOID PacketCloseAdapter(LPADAPTER lpAdapter)어댑터를 닫는다.PacketCloseAdapter는 주어진 어댑터를 닫고, 관련되 어댑터 structure를 놓아준다.Parameters:lpAdapter 어댑터에서 닫기 위한 포인터Long PacketDumpRegistryKey(PCHAR KeyName, PCHAR FileName)문자 포맷에서 레지스터 키값을 디스크에 넘긴다.regedit를 사용한다.Parameters:KeyName 키값을 넘기기위한 ket의 이름모든 subkey값은 귀납적으로 저장된다.FileName dump를 포함하고 있는 file 이름Return :함수가 성공하면 non-zero값을 return디버깅의 목적으로 user machine으로 부터 레지스터 키값을 얻기 위해 이 함수를 사용한다.VOID PacketFreePacket(LPPACKET lpPacket)a_Packet structure를 놓아준다.Parameters:lpPacket 놓아주기 위한 structureBOOLEAN PacketGetAdapterNames(PTSTR pStr, PULONG BufferSize)사용 가능한 네트워크 어댑터 와 description의 목록을 얻는다.이 함수는 보통 드라이버와 통신하기 위한 첫번째 함수이다이 함수는 system에 설치되고 WinPcap에 의해 지지되는 어댑터의 이름을 반 함수에 의해 채워질 user에 의해 제공된 spf_stat structure 포인터Return :함수가 성공하면 return value 가 non-zeroBOOLEAN PacketDumpEnded(LPADAPTER AdapterObject, BOOLEAN sync)kernel dump process 의 상태를 returni.e.는 제한이 PacketSetDumpLimits()이 도달되어짐과 함께 정의되어지면 말한다.PacketSetDumpLimits()에 의한 이전의 호출이 set 되어지면 제한에 관해서 PacketIsDumpEnded()는 user에게 알려준다.Parameters:AdapterObject _ADAPTER structure에서의 포인터sync 만약 TRUE이면 dump가 끝날때까지 함수는 돌지 않는다. 다시 말해서 즉시 반환된다.Return :dump가 끝나면 TRUE, 아니면 FALSELPADAPTER PacketOpenAdapter(LPTSTR AdapterName)kernel dump process 의 상태를 return어댑터를 연다.이 함수는 packet driver를 실행하고 시작하도록 한다.Parameters:AdapterName 어댑터를 열기 위한 장치 이름가능한 장치의 목록을 회수하기 위하여PacketGetAdapterName()함수를 사용한다.Return :함수가 성공하면 return value는 일시적으로 초기화된 ADAPTER 객체의 포인터 반환BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject, LPPACKET lpPacket, BOOLEAN Sync)NPF driver로부터 data를 읽는다.Parameters:AdapterObject _ADAPTER structure에서의 포인터lpPacket 데이터를 포함하고 있는 PACKET structure 포인터Sync 이 parameter는 무시되고 경시되어진다.Return :함수가 성공하면 return value 가 non-zeroBMaxLookaheadsize(LPADAPTER AdapterObject)드라이버의 Packet_tap()함수를 위한 가능한 lookahead buffer를 설정한다.Parameters:AdapterObject service control manager 핸들러Return :함수가 성공하면 return value 가 non-zeroBOOLEAN PacketSetMinToCopy(LPADAPTER AdapterObject, int nbytes)읽기에서 받아들일 수 있는 최소의 데이터 양을 설정한다.Parameters:AdapterObject _ADAPTER structure 의 포인터Nbytes kernel buffer에서의 최소의 데이터 양Return :함수가 성공하면 return value 가 non-zeroBOOLEAN PacketSetMode(LPADAPTER AdapterObject, int mode)어댑터의 동작 mode를 설정한다.Parameters:AdapterObject _ADAPTER structure 의 포인터mode 어댑터의 새로운 동작 modeReturn :함수가 성공하면 return value 가 non-zeroBOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject, int nwrites)네트워크 상에서 반복되어지는 PacketSendPacket()에 의해 쓰여진 single packet의 양을 설정한다.Parameters:AdapterObject _ADAPTER structure 의 포인터nwrites 물리적으로 인터페이스에의해 보내진 packet 복사본의 양Return :함수가 성공하면 return value 가 non-zeroBOOLEAN PacketSetReadEvt(LPADAPTER AdapterObject)_ADAPTER structure안에 저장하고 있고 capture instance를 가지고 있는 드라이버와 관련되 event를 회수 한다.Parameters:AdapterObject serv ProtocolBindingContext)NDIS StatusCompleteHandler의 호출 응답, NFP에 의해 사용되지 않는다.VOID NPF_Unload(IN PDRIVER_OBJECT DriverObject)NPF가 실행되지 않을 때 OS에서 불려지는 함수Parameters:DriverObject system에 의해 생성되는 NPF의 드라이버 객체Switch, Bridge, Hub, Repeater 에 대한 조사Switch스위치란스위치는 쉽게 말한다면 브리지에 포트를 많이 추가해 놓았다고 보면 된다. 브리지는 서로 다른 네트워크로 데이터를 전송할 때 여전히 트래픽의 증가가 있다. 스위치에 연결된 모든 스테이션이 동시에 데이터를 송출하면서도 프레임의 충돌이 일어나지 않아 결과적으로 속도가 빠른 효과를 가지게 된다.동작원리스위치는 쉽게 말한다면 브리지에 포트를 많이 추가해 놓았다고 보면 된다. 브리지는 서로 다른 네트워크로 데이터를 전송할 때 여전히 트래픽의 증가가 있다. 스위치에 연결된 모든 스테이션이 동시에 데이터를 송출하면서도 프레임의 충돌이 일어나지 않아 결과적으로 속도가 빠른 효과를 가지게 된다.특징라우터보다 저렴한 가격으로 보다 많은 포트와 대역폭을 제공한다.라우터보다 빠른 속도로 동작한다.ㅇㅇㅇ네트워크 트래픽의 분리를 자동으로 해준다.브로드캐스트 프레임을 제어하지 못한다.알지 못하는 목적지 주소를 받으면 무조건 프레임을 다른 세그먼트로 보낸다.브릿지와 스위치의 비교특징브릿지스위치포트보통 2-4 개보통 8 개 이상전송일반적으로 쓰이는 CPU 사용Application Specific Integrated Circuits(ASICs) 사용Virtual LAN지원 안함지원함Layer 3 스위칭지원 안함지원함전송 방식Cut-through 방식 : 세 가지의 전송방식 중 가장 빠른 방법이다. 프레임의 내용은 확인하지 않고 목적지 주소만 확인 후 바로 보내 버린다. 그러다 보니 에러가 생길 가능성이 큰 것이 단점이다.Store-and-Forward 방식GE 1
    공학/기술| 2005.11.16| 18페이지| 2,000원| 조회(1,203)
    미리보기
  • [P2P]검색, 조회 서버를 이용한 P2P 파일 공유 애플리케이션
    ProjectLab PageProjectLab목 차1. 프로젝트 개요 ????????????????????????????11.1. 개발 목표 ???????????????????????????11.2. 프로젝트 설계 환경 ???????????????????????11.3. Peer-to-Peer ??????????????????????????12. 기반 기술 분석 ????????????????????????????32.1. Peer-to-Peer Application Program ????????????????32.2. Reseach the Peer-to-Peer Model ?????????????????33. 벤치마킹 모델 분석 ??????????????????????????73.1. P2P Network Topology & Analizing the Implement Technology ??74. P2P 애플리케이션 구성 ????????????????????????124.1. P2P 애플리케이션에 대한 간단한 설명 ?????????????124.2. 각각의 구성요소들의 역할 ???????????????????124.3. 세 구성요소들간의 관계 ????????????????????135. P2P 애플리케이션의 설계 ???????????????????????155.1. P2P 애플리케이션의 구조 ???????????????????155.2. 모듈들 사이의 통신 ??????????????????????165.3. 서버측 설계 ?????????????????????????195.4. 리스너 설계 ?????????????????????????205.5. 브라우저 설계 ????????????????????????255.6. 애플리케이션의 전체적인 흐름 ?????????????????296. 플로우차트를 사용한 ASP파일들에 대한 설명 ??????????????326.1. login.asp ??????????????????????????326.2. logout.asp ??(서버)과 받는 쪽(클라이언트)이 정해져 있는 구조가 아닌 네트워크 상에서 책임과 권한을 동등하게 갖는 네트워크 구조를 의미했다. 하지만 냅스터 등장 이후 이러한 전통적인 정의에 덧붙여 새로운 의미를 부여하는 작업들이 진행되었다.2. 기반 기술 분석2.1. Peer-to-Peer Application Program응용 프로그램 유형을 작성하는 데 있어서 가장 중요한 요소가 되는 것이 바로 통신의 문제이다. 어떤 응용 프로그램이든지 인터넷이나 인트라넷 상에서 잘 분산되어 있고 다른 리소스와 상호 작용을 유연하게 수행할 수 있을 때 큰 가치를 갖는다고 할 수 있다. 현재 인터넷을 통한 통신에 있어서 가장 공통적으로 사용되는 모델은 클라이언트/서버로서, 여기에는 정보를 요청하고 서버에 정보를 게시하는 방법을 잘 알고 있는 클라이언트와 클라이언트로부터 요청된 정보에 응답하는 방법을 잘 알고 있는 서버가 존재하게 된다. 이러한 모델에 대한 일반적인 예로서 웹 서버와 연결되어 있는 브라우저를 들 수 있다. 즉, 브라우저에서는 웹 서버에 요청을 보내고, 해당 서버는 이러한 요청에 귀를 기울여 각각의 내용에 응답을 보내거나 정보를 보내는 방식(주로 웹 페이지의 형태로 보냄)을 취하는 것으로 맡은 임무를 수행하게 된다. 이 모델에서는 웹 서버가 자의적으로 브라우저에 접촉할 수는 없으며, "대화"는 언제나 클라이언트쪽에서 시작하게 되어 있다."Peer-To-Peer" 응용 프로그램은 클라이언트와 서버의 두 가지 모두의 역할에 관여한다는 점에서 일반적인 클라이언트/서버 모델과는 다르다. 즉, 다른 서버로부터 정보 요청을 받을 수 있는 동시에, 서버로서의 역할을 수행하여 다른 클라이언트로부터 온 정보 요청에 응답할 수 있다는 의미이다. 이러한 접근법을 통해 네트워크의 각 노드마다 추가할 수 있는 가치 수준이 높아지게 되는데, 이는 소스로부터 정보를 얻어낼 수 있을 뿐 아니라 다른 소스와 정보를 공유할 수 있기 때문이다.Ⅰ. 다른 Peer의 파악응용 프로그램은 정보를 공유하려는 다른 활용되도록 클라이언트에서 사용할 수 있는 실질적인 리소스가 클라이언트/서버 모델에서 낭비될 가능성이 있다.3. 벤치 마킹 모델 분석우리는 P2P 시스템의 구현을 위해 우선 잘알려진 e-Donkey라는 모델의 기술을 벤치마크 하여서 그 기술을 분석하여 구현하고자 한다.3.1. P2P Network Topology & Analizing the Implement Technology3.1.1 Peer-To_Peer의 구성P2P는 크게 P2P 네트워크, P2P 컴퓨팅, P2P 커뮤니케이션으로 구분할 수 있다. P2P 커뮤니케이션은 네트워크 사이에서 서로 다른 두대의 정보 단말기에서 발생하는 일대일 통신을 말한다. 이는 모든 컴퓨터에서 발생하는 빈번한 일대일 데이터 통신이다. 하지만 P2P 커뮤니케이션은 기존의 클라이언트/서버 모델에서도 가능한 것이며, 모든 피어가 반드시 서버로 작동해야 하는 것은 아니다. 기본적으로 네트워크에 연결된 모든 단말기들은 P2P 커뮤니케이션에 참가하고 있다고 생각해도 무방하다. P2P 네트워크라는 것은 네트워크에 참가하는 모든 피어가 서버로서 작동할 수 있는 네트워크를 말한다. 그리고 P2P네트워크는 P2P 커뮤니케이션을 통해 서로 통신을 한다.그림 4) P2P 구성 개념도P2P 컴퓨팅은 모든 피어들이 동일한 권한과 책임을 가지는 컴퓨팅을 말한다. P2P 네트워크에서는 모든 피어가 서버로 작동해야 하지만, P2P컴퓨팅은 각자의 피어들이 자기 자신의 역할에 따라 서버 혹은 클라이언트/서버 모두 작동할 수 있게 하는 구조이다. 하지만 권한과 책임이라는 측면에서 기존의 클라이언트/서버구조와는 사뭇 다른다. 그것은 권한에 따라 책임이 부여되고 또 서비스 및 역할에 따라 권한과 책임이 나뉘어짐을 의미한다.3.1.2. Peer-To-Peer의 쌍방향성P2P분야는 분산 네트워킹의 한 분야로서 최든에 인터넷 인프라와 PC성능 향상에 기인한 점이 많다. 실질적으로 네트워크 토폴로지를 보면 서버사이의 P2P(링 방식이나 계층적인 네트워크 모델을 가진 클러스P2P 애플리케이션에 대한 간략한 설명제작할 P2P애플리케이션은 조회와 룩업 서버를 가진 P2P 모델에 기반하고 있다. 이 애플리케이션에서 파일공유는, 두 개의 연결된 피어들 사이에서 파일 확장자에 무관하게 일어난다. 애플리케이션은 다음 세가지 요소들로 구성된다.?리스너(Listener) : 피어의 접속요청이 들어오는 것을 처리한다.?서버(Server) : 애플리케이션에서 필요로 하는 데이터베이스를 관리한다.?브자우져(Browser) : 사용자에게 친숙한 인터페이스를 통해 피어에게 결과를 보여주며, 클라이언트를 위한 상호작용 계층으로 작용한다.4.2. 각각의 구석요소들의 역할앞서 언급한 각각의 요소들은 애플리케이션을 매끄럽게 실행시킬 수 있도록 특정한 역할을 수행한다.리스너리스너가 수행하는 첫 번째 임무는 서버에 로그인하는 것이다. 이는 서버에게 리스너 자신의 존재유무를 알리고, 자신의 공유된 자원들을 목록으로 만드는 것이다. 로그인 후, 리스너는 서버로부터 넘겨받은 클라이언트들의 요청을 다룰수 있다. 리스너는 클라이언트가 파일로 접근하면 언제나 그 파일을 다운로드해 준다. 다운로드 과정과 함께, 리스너는 다수의 클라이언트의 요청도 쉽게 처리할 수 있다. 리스너는 다수의 클라이언트를 다룰때 본질적으로 서버처럼 작동하여, 확장된 방법으로 검색옵션을 사용할 수 있도록 해준다. 서버는 오직 루트 수준의 검색(공유된 자원들을 기본적인 수준에서 검색하는 것)만을 수행한다. 루트 수준을 넘어선 검색을 하기 위해서는, 리스너의 도움을 받아야 한다.만약 리스너가 어떤 폴더를 공유된 자원으로 직접 선언한다면, 사용자는 쉽게 그 폴더를 열어서 모든 파일의 목록을 볼 수 있다. 이러한 검색은 서버 수준에서 행하는 루트 검색보다 훨씬 빠르다. 리스너 수준에서의 검색은 컨텐트의 위치에 관하여 미리 정보를 가지고 단일 컴퓨터상에서 일어난다. 리스너의 한가지 중요한 특징은 리스너가 비사용자 모드에서 실행 가능하다는 것이다. 비사용자모드란 말 그대로, 사용자가 없는 것을 말한다.서버서버는 응답할 준비가 되었다. 한편, 컨텐트를 검색하고 있는 브라우저는 서버에 HTTP 요청을 보냄으로써 서버에 접근한다.서버는 이경우도 역시 피어에게 XML형태로 응답을 전송하지만 약간 다른 방식을 취한다. 리스너의 요청에 대한 XML 응답은 인증작업을 거친 후에만 반환되었다. 하지만 브라우저의 요청에 대해서는, 서버가 자신에게 접속한 모든 피어들의 목록을 XML형태로 바로 반환해 준다. 서버는 접속된 리스너들의 이름, 공유된 자원, 리스너의 IP주소로 구성된 모든 목록을 브라우저에게 제공한다.이제 브라우저는 반환된 리스너 목록 중에서 하나의 리스너를 선택할 수 있다. 여기서부터, 서버의 역할은 없어진다. 왜냐하면, 서버는 피어들 사이의 통신을 개시해 주는 자신의 임무를 모두 완수했기 때문이다. 서버는 통신을 개시할 수 있도록 정보를 제공해 주는 역할을 할 뿐이며, 피어(리스너)와 통신하기 위해 접속을 수행하는 것은 브라우저이다. 리스너는 브라우저와 통신을 개시하는 것이 아니라 단지 브라우저들에 의해 시도되는 접속 요청을 검색한다.즉 브라우저는 서버에 접근한 후 원하는 리스너와 통신을 수립하는 두 단계를 수행한다. 일단 브라우저와 리스너 사이에 통신이 수립되면, 두 피어들은 서로 자유롭게 데이터를 주고받을 수 있다. 브라우저는 XML형식으로 데이터를 읽고 쓰기 위한 네트워크 스트림을 연다. 피어들 사이에 일어나는 주요 프로세스는 이 네트워크 스트림을 통한 데이터의 업로드와 다운로드이다.브라우저는 특정 데이터를 원격 리스너로부터 다운로드하는 방법으로 원하는 컨텐트를 얻는다. 브라우저가 데이터를 다운로드하려면 XML작성 컴포넌트를 사용하여 요청XML을 생성하고, 리스너의 네트워크 스트림에 생성한 XML요청을 쓴다. 차례로, 리스너는 자신에게 수신되는 요청XML을 파싱하고 최종적으로 어떤 파일이 브라우저에게 전송할 것인지 판단한다. 이 정보는 브라우저의 요청에 대한 XML응답이 될 수도 있고 브라우저가 다운로드 요청한 파일일 수도 있는데, 이 정보를 브라우저의 네트워크
    공학/기술| 2005.11.16| 48페이지| 3,000원| 조회(1,866)
    미리보기
  • [화일 처리]C언어 파일 입출력 함수
    C언어 파일 입출력 함수과 목 명: 제 출 일: 학 번: 이 름: 담당 교수:고수준 I/O Function정의 운영체제가 제공하는 FILE 구조체를 이용하여 중간 단계에 대한 buffer를 고려하지 않고 입출력을 하는 함수 데이터 타입 FILE 스트림 object들을 나타내기 위해 사용되는 데이터형이다. FILE object는 파일 위치를 지적하고, 정보를 버퍼링 하는 것과 같은 일들을 포함한, 파일과 연관된 모든 내부적 정보를 갖고 있다. 표준 스트림 당신의 프로그램의 메인 함수가 불려질 때, 그곳에는 이미 열기도 하고 사용도 할 수 있는, 미리 선언된 3개의 스트림을 갖게 된다. 이것은 프로세스를 위해 만들어 놓은 “표준”의 입/출력을 표현하기 위함이다. 헤더파일은 “stdio.h”에 선언되어 있다. FILE* stdin - 이 표준 입력 스트림은 프로그램의 입력을 위한 표준의 자원이다. FILE* stdout - 이 표준 출력 스트림은 표준의 입력을 위해 사용된다. FILE* stderr - 이 표준 에러 스트림은 프로그램의 에러 발생에 대한 메시지와 진단에 대한 조언을 위해 사용된다.고수준 I/O Function스트림 열기 (fopen) fopen 함수는 입출력을 위해 파일 이름으로 파일을 열고 스트림에게 포인터를 반환한다. 함 수 FILE* fopen(const char *filename, const char* opentype) 인 자 filename 열려고 하는 file의 이름 Opentype 문자열로서 어떻게 열려진 파일을 제어하고 결과물로 얻어진 스트림의 속정을 지정하는 역할 'r' - 오직 읽기 모드로 존재하는 파일을 열 떄 사용 'w' - 오직 쓰기 모드로 파일을 열때, 만약 이미 그 파일이 존재한다면, 이미 존재하고 있는 것을 없애고 새로운 파일을 만드는 것과 같은 효과 'a' - 덧붙임을 위해 파일을 열 때 사용하라. 그럴땐 오직 파일의 끝에만 쓰여 진다. 'r+' - 이미 존재하는 파일을 읽거나 쓰는 작업을 동시에 하고자 할 때 사용한다ets) gets 함수는 표준 스트림 stdin으로 부터 다음 newline 문자가 나올 때까지 문자들을 읽고, 그들을 문자열 s에 저장한다. gets 함수는 앞에서 보여준 fgets와는 다르게 newline문자를 취하지 않고 버린다. 만약 gets 함수는 에러가 발생하거나 파일의 끝에 이르면 널 포인터를 반환하고, 그렇지 않은 경우에는 문자열 s를 반환한다. gets 함수는 문자열 s가 오버플로우를 일으키는 경우에 대비한 아무런 보호책을 제공하지 않기 때문에 매우 위험한 함수이다. 함 수 char* gets (char* s)고수준 I/O FunctionUnreading 하기 (ungetc) 문자를 unread하기 위한 함수를 ungetc라고 부르는데, 그 이유는 getc의 동작을 되돌리기 때문이다. ungetc 함수는 입력 스트림 상에서 문자 c의 뒤로 밀어 놓는다. 그래서 다음 입력은 다른 어느 문자를 읽기 전에 c가 읽혀질 것이다. 만일 c가 EOF이면, ungets는 아무 일도 하지 않고 단지 EOF를 반환한다. 이것은 getc로 부터 에러를 체크하지 않고 getc의 반환 값으로 ungetc를 호출하도록 한다. 함 수 int ungetc (int c , FILE* stream)고수준 I/O Function형식화된 출력 출력 변환자 테이블 %d , %I 정수를 부호 있는 십진수로 프린트 %o 정수를 부호 없는 8진수로 프린트 %u 정수를 부호 없는 10진수로 프린트 %Z 정수를 부호 없는 십진수로 프린트 %x , %X 정수를 16진수로 프린트 %f 부동 소수 정수를 정상적인 표기로 프린트 %e , %E 부동 소수 정수를 지수 표기로 프린트 %g , %G 부동 소수 정수를 정상적인 또는 지수 표기로 프린트 %c 단일 문자를 프린트 %s 문자열을 프린트 %p 포인터의 값을 프린트 %n 프린트 될 문자의 개수 %m errno 값에 일치하는 문자열을 프린트 %% 리터럴 '%' 문자를 프린트고수준 I/O Function형식화된 출력 정수 변환자 - 필드내에서 결과이 비트가 셋되면 long형으로 수정된 기본적인 타입을 지정 PA_FLAG_LONG_DOUBLE 이것은 PA_FLAG_LONG_LONG의 동의어로서 long double형을 지정하기 위해 PA_DOUBLE의 기본적인 타입과 함께 협약으로 사용된다.ㅇ 함 수 size_t_printf_format (const char* template , size_t n , int* argtypes)고수준 I/O Function새로운 변환 등록하기 (register_printf_function) 이 함수는 문자 spec 변환 지시자를 정의한다. 만일 spec이 'q'라면 그것은 '%q'로 변환되어 정의된다. 'printf.h' 에 선언되어 있다. 함 수 int register_printf_function (int spec , printrf_function handler_function , printf_arginfo_function arginfo_function)고수준 I/O Function출력 핸들러 정의하기 (function) register_printf_function에게 인수로써 주어지게 될 핸들러와 arginfo 함수들을 정의한다. 여기의 핸들러 함수에 넘겨진 stream 인수는 출력으로 쓰기 위한 스트림이다. 여기의 info인수는 템플릿 스트링안의 변환을 포함하고 있는 다양한 옵션에 대한 정보를 포함하고 있는 구조체를 가리키는 포인터이다. 함 수 int function (FILE* stream , const struct printf_info* info , ca_list* ap_pointer)고수준 I/O Function형식화된 입력 함수 (scnaf) scanf함수는 표준 스트림에서 템플릿 문자열의 제어에 따라서 형식화된 입력을 읽는다. 임의의 인수는 반환된 값을 받기 위한 장소의 포인터이다. 함 수 int scanf (const char* template , …)고수준 I/O Function형식화된 입력 함수 (fscanf) 이 함수는 표준 스트림이 아닌 스트림에서 읽를 할당한다. 이 버퍼는 당신이 스트림을 닫을 때 해제된다. 그렇지 않으면 buf는 적어도 문자열을 저장할 수 있는 문자배열이 되어야 한다. 매크로 int_IOFBF 이 매크로의 값은 정수 상수 표현으로 스트림을 완전한 버퍼로 정하기 위해서 setbuf 함수에서 mode 인수에서 사용되어직 수 있다. int_IOLBF dl 매크로 값은 스트림을 라인 버퍼로 정하기 위해서 setvbuf 함수에서 mode 인수로서 사용되어질 수 있는 정 수 값의 상수 표현이다. int_IONBF 이 매크로 값은 스트림을 비 버퍼화로 정하기 위해 setvbuf함수에서 mode 인수로서 사용되어질 수 있는 정수 값의 상수 표현이다. int BUFSIZ 이 매크로 값으 setvbuf 함수에서 size 인수로 사용되기에 좋은 정수 값의 상수 표현 함 수 int setvbuf (FILE* stream , char* buf , int mod , size_t size)고수준 I/O Function버퍼링의 종류 제어하기(setbuf) 만일 buf가 널 포인터라면 이 함수를 사용한 효과는 _IONBF의 모드 인수를 사용해서 setvbuf를 호출한 것과 동등하다. 그렇지 다면, _IOFBF의 모드 인수와 BUFSIZ의 크기 인수를 사용한 buf로 setvbuf를 호출한 것과 동등하다. 함 수 void setbuf (FILE* stream , char* buf)고수준 I/O Function버퍼링의 종류 제어하기(setbuffer) 만일 buf가 널 포인터라면, 이 함수는 비버퍼화된 스트림을 만든다. 그렇지 않으면 이 함수는 버퍼로서 완전한 버퍼화된 스트림을 만든다. size인수는 buf의 길이를 정한다. 함 수 void setbuffer (FILE* stream , char* buf , size_t size)고수준 I/O Function버퍼링의 종류 제어하기(setlinebuf) 이 함수는 라인 버퍼된 스트림을 만들고, 버퍼를 할당한다. 이 함수는 오래된 BSD 코드와의 호환을 위해 제공되고 있다.를 포함한 파일 시스템이 어떤 순간에 더이산 파일의 개 방을 지원하지 않는다. ENOENT 같은 이름의 파일이 존재하지 않는데, O_CREAT 플래그도 선언되지 않았다. ENOSPC 새로운 파일을 넣어야 하는 디렉토리나 파일 시스템이 확장 되어질 수 없다. ENXIO O_NONBLOCK 와 O_WRONLY가 둘다 설정되고, filename 이름을 가진 파일이 FIFO이고, 어 떤 프로세스도 읽기 위해서 파일을 개방하지 않았다. EROFS 파일이 오직 읽기 모드인 파일 시스템 상에 존재하고, flgs 인수로 O_WRONLY, O_RDWR, O_CREAT, O_TRUNC 의 어떤 것이라도 설정되었을때 함 수 int open (const char* filename , int flags [, mode_t mode])저수준 I/O Function파일 열고 닫기 (creat) 이 함수는 시대에 뒤떠어져 있다. creat(filename,mode) 이렇게 호출하는 것은 open함수와 동등하다. 함 수 int creat (const char* filename , mode t_mode)저수준 I/O Function파일 열고 닫기 (close) close 함수는 파일 기술자 filedes를 폐쇄한다. 파일 닫기는 다음의 결과를 갖는다. 파일 기술자가 해제되어진다. 파일에서 프로세스에 의한 소유된 어느 잠긴 레코드는 잠금해제 된다. pipe나 FIFO와 연관된 모든 파일 기술자가 닫혀질 때, unread 데이터는 버려진다. close로 부터 반환되는 일반적인 값은 0이고, 실패할 경우에 -1이 반환된다. 함 수 int close (int filedes)저수준 I/O Function기본적인 입력과 출력 (read) read 함수는 기술자 filedes의 파일로부터 size 바이트를 읽고, 그 결과를 버퍼에 저장한다. 반환값은 실제로 읽은 바이트의 수이다. error 코드 EAGAIN 즉시 입력이 없을 때, read는 입력을 기다린다. 그러나 만일 그 파일에서 O_NONBLOCK가 how}
    공학/기술| 2005.11.16| 80페이지| 3,000원| 조회(3,106)
    미리보기
전체보기
받은후기 16
16개 리뷰 평점
  • A+최고예요
    2
  • A좋아요
    3
  • B괜찮아요
    7
  • C아쉬워요
    3
  • D별로예요
    1
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 17일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
8:38 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감