1. 용어 정의 :
Finder : 검색하고자 하는 파일에 대한 Query를 전송하고, 이 Query에 대한 파일 list를 수신하는 application
파일 list중 임의의 파일에 대해 파일 내용을 전송받음
사용자가 필요한 시점에만 실행. GUI 필요
Base : Finder로부터 Query를 전송받아, 이 Query에 해당하는 파일을 특정 폴더에서 찾아 list를 송신하는 application
파일 list중 전송이 요청된 파일을 송신
프로세스로서 항시 실행. GUI 불필요
검색 요청 : Finder가 각각의 Base들에게 Query Request ( 멀티캐스트 이용)
검색 응답 : 각각의 Base들이 각자의 특정 폴더에서 검색한 list 내역을 Finder에게 송신(응답)
파일 요청 : Finder가 list의 파일중 하나를 선택함으로써, 특정 Base 그룹에서 파일의 전송을 요청함
파일 전송 : 선택된 파일을 소유하고 있는 Base들이 Finder에게 선택된 파일을 전송
2. 기능 정의 :
Finder :
- 파일 전송시 전송속도, 예상시간, 파일 총 용량, 수신한 용량 표시
- 몇 개의 Base로부터 파일을 수신중인지, 어떤 IP를 가진 Base로부터 수신중인지를 표시
- 리스트 새로 고침
- 이미 같은 이름의 파일이 수신 폴더에 존재할때 '이어받기' or '덮어쓰기' 물어볼 것
- 파일 수신시 수신 받을 폴더를 변경 가능
- '전송 시작' 및 '전송 일시중지', '전송 취소'기능
- '이어받기' 기능 ( '전송 일시중지' 후 '전송 계속'을 선택하면 일시중지 직전의 나눠받기 상황에서 계속 )
Base :
- 지정된 폴더내의 하위 폴더에 존재하는 파일도 전송 가능
3. 제약 사항
- 파일 전송 시작시, 이미 list를 파악 완료한 Base로부터만 수신함
- 파일 전송 시작후에 수신된 list에 대해서는 기존 파일 전송
- 파일 전송중 특정 Base가 어떠한 이유로 '전송 불가' 상태가 되면
다른 Base로부터 그 공백분을 수신함
- 파일 전송중 특정 Base로부터의 해당부분 전송이 완료되면
현재 전송중이면서 가장 전송속도가 느린 해당분의 전송속도를 확인하여
적절한 조건이 만족하면 ( 이 부분 확실히 정의할 것) 그 해당분의 부족분을 대신 전송케 함
--- 아래 사항은 특정 설정 파일을 두어 기록한다.
- 다운로드, 공유 디렉토리
- 업/다운로드 Node수 제한사항
4. 다음 시간까지 숙제
- 책 14-1장 멀티캐스트(Multicast) 공부
- 12장 I/O 멀티플렉싱(Multiplexing) 공부, 정확한 이해
- 우리 p2p 프로젝트에 멀티플렉싱을 적용할 수 있는가..
그렇다면, 또는 그렇지 않다면 프로세스/쓰레드/소켓을 어떻게 구성해야 하는가..
그 근거는 무엇인가..
* 12장은 조낸 빡셀 수 있으므로 숙제는 일찍 시작들 하시길....
화요일 저녁 회의 끝나고 봅시다.