Download presentation
Presentation is loading. Please wait.
1
Network – P2P 20th 1조 유수희 김선일 강석우 김준환
안녕하십니까!! 1조 네트워크 과제 발표를 맡은 20기 유수희입니다. Network – P2P 20th 1조 유수희 김선일 강석우 김준환
2
Partition transmission
Contents Language 3 1 System Architecture 2 Message Protocol 3 발표순서는 하나의 p2p서버와 3개의 클라이언트의 언어구성 설명을 시작으로 전반적인 아키텍쳐 설명과 데모 덤프 화면을 보여 드리는 순으로 진행하도록 하겠습니다. Partition transmission 4 DEMO / Q & A 3 5
3
Language Server – C# Client3 - MFC Client1 - JAVA Client2 – C#
P2P프로그램의 서버는 C#으로 구현하였고, 3개의 클라이언트는 JAVA, C#, MFC를 이용하여 구혔하였습니다.
4
Server Architecture 접속한 클라이언트 210.103.54.22 210.111.25.60
Server 지금 멤버십 같은 경우에는 고정 IP를 사용하지만. 일반적으로 인터넷을 사용하는 대부분의 사용자는 유동 IP를 사용하게 됩니다. 그러므로 서버는 P2P클라이언트들의 IP주소 정보들를 관리하며, 접속한 클라이언트들의 대하서 현재까지 서버에 접속 되어 있는 다른 클라이언트들의 IP주소를 메시지로 넘겨주게 됩니다..반대로 새로운 클라이언트가 서버에 접속하였을때. 현재까지 서버에 접속되어있던 클라이언트들에게 접속한 클라이언트의 IP정보를 브로드캐스팅 방식으로 메시지를 전달하게 됩니다. Member Table
5
Client Architecture Search Server Search Client Client Server
파일전송 파일검색 SSM.AVI 서버 접속 파일저장 파일검색 접속한 클라이언트 목록 전송 저희 조 같은 경우에는 서버를 가볍게 구성하고, 클라이언트에 필요한 기능을 모두 포함 시켰는데.. 내부 구성은 화면에 보시는 것과 같이 서버와 연결을 하기위한 클라이언트와, 파일검색및 전송을 위한 또 다른 서버와 클라이언트로 구성하였습니다. 클라이언트의 작동방식은 P2P서버에 접속하여 현재 접속한 클라이언트들의 IP주소들을 얻은다음.. 그 IP주소들을 이용하여 각각의 파일검색 서버에 연결하여 검색할 파일명에 대한 메시지를 보내게 됩니다. 메시지를 받은 검색서버는 자신의 공유폴더에 검색요청한 파일명을 찾아보고 있으면 다시 검색클라이언트에게 파일에 관한 정보들을 보내게 되는데… 파일을 검색한 클라이언트가 다운로드 버튼을 누르게 되면 P2P 방식으로 파일을 받을 수 있게 됩니다. Server File Down Down directory Find File Share directory
6
System Architecture Client Client Server Client Client Connection
File Search& Download Server 전체적인 시스템 아키텍쳐로 볼때.. 서버는 접속한 아이피만 관리함으로써.. 가벼워지고 각각의 클라이언트끼리 연결하여 파일검색및 전송을 처리 하기 때문에..peer 2 peer 방식이 성립되는 것입니다. Client Client
7
Thread C# Client Class TCPListener BinaryReader TCPClient Socket
FileStream TCPListener BinaryReader FileInfo Thread NetworkStream TCPClient C#으로 서버와 클라이언트를 구현할때 사용하였던 클래스들입니다. 이중에서 TCPListener만 잠깐 설명을 드리자면.. 기본적으로 블로킹 동기모드 방식으로.. 클라이언트의 연결요청을 큐에 넣어두었다가 일괄적으로 연결을 해주게되는데.. 이 방식을 이용하면 연결 큐를 탐색하여 사용가능한 연결 요청의 여부를 판단할 수 있기때문에 좀더 안정성을 높일 수 있습니다. StreamReader Socket DateTime StreamWriter IPHostEntry
8
Thread JAVA & MFC Client Class ServerSocket PrintWriter
FileOuputStream FileInputStream File ServerSocket BufferedReader Thread InetAddress PrintWriter JAVA같은 경우에는 C#과 비슷한 기능을 가지는 클래스들을 사용하였는데.. ServerSocket이 앞에서 보셨던 TCPListener의 역할을 하게 됩니다. OutputStream InputStream
9
Message Protocol CONN#myIP CONNOK#ClientsIP - 서버에 접속. - 서버에 접속. REF#
Client -> Server Server-> Client CONN#myIP - 서버에 접속. - 지금까지 접속한 클라이언트들의 IP를 요청함. REF# - 서버 접속 후에 서버에 접속한 클라이언트들의 IP를 요청함 FILE# myIP#filename - 서버에 접속한 상대방 클라이언트 에게 파일검색을 요청함. FILEDOWN# - 검색된 파일을 이용해 파일을 분할 해 전송하라고 요청함. CONNOK#ClientsIP - 서버에 접속. - 지금까지 접속한 클라이언트들의 IP 목록을 보냄 REF#ClientIP - 서버에 새로 접속한 클라이언트의 IP를 현재 접속중인 클라이언트에 게 보냄. FILE#ServerIP#fileInfo - 검색된 파일의 정보를 클라이언트 에게 보냄. FILEDOWN#fileInfo - 분할된 파일의 정보를 보냄. Server Client
10
Partition transmission
SSM.AVI Client count 1_SSM.AVI 4_SSM.AVI 2_SSM.AVI 3_SSM.AVI
11
DEMO Server C#
12
DEMO Client C#
13
DEMO Client JAVA
14
DEMO Client MFC
15
Q&A
Similar presentations