1 / 33

Peer-To-Peer, programiranje socketa sa TCP i UDP, primjeri u Pythonu

Peer-To-Peer, programiranje socketa sa TCP i UDP, primjeri u Pythonu. Ivana Matišić, 907 Ivana Šimić, 875 Marija Špringman, 876 Ivana Umiljanović, 881. Peer-To-Peer. Što su to P2P mreže ?!. Nema servera i klijent - server modela !!!.

tyanne
Download Presentation

Peer-To-Peer, programiranje socketa sa TCP i UDP, primjeri u Pythonu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Peer-To-Peer,programiranje socketa sa TCP i UDP,primjeri u Pythonu Ivana Matišić, 907Ivana Šimić, 875Marija Špringman, 876Ivana Umiljanović, 881

  2. Peer-To-Peer

  3. Što su to P2P mreže ?! Nema servera i klijent - server modela !!! Svi čvorovi (eng. peer) istodobno su i klijenti i serveri te dijele podatke između sebe.

  4. Generacijski razvoj • Generacija – potpuno centralizirana – Napster • Generacija – potpuno decentralizirana – prva • verzija Gnutelle • Generacija – uvedena anonimnost i kriptiranje • podataka – BitTorrent

  5. Arhitektura P2P mreža I Centralizirane  Decentralizirane 

  6. Arhitektura P2P mreža II Strukturirane  Nestrukturirane   čvorišta organizirana prema specifičnim kriterijima  zasnivaju se na ideji distribuiranih hash tablica (DHT)  nije bitna struktura mreže i članovi su međusobno spojeni na proizvoljan način

  7. Arhitektura P2P mreža III Čiste  Hibridne  • ravnopravni čvorovi koji objedinjuju ulogu klijenta i servera •  ne postoji centralni server niti neki preferirani čvor s posebnom ulogom  mješavina klijent-server i čiste P2P arhitekture  postojanje superčvorova

  8. Prednosti i nedostaci  dostupnost velike količine podataka putem velikog broja klijenata  brz pristup podacima  brzina prijenosa podataka  jednostavan pogon  virusi  nezakonit materijal

  9. P2P aplikacije

  10. Podjela P2P aplikacija • Aplikacije za dijeljenje podataka • Aplikacije za IM & online chat • Aplikacije za glasovnu i pisanu komunikaciju (VoIP) • Aplikacije za multimediju • Aplikacije za suradnju i grupe za diskusiju

  11. 1. P2P aplikacije za dijeljenje podataka I Prema protokolu koji koriste:  BitTorrent: µTorrent, Vuze (Azureus), Bitcomet, rTorrent  Gnutella: BearShare, LimeWire, FrostWire, Shareaza  Napster: Napster  eDonkey: aMule, eMule, Morpheus, Shareaza

  12. µTorrent  BitTorrent protokol  „mikro“ – način dizajna LimeWire  Gnutella protokol 1. P2P aplikacije za dijeljenje podataka II Napster  prvi popularni klijent  Napster protokol

  13. 2. P2P aplikacije za IM & online chat I  „instant messaging“ & online chat tri najpopularnije:  Windows Live Messenger  Yahoo! Messenger  Tencet QQ (Kina)

  14. Windows Live Messenger  MSN Messinger (1999.)  preimenovan 2005. ICQ  aktivan od 1998.  „I seek you“  Oko 31 milijuna korisnika diljem svijeta 2. P2P aplikacije za IM & online chat II Tencent QQ  treći najpopularniji IM klijent u svijetu  popularan u Kini (QQ Coin)

  15. 3. P2P aplikacije za glasovnu i pisanu komunikaciju (VoIP)  Voice over Internet Protocol  aplikacije koje podržavaju VoIP: Skype, ICQ, Windows Live Messenger,… Skype  glavni i najpopularniji predstavnik  preko 310 milijuna korisnika

  16. 4. P2P aplikacije za multimediju  osim za ilegalnu, koriste se i za legalnu distribuciju softvera i multimedije  primjer: Blizzard Downloader (koristi BitTorrent protokol)

  17. 5. P2P aplikacije za suradnju i grupe za diskusiju  namijenjena lakšoj suradnji i komunikaciji među ljudima koji rade na istom projektu  glavni predstavnik: Microsoft Groove

  18. Programiranje socketa

  19.  TCP (Transmission Control Protocol) TCP

  20. Primjer... Dobro dosli! poruka_klijenta Server primio poruku: poruka_klijenta

  21. Server I import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = '127.0.0.1' port = 54321 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(1) TCP pasivni socket

  22. Server II while True: print "Cekam konekcije..." client_sock, client_addr = s.accept() print "Spojio se ", client_addr client_sock.sendall("Dobro dosli!") data = client_sock.recv(64) print "Klijent salje poruku:", data client_sock.sendall("Server primio poruku: " + data) client_sock.close() print "Klijent", client_addr, "otisao." sendall() recvall() recv()

  23. Klijent I import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = '127.0.0.1' port = 54321 s.connect((host, port)) početak komunikacije klijenta i servera

  24. Klijent II data = s.recv(64) print data message = raw_input("Vasa poruka serveru:\n\r>>") s.sendall(message) data = s.recv(64) print data print "Kraj rada...“ s.close()

  25. UDP  UDP (User Datagram Protocol) poruka_klijenta odgovor_servera

  26. Komunikacija servera i klijenta

  27. Server import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) MAX = 65535 port = 54321 s.bind(('127.0.0.1' ,port)) print 'Cekam konekcije na...', s.getsockname() while True: data, address = s.recvfrom(MAX) print 'Klijent na', address, 'kaze', repr(data) s.sendto('Vasa poruka ima %d bitova' %len(data), address) UDP

  28. Klijent import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) MAX = 65535 port = 54321 print 'Adresa prije slanja:', s.getsockname() s.sendto('Ovo je moja poruka', ('127.0.0.1', port)) print 'Adresa poslije slanja:', s.getsockname() data, address = s.recvfrom(MAX) print 'Server', address, 'kaze:', repr(data) nema bind ?

  29. connect vs. bind s.connect((adresa, port))

  30. Zaključak P2P sva računala u mreži hijerarhijski jednaka chat, razmjena podataka Socketi primaju i šalju podatke TCP mehanizmi koji osiguravaju sigurnu isporuku podataka UDP nema ugrađene takve mehanizme

  31. Literatura: • B. Rhodes, J. Ghoerzen, Foundations of Python Network Programming, 2Ed, Apress, 2009 • J. F. Kurose, K. W. Ross, Computer Networking: A Top Down Approach, 5ed, Pearson, 2010 • Wikipedia • http://docs.oracle.com/javase/tutorial/networking/sockets/index.html (30.4.2012.) • http://docs.python.org/library/socket.html (30.4.2012.) • http://hr.wikipedia.org/wiki/IP (01.05.2012.) • http://msdn.microsoft.com/en-us/library/windows/desktop/ms740506%28v=vs.85%29.aspx (30.4.2012.) • http://www.buyya.com/java/Chapter13.pdf (30.4.2012.) • http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2009-11-282.pdf (02.05.2012.) • http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld011.htm (30.4.2012.) • http://www.fer.unizg.hr/_download/repository/p2p_aplikacije.pdf (02.05.2012.) • http://www.itmanage.info/technology/linux/statefull_firewall/Concept_of_State.htm (30.4.2012.)

  32. Hvala na pažnji

More Related