Mạng đồng đẳng
Bách khoa toàn thư mở Wikipedia
- Xem các nghĩa khác ở bài đồng đẳng
Mạng đồng đẳng (tiếng Anh: peer-to-peer network), còn gọi là mạng ngang hàng, là một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán và băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thông thường. Mạng đồng đẳng thường được sử dụng để kết nối các máy thông qua một lượng kết nối dạng ad hoc. Mạng đồng đẳng có nhiều ứng dụng. Ứng dụng thường xuyên gặp nhất là chia sẻ tệp tin, tất cả các dạng như âm thanh, hình ảnh, dữ liệu,... hoặc để truyền dữ liệu thời gian thực như điện thoại VoIP.
Một mạng đồng đẳng đúng nghĩa không có khái niệm máy chủ và máy khách, nói cách khác, tất cả các máy tham gia đều bình đẳng và được gọi là peer, là một nút mạng đóng vai trò đồng thời là máy khách và máy chủ đối với các máy khác trong mạng.
Một số mạng hay kênh như Napster, IRC (thuộc thế hệ thứ nhất) sử dụng mô hình máy chủ-máy khách cho một số tác vụ và mô hình đồng đẳng cho những tác vụ khác. Ngược lại, các mạng như Gnutella hay Freenet (thế hệ thứ 2) sử dụng mô hình đồng đẳng cho tất cả các tác vụ, nên các mạng này thường được xem như là mạng đồng đẳng đúng nghĩa (thực ra Gnutella vẫn sử dụng một số máy chủ để giúp các máy trong mạng tìm kiếm địa chỉ IP của nhau).
Cấu trúc mạng đồng đẳng là biểu hiện của một trong những khái niệm quan trọng nhất của Internet, mô tả trong "RFC 1, Host Software" [1] xuất bản ngày 7 tháng 4 năm 1969. Gần hơn, khái niệm này đã được sự công nhận rộng rãi trong các cấu trúc chia sẻ nội dung mà không có máy chủ trung tâm.
Khái niệm đồng đẳng ngày nay được tiến hóa vào nhiều mục đích sử dụng khác nhau, không chỉ để trao đổi tệp mà còn khái quát hóa thành trao đổi thông tin giữa người với người, đặc biệt trong những tình huống hợp tác giữa một nhóm người trong cộng đồng.
[sửa] Phân loại mạng đồng đẳng
Ta có thể phân loại các mạng đồng đẳng hiện nay theo tiêu chí về mức độ tập trung của chúng như sau:
Mạng đồng đẳng thuần túy:
- Các máy trạm có vai trò vừa là máy chủ vừa là máy khách
- Không có máy chủ trung tâm quản lý mạng
- Không có máy định tuyến (bộ định tuyến) trung tâm, các máy trạm có khả năng tự định tuyến
Mạng đồng đẳng lai:
- Có một máy chủ trung tâm dùng để lưu trữ thông tin của các máy trạm và trả lời các truy vấn thông tin này.
- Các máy trạm có vai trò lưu trữ thông tin, tài nguyên được chia sẻ, cung cấp các thông tin về chia sẻ tài nguyên của nó cho máy chủ.
- Sử dụng các trạm định tuyến để xác định địa chỉ IP của các máy trạm.
Các mạng đồng đẳng "thuần túy" có thể kể là Gnutella và Freenet.
[sửa] Ưu thế của mạng đồng đẳng
Một mục đích quan trọng của mạng đồng đằng là trong mạng tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán. Do đó khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn. Ngược lại, trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi số lượng máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm xuống.
Tính chất phân tán của mạng đồng đẳng cũng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố. Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ thống sẽ ngưng trệ.
Đối với mạng Napster, thuật ngữ đồng đẳng nói lên tính chất quan trọng của giao thức giao tiếp đồng đẳng, còn thực ra thành công của Napster phải nhờ vào sự liên kết chặt chẽ giữa các máy tham gia với máy chủ trung tâm lưu trữ danh sách nội dung tệp trên các máy tham gia. Nhờ vậy việc tìm kiếm trở nên nhanh và hiệu quả hơn, tuy nhiên, đây cũng chính là điểm yếu dẫn đến các rắc rối pháp lý mà kết cục là sự sụp đổ của Napster.
[sửa] Mạng đồng đẳng có cấu trúc và không cấu trúc
Mạng phủ đồng đẳng bao gồm tất cả các nút mạng đại diện cho các máy tham gia và các liên kết giữa các nút mạng này. Một liên kết tồn tại giữa hai nút mạng khi một nút mạng biết vị trí của nút mạng kia. Dựa vào cấu trúc liên kết giữa các nút mạng trong mạng phủ ta có thể phân loại mạng đồng đẳng thành 2 loại: có cấu trúc hay không cấu trúc.
Một mạng đồng đẳng không cấu trúc khi các liên kết giữa các nút mạng trong mạng phủ được thiết lập ngẫu nhiên (tức là không theo qui luật nào). Những mạng như thế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của một máy khác đang ở trong mạng và sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới của riêng mình. Khi một máy muốn tìm một dữ liệu trong mạng đồng đẳng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cả mạng để tìm ra càng nhiều máy chia sẻ càng tốt. Hệ thống này thể hiện rõ nhược điểm: không có gì đảm bảo tìm kiếm sẽ thành công. Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trên nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên một vài máy thì xác suất tìm thấy là khá nhỏ. Tính chất này là hiển nhiên vì trong mạng đồng đẳng không cấu trúc, không có bất kì mối tương quan nào giữa một máy và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một số máy trong mạng. Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin càng nhỏ.
Một nhược điểm khác của hệ thống này là do không có định hướng, một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp.
Hầu hết các mạng đồng đẳng phổ biến là không cấu trúc như Napster, Gnutella, Fasttrack và eDonkey2000.
Mạng đồng đẳng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc bằng cách sử dụng hệ thống DHT (Bảng Băm Phân Tán, tiếng anh: Distributed Hash Table). Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả.
Một số mạng đồng đẳng có cấu trúc nổi tiếng bao gồm Chord, CAN, Kademlia, Pastry và Tapestry.
[sửa] Tranh cãi pháp lý
Theo luật của Mỹ và hầu hết các nước phương Tây phát triển, một công nghệ không được xem là bất hợp pháp nếu nó có thể được sử dụng cho các hành vi "không phạm luật" một cách đáng kể. Đối với mạng đồng đẳng, quyết định này có thể áp dụng bởi mạng có thể sử dụng để trao đổi các nội dung hợp pháp, như phần mềm miễn phí, phiên bản thử nghiệm, nội dung không đăng kí bản quyền,... Nhưng trên thực tế, rất nhiều mạng đồng đẳng, nếu không muốn nói là hầu hết, đều được lợi dụng để sao chép trao đổi trái phép các nội dung có bản quyền như âm nhạc hay phim ảnh. Điều này dẫn đến việc các công ty truyền thông và cả những người từng ủng hộ mạng đồng đẳng mất lòng tin về việc sử dụng mạng cho mục đích hợp pháp và cho rằng mạng đồng đẳng đang gây ra một hiểm họa cho cả hệ thống phân phối nội dung. Đã có nhiều nghiên cứu để định lượng thiệt hại tài chính gây nên bởi mạng đồng đẳng, nhưng hầu hết đều có vẻ không chắn chắn vì trên tính toán lý thuyết, mạng đồng đẳng gây những thiệt hại lớn, trong khi trên thực tế cho thấy nguồn thu của các ngành công nghiệp bị ảnh hưởng từ khi xuất hiện mạng đồng đẳng không bị thay đổi đáng kể. Cho dù có thật sự bị thiệt hại hay không, tại Mỹ, cả hai Hiệp Hội Ghi Âm Mỹ (RIAA)và Hiệp Hội Điện Ảnh Mỹ đã và đang bỏ ra rất nhiều công sức và tiền bạc để chống lại việc sử dụng mạng đồng đẳng, bằng cách kiện các chủ sở hữu mạng đồng đẳng ra tòa, đồng thời vận động các nhà làm luật thông qua những luật cho phép xử lý dễ dàng việc chia sẻ trao đổi thông tin trái phép trên các mạng này. Không chỉ giới hạn ở Mỹ, các tổ chức này còn dựa vào ưu thế chính trị để gây sức ép lên các nhà hành pháp tại các nước khác, điển hình gần đây là vụ thu giữ hệ thống mạng của trang web thepiratebay.org tại Thụy Điển, một trong những địa chỉ yêu thích của những dùng BitTorrent, hay việc gây sức ép lên Duma nhằm chấm dứt hoạt động kinh doanh của nhà phân phối âm nhạc trực tuyến allofmp3.com tại Nga.
Khi đe dọa trở nên gia tăng trên mạng đồng đẳng, các nhà phát triển mạng nhanh chóng tìm cách thích ứng để làm cho mạng trở nên khó bị quấy nhiễu về cả hai mặt kĩ thuật và luật pháp. Điều này khiến cho tất cả trách nhiệm đổ dồn lên người sử dụng mạng, vì theo nguyên tắc rõ ràng công nghệ mạng đồng đẳng là hợp pháp nhưng không có nghĩa là cho phép việc lợi dụng mạng để trao đổi nội dung trái phép.
Một khuynh hướng của các nhà phát triển mạng đồng đẳng là xây dựng các mạng nặc danh cho phép chia sẻ thông tin hợp pháp lẫn bất hợp pháp --to be continued--
Anonymous peer-to-peer networks allow for distribution of material - legal or not - with little or no legal accountability across a wide variety of jurisdictions. Many profess that this will lead to greater or easier trading of illegal material and even (as some suggest) facilitate terrorism, and call for its regulation on those grounds [2]. Others counter that the potential for illegal uses should not prevent the technology from being used for legal purposes, that the presumption of innocence must apply, and that non peer-to-peer technologies like e-mail, which also possess anonymizing services, have similar capabilities.
In the European Union (EU), the 2001 EU Copyright directive, which implemented the 1996 WIPO treaty ("World Intellectual Property Organization Copyright Treaty"), prohibits peer-to-peer, claiming it is a violation of the directive. However, not all European member states have implemented the directive in national legislation. Notably, on December 22, 2005, after discussing the EU directive, the French parliament passed two amendments legalizing the exchange of copies on the internet for private use. In a later proceeding, the French government withdrew the article in question and made illegal any p2p client obviously aimed at sharing copyrighted material. The term "obviously" was not defined. The project of law (called DADVSI) has still to be discussed by the French senate and, if the decision differs too much from the Parliament's, it will be debated on second lecture back at the Parliament (Assemblée Nationale).
[sửa] Important Cases
- US law
- Sony Corp. v. Universal City Studios (The Betamax decision)
- MGM v. Grokster
[sửa] Computer science perspective
Technically, a completely pure peer-to-peer application must implement only peering protocols that do not recognize the concepts of "server" and "client". Such pure peer applications and networks are rare. Most networks and applications described as peer-to-peer actually contain or rely on some non-peer elements, such as DNS. Also, real world applications often use multiple protocols and act as client, server, and peer simultaneously, or over time. Completely decentralized networks of peers have been in use for many years: two examples are Usenet (1979) and FidoNet (1984).
Many P2P systems use stronger peers (super-peers, super-nodes) as servers and client-peers are connected in a star-like fashion to a single super-peer.
Sun added classes to the Java technology to speed the development of peer-to-peer applications quickly in the late 1990s so that developers could build decentralized real time chat applets and applications before Instant Messaging networks were popular. This effort is now being continued with the JXTA project.
Peer-to-peer systems and applications have attracted a great deal of attention from computer science research; some prominent research projects include the Chord project, the PAST storage utility, the P-Grid, a self-organized and emerging overlay network and the CoopNet content distribution system (see below for external links related to these projects).
[sửa] Use of peer-to-peer networks in bioinformatics
Peer-to-peer networks have also begun to attract attention from scientists in other disciplines, especially those that deal with large datasets such as bioinformatics. P2P networks can be used to run large programs designed to carry out tests to identify drug candidates. The first such program was begun in 2001 the Centre for Computational Drug Discovery at Oxford University in cooperation with the National Foundation for Cancer Research. There are now several similar programs running under the auspices of the United Devices Cancer Research Project. On a smaller scale, a self-administred program for computational biologists to run and compare various bioinformatics software is available from Chinook. Academic institutions have also begun experimenting with file sharing: one of the most interesting projects is LionShare.
[sửa] Attacks on peer-to-peer networks
Many peer-to-peer networks are under constant attack by people with a variety of motives.
Examples include:
- poisoning attacks (e.g. providing files whose contents are different from the description)
- polluting attacks (e.g. inserting "bad" chunks/packets into an otherwise valid file on the network)
- defection attacks (users or software that make use of the network without contributing resources to it)
- insertion of viruses to carried data (e.g. downloaded or carried files may be infected with viruses or other malware)
- malware in the peer-to-peer network software itself (e.g. distributed software may contain spyware)
- denial of service attacks (attacks that may make the network run very slowly or break completely)
- filtering (network operators may attempt to prevent peer-to-peer network data from being carried)
- identity attacks (e.g. tracking down the users of the network and harassing or legally attacking them)
- spamming (e.g. sending unsolicited information across the network- not necessarily as a denial of service attack)
Most attacks can be defeated or controlled by careful design of the peer-to-peer network and through the use of encryption. P2P network defense is in fact closely related to the "Byzantine Generals Problem". However, almost any network will fail when the majority of the peers are trying to damage it, and many protocols may be rendered impotent by far fewer numbers.
[sửa] Networks, protocols and applications
- Aimini P2P: Aimini network (on its own network)
- Ares: Ares Galaxy, Warez P2P
- BitTorrent: ABC [Yet Another BitTorrent Client], Azureus, BitComet, BitSpirit, BitTornado, BitTorrent, BitTorrent.Net, G3 Torrent, mlMac, MLdonkey, QTorrent, Shareaza, Transmission, Tribler, µTorrent
- Direct Connect network: BCDC++, DC++, NeoModus Direct Connect
- eDonkey2000: aMule, eDonkey2000, eMule, LMule, MLdonkey, mlMac, Shareaza, xMule, iMesh
- FastTrack: giFT, Grokster, iMesh (and its variants stripped of adware including iMesh Light), Kazaa (and its variants stripped of adware such as Kazaa Lite), KCeasy, Mammoth, MLdonkey, mlMac, Poisoned
- Freenet: Entropy (on its own network), Freenet
- Gnutella: Acquisition, BearShare, BetBug, Cabos, Gnucleus, Grokster, iMesh, gtk-gnutella, Kiwi Alpha, LimeWire, FrostWire, MLdonkey, mlMac, Morpheus, Phex, Poisoned, Swapper, Shareaza, XoloX
- Gnutella2: Adagio, Caribou, Gnucleus, iMesh, Kiwi Alpha, MLdonkey, mlMac, Morpheus, Shareaza, TrustyFiles
- Joltid PeerEnabler: Altnet, Bullguard, Joltid, Kazaa, Kazaa Lite
- Kad Network (using Kademlia protocol): aMule, eMule, MLdonkey
- MANOLITO/MP2P: Blubster, Piolet, RockItNet
- MFPnet: Amicima
- Napster: Napigator, OpenNap, WinMX
- Peercasting type networks: PeerCast, IceShare, Freecast
- LiveP2P type networks: CoolStreaming, Cybersky-TV
- WPNP: WinMX
- other networks: ANts P2P, Applejuice, AsagumoWeb, Audiogalaxy, Avalanche, CAKE, Chord, The Circle, Coral, Dijjer, EarthStation 5, FileTopia, FotoSwap, GNUnet, Groove, Hamachi, iFolder, iGlance, konspire2b, Madster/Aimster, MUTE, OpenExt, OpenFT, P-Grid, Qnext, IRC, JXTA, Peersites, MojoNation, Mnet, Octoshape, OmilyX, Overnet, Scour, Skype, Solipsis, soribada, Soulseek, SPIN, Swarmcast, WASTE, Winny
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include: Legion, Globus, Condor, ByteTornado
[sửa] Multi-network applications
- aMule (eDonkey network, Kad Network) (Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Windows and Solaris Operating Environment) (open source)
- eMule (eDonkey network, Kad Network) (Windows) (open source)
- FileScope (Gnutella, Gnutella2, eDonkey network, OpenNAP) (crossplatform) (open source)
- giFT (own OpenFT protocol, and with plugins - FastTrack, eDonkey and Gnutella) (open source)
- Gnucleus (Gnutella, Gnutella2) (Windows) (open source)
- iMesh (Fasttrack, Edonkey Network, Gnutella, Gnutella2) (Microsoft Windows) (closed source)
- KCeasy (Ares, FastTrack (plugin required), Gnutella, OpenFT) (open source)
- Kiwi Alpha (Gnutella, Gnutella2) (Windows) (closed source)
- MLdonkey (BitTorrent, eDonkey, FastTrack, Gnutella, Gnutella2, Kademlia) (Windows, Linux, Mac OS X) (open source)
- Morpheus (NEO Network, Gnutella, Gnutella2, BitTorrent) (Windows) (closed source)
- Napshare (MUTE, Key Network) (Linux, Windows) (open source)
- Shareaza (BitTorrent, eDonkey, Gnutella, Gnutella2) (Windows) (open source)
[sửa] See also
- Ambient network
- Anonymous P2P
- Byzantine Fault Tolerance
- Comparison of P2P applications
- Compulsory licensing
- Computer cluster
- Distributed hash table
- Friend-to-friend (or F2F)
- Grid computing
- Overlay network
- Servent
- Client-server
- Swarm intelligence
[sửa] External links
- IBM Developer Works: The practice of peer-to-peer computing
- BitTorrent Tracker Support
- Internet2® Peer-to-Peer Working Group
- OpenP2P - P2P development resources
- The Web 2.5 Blog discusses P2P web servers on mobile devices
- Understanding peer-to-peer: An Introduction for Service Providers - article by CacheLogic
- The P2P revolution Peer-to-peer networking & the entertainment industry. A free-to-distribute white paper by Scott Jensen.
- LinuxP2P List of file sharing software for GNU/Linux
- The Foundation for P2P Alternatives Wiki-based site with discussion of the philosophy behind P2P networks.
- P2P Networking 4 Science A review of the current and potential uses of P2P networks in scientific research.
[sửa] References
- Ross J. Anderson. The eternity service. In Pragocrypt 1996, 1996.
- Marling Engle. Vulnerabilities of P2P systems and a critical look at their solutions, May 2006
- Stephanos Androutsellis-Theotokis and Diomidis Spinellis. A survey of peer-to-peer content distribution technologies. ACM Computing Surveys, 36(4):335–371, December 2004. doi:10.1145/1041680.1041681.
- Biddle, Peter, Paul England, Marcus Peinado, and Bryan Willman, The Darknet and the Future of Content Distribution. In 2002 ACM Workshop on Digital Rights Management, 18 November 2002.
- Antony Rowstron and Peter Druschel, Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems. In proceedings Middleware 2001 : IFIP/ACM International Conference on Distributed Systems Platforms. Heidelberg, Germany, November 12-16, 2001. Lecture Notes in Computer Science, Volume 2218, Jan 2001, Page 329.
- Andy Oram et al., Peer-to-Peer:Harnessing the Power of Disruptive Technologies, Oreilly 2001
- Detlef Schoder and Kai Fischbach, Core Concepts in Peer-to-Peer (P2P) Networking. In: Subramanian, R.; Goodman, B. (eds.): P2P Computing: The Evolution of a Disruptive Technology, Idea Group Inc, Hershey.
- I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In Proceedings of SIGCOMM 2001, August 2001.
- Ralf Steinmetz, Klaus Wehrle (Eds). Peer-to-Peer Systems and Applications. ISBN 3-540-29192-X, Lecture Notes in Computer Science, Volume 3485, Sep 2005
- Ghosemajumder, Shuman. Advanced Peer-Based Technology Business Models. MIT Sloan School of Management, 2002.
- Silverthorne, Sean. Music Downloads: Pirates- or Customers?. Harvard Business School Working Knowledge, 2004.
- Kronschnabl, A & Rawlings T. Plug In & Turn on: A Filmmakers Guide to the Internet Marion Boyars, 2004.
- Peer to peer content distribution resources - a collection of several hundred academic papers related to Peer to Peer content delivery networks Peer to peer resources from HUJI
[sửa] Peer-to-Peer File Sharing Clients
- Ares Ares
- Blubster Blubster
- FileSpree FileSpree
- Gnutella Gnutella AquaLime, BearShare, FileNavigator, FreeWire, Gnucleus, LimeWire, Phex, Shareaza, Xolox Ultra
- DirectConnect DirectConnect
- torrent Entropy, Frost, Freenet / Entropy Controller for Darwin
- eDonkey2000eDonkey2000, eMule
- FastTrackMorpheus, KaZaA, KaZaA Lite, Grokster, iMesh
- PioletPiolet
- WASTEWASTE