Giao thức sử dụng trong hệ thống P2P

Một phần của tài liệu DỊCH vụ VIDEO THEO yêu cầu dựa TRÊN LOCAL PROXY MODEL (Trang 39 - 41)

Đối với hệ thống P2P, luận văn lựa chọn giao thức Kamdemlia

Các node Kademlia lưu trữ thông tin liên lạc của nhau để định tuyến các bản tin truy vấn. Với mỗi i sao cho 0≤ i ≤ 160, mọi node sẽ lưu trữ một danh sách về <địa chỉ IP, cổng UDP, Node ID> của các node nằm giữa 2i và 2i+1 tính từ bản thân nó. Ta gọi danh sách đó là các danh sách k-buckets. Mỗi k-bucket lưu trữ không quá k liên lạc với các node. Và phải có cơ chế quản lý thay thế và xóa liên lạc để tối ưu hóa khả năng duy trì liên lạc của danh sách k-bucket.

Kademlia xây dựng hệ thống tìm kiếm và lưu trữ <khóa, giá trị>. Các khóa sử dụng 160 bit và được đưa ra nhờ một hàm băm của dữ liệu. Mỗi máy tính cá nhân có một node ID trong không gian 160 bit khóa và được đưa ra nhờ một hàm băm về địa chỉ IP của node. Các cặp <khóa, giá trị> được lưu trữ trên những node có ID gần với khóa nhất. Để định vị các node gần một ID cá nhân, Kademlia sử dụng thuật toán định tuyến đơn từ đầu đến cuối và sử dụng toán tử XOR để tính khoảng cách giữa 2 điểm.

37

Dựa trên giao thức Kademlia, luận văn xây dựng một mạng P2P gồm các Local Streaming Server của các Client được xếp theo một cấu trúc. Mỗi Local Streaming Server được gọi là một node. Mỗi node có một node ID để xác định vị trí của nó. Có một Node luôn trực tuyến trong mạng và khi các node muốn tham gia vào mạng nó sẽ kết nối đến Node này để xác định vị trí của mình trong mạng [2].

Các thao tác cơ bản mà giao thức Kademlia cung cấp là:

- Put(filename): Khi muốn Upload 1 file video lên mạng, Client sẽ gửi file video đó lên Local Streaming Server, Local Streaming Server sẽ xử lý thông tin nhận được bằng cách tạo file [session_id]<filename>, tiếp theo nó băm tên file [session_id]<filename> để xác định vị trí các node sẽ chịu trách nhiệm lưu trữ file này, sau đó đưa file lên mạng P2P bằng phương thức Put(filename) theo thuật toán của Kademlia.

- Get(filename): Client muốn lấy nội dung file [session_id]<filename>, nó sẽ gửi tên file lên Local Streaming Server. Local Streaming Server sẽ xử lý bằng cách băm tên file để xác định sẽ tìm kiếm file ở node nào trên mạng P2P theo giao thức Kademlia, sau đó tìm kiếm và lấy về từ P2P của Local Streaming Server khác bằng thao tác Get(filename) và gửi lại cho Client.

- Search (keyword): Client gửi từ khóa cần tìm kiếm lên Local Streaming Server, Local Streaming Server xử lý bằng cách băm thông tin nhận được để xác định sẽ tìm kiếm ở node nào trên mạng P2P theo giao thức Kademlia, sau đó tìm kiếm thông tin trong <metadata> của các file [session_id]<filename> thông qua thao tác Search(keyword) và trả lại cho Client danh sách tên file video.

- Delete (filename): Client muốn yêu cầu xóa nội dung file nào đó bằng cách gửi tên file cần xóa lên Local Streaming Server. Local Streaming Server sẽ xử lý bằng cách băm tên file đó để xác định sẽ tìm kiếm file tại node nào, sau đó sẽ tìm kiếm từ P2P của các Local Streaming Server khác, nếu tìm thấy sẽ thực hiện thao tác Delete(filename) và gửi lại thông báo cho Client.

38

Một phần của tài liệu DỊCH vụ VIDEO THEO yêu cầu dựa TRÊN LOCAL PROXY MODEL (Trang 39 - 41)