1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord

42 509 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng video streamming dựa trên mạng ngang hàng Chord
Trường học Trường …………………. Khoa……………………….
Thể loại Báo cáo tốt nghiệp
Định dạng
Số trang 42
Dung lượng 1,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Những nhược điểm đó gồm có việc phải phụ thuộc hoàn toàn vào khả năng của router đối với IP multicast hay vấn đề quản lý cây multicast khó khăn đối với một số giao thức truyền tin multic

Trang 1

  

 

Trang 2

Tóm tắt

Khóa luận này đưa ra một phương thức truyền tin multicast trên nền tảng mạng ngang hàng mới nhằm khắc phục những nhược điểm của một số phương thức truyền tin multicast đã tồn tại từ trước Những nhược điểm đó gồm có việc phải phụ thuộc hoàn toàn vào khả năng của router đối với IP multicast hay vấn đề quản lý cây multicast khó khăn đối với một số giao thức truyền tin multicast trên tầng ứng dụng khác

Khóa luận mô tả chi tiết giao thức mạng ngang hàng có cấu trúc Chord và cách thức truyền tin multicast trên nền mạng ngang hàng Chord Trong khóa luận, vấn đề truyền video streaming cũng được đề cập đến Từ đó khóa luận đã xây dựng nên ứng dụng truyền video streaming multicast trên nền Chord Việc đánh giá kết quả thu được qua quá trình xây dựng ứng dụng cho ta thấy được những ưu điểm của việc triển khai multicast trên mạng ngang hàng, cũng như những nhược điểm cần khắc phục

Trang 3

MỤC LỤC

Mở đầu 5 

Chương I: Tổng quan về video streaming multicast 7 

1.1.  Giới thiệu về video streaming 7 

1.2.  Giới thiệu multicast 9 

1.3.  IP multicast 10 

1.4.  Multicast tầng ứng dụng ( ALM – Application-layer Multicast) 12 

1.4.1.  Giới thiệu 12 

1.4.2.  Một số giải pháp truyền tin multicast trên tầng ứng dụng 13 

Chương II: Truyền tin multicast trên nền mạng ngang hàng có cấu trúc Chord 16 

2.1.  Giới thiệu mạng ngang hàng 16 

2.2.1.  Khái niệm 16 

2.2.2.  Ưu thế của mạng ngang hàng 16 

2.2.3.  Phân loại mạng ngang hàng 16 

2.2.  Mạng ngang hàng có cấu trúc Chord 18 

2.2.1.  Giới thiệu chung 18 

2.2.2.  Finger table 20 

2.2.3.  Node tham gia/ rời mạng và quá trình đồng bộ ( stabilization) 21 

2.3.  Thuật toán truyền tin multicast dựa trên nền mạng Chord 22 

Chương III: Xây dựng ứng dụng truyền tin video streaming multicast thời gian thực trên nền mạng ngang hàng có cấu trúc Chord 26 

3.1.  Mục tiêu và yêu cầu của việc xây dựng ứng dụng 26 

3.2.  Ý tưởng 26 

3.3.  Thiết kế hệ thống 27 

3.3.1.  Tạo cây multicast 27 

3.3.1.  Tạo dữ liệu thời gian thực 28 

3.3.2.  Truyền hình ảnh 28 

3.3.3.  Xử lý và hiển hình ảnh 29 

3.4.  Thiết kế giao thức 29 

Trang 4

3.4.1.  Giao thức máy chủ 29 

3.4.2.  Giao thức máy khách 31 

3.5.  Thiết kế chương trình 33 

3.5.1.  Lớp WebcamServer 34 

3.5.2.  Lớp WebcamClient 36 

Chương IV: Kết quả đánh giá hệ thống 39 

4.1.  Kết quả thử nghiệm 39 

4.1.1.  Môi trường chạy thử 39 

4.1.2.  Kết quả đạt được 39 

4.2.  Kết quả đánh giá hiệu năng 39 

Chương V: Kết luận 41 

Tài liệu tham khảo 42 

 

Trang 5

Mở đầu

Trong những ngày đầu phát triển của ứng dụng đa phương tiện, khoảng nửa cuối thập niên 90, việc xem một video trên mạng gần như là điều không thể Ngày nay, cùng với sự bùng nổ của Internet, các ứng dụng đa phương tiện trong đó có video streaming đã trở thành nhu cầu không thể thiếu của nhiều cư dân mạng.Theo thống kê, riêng tại Mỹ đã

có khoảng 13,5 tỉ video được xem trong tháng 10 – 2008 (nguồn comScore) Con số trên

đủ cho ta thấy được sự lớn mạnh không ngừng của các ứng dụng video streaming

Tuy nhiên, để phát triển một ứng dụng video streaming tốt gặp phải nhiều vấn đề Ứng dụng video streaming đòi hỏi nhiều băng thông và yêu cầu độ trễ thấp Chính vì vậy cần phải có một phương thức phân phát video trên đường truyền hợp lý IP multicast với khả năng tối ưu hóa đường truyền là một giải pháp cho vấn đề này Tuy nhiên, việc triển khai IP multicast lại rất tốn kém bởi nó đòi hỏi toàn mạng phải có những Router đắt tiền, chuyên dụng Điều này hoàn toàn không khả thi trong một mạng diện rộng như Internet Triển khai multicast trên tầng ứng dụng với việc không làm thay đổi hạ tầng mạng phía dưới là một giải pháp thay thế hữu hiệu cho IP multicast

Hiện nay, trên thế giới đã và đang phát triển rất nhiều phương pháp truyền tin multiast trên tầng ứng dụng khác nhau Trong đó truyền tin multicast dựa mạng ngang hàng hứa hẹn có nhiều ưu điểm Đặc thù của truyền tin multicast là phải tạo được một cây multicast tối ưu, có sự liên kết chặt chẽ giữa các node với nhau, có khả năng phục hồi lỗi nhanh Mạng ngang hàng có cấu trúc hoàn toàn có thể đáp ứng được yêu cầu đó với việc các node được liên kết với nhau bằng một thuật toán cụ thể

Để làm rõ hơn những lợi thế của mạng ngang hàng có cấu trúc trong việc truyền tin multicast, khóa luận này đã nghiên cứu xây dựng một ứng dụng truyền video streaming multicast dựa trên nền tảng mạng ngang hàng có cấu trúc Chord Sau đây là tóm tắt nội dung khóa luận gồm 5 chương

Chương 1: Tổng quan về video streaming và multicast

Giới thiệu về video streaming và trình bày những khái cơ bản về multicast, so sánh với các phương thức truyền tin khác IP multicast và multicast tầng ứng dụng được trình bày một cách ngắn gọn để từ đó có thể thấy được ưu điểm của multicast tầng ứng dụng so với IP multicast

Chương 2: Truyền tin multicast trên nền mạng ngang hàng có cấu trúc Chord

Trang 6

Phần này đưa ra cái nhìn tổng quan về mạng ngang hàng bao gồm: khái niệm, phân loại và ưu điểm chung của mạng ngang hàng Tiếp đó, sẽ giới thiệu hoạt động của giao thức Chord Đặc biệt, việc truyền tin multicast dựa trên nền mạng Chord được đề cập một cách chi tiết

Chương 3: Xây dựng ứng dụng truyền multicast video streaming thời gian thực trên nền Chord

Chương 3 đề cập đến những yêu cầu, mục tiêu của ứng dụng và cách thức xây dựng ứng dụng sao cho phù hợp với những mục tiêu đó Trong đó, trình bày chi tiết về thiết kế

hệ thống, thiết kế giao thức và thiết kế chương trình của ứng dụng

Chương 4: Kết quả đánh giá hệ thống

Sau các nghiên cứu ở các phần trên, chương 4 trình bày về môi trường chạy thử chương trình, các kết quả và đánh giá thu được sau quá trình thử nghiêm

Chương 5: Kết luận

Trang 7

Chương I: Tổng quan về video streaming multicast

Video là một loại dữ liệu đa phương tiện quan trọng phục vụ cho truyền thông hoặc cho nhu cầu giải trí của con người trong nhiều thập niên Trong thời kỳ đầu video được

xử lý và truyền dưới dạng tín hiệu tương tự (analog) Với sự phát triển không ngừng của mạch điện tử và máy tính dẫn đến việc số hóa video và mở ra một cuộc cách mạng về nén và truyền thông video Sự phát triển và phổ biến của Internet giữa những năm 90 đã định hướng truyền thông video qua mạng chuyển mạch gói best-effort Video qua mạng qua mạng Internet gặp phải rất nhiều yếu tố bất lợi về băng thông, độ trễ và mất gói tin, cùng với một số vấn đề như làm thế nào để chia sẽ tài nguyên mạng giữa các luông hay làm thế nào có thể triển khai hiệu quả phương thức truyền thông một- nhiều ( truyền dữ liệu từ một nguồn đến nhiều đích cùng một lúc) Từ đó đã có rất nhiều giải pháp được nghiên cứu và phát triển nhằm khác phục những vấn đề này

Video streaming được định nghĩa là một “dòng chảy” video , nghĩa là dữ liệu video được truyền liên tục từ một nguồn đến một đích nào đó Ý tưởng cơ bản của video streaming đó là chia video thành từng frame, sau đó liên tục truyền những phần được chia

ra và bên nhận có thể hiện thị những phần video đã nhận được mà không phải đợi cho đến khi toàn bộ video được truyền xong

Tuy nhiên có một vài vấn đề ảnh hưởng trực tiếp đến video streaming Video streaming qua mạng Internet gặp rất nhiều khó khăn bởi Internet chỉ cung cấp dịch vụ truyền best-effort (cố gắng tối đa) Do đó, nó không đảm bảo về băng thông, độ trễ, jitter hay sự mất gói tin Những nhân tố này thường không đoán trước được và động Chính vì vậy, mục tiêu chính của việc xây dựng một ứng dụng video streaming là phải thiết kết một hệ thống phân phát video chất lượng cao đáng tin cây qua mạng Internet Các ứng dụng video streaming thường được nhiều người dùng cùng một lúc, tức là video phải được truyền cùng lúc tới nhiều người như video conference hay truyền hình trực tuyến Truyền tin multicast là một giải pháp thích hợp cho những ứng dụng đó Phần dưới đây sẽ trình bày chi tiết về multicast

Cấu thành nên một hệ thống video streaming gồm có 6 yếu tố cơ bản: cơ chế nén video, cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng, dịch vụ phân phát video, máy

Trang 8

chủ streaming, cơ chế đồng bộ dữ liệu và giao thức dành cho video streaming [10] Hình

1 cho ta thấy được mối liên hệ giữa các yếu tố này với nhau

Hình 1: Cấu trúc ứng dụng video streaming

ƒ Cơ chế nén video Dữ liệu video nguyên gốc cần phải được nén trước khi được truyền nhằm tiết kiệm băng thông

ƒ Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng Để đối phó với sự

biến thiên của tài nguyền mạng hoặc để cung cấp chất lượng hình ảnh thay đổi theo từng người dùng, nhiều kỹ thuật điều kiển chất lượng dịch vụ tầng ứng dụng đã được đưa ra Kỹ thuật đó bao gồm điều khiển tắc nghẽn và điều khiển lỗi Điều khiển tắc nghẽn được triển khai để ngăn ngừa việc mất gói tin

và giảm độ trễ Trong khi đó, điều khiển lỗi cải thiện chất lượng hình ảnh khi

có gói tin bị mất

ƒ Dịch vụ phân phát video trên đường truyền Được xây dựng trên nền của

Internet ( giao thức IP), dịch vụ phân phát video trên đường truyền cho phép đạt được QoS ( chất lượng dịch vụ) và hiệu quả cho việc phân phát video qua

mạng Internet

ƒ Máy chủ streaming Máy chủ streaming đóng vai trò quan trọng trong việc

cung cấp dịch vụ streaming Máy chủ streaming được yêu cầu phải xử lý các

dữ liệu video với sự rằng buộc về thời gian, đồng thời hỗ trợ các hành động tương tác như dừng (pause), tua (fast forward) Một server streaming gồm 3

Trang 9

hệ thống con: bộ truyền tin (communicator) ví dụ như giao thức tầng giao

vận, hệ điều hành và hệ thống lưu trữ

ƒ Cơ chế đồng bộ dữ liệu Với cơ chế đồng bộ, ứng dụng tại bên nhận có thể

hiển thị video gần giống như khi nó được khởi tạo tại bên gửi Một ví dụ của

cơ chế đồng bộ là cử động môi của người nói phải phù hợp với tiếng nói họ

phát ra

ƒ Giao thức dành cho video streaming Giao thức được thiết kế và chuẩn hóa

cho truyền thông giữa máy khách và máy chủ streaming Giao thức có thể được chia làm 3 loại: giao thức tầng mạng như Internet Protocol (IP), giao thức tầng giao vận như User Datagram Protocol (UDP) và giao thức điều

khiển phiên như Real-time Streaming Protocol (RTSP)

Trong hệ thống mạng của chúng ta hiện nay có 3 cách truyền tin cơ bản đó là unicast, multicast và broadcast (Hình 2)

Unicast là phương thức truyền tin cơ sở của IP network Với unicast một máy

truyền và chỉ có một máy nhận theo kiểu point to point Hiện nay hầu hết các ứng dụng mạng được phát triển và sử dụng trên nền phương thức unicast như HTTP, Telnet, FTP

… Nhưng với những ứng dụng đòi hỏi phải truyền tin từ một nguồn cho một nhóm người dùng như video streaming thì việc triên khai trên unicast là không hiệu quả và truyền tin multicast là giải pháp thay thế

Multicast là cách truyền dữ liệu từ một – nhiều (one-to-many) tức là dữ liệu được

gửi từ một node nguồn và một nhóm node đích sẽ nhận được cùng dữ liệu đó Cách truyền này khác với unicast– gửi thông tin trên mạng theo cách truyền gói tin một- một (one – to – one) Nếu multicast có thể so sánh với cuộc gọi chung cho nhiều người (conference call) thì unicast có thể so sánh với cuộc gọi riêng giữa hai người

Broadcast được mô tả như truyền thông tin cho toàn mạng, tất cả các điểm trong

mạng đều nhận được thông báo này Trong trường hợp này chỉ một người gửi nhưng tất

cả người trong mạng đều nhận được Broadcast được hỗ trợ trong mạng LAN (ví dụ Ethernet) và được sử dụng để gửi những gói tin giống nhau đến các máy trong mạng LAN (ví dụ ARP được sử dụng gửi địa chỉ đến toàn bộ máy trong mạng LAN) Network protocol (như IP) hỗ trợ khuôn dạng gói tin để gửi đến bất kỳ hệ thống nào trong logical network

Trang 10

Có thể nói, multicast là cách thức hiệu quả nhất để truyền dữ liệu đến một nhóm người trên Internet Chúng ta cũng có thể sử dụng unicast để truyền tin lần lượt từ nguồn đến từng node trong nhóm Tuy nhiên, với cách này thì node nguồn sẽ phải lặp đi lặp lại việc truyền 1 gói tin cho rất nhiều node khác, dẫn đến việc tiêu tốn tài nguyên của node nguồn ( CPU, memory …) Đồng thời, sẽ có rất nhiều gói tin không cần thiết được lưu thông trên mạng, dẫn đến lãng phí tài nguyên mạng

Với multicast, một cây multicast sẽ được hình thành với nguồn là gốc của cây và các thành phần còn lại của cây có thể là node đầu cuối ( end – host ) hoặc có thể là router tùy vào từng công nghệ multicast khác nhau Thay vì việc node nguồn nhân bản gói tin

và gửi đến từng node trong nhóm thì nó chỉ truyền cho 1 hoặc vài node nhất định và các node này có nhiệm vụ sao chép và truyền gói tin theo cây multicast

Hình 2: Các phương thức truyền tin trên mạng

IP multicast (Hình 3) là chuẩn mở của IETF (Internet Engineering Task Force)[3], dùng để truyền dữ liệu tới nhiều người nhận. Trong IP multicast, các router sẽ đóng vai trò là node trung gian trong cây multicast và có trách nhiệm sao chép gói tin rồi truyền cho các node ứng dụng - ở đây, các node này sẽ đóng vai trò là ngọn của cây

Trang 11

Hình 3: Thành phần của IP multicast

Trong IP multicast mỗi node sẽ gửi yêu cầu một router gắn với nó khi muốn ra nhập hoặc rời khỏi nhóm Sau đó các router multicast sẽ trao đổi các thông tin về việc quản lý nhóm thông qua cây multicast Tất cả các công việc như tạo nhóm, nhập nhóm, rời nhóm đều được thực hiện bởi giao thức IGMP (Internet Group Membership Protocol)(Hình 4)[4]

IP multicast sử dụng địa chỉ IP lớp D để định danh các nhóm multicast Đây là dạng địa chỉ IP đặc biệt dành riêng cho multicast Tất cả các máy nối kết vào Internet phải có địa chỉ IP thuộc lớp A, lớp B, hoặc lớp C Một máy có thể có một hoặc nhiều địa chỉ multicast lớp D tùy thuộc vào số nhóm multicast mà nó tham gia Địa chỉ lớp D có độ dài

là 32 bit 4 bit đầu tiên được dùng để xác định nó thuộc lớp D, 28 bit còn lại được dùng

để xác định nhóm multicast Một địa chỉ lớp D có thể so sánh với một kênh trên tivi Khi bạn truy cập một địa chỉ lớp D, bạn sẽ nhận được tất cả thông tin được multicasting đến địa chỉ đó

Trang 12

Hình 4: Internet Group Management Protocol – Thông điệp Query

IGMP chỉ có trách nhiệm quản lý các nhóm multicast và việc phân phát các gói tin multicast từ router nội bộ đến các node trong nhóm Việc gói tin làm thế nào để đi được

từ nguồn đến các router biên ( các router trực tiếp nối với node) phụ thuộc vào giao thức định tuyến multicast chạy trên các router trong mạng Hiện nay có một vài giao thức định tuyến được phát triển dành riêng cho IP multicast như DVMRP (Distance Vector Multicast Routing Protocol) – giao thức định tuyến multicast đầu tiên hay như PIM (Protocol Independent Multicast) – giao thức multicast được dùng phổ biến nhất hiện nay

Với các giao thức định tuyến multicast trong IP multicast, số lượng gói tin phải sao chép nhân bản trên đường truyền được giảm thiểu so với các phương thức truyền tin khác

từ đó tiết kiệm đáng kể băng thông mạng Tuy nhiên một nhược điểm khiến nó không được sử dụng nhiều và không có khả năng mở rộng đó là các router trong mạng phải hỗ trợ multicast Đồng thời, IP multicast chỉ hỗ trợ các ứng dụng chạy trên nền UDP – giao thức truyền tin không tin cậy Nhằm khắc phục những nhược điểm này, truyền tin multicast tầng ứng đã và đang được nghiên cứu, phát triển rất nhiều trong những năm gần đây Phần tiếp của khóa luận sẽ trình bày về phương thức truyền tin multicast tầng ứng dụng

Khái niệm multicast tầng ứng dụng chỉ đơn giản là việc thi hành multicasting như một dịch vụ tầng ứng dụng chứ không phải như một dịch vụ tầng mạng Hình 5 mô tả

Trang 13

việc truyền multicast cho cùng một nhóm người nhận và người gửi của multicast tầng ứng dụng và IP multicast Ở đây, cây multicast được hình thành ở tầng ứng dụng Với việc chỉ sử dụng phương thức truyền tin unicast của tầng mạng, node nguồn S gửi hai gói tin cho D1 và D2; tại D1, D2 gói tin được nhân bản và chuyền tiếp cho D4,D3

Hình 5: (a) IP multicast (b) Multicast tầng ứng dụng

IP multicast được triên khai tại các node mạng ( Router) trong khi đó muticast tầng ứng dụng được triển khai tại các node ứng dụng ( end host hoặc proxy ) Do các node ứng dụng biết ít thông tin về tầng mạng hơn là các router nên cây multicast tầng ứng dụng thường không có độ tối ưu bằng IP multicast

Trong multicast tầng ứng dụng, các công việc điều khiển như ra nhập nhóm, rời nhóm, sao lưu và chuyển tiếp gói tin, định tuyến multicast… đều được thực hiện tại điểm đầu cuối (end system hoặc proxy) chính vì vậy mà không yêu cầu cần có những router hỗ trợ multicast ở mạng lõi

Dựa vào cấu trúc mạng hoặc cách tạo cây multicast mà ta có các giải pháp truyền tin multicast tầng ứng dụng khác nhau: Proxy-based ALM và end system ALM; mesh first

và tree first [7]

ƒ Proxy-based ALM và end system ALM

Trang 14

Hình 6: (a) Proxy-based ALM (b) End-system ALM

Trong mô hình Proxy-based ALM (Hình 6a), yêu cầu triển khai nhiều proxy hoặc server trên Internet, các proxy hay server này sẽ tự thành lập một mạng phủ (overlay network) với nhau và cũng cấp dịch vụ multicast trong suốt cho các người dùng cuối (end-user) Ngược lại, mô hình end-system ALM (Hình 6b) chỉ yêu cầu hạ tầng mạng phía dưới cũng cấp duy nhất dịch vụ truyền tin unicast, việc truyền multicast sẽ được thực hiện bởi các node đầu cuối (end-system)

Với mô hình proxy-based ALM thì các ứng dụng chạy trên node đầu cuối sẽ ít phức tạp hơn bởi vì dịch vụ multicast trong suốt với chúng Một điểm mạnh nữa của mô hình này đó là băng thông tại các proxy thường lớn hơn tại các node đầu cuối chính vì vậy mà tránh xảy ra hiện tượng “nút thắt cổ chai” như trong mô hình end-system ALM Nhược điểm của mô hình này là chi phí phải trả cho hệ thống proxy hay server là rất cao

ƒ Mesh-fist và tree-first

Trong mô hình mesh-first, các node muốn tham gia vào quá trình truyền hoặc nhận multicast sẽ tham gia vào một mạng phủ hình thành nên một tô pô dạng lưới liên kết các node với nhau (Hình 7a) Sau khi tô pô mạng được hình thành thì node nguồn sẽ sử dụng thuật toán định tuyến để truyền multicast thông qua mạng đó (Hình 7b) Thông thường cây multicast tạo ra từ phương thức không được tối ứu do gặp phải vấn đề vấn đề “nút cổ chai” khi một node có tài nguyên kém mà phải chịu tải cao Hơn nữa việc duy trì mạng phủ cũng đòi hỏi một phần băng thông cho các thông tin điều khiển mạng Tuy nhiên lợi thế của mô hình này là khả năng chịu lỗi cao bởi các node trong cây không chỉ biết đến

Trang 15

node cha của nó mà còn biết thông tin về các node khác Mô hình này thường được sử dụng với các ứng dụng đa nguồn multicast như video conference

Với mô hình tree-first, cây multicast được hình thành mà không cần các node tạo thành mạng phủ với nhau Một node chọn cha của nó từ một số thành viên đã biết trong cây Mô hình này cần có thuật toán phát hiện và tránh lặp xảy ra trong cây multicast Các node trong cây sẽ chọn được vị trí tối ưu nhất tránh hiện tượng nút thắt cổ chai Tuy nhiên điều này có thể dẫn đến cây bị lệch Hơn nữa khi một node bị lỗi hoặc rời mạng thì việc khôi phục lại cây multicast sẽ khó khăn hơn rất nhiều so với mô hình mesh-first

Trang 16

Chương II: Truyền tin multicast trên nền mạng ngang hàng có cấu trúc Chord

Một mạng máy tính ngang hàng (Peer-to-peer hoặc P2P) chủ yếu dựa trên sức

mạnh tính toán và băng thông của các máy tham gia trong mạng hơn là tập trung vào một

số lượng nhỏ các máy chủ (server) Mạng P2P được sử dụng điển hình cho việc kết nối

các node thông qua những kết nối ad-hoc lớn Những mạng như vậy có ích cho nhiều mục đích sử dụng Chia sẻ file chứa audio, video, data hoặc mọi thứ ở định dạng số, các

dữ liệu thời gian thực, ví dụ như truyền tải giọng nói, video streaming đều có thể thực hiện với công nghệ P2P

Một mạng P2P thuần túy sẽ không có khái niệm về khách (client) và chủ (server),

mà chỉ có những node ngang hang thực hiện cả hai chức năng của một máy chủ và máy khách đối với những node khác trong mạng Mô hình mạng này khác với mô hình mạng khách-chủ mà việc giao tiếp thường là với các máy chủ trung tâm Một ví dụ điển hình cho việc truyền file theo mô hình khách-chủ là giữa một FTP Client và một FTP Server, hai chương trình FTP Client và FTP Server có vai trò rất khác nhau, client khởi tạo việc download/upload file, còn server thì tiếp nhận và phục vụ các yêu cầu đó

Mục đích quan trọng của mạng ngang hà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 mô hình máy khách-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 từ các máy chủ cho mỗi máy khách sẽ giảm xuống

Tính chất phân tán của mạng ngang hà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ệ

Mạng ngang hàng P2P được chia làm hai loại chính: mạng ngang hàng thuần túy và mạng ngang hàng lai ghép (Hình 8)

Trang 17

Hinh 8: Phân loại mạng ngang hàng

ƒ Mạng ngang hàng thuần túy được chia làm 2 loại: mạng ngang hàng có cấu trúc

và mạng ngang hàng không cấu trúc

ƒ Mạng ngang hàng không cấu trúc là 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 Sự hiểu biết về mạng của các node trong mạng không cấu trúc là rất ít, mỗi node chỉ nắm bắt thông tin về nhưng node kết trực tiếp và một số ít các node khác, thông tin về những node còn lại hoàn thông qua broadcast Chính vì vậy với những ứng dụng cần có sự liên kết chặt chẽ giữa các node với nhau như multicast thì mạng ngang hàng không cấu trúc không phải là sự lựa chọn tối ưu

ƒ Mạng ngang hà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

Peer-to-Peer

Thuần túy Lai ghép

Không cấu trúc Có cấu trúc

Chord

Trang 18

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 định tuyến thông báo, nó chỉ cần áp dụng một giao thức chung để xác định nút cần thông báo và sau đó liên lạc trực tiếp đến nút mạng đó Bởi vậy việc tao cây multicast sẽ diễn ra rất dễ dàng

và việc quản lý cậy cũng có nhiều thuận lợi khi các node đều được liên kết chặt chẽ với nhau Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồm Chord, CAN, Kademlia, Pastry và Tapestry.[5,6,9]

ƒ Mạng ngang hàng lai ghép: Trong mô hình mạng ngang hàng lại ghép, tồn tại

một server trung gian có trách nhiệm điều khiển hoạt động của mạng Server này lưu dữ các chỉ mục bao gồm thông tin về các node nó quản lý và vị trí các cặp key-value trên mạng Các node trong mạng phải tạo liên kết với server này Một node muốn trao đổi thông tin với một node khác thì nó sẽ phải liên lạc trực tiếp với server, sau đó server sẽ tìm kiếm trong cơ sở dữ liệu và gửi lại địa chỉ node đích Quá trình trao đổi thông tin sau

đó được diễn ra trực tiếp giữa 2 node Việc triển khai truyền tin multicast trên mạng ngang hàng lai ghép gần giống như mô hình proxy-base ALM Nhược điểm chính của nó vẫn là chi phí cao cho các server trung gian Ứng dụng điển hình cho mô hình mạng này

là Napster

Giao thức Chord là một giao thức định tuyến DHT bởi một nhóm sinh viên từ trường Đại học California ở Berkeley và MIT nhằm mục đích phân tán và tìm kiếm dữ liệu một cách tốt nhất với nhiều đặc trưng như scalability (khả năng mở rộng), complete decentralization (phân tán hoàn toàn), load blancing (cân bằng tải), và simplicity (đơn giản)

Chord[6] được mô tả dưới dạng một vòng tròn và có không gian định danh cỡ m,

với m là số bit định danh của không gian Mạng Chord sẽ có tối đa 2 m định danh Một Chord node (hay một phần tử - một máy tính trong mạng Chord) có một định danh id, và các id trong mạng Chord sắp xếp thành vòng tròn và tăng theo chiều kim đồng hồ Mỗi node trên vòng tròn sẽ biết thông tin về node trước và sau nó trên vòng tròn gọi là

predecessor và successor của node đó Thêm vào đó, mỗi node sẽ lưu một bảng định

tuyến gọi là bảng Finger table, cho phép node đó định tuyến tới các node ở xa Mỗi dòng trong bảng Finger table sẽ lưu thông tin về 1 node ở xa, gọi là 1 entry Không gian định

Trang 19

danh có bao nhiêu bit thì Finger Table có bấy nhiêu entry Ví dụ trong hình 9

predescessor của node 1 sẽ là node 6 và successor của nó là node 3

Kĩ thuật Consistent hashing cấp cho mỗi node và key m-bit định danh dựa trên cơ

sở hàm băm SHA-1[1] Định danh của một node được xác định bằng cách băm địa chỉ IP node đó, định danh của một key xác định bắng cách băm key đó (Ở đây chúng ta quy ước

từ khóa “key” vừa là key gốc vừa là định danh của key) Chiều dài của định danh cần đủ

lớn để khi băm tránh xảy ra trường hợp 2 key hoặc node có định danh giống nhau

Hình 9: Vòng tròn Chord

Giao thức Chord hỗ trợ duy nhất một hoạt động : đưa ra 1 key, nó sẽ ánh xạ

key đó vào một node Tùy thuộc vào ứng dụng sử dụng Chord ( văn bản, hình

ảnh, media ), node đó sẽ lưu trữ một giá trị kết hợp với key Chord sử dụng kí

thuật consistent hashing để cấp key cho các node Consistent hashing dùng để

phân bổ các node cũng như các key đều trên vòng tròn từ đó nâng cao khả năng cần bằng tải, mỗi node sẽ nhận được số lượng key gần ngang nhau, đồng thời giúp cho việc ổn định mạng khi có node tham gia hay rời khỏi hệ thống

Trong mạng Chord mỗi node không cần biết thông tin về tất cả các node khác Mỗi node Chord chỉ cần biết một lượng nhỏ thông tin định tuyến về các node khác Vì những

thông tin này là phân tán, một node sẽ sử dụng finger table để giao tiếp với các node

khác Khi mạng được thiết lập, một hệ thống Chord gồm N-node, trong đó mỗi node chứa thống tin về O(log N) node xung quanh nó, và tìm kiếm các node khác thông qua O(log

Trang 20

N) thông điệp tới các node đó Chord cần phải cập nhập lại thông tin định tuyến khi các node tham gia/rời khỏi hệ thống, với sự tham gia hay vào mạng của một node cũng chỉ cần không quá O(log2 N) thông điệp được gửi đi để cập nhập lại thông tin định tuyến

Trong mạng Chord, mỗi node cần một lượng nhỏ thông tin định tuyến trong 1 môi trường phân tán Chord node chỉ cần biết node successor của nó trong mạng Các truy vấn đến một định danh ( một key hoặc một node) nào đó được truyền theo vòng tròn thông qua các node successor cho đến khi tìm được node biết thông tin về định danh đó Với việc mỗi node đều duy trì một điểm successor của nó cũng đủ đảm bảo mọi truy vấn tìm kiếm đều được thực hiện chính xác Tuy nhiên giải pháp này tỏ ra không hiệu quả khi một truy vấn có thể phải lan truyền qua toàn bộ các node mạng để tìm được node ánh xạ với nó Để đẩy quá trình này, mỗi node Chord duy trì thêm một số thông tin định tuyến

Với chiều dài định danh key/node là m bit, mỗi node n sẽ duy trì một bảng định tuyến với m entry, được gọi là bảng finger table Entry thứ i trong bảng finger table chứa định danh của node đầu tiên, s, mà tiếp sau n ít nhất 2 i -1 trên vòng tròn định danh, s =

successor(n + 2 i - 1 ), với 1 ≤ i ≤ m Node s được gọi là finger thứ i của node n và ký hiệu

là n.finger[i].node Một entry trong bảng finger table còn bao gồm địa chỉ IP, định danh,

cổng của node finger đó Có thể nhận thấy rằng, entry đầu tiên trong bảng finger table

của node n chính là successor của node n

Hình 10: Bảng Finger table và các key gán cho từng node 0, 1, 3

Trang 21

Nhìn vào hình 10 ta thấy được mỗi entry trong bảng finger table của node 1 trỏ đến successor node của các định danh (1+20) mod 23 = 2,(1+21) mod 23 = 3, (1+22) mod 23 =

5 Successor của định danh 2 là node 3, nó chính là node đầu tiên theo sau 2 trên vòng tròn Chord; successor của định danh 3 chỉnh là node 3 và successcor của định danh 5 là node 0

Trong mạng Chord, mỗi node sẽ chạy định kỳ thuật toán đồng bộ mạng nhằm cập nhập bảng finger table và các thông tin về successor, predecessor của nó Việc này sẽ giúp cho mạng Chord luôn hoạt động chính xác kể cả khi có node mới tham gia/rời mạng hay một node bị lỗi

Khi một node mới muốn tham gia vào mạng, nó sẽ trải qua các bước sau:

ƒ Bước 1: Node mới sử dụng consistent hashing băm địa chỉ IP của chính nó để một

định danh ID

ƒ Bước 2: Node mới gửi thông điệp join với định danh ID của nó cho một node nào

đó đã tồn tại trên mạng – gọi là bootstrap node

ƒ Bước 3: Bootstrap node sử dụng bảng finger table để tìm kiếm successor của định

danh ID – successor(ID) và sau đó sẽ gửi kết quả tìm kiếm cho node mới

ƒ Bước 4: Sau khi biết được successor của mình, node mới sẽ gửi thông điệp cảnh

bảo về việc gia nhập mạng của mình cho successor đó Successor nhận được thông điệp cảnh báo đó nó sẽ trỏ đến predecessor mới là node mới gia nhập mạng

ƒ Bước 5: Node mới sử dụng thuật toán đồng bộ để cập nhập các thông tin về mạng

Thuật toán đồng bộ chạy định kỳ tại mỗi node Chord Giả sử node A đang định kỳ chạy thuật toán đồng bộ A sẽ yêu cầu successor của nó gửi thông tin về predecessor ( predecessor của successor của A) Nếu không có node nào join vào giữa node A và successor của A thì kết quả trả về chính là định danh của node A Ngược lại nếu có một node mới join vào giữa node A và successor của nó thì kết quả trả về sẽ là định danh của node mới, từ đó node A có thể nhận biết được có node mới tham gia vào mạng Và đến lần đồng bộ tiếp theo, node A sẽ gửi thông báo đến node mới, node mới sẽ cập nhập lại predecessor của nó trở thành node A

Ngày đăng: 18/02/2014, 00:17

HÌNH ẢNH LIÊN QUAN

Hình 1: Cấu trúc ứng dụng video streaming - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình 1 Cấu trúc ứng dụng video streaming (Trang 8)
chủ streaming, cơ chế đồng bộ dữ liệu và giao thức dành cho video streaming [10]. Hình 1 cho ta thấy được mối liên hệ giữa các yếu tố này với nhau - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
ch ủ streaming, cơ chế đồng bộ dữ liệu và giao thức dành cho video streaming [10]. Hình 1 cho ta thấy được mối liên hệ giữa các yếu tố này với nhau (Trang 8)
Hình 3: Thành phần của IP multicast - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình 3 Thành phần của IP multicast (Trang 11)
Hình 4: Internet Group Management Protocol – Thông điệp Query - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình 4 Internet Group Management Protocol – Thông điệp Query (Trang 12)
ứng dụng và IP multicast. Ở đây, cây multicast được hình thàn hở tầng ứng dụng. Với - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
ng dụng và IP multicast. Ở đây, cây multicast được hình thàn hở tầng ứng dụng. Với (Trang 13)
Hình 6: (a) Proxy-based ALM (b) End-system ALM - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình 6 (a) Proxy-based ALM (b) End-system ALM (Trang 14)
node cha của nó mà cịn biết thông tin về các node khác. Mơ hình này thường được sử dụng với các ứng dụng đa nguồn multicast như video conference - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
node cha của nó mà cịn biết thông tin về các node khác. Mơ hình này thường được sử dụng với các ứng dụng đa nguồn multicast như video conference (Trang 15)
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) - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
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) (Trang 17)
danh có bao nhiêu bit thì Finger Table có bấy nhiêu entry. Ví dụ trong hình 9 predescessor của node 1 sẽ là node 6 và successor của nó là node 3 - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
danh có bao nhiêu bit thì Finger Table có bấy nhiêu entry. Ví dụ trong hình 9 predescessor của node 1 sẽ là node 6 và successor của nó là node 3 (Trang 19)
Với chiều dài định danh key/node làm bit, mỗi nod en sẽ duy trì một bảng định - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
i chiều dài định danh key/node làm bit, mỗi nod en sẽ duy trì một bảng định (Trang 20)
broadcast ví dụ như một phần của hình ảnh cần được gửi đi trong ứng dụng video - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
broadcast ví dụ như một phần của hình ảnh cần được gửi đi trong ứng dụng video (Trang 23)
vớ iM là số entry trong bảng finger table. Giới hạn cho entry cuối cùng trong bảng finger table là một trường hợp đặc biệt khi Limit được đặt là định danh của chính node gửi gói  tin - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
v ớ iM là số entry trong bảng finger table. Giới hạn cho entry cuối cùng trong bảng finger table là một trường hợp đặc biệt khi Limit được đặt là định danh của chính node gửi gói tin (Trang 24)
Hình dưới đây mô tả các chứa năng của hệ thống. - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình d ưới đây mô tả các chứa năng của hệ thống (Trang 27)
Hình 14: Cây multicast thu được từ mạng Chord - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
Hình 14 Cây multicast thu được từ mạng Chord (Trang 28)
Dữ liệu thực được tạo ra bằng cách bắt lấy (capture) hình ảnh thu được từ webcam trong những khoảng thời gian định kỳ - xây dựng ứng dụng video streamming dựa trên mạng ngang hàng chord
li ệu thực được tạo ra bằng cách bắt lấy (capture) hình ảnh thu được từ webcam trong những khoảng thời gian định kỳ (Trang 30)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w